Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 29 additions & 22 deletions docs/dictionary/en-custom.txt
Original file line number Diff line number Diff line change
@@ -1,17 +1,35 @@
APIs
Amartya
AssignedTeam
CP
CPython
ClusterServiceVersion
FreeIPA
IDM
IMVHO
IdP
Idempotency
LDAP
LLM
MachineConfig
NodeHealthCheck
RHCOS
SNO
Sinha
UTF
ZipFile
aaabbcc
abcdefghij
addr
afuscoar
alertmanager
Amartya
amartyasinha
ansible
ansibleee
ansibletest
ansibletests
ansibleuser
ansiblevars
APIs
apiversion
apivips
appcreds
Expand All @@ -20,12 +38,12 @@ aqc
args
arx
arxcruz
AssignedTeam
auth
authfile
autoconfiguration
autohold
autoholds
autologin
autoscale
autostart
awk
Expand Down Expand Up @@ -89,7 +107,6 @@ cli
client
clusterimageset
clusterpool
ClusterServiceVersion
cmd
cn
cni
Expand All @@ -104,9 +121,7 @@ containerfile
controlplane
coredns
coreos
CP
cpus
CPython
crashloopbackoff
crb
crc
Expand Down Expand Up @@ -143,6 +158,7 @@ deprovision
deps
dest
dev
devscript
devscripts
devsetup
dfb
Expand Down Expand Up @@ -184,8 +200,8 @@ epel
epyc
etcd
eth
extraimages
extraRPMs
extraimages
ezzmy
favorit
fbqufbqkfbzxrja
Expand All @@ -200,7 +216,6 @@ flbxutz
fmw
fqdn
freefonts
FreeIPA
frmo
fsid
fultonj
Expand Down Expand Up @@ -237,27 +252,25 @@ hotfix
href
hsm
hsms
httpd
https
ic
icjbuue
icokicagy
IDM
IdP
Idempotency
idrac
imagecontentsourcepolicy
iface
igfsbg
igmp
igogicbjyxbzig
ihbyb
imagecontentsourcepolicy
img
IMVHO
ingressvips
ini
init
installplan
installyamls
internalapi
ipaddr
ipam
ipi
Expand Down Expand Up @@ -305,18 +318,16 @@ kuttl
kvm
lacp
lajly
LDAP
ldp
libguestfs
libvirt
libvirt's
libvirtd
libvirterror
libvirt's
ljaumtawojy
ljaumtaxojy
ljaumtayojy
lkid
LLM
lmxpynzpcnrdcmfkbwluihnvy
localhost
localnet
Expand Down Expand Up @@ -371,9 +382,9 @@ netconfig
netmask
networkattachmentdefinition
networkconfig
networker
networkmanager
networktype
networker
nfs
nftables
nhc
Expand All @@ -385,7 +396,6 @@ nmstate
nncp
nobuild
nodeexporter
NodeHealthCheck
nodenetworkconfigurationpolicy
nodepool
nodeps
Expand All @@ -402,12 +412,12 @@ nwy
nzgdh
oauth
observability
oidc
oc
ocp
ocpbm
ocppr
odkvmf
oidc
okd
ol
olm
Expand Down Expand Up @@ -537,7 +547,6 @@ sha
shiftstack
shiftstackclient
sig
Sinha
sizepercent
skbg
skiplist
Expand Down Expand Up @@ -604,7 +613,6 @@ uoyt
uri
usermod
usr
UTF
utils
uuid
vbibob
Expand Down Expand Up @@ -661,7 +669,6 @@ ytm
yxivcnvul
yyoje
yyyy
ZipFile
zlcbwcm
zm
zpbgugcmjkihbvb
Expand Down
4 changes: 4 additions & 0 deletions roles/devscripts/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,13 @@ networks.
* `cifmw_devscripts_external_net` (dict) Key/value pair containing information
about the network infrastructure.
Refer [section](#supported-keys-in-cifmw_devscripts_external_net).
* `cifmw_devscripts_ext_iface` (str) The network interface name used in the
NMState static IP template for OCP nodes. Defaults to `enp2s0`. Override for
bare metal hosts whose RHCOS interface name differs (e.g. `eno12399`).
* `cifmw_devscripts_cinder_volume_pvs` (list) a list of physical disks to be
used for creating cinder-volumes volume-group. By default, the list contains
`/dev/vda`.
* `cifmw_devscripts_sno` (bool) Enable Single Node OpenShift. Defaults to `false`.

### Secrets management

Expand Down
3 changes: 3 additions & 0 deletions roles/devscripts/defaults/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,9 @@ cifmw_devscripts_create_logical_volume: false
cifmw_devscripts_cinder_volume_pvs:
- /dev/vda

cifmw_devscripts_ext_iface: "enp2s0"

cifmw_devscripts_config_overrides: {}
cifmw_devscripts_installer_timeout: 7200 # 2 hours
cifmw_devscripts_sno: false
cifmw_devscripts_etcd_slow_profile: true
7 changes: 7 additions & 0 deletions roles/devscripts/tasks/build_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -40,6 +40,13 @@
devscripts_config_patches
}}
- name: Check if num_masters is equal to 1 when cifmw_devscripts_sno
when: cifmw_devscripts_sno and cifmw_devscripts_config['num_masters'] | int != 1
ansible.builtin.fail:
msg: >-
Make sure, vms.ocp.amount (num_masters) is set to 1,
when SNO scenario is set.
- name: Replace OCP version if "stable-" alias used
when:
- cifmw_devscripts_config.openshift_version.startswith("stable-")
Expand Down
111 changes: 111 additions & 0 deletions roles/devscripts/tasks/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,122 @@
(cifmw_devscripts_repo_dir, 'logs' ) | path_join
}}
block:
# - name: Do workaround when SNO set
# when: cifmw_devscripts_sno
# block:
# - name: Copy workaround script
# ansible.builtin.copy:
# content: |
# TARGET="192.168.111.2"
# MAX_FAILURES=10
# FAILURES=0
# while true; do
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

# if ping -c1 -W1 "$TARGET" > /dev/null 2>&1; then
# echo "bootstrap in progress..."
# sleep 1
# else
# FAILURES=$FAILURES+1
# fi
#
# if [[ $FAILURES -ge $MAX_FAILURES ]]; then
# echo "Bootstrap probably is completed. Continue..."
# break
# fi
#
# sleep 1
# done
#
# if [ -f /etc/NetworkManager/dnsmasq.d/openshift-ocp.conf ]; then
# if grep -q '192.168.111.2' /etc/NetworkManager/dnsmasq.d/openshift-ocp.conf ; then
# sudo sed -i 's/192.168.111.2/192.168.111.10/g' /etc/NetworkManager/dnsmasq.d/openshift-ocp.conf;
# fi;
# if grep -q '192.168.111.3' /etc/NetworkManager/dnsmasq.d/openshift-ocp.conf ; then
# sudo sed -i 's/192.168.111.3/192.168.111.10/g' /etc/NetworkManager/dnsmasq.d/openshift-ocp.conf;
# fi;
# fi
#
# # hypervisor - cifmw-dnsmasq
# sudo find /etc/cifmw-dnsmasq.d -type f -exec sed -i 's/192.168.111.2/192.168.111.10/g' {} \;
# sudo find /etc/cifmw-dnsmasq.d -type f -exec sed -i 's/192.168.111.3/192.168.111.10/g' {} \;
#
# # dig apps.ocp.openstack.lab => 192.168.111.10
# # dig api.ocp.openstack.lab => 192.168.111.10
#
# ssh-keyscan -H 192.168.111.10 >> {{ ansible_user_dir }}/.ssh/known_hosts
#
# # /etc/hosts
# ssh -i {{ ansible_user_dir }}/ci-framework-data/artifacts/cifmw_ocp_access_key \
# core@192.168.111.10 \
# bash -c "echo '192.168.111.10 api-int.ocp.openstack.lab api.ocp.openstack.lab' | sudo tee -a /etc/hosts"
#
# ssh -i {{ ansible_user_dir }}/ci-framework-data/artifacts/cifmw_ocp_access_key \
# core@192.168.111.10 \
# bash -c "echo '192.168.111.10 apps.ocp.openstack.lab' | sudo tee -a /etc/hosts"
#
# # Coredns
# ssh -i {{ ansible_user_dir }}/ci-framework-data/artifacts/cifmw_ocp_access_key \
# core@192.168.111.10 sudo sed -i 's/192.168.111.2/192.168.111.10/g' /etc/coredns/Corefile
#
# ssh -i {{ ansible_user_dir }}/ci-framework-data/artifacts/cifmw_ocp_access_key \
# core@192.168.111.10 sudo sed -i 's/192.168.111.3/192.168.111.10/g' /etc/coredns/Corefile
#
# # workaround for missing docker dir
# ssh -i {{ ansible_user_dir }}/ci-framework-data/artifacts/cifmw_ocp_access_key \
# core@192.168.111.10 sudo mkdir -p /etc/docker
#
# sudo systemctl restart cifmw-dnsmasq
# sleep 5
#
# export KUBECONFIG={{ ansible_user_dir }}/src/github.com/openshift-metal3/dev-scripts/ocp/ocp/auth/kubeconfig
#
# # Add missing puzzle for ingress. Without that, openshift-ingress-operator
# # would be crashing (it is waiting for openshift-ingress router)
# oc apply -f https://raw.githubusercontent.com/openshift/router/refs/heads/master/deploy/route_crd.yaml
# oc apply -f https://raw.githubusercontent.com/openshift/router/refs/heads/master/deploy/router_rbac.yaml
# oc apply -f https://raw.githubusercontent.com/openshift/router/refs/heads/master/deploy/router.yaml
#
# # new
# # oc patch ingresscontroller default -n openshift-ingress-operator --type=merge -p '{"spec":{"endpointPublishingStrategy":{"type":"HostNetwork"},"replicas":1}}'
#
# # oc patch deployment apiserver -n openshift-apiserver --type=merge -p '{"spec":{"template":{"metadata":{"labels":{"openshift-apiserver-anti-affinity":"false"}}}}}'
# # oc -n openshift-apiserver rollout restart deployment apiserver
#
# oc -n openshift-dns rollout restart daemonsets dns-default
# oc -n openshift-dns rollout restart daemonsets node-resolver
#
# sleep 120
#
# dest: "{{ cifmw_devscripts_repo_dir }}/07-sno-workaround.sh"
#
# - name: Add the workaround script execution into 06_create_cluster.sh script
# ansible.builtin.replace:
# path: "{{ cifmw_devscripts_repo_dir }}/06_create_cluster.sh"
# regexp: '^create_cluster \${OCP_DIR}'
# replace: |
# #
# # NOTE(dpawlik): Right now, quit 06_create_cluster.sh, otherwise
# # it will get timeout from devscript role.
# # The value is set to 25 min and should be enough to deploy,
# # but if not, you can increase to more.
# #
# timeout {{ cifmw_devscripts_sno_bootstrap_timeout | default(1800) }} bash -c "source utils.sh && create_cluster ${OCP_DIR}" || true
# bash -x 07-sno-workaround.sh
# exit 0

- name: Run devscripts make all
when: not cifmw_devscripts_sno | default(true)
cifmw.general.ci_script:
chdir: "{{ cifmw_devscripts_repo_dir }}"
output_dir: "{{ cifmw_devscripts_artifacts_dir }}"
script: "timeout {{ cifmw_devscripts_installer_timeout }} make all"

- name: Run devscripts make agent when SNO
when: cifmw_devscripts_sno | default(false)
cifmw.general.ci_script:
chdir: "{{ cifmw_devscripts_repo_dir }}"
output_dir: "{{ cifmw_devscripts_artifacts_dir }}"
script: "timeout {{ cifmw_devscripts_installer_timeout }} make agent"

always:
- name: Gather logs
register: _deploy_logs
Expand Down
26 changes: 26 additions & 0 deletions roles/devscripts/templates/conf_ciuser.j2
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,32 @@ set +x
export CI_TOKEN=$(cat {{ cifmw_devscripts_repo_dir }}/ci_token)
set -x

{% if not cifmw_devscripts_sno %}
{% for item in cifmw_devscripts_config %}
export {{ item.upper() }}="{{ cifmw_devscripts_config[item] }}"
{% endfor %}
{% endif %}

{% if cifmw_devscripts_sno %}

{% for item in ['working_dir', 'assets_extra_folder', 'openshift_release_type',
'openshift_version', 'cluster_name', 'base_domain', 'ntp_servers',
'external_bootstrap_mac', 'vm_extradisks',
'vm_extradisks_list', 'ssh_pub_key'] %}
export {{ item.upper() }}="{{ cifmw_devscripts_config[item] }}"
{% endfor %}
# https://github.com/openshift-metal3/dev-scripts/blob/master/agent/docs/none-and-external-platform.md
# https://github.com/openshift-metal3/dev-scripts/blob/master/common.sh#L470
# SNO Configuration
export IP_STACK="v4"
export AGENT_E2E_TEST_SCENARIO="SNO_IPV4"
export AGENT_PLATFORM_TYPE="none"
export NUM_MASTERS=1
export NUM_WORKERS=0

# export API_VIP="192.168.111.10"
# export INGRESS_VIP="192.168.111.4"
# export PROVISIONING_HOST_IP="192.168.111.1"
# export CLUSTER_DHCP_RANGE="192.168.111.10,192.168.111.100"
# export DNS_IP="{{ ansible_default_ipv4.address }}"
{% endif %}
Loading
Loading