-
Notifications
You must be signed in to change notification settings - Fork 128
Expand file tree
/
Copy pathmain.yml
More file actions
155 lines (149 loc) · 10.5 KB
/
main.yml
File metadata and controls
155 lines (149 loc) · 10.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
# Ansible playbook related variables
HOME: "{{ lookup('env', 'HOME') }}"
NAMESPACE: "{{ lookup('env', 'NAMESPACE') | default('metal3', true) }}"
IRONIC_NAMESPACE: "{{ lookup('env', 'IRONIC_NAMESPACE') | default('baremetal-operator-system', true) }}"
NAMEPREFIX: "{{ lookup('env', 'NAMEPREFIX') | default('baremetal-operator', true) }}"
CRS_PATH: "{{ metal3_dir }}/tests/roles/run_tests/templates"
TEMP_GEN_DIR: "{{ metal3_dir }}/tests/roles/run_tests/files/manifests"
BOOTSTRAP_CLUSTER: "{{ lookup('env', 'BOOTSTRAP_CLUSTER') | default('kind', true) }}"
CAPI_CONFIG_DIR: "{{ lookup('env', 'CAPI_CONFIG_DIR') | default('$HOME/.config/cluster-api', true) }}"
CLUSTER_APIENDPOINT_HOST: "{{ lookup('env', 'CLUSTER_APIENDPOINT_HOST') }}"
CLUSTER_APIENDPOINT_PORT: "{{ lookup('env', 'CLUSTER_APIENDPOINT_PORT') | default(6443, true) }}"
CLUSTER_APIENDPOINT_IP: "{{ lookup('env', 'CLUSTER_APIENDPOINT_IP') }}"
CLUSTER_NAME: "{{ lookup('env', 'CLUSTER_NAME') | default('test1', true) }}"
CONTROL_PLANE_MACHINE_COUNT: "{{ lookup('env', 'CONTROL_PLANE_MACHINE_COUNT') | default(1, true) }}"
WORKER_MACHINE_COUNT: "{{ lookup('env', 'WORKER_MACHINE_COUNT') | default(1, true) }}"
NUM_NODES: "{{ lookup('env', 'NUM_NODES') | default(2, true) }}"
NODE_DRAIN_TIMEOUT: "{{ lookup('env', 'NODE_DRAIN_TIMEOUT') | default('0s', true) }}"
BMOPATH: "{{ lookup('env', 'BMOPATH') }}"
IRSOPATH: "{{ lookup('env', 'IRSOPATH') }}"
IRONIC_ROLLOUT_WAIT: "{{ lookup('env', 'IRONIC_ROLLOUT_WAIT') | default(10, true) }}"
IPA_DOWNLOADER_IMAGE: "{{ lookup('env', 'IPA_DOWNLOADER_IMAGE') | default('registry.nordix.org/metal3/ironic-python-agent-downloader:latest', true) }}"
IRSO_IMAGE: "{{ lookup('env', 'IRSO_IMAGE') | default('registry.nordix.org/metal3/ironic-standalone-operator:latest', true) }}"
IRONIC_IMAGE: "{{ lookup('env', 'IRONIC_IMAGE') | default('registry.nordix.org/metal3/ironic:latest', true) }}"
IRONIC_KEEPALIVED_IMAGE: "{{ lookup('env', 'IRONIC_KEEPALIVED_IMAGE') | default('registry.nordix.org/metal3/ironic-keepalived:latest', true) }}"
IRSO_IRONIC_VERSION: "{{ lookup('env', 'IRSO_IRONIC_VERSION') | default('latest', true) }}"
CLUSTER_DHCP_RANGE_START: "{{ lookup('env', 'CLUSTER_DHCP_RANGE_START') | default('172.22.0.10', true) }}"
CLUSTER_DHCP_RANGE_END: "{{ lookup('env', 'CLUSTER_DHCP_RANGE_END') | default('172.22.0.100', true) }}"
BARE_METAL_PROVISIONER_NETWORK: "{{ lookup('env', 'BARE_METAL_PROVISIONER_NETWORK') | default('172.22.0.0/24', true) }}"
BARE_METAL_PROVISIONER_INTERFACE: "{{ lookup('env', 'BARE_METAL_PROVISIONER_INTERFACE') | default('ironicendpoint', true) }}"
CLUSTER_BARE_METAL_PROVISIONER_IP: "{{ lookup('env', 'CLUSTER_BARE_METAL_PROVISIONER_IP') | default('172.22.0.2', true) }}"
IPA_BRANCH: "{{ lookup('env', 'IPA_BRANCH') | default('main', true) }}"
IRONIC_DATA_DIR: "{{ lookup('env', 'IRONIC_DATA_DIR') }}"
NODES_PLATFORM: "{{ lookup('env', 'NODES_PLATFORM') | default('libvirt', true) }}"
KUBECONFIG_PATH: "/home/ubuntu/.kube/config"
KUBERNETES_VERSION: "{{ lookup('env', 'KUBERNETES_VERSION') | default('v1.34.1', true) }}"
UPGRADED_K8S_VERSION: "{{ lookup('env', 'UPGRADED_K8S_VERSION') | default('v1.34.1', true) }}"
KUBERNETES_VERSION_MINOR: "{{ KUBERNETES_VERSION | regex_replace('^(v\\d+\\.\\d+).*', '\\1') }}"
MAX_SURGE_VALUE: "{{ lookup('env', 'MAX_SURGE_VALUE') | default('1', true) }}"
VM_EXTRADISKS: "{{ lookup('env', 'VM_EXTRADISKS') | default('false', true) }}"
VM_EXTRADISKS_FILE_SYSTEM: "{{ lookup('env', 'VM_EXTRADISKS_FILE_SYSTEM') | default('ext4', true) }}"
VM_EXTRADISKS_MOUNT_DIR: "{{ lookup('env', 'VM_EXTRADISKS_MOUNT_DIR') | default('/mnt/disk2') }}"
KUBERNETES_BINARIES_VERSION: "{{ lookup('env', 'KUBERNETES_BINARIES_VERSION') | default(lookup('env', 'KUBERNETES_VERSION') | default('v1.34.1', true), true) }}"
KUBERNETES_BINARIES_CONFIG_VERSION: "{{ lookup('env', 'KUBERNETES_BINARIES_CONFIG_VERSION') | default('v0.15.1', true) }}"
IP_STACK: "{{ lookup('env', 'IP_STACK') | default('v4', true) }}"
IPAM_PROVISIONING_POOL_RANGE_START: "{{ lookup('env', 'IPAM_PROVISIONING_POOL_RANGE_START') | default('172.22.0.100', true) }}"
IPAM_PROVISIONING_POOL_RANGE_END: "{{ lookup('env', 'IPAM_PROVISIONING_POOL_RANGE_END') | default('172.22.0.200', true) }}"
BARE_METAL_PROVISIONER_CIDR: "{{ lookup('env', 'BARE_METAL_PROVISIONER_CIDR') | default('24', true) }}"
IPAM_EXTERNALV4_POOL_RANGE_START: "{{ lookup('env', 'IPAM_EXTERNALV4_POOL_RANGE_START') | default('192.168.111.100', true) }}"
IPAM_EXTERNALV4_POOL_RANGE_END: "{{ lookup('env', 'IPAM_EXTERNALV4_POOL_RANGE_END') | default('192.168.111.200', true) }}"
EXTERNAL_SUBNET_V4_PREFIX: "{{ lookup('env', 'EXTERNAL_SUBNET_V4_PREFIX') | default('24', true) }}"
EXTERNAL_SUBNET_V4_HOST: "{{ lookup('env', 'EXTERNAL_SUBNET_V4_HOST') | default('192.168.111.1', true) }}"
EXTERNAL_VLAN_ID: "{{ lookup('env', 'EXTERNAL_VLAN_ID') }}"
IPAM_EXTERNALV6_POOL_RANGE_START: "{{ lookup('env', 'IPAM_EXTERNALV6_POOL_RANGE_START') | default('fd55::100', true) }}"
IPAM_EXTERNALV6_POOL_RANGE_END: "{{ lookup('env', 'IPAM_EXTERNALV6_POOL_RANGE_END') | default('fd55::200', true) }}"
EXTERNAL_SUBNET_V6_PREFIX: "{{ lookup('env', 'EXTERNAL_SUBNET_V6_PREFIX') | default('64', true) }}"
EXTERNAL_SUBNET_V6_HOST: "{{ lookup('env', 'EXTERNAL_SUBNET_V6_HOST') | default('fd55::1', true) }}"
BARE_METAL_PROVISIONER_IP: "{{ lookup('env', 'BARE_METAL_PROVISIONER_URL_HOST') | default('172.22.0.1', true) }}"
IRONIC_HOST: "{{ lookup('env', 'IRONIC_HOST') | default('172.22.0.2', true) }}"
IRONIC_HOST_IP: "{{ lookup('env', 'IRONIC_HOST_IP') | default('172.22.0.2', true) }}"
KUBECTL_ARGS: "--kubeconfig=/tmp/kubeconfig-{{ CLUSTER_NAME }}.yaml"
DEPLOY_KERNEL_URL: "{{ lookup('env', 'DEPLOY_KERNEL_URL') }}"
DEPLOY_RAMDISK_URL: "{{ lookup('env', 'DEPLOY_RAMDISK_URL') }}"
IRONIC_URL: "{{ lookup('env', 'IRONIC_URL') }}"
IRONIC_INSPECTOR_URL: "{{ lookup('env', 'IRONIC_INSPECTOR_URL') }}"
POD_CIDR: "{{ lookup('env', 'POD_CIDR') }}"
SERVICE_CIDR: "10.96.0.0/12"
CAPM3RELEASE: "{{ lookup('env', 'CAPM3RELEASE') | default('v1.1.2', true) }}"
CAPIRELEASE: "{{ lookup('env', 'CAPIRELEASE') | default('v1.1.4', true) }}"
IPAMRELEASE: "{{ lookup('env', 'IPAMRELEASE') | default('v1.1.2', true) }}"
CAPM3RELEASEBRANCH: "{{ lookup('env', 'CAPM3RELEASEBRANCH') | default('main', true) }}"
SSH_PRIVATE_KEY: "{{ lookup('env', 'SSH_KEY') }}"
SSH_PUB_KEY_CONTENT: "{{ lookup('file', '{{ HOME }}/.ssh/id_rsa.pub') }}"
IMAGE_USERNAME: "{{ lookup('env', 'IMAGE_USERNAME') | default('metal3', true) }}"
REGISTRY: "{{ lookup('env', 'REGISTRY') | default('192.168.111.1:5000', true) }}"
CALICO_VERSION: "{{ lookup('env', 'CALICO_VERSION') | default('v3.31.0', true) }}"
CILIUM_VERSION: "{{ lookup('env', 'CILIUM_VERSION') | default('v1.18.0', true) }}"
CNI_NAME: "{{ lookup('env', 'CNI_NAME') | default('calico', true) }}"
DOCKER_HUB_PROXY: "{{ lookup('env', 'DOCKER_HUB_PROXY') }}"
WORKING_DIR: "{{ lookup('env', 'WORKING_DIR') | default('/opt/metal3-dev-env', true) }}"
# Environment variables for deployment. IMAGE_OS can be centos or ubuntu, change accordingly to your needs.
IMAGE_OS: "{{ lookup('env', 'IMAGE_OS') | default('centos', true) }}"
CONTAINER_RUNTIME: "{{ lookup('env', 'CONTAINER_RUNTIME') | default('podman', true) }}"
TARGET_NODE_MEMORY: "{{ lookup('env', 'TARGET_NODE_MEMORY') | default('4096', true) }}"
CAPI_VERSION: "{{ lookup('env', 'CAPI_VERSION') | default('v1beta2', true) }}"
CAPM3_VERSION: "{{ lookup('env', 'CAPM3_VERSION') | default('v1beta1', true) }}"
IRONIC_IMAGE_DIR: "{{ lookup('env', 'IRONIC_IMAGE_DIR') | default('/opt/metal3-dev-env/ironic/html/images') }}"
IRONIC_ENDPOINT_BRIDGE: "{{ lookup('env', 'BARE_METAL_PROVISIONER_INTERFACE') | default('provisioning', true) }}"
IRONIC_CACERT_FILE: "{{ lookup('env', 'IRONIC_CACERT_FILE') | default(IRONIC_IMAGE_DIR + '/opt/metal3-dev-env/certs/ironic-ca.pem', true) }}"
IRONIC_CAKEY_FILE: "{{ lookup('env', 'IRONIC_CAKEY_FILE') | default(IRONIC_IMAGE_DIR + '/opt/metal3-dev-env/certs/ironic-ca.key', true) }}"
IRONIC_USERNAME: "{{ lookup('env', 'IRONIC_USERNAME') | default('admin', true) }}"
IRONIC_PASSWORD: "{{ lookup('env', 'IRONIC_PASSWORD') | default('password', true) }}"
UPGRADED_IMAGE_NAME: "{{ lookup('env', 'UPGRADED_IMAGE_NAME') }}"
UPGRADED_RAW_IMAGE_NAME: "{{ lookup('env', 'UPGRADED_RAW_IMAGE_NAME') }}"
# Distibution specific environment variables
IMAGE_NAME: "{{ lookup('env', 'IMAGE_NAME') | default('UBUNTU_24.04_NODE_IMAGE_K8S_{{KUBERNETES_VERSION}}.qcow2', true) }}"
RAW_IMAGE_NAME: "{{ lookup('env', 'IMAGE_RAW_NAME') | default('UBUNTU_24.04_NODE_IMAGE_K8S_{{KUBERNETES_VERSION}}-raw.img', true) }}"
IMAGE_LOCATION: "{{ lookup('env', 'IMAGE_LOCATION') | default('https://artifactory.nordix.org/artifactory/metal3/images/k8s_{{KUBERNETES_VERSION}}', true) }}"
IMAGE_URL: "http://{{ BARE_METAL_PROVISIONER_IP }}/images/{{ RAW_IMAGE_NAME }}"
IMAGE_FORMAT: "{{ lookup('env', 'IMAGE_FORMAT') | default('raw', true) }}"
IMAGE_CHECKSUM_TYPE: "{{ lookup('env', 'IMAGE_CHECKSUM_TYPE') | default('sha256', true) }}"
IMAGE_CHECKSUM: "http://{{ BARE_METAL_PROVISIONER_IP }}/images/{{ RAW_IMAGE_NAME }}.{{ IMAGE_CHECKSUM_TYPE }}sum"
# Environment variables to install Ironic with TLS, Basic Auth and MariaDB
GOPATH: "{{ lookup('env', 'GOPATH')}}"
IRONIC_TLS_SETUP: "{{ lookup('env', 'IRONIC_TLS_SETUP') | default('true', true) }}"
IRONIC_BASIC_AUTH: "{{ lookup('env', 'IRONIC_BASIC_AUTH') | default('true', true) }}"
IRONIC_USE_MARIADB: "{{ lookup('env', 'IRONIC_USE_MARIADB') | default('false', true) }}"
# Metrics
CAPM3_DIAGNOSTICS_ADDRESS: "localhost:8080"
CAPM3_INSECURE_DIAGNOSTICS: "true"
IPAM_DIAGNOSTICS_ADDRESS: "localhost:8080"
IPAM_INSECURE_DIAGNOSTICS: "true"
# Args to pass to the deploy.sh script when deploying Ironic and BMO
# [k]eepalived [t]ls [n]o basic auth or [m]ariadb
BMO_IRONIC_ARGS: "-k {{ (IRONIC_TLS_SETUP == 'true') | ternary('-t', '') }} {{ (IRONIC_BASIC_AUTH == 'true') | ternary('', '-n') }} {{ (IRONIC_USE_MARIADB == 'true') | ternary('-m', '') }}"
provision_cluster_actions:
- "ci_test_provision"
- "provision_cluster"
provision_controlplane_actions:
- "ci_test_provision"
- "provision_controlplane"
provision_workers_actions:
- "ci_test_provision"
- "provision_worker"
provision_actions:
- "ci_test_provision"
- "provision_cluster"
- "provision_controlplane"
- "provision_worker"
- "generate_template"
deprovision_cluster_actions:
- "ci_test_deprovision"
- "deprovision_cluster"
deprovision_controlplane_actions:
- "deprovision_controlplane"
deprovision_workers_actions:
- "deprovision_worker"
verify_actions:
- "ci_test_provision"
- "pivoting"
pivot_actions:
- "pivoting"
repivot_actions:
- "repivoting"
cleanup_actions:
- "ci_test_deprovision"
image_download_actions:
- "ci_test_provision"
- "provision_controlplane"
- "provision_worker"