|
68 | 68 |
|
69 | 69 | vars: |
70 | 70 | operator_nodes: "{{ groups['operator'] | map('extract', hostvars, ['ansible_ens5', 'ipv4', 'address']) | join(',') }}" |
71 | | - control_nodes: "{{ groups['controlplane'] | map('extract', hostvars, ['ansible_ens5', 'ipv4', 'address']) | join(',') }}" |
72 | | - worker_nodes: "{{ groups['worker'] | map('extract', hostvars, ['ansible_ens5', 'ipv4', 'address']) | join(',') }}" |
73 | | - all_nodes: "{{ operator_nodes + ',' + control_nodes + ',' + worker_nodes }}" |
| 71 | + cp_nodes: "{{ groups['controlplane'] | map('extract', hostvars, ['ansible_ens5', 'ipv4', 'address']) | join(',') }}" |
| 72 | + wrk_nodes: "{{ groups['worker'] | map('extract', hostvars, ['ansible_ens5', 'ipv4', 'address']) | join(',') }}" |
| 73 | + all_nodes: "{{ operator_nodes + ',' + cp_nodes + ',' + wrk_nodes }}" |
| 74 | + control_nodes: "{{ groups['controlplane'] | map('extract', hostvars, ['ansible_ens5', 'ipv4', 'address']) | map('regex_replace', '^(.*)$', '\\1' + ':8090' ) | join(',') }}" |
| 75 | + worker_nodes: "{{ groups['worker'] | map('extract', hostvars, ['ansible_ens5', 'ipv4', 'address']) | map('regex_replace', '^(.*)$', '\\1' + ':8090' ) | join(',') }}" |
| 76 | + ocne_registry_location: 'container-registry.oracle.com/olcne' |
74 | 77 |
|
75 | 78 | tasks: |
76 | 79 |
|
|
162 | 165 | delegate_to: "{{ item[0] }}" |
163 | 166 | loop: "{{ groups['controlplane'] | product(['2379/tcp', '2380/tcp', '6443/tcp', '8090/tcp', '8472/udp', '10250/tcp', '10255/tcp', '10251/tcp', '10252/tcp']) | list }}" |
164 | 167 |
|
165 | | - - name: Add firewall rules for internal lb |
| 168 | + - name: Add firewall rules for internal lb on control plane |
166 | 169 | when: use_int_lb |
167 | 170 | block: |
168 | 171 | - name: Add internal lb firewall rule |
169 | 172 | ansible.posix.firewalld: |
170 | | - port: "{{ item }}" |
| 173 | + port: "6444/tcp" |
171 | 174 | permanent: true |
172 | 175 | state: enabled |
173 | 176 | immediate: true |
174 | | - with_items: |
175 | | - - 6444/tcp |
| 177 | + delegate_to: "{{ item }}" |
| 178 | + loop: "{{ groups['controlplane'] }}" |
176 | 179 |
|
177 | 180 | - name: Add vrrp firewall rule |
178 | 181 | ansible.builtin.shell: | |
179 | 182 | firewall-cmd --add-protocol=vrrp --zone=public --permanent |
180 | 183 | firewall-cmd --reload |
| 184 | + delegate_to: "{{ item }}" |
| 185 | + loop: "{{ groups['controlplane'] }}" |
181 | 186 | register: vrrp_firewall |
182 | 187 | changed_when: vrrp_firewall.rc == 0 |
183 | 188 |
|
|
361 | 366 | become: true |
362 | 367 | become_user: "{{ username }}" |
363 | 368 | when: not ocne_provision.stat.exists |
| 369 | + |
| 370 | + - name: Create environment using manual install method |
| 371 | + when: |
| 372 | + - use_vlan_full |
| 373 | + - groups['controlplane'] | length < 2 |
| 374 | + block: |
| 375 | + - name: Create environment |
| 376 | + ansible.builtin.shell: | |
| 377 | + olcnectl environment create --api-server {{ operator_nodes }}:8091 --environment-name myenvironment --secret-manager-type file --update-config |
| 378 | + args: |
| 379 | + chdir: ~/ |
| 380 | + become: true |
| 381 | + become_user: "{{ username }}" |
| 382 | + register: create_env |
| 383 | + changed_when: create_env.rc == 0 |
| 384 | + |
| 385 | + - name: Create Kubernetes Module |
| 386 | + ansible.builtin.shell: | |
| 387 | + olcnectl module create --environment-name myenvironment --module kubernetes --name mycluster \ |
| 388 | + --container-registry {{ ocne_registry_location }} \ |
| 389 | + --control-plane-nodes {{ control_nodes }} \ |
| 390 | + --worker-nodes {{ worker_nodes }} \ |
| 391 | + --selinux enforcing \ |
| 392 | + --restrict-service-externalip-ca-cert ~/certificates/restrict_external_ip/ca.cert \ |
| 393 | + --restrict-service-externalip-tls-cert ~/certificates/restrict_external_ip/node.cert \ |
| 394 | + --restrict-service-externalip-tls-key ~/certificates/restrict_external_ip/node.key |
| 395 | + args: |
| 396 | + chdir: ~/ |
| 397 | + become: true |
| 398 | + become_user: "{{ username }}" |
| 399 | + register: create_kubernetes |
| 400 | + changed_when: create_kubernetes.rc == 0 |
| 401 | + |
| 402 | + - name: Validate Kubernetes Module |
| 403 | + ansible.builtin.shell: | |
| 404 | + olcnectl module validate --environment-name myenvironment --name mycluster |
| 405 | + args: |
| 406 | + chdir: ~/ |
| 407 | + become: true |
| 408 | + become_user: "{{ username }}" |
| 409 | + register: validate_kubernetes |
| 410 | + changed_when: validate_kubernetes.rc == 0 |
| 411 | + |
| 412 | + - name: Install Kubernetes Module |
| 413 | + ansible.builtin.shell: | |
| 414 | + olcnectl module install --environment-name myenvironment --name mycluster |
| 415 | + args: |
| 416 | + chdir: ~/ |
| 417 | + become: true |
| 418 | + become_user: "{{ username }}" |
| 419 | + register: install_kubernetes |
| 420 | + changed_when: install_kubernetes.rc == 0 |
| 421 | + |
| 422 | + - name: Print kubernetes provision output |
| 423 | + ansible.builtin.debug: |
| 424 | + var: install_kubernetes |
| 425 | + when: debug_enabled |
| 426 | + |
| 427 | + - name: Tag OCNE as provisioned |
| 428 | + ansible.builtin.file: |
| 429 | + path: ~/.ocne-provisioned |
| 430 | + state: touch |
| 431 | + mode: "0644" |
| 432 | + become: true |
| 433 | + become_user: "{{ username }}" |
| 434 | + when: install_kubernetes.rc == 0 |
| 435 | + |
| 436 | + - name: Create environment with lb using manual install method |
| 437 | + when: |
| 438 | + - use_vlan_full |
| 439 | + - use_int_lb |
| 440 | + - groups['controlplane'] | length > 1 |
| 441 | + block: |
| 442 | + - name: Create environment |
| 443 | + ansible.builtin.shell: | |
| 444 | + olcnectl environment create --api-server {{ operator_nodes }}:8091 --environment-name myenvironment --secret-manager-type file --update-config |
| 445 | + args: |
| 446 | + chdir: ~/ |
| 447 | + become: true |
| 448 | + become_user: "{{ username }}" |
| 449 | + register: create_env |
| 450 | + changed_when: create_env.rc == 0 |
| 451 | + |
| 452 | + - name: Create Kubernetes Module |
| 453 | + ansible.builtin.shell: | |
| 454 | + olcnectl module create --environment-name myenvironment --module kubernetes --name mycluster \ |
| 455 | + --container-registry {{ ocne_registry_location }} \ |
| 456 | + --virtual-ip 10.0.12.111 \ |
| 457 | + --control-plane-nodes {{ control_nodes }} \ |
| 458 | + --worker-nodes {{ worker_nodes }} \ |
| 459 | + --selinux enforcing \ |
| 460 | + --restrict-service-externalip-ca-cert ~/certificates/restrict_external_ip/ca.cert \ |
| 461 | + --restrict-service-externalip-tls-cert ~/certificates/restrict_external_ip/node.cert \ |
| 462 | + --restrict-service-externalip-tls-key ~/certificates/restrict_external_ip/node.key |
| 463 | + args: |
| 464 | + chdir: ~/ |
| 465 | + become: true |
| 466 | + become_user: "{{ username }}" |
| 467 | + register: create_kubernetes |
| 468 | + changed_when: create_kubernetes.rc == 0 |
| 469 | + |
| 470 | + - name: Validate Kubernetes Module |
| 471 | + ansible.builtin.shell: | |
| 472 | + olcnectl module validate --environment-name myenvironment --name mycluster |
| 473 | + args: |
| 474 | + chdir: ~/ |
| 475 | + become: true |
| 476 | + become_user: "{{ username }}" |
| 477 | + register: validate_kubernetes |
| 478 | + changed_when: validate_kubernetes.rc == 0 |
| 479 | + |
| 480 | + - name: Install Kubernetes Module |
| 481 | + ansible.builtin.shell: | |
| 482 | + olcnectl module install --environment-name myenvironment --name mycluster |
| 483 | + args: |
| 484 | + chdir: ~/ |
| 485 | + become: true |
| 486 | + become_user: "{{ username }}" |
| 487 | + register: install_kubernetes |
| 488 | + changed_when: install_kubernetes.rc == 0 |
| 489 | + |
| 490 | + - name: Print kubernetes provision output |
| 491 | + ansible.builtin.debug: |
| 492 | + var: install_kubernetes |
| 493 | + when: debug_enabled |
| 494 | + |
| 495 | + - name: Tag OCNE as provisioned |
| 496 | + ansible.builtin.file: |
| 497 | + path: ~/.ocne-provisioned |
| 498 | + state: touch |
| 499 | + mode: "0644" |
| 500 | + become: true |
| 501 | + become_user: "{{ username }}" |
| 502 | + when: install_kubernetes.rc == 0 |
| 503 | + |
| 504 | + - name: Check if OCNE provisioned |
| 505 | + ansible.builtin.stat: |
| 506 | + path: ~/.ocne-provisioned |
| 507 | + become: true |
| 508 | + become_user: "{{ username }}" |
| 509 | + register: ocne_provision |
| 510 | + |
| 511 | + - name: Save out ocne config |
| 512 | + ansible.builtin.shell: | |
| 513 | + olcnectl module instances --api-server "{{ operator_nodes }}":8091 --environment-name myenvironment --update-config |
| 514 | + args: |
| 515 | + chdir: ~/ |
| 516 | + become: true |
| 517 | + become_user: "{{ username }}" |
| 518 | + when: ocne_provision |
| 519 | + register: save_ocne_config |
| 520 | + changed_when: save_ocne_config.rc == 0 |
| 521 | + |
| 522 | + - name: Provision kubectl |
| 523 | + ansible.builtin.include_tasks: "provision_kubectl.yml" |
| 524 | + when: |
| 525 | + - ocne_provision.stat.exists |
| 526 | + - ocne_type != 'none' |
0 commit comments