123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- ---
- - name: Create machineset_name
- set_fact:
- machineset_name: "{{ item.metadata.name ~ '-rhel'}}"
- - name: Update machineset definition
- set_fact:
- machineset: "{{ item | combine(dict_edit, recursive=True) }}"
- vars:
- dict_edit:
- metadata:
- name: "{{ machineset_name }}"
- resourceVersion: ""
- spec:
- replicas: 1
- selector:
- matchLabels:
- machine.openshift.io/cluster-api-machineset: "{{ machineset_name }}"
- template:
- metadata:
- labels:
- machine.openshift.io/cluster-api-machineset: "{{ machineset_name }}"
- spec:
- providerSpec:
- value:
- ami:
- id: "{{ openshift_aws_scaleup_ami }}"
- keyName: "{{ openshift_aws_scaleup_key }}"
- - name: Import machineset definition
- k8s:
- kubeconfig: "{{ kubeconfig_path }}"
- definition: "{{ machineset | to_yaml }}"
- - block:
- - name: Wait for machine to be created
- k8s_facts:
- api_version: machine.openshift.io/v1beta1
- kubeconfig: "{{ kubeconfig_path }}"
- namespace: openshift-machine-api
- kind: Machine
- label_selectors:
- - "machine.openshift.io/cluster-api-machineset={{ machineset_name }}"
- register: new_machine
- retries: 36
- delay: 5
- until:
- - new_machine.resources is defined
- - new_machine.resources | length > 0
- - new_machine.resources[0].status is defined
- - new_machine.resources[0].status.providerStatus is defined
- - new_machine.resources[0].status.providerStatus.instanceState is defined
- - new_machine.resources[0].status.providerStatus.instanceState == 'running'
- failed_when:
- - new_machine.resources is defined
- - new_machine.resources | length > 0
- - new_machine.resources[0].status is defined
- - new_machine.resources[0].status.phase == 'Failed'
- rescue:
- - name: Machine creation failed
- fail:
- msg: "Machine creation failed, error: {{ new_machine.resources[0].status.errorMessage }}"
- - name: Add machine to the inventory
- add_host:
- name: "{{ new_machine.resources[0].status.addresses | selectattr('type', 'match', '^InternalIP$') | map(attribute='address') | first }}"
- node_name: "{{ new_machine.resources[0].status.addresses | selectattr('type', 'match', '^InternalDNS$') | map(attribute='address') | first }}"
- groups: new_workers
- ansible_ssh_common_args: "-o ProxyCommand=\"ssh -o IdentityFile='{{ openshift_aws_scaleup_key_path | default('/opt/app-root/src/.ssh/id_rsa') }}' -o ConnectTimeout=30 -o ConnectionAttempts=100 -o StrictHostKeyChecking=no -W %h:%p -q core@{{ ssh_bastion }}\""
|