--- - hosts: localhost gather_facts: no tasks: - import_role: name: lib_utils - name: create temporary directory tempfile: state: directory register: tmp - name: download acs-engine get_url: url: "{{ item }}" dest: "{{ tmp.path }}/" with_list: - "http://acs-engine-build-azure.svc.ci.openshift.org/acs-engine" - "http://acs-engine-build-azure.svc.ci.openshift.org/openshift.json" - name: make acs-engine executable file: path: "{{ tmp.path }}/acs-engine" mode: 0755 - name: configure acs-engine yedit: content_type: json src: "{{ tmp.path }}/openshift.json" edits: - key: properties.orchestratorProfile.openShiftConfig.clusterUsername value: demo - key: properties.orchestratorProfile.openShiftConfig.clusterPassword value: "{{ 16 | lib_utils_oo_random_word }}" - key: properties.orchestratorProfile.orchestratorVersion value: unstable # azProfile - key: properties.azProfile.tenantId value: "{{ lookup('env', 'AZURE_TENANT') }}" - key: properties.azProfile.subscriptionId value: "{{ lookup('env', 'AZURE_SUBSCRIPTION_ID') }}" - key: properties.azProfile.resourceGroup value: "{{ openshift_azure_resource_group_name }}" - key: properties.azProfile.location value: "{{ openshift_azure_resource_location }}" # masterProfile - key: properties.masterProfile.dnsPrefix value: "a{{ 16 | lib_utils_oo_random_word }}a" - key: properties.masterProfile.imageReference.name value: "{{ openshift_azure_input_image_name }}" - key: properties.masterProfile.imageReference.resourceGroup value: "{{ openshift_azure_input_image_ns }}" - key: properties.masterProfile.vmSize value: "{{ openshift_azure_vm_size | default('Standard_D4s_v3') }}" # agentpool compute - key: properties.agentPoolProfiles[0].imageReference.name value: "{{ openshift_azure_input_image_name }}" - key: properties.agentPoolProfiles[0].imageReference.resourceGroup value: "{{ openshift_azure_input_image_ns }}" - key: properties.agentPoolProfiles[0].vmSize value: "{{ openshift_azure_vm_size | default('Standard_D4s_v3') }}" # agentpool infra - key: properties.agentPoolProfiles[1].imageReference.name value: "{{ openshift_azure_input_image_name }}" - key: properties.agentPoolProfiles[1].imageReference.resourceGroup value: "{{ openshift_azure_input_image_ns }}" - key: properties.agentPoolProfiles[1].vmSize value: "{{ openshift_azure_vm_size | default('Standard_D4s_v3') }}" # linuxprofile - key: properties.linuxProfile.adminUsername value: "cloud-user" - key: properties.linuxProfile.ssh.publicKeys[0].keyData value: "{{ openshift_azure_vm_ssh_public_key }}" # serviceprincipal - key: properties.servicePrincipalProfile.clientId value: "{{ lookup('env', 'AZURE_CLIENT_ID') }}" - key: properties.servicePrincipalProfile.secret value: "{{ lookup('env', 'AZURE_SECRET') }}" - name: run acs-engine deploy command: | {{ tmp.path }}/acs-engine deploy \ --resource-group {{ openshift_azure_resource_group_name }} \ --location {{ openshift_azure_resource_location }} \ --subscription-id {{ lookup('env', 'AZURE_SUBSCRIPTION_ID') }} \ --auth-method client_secret \ --client-id {{ lookup('env', 'AZURE_CLIENT_ID') }} \ --client-secret {{ lookup('env', 'AZURE_SECRET') }} \ --output-directory {{ tmp.path }}/deploy \ {{ tmp.path }}/openshift.json no_log: true ignore_errors: yes register: deploy - debug: msg: "{{ deploy.stdout }}" - debug: msg: "{{ deploy.stderr }}" # This code attempts to persist the data to /var/tmp which is bind # mounted into the calling container. This enables the CI to reuse # the cluster created in the previous steps to perform the e2e tests - name: persist the acs-engine generated artifacts copy: src: "{{ tmp.path }}/deploy" dest: /var/tmp/ when: openshift_ci_persist_artifacts | default(False) - name: delete temporary directory file: path: "{{ tmp.path }}" state: absent - block: - name: get azure deployment message command: > az group deployment list -g "{{ openshift_azure_resource_group_name }}" --query "[0].properties.additionalProperties.error.details[0].message" -o tsv register: message - debug: msg: "{{ (message.stdout | from_json).error.details[0].message }}" when: message.stdout != "" - assert: that: "{{ not deploy.failed }}" when: deploy.failed