- set_fact: rpfx: "{{ resource_group | hash('md5') | truncate(8, True, '') }}" - name: Find available k8s version azure_rm_aksversion_facts: location: eastus register: versions - name: Create an AKS instance (check mode) azure_rm_aks: name: "aks{{ rpfx }}" resource_group: "{{ resource_group }}" location: eastus dns_prefix: "aks{{ rpfx }}" kubernetes_version: "{{ versions.azure_aks_versions[0] }}" service_principal: client_id: "{{ azure_client_id }}" client_secret: "{{ azure_secret }}" linux_profile: admin_username: azureuser ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible agent_pool_profiles: - name: default count: 1 vm_size: Standard_DS1_v2 enable_rbac: yes check_mode: yes - name: Check there is no AKS created azure_rm_aks_facts: name: "aks{{ rpfx }}" resource_group: "{{ resource_group }}" register: fact - name: Check there is no AKS created assert: that: - "fact.aks | length == 0" - name: Create an AKS instance azure_rm_aks: name: "aks{{ rpfx }}" resource_group: "{{ resource_group }}" location: eastus dns_prefix: "aks{{ rpfx }}" kubernetes_version: "{{ versions.azure_aks_versions[0] }}" service_principal: client_id: "{{ azure_client_id }}" client_secret: "{{ azure_secret }}" linux_profile: admin_username: azureuser ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible agent_pool_profiles: - name: default count: 1 vm_size: Standard_DS1_v2 enable_rbac: yes register: output - name: Assert the AKS instance is well created assert: that: - output.changed - output.provisioning_state == 'Succeeded' - name: Get AKS fact azure_rm_aks_facts: name: "aks{{ rpfx }}" resource_group: "{{ resource_group }}" register: fact - name: Assert fact returns the created one assert: that: - "fact.aks | length == 1" - fact.aks[0].id == output.id - name: Create an AKS instance (idempotent) azure_rm_aks: name: "aks{{ rpfx }}" resource_group: "{{ resource_group }}" location: eastus dns_prefix: "aks{{ rpfx }}" kubernetes_version: "{{ versions.azure_aks_versions[0] }}" service_principal: client_id: "{{ azure_client_id }}" linux_profile: admin_username: azureuser ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible agent_pool_profiles: - name: default count: 1 vm_size: Standard_DS1_v2 enable_rbac: yes register: output - name: Assert idempotent assert: that: - not output.changed - name: Get available version azure_rm_aksversion_facts: location: eastus version: "{{ versions.azure_aks_versions[0] }}" register: version1 - name: Upgrade the AKS instance with addon azure_rm_aks: name: "aks{{ rpfx }}" resource_group: "{{ resource_group }}" location: eastus dns_prefix: "aks{{ rpfx }}" kubernetes_version: "{{ version1.azure_aks_versions[0] }}" service_principal: client_id: "{{ azure_client_id }}" linux_profile: admin_username: azureuser ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible agent_pool_profiles: - name: default count: 1 vm_size: Standard_DS1_v2 addon: http_application_routing: {} network_profile: network_plugin: kubenet enable_rbac: yes register: output - name: Assert the AKS instance is upgraded assert: that: - output.changed - output.kubernetes_version == version1.azure_aks_versions[0] - output.addon.httpApplicationRouting.enabled == True - output.agent_pool_profiles[0].count == 1 - output.network_profile.network_plugin == 'kubenet' - name: Upgrade the AKS instance with addon (idempontent) azure_rm_aks: name: "aks{{ rpfx }}" resource_group: "{{ resource_group }}" location: eastus dns_prefix: "aks{{ rpfx }}" kubernetes_version: "{{ version1.azure_aks_versions[0] }}" service_principal: client_id: "{{ azure_client_id }}" linux_profile: admin_username: azureuser ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDSPmiqkvDH1/+MDAVDZT8381aYqp73Odz8cnD5hegNhqtXajqtiH0umVg7HybX3wt1HjcrwKJovZURcIbbcDvzdH2bnYbF93T4OLXA0bIfuIp6M86x1iutFtXdpN3TTicINrmSXEE2Ydm51iMu77B08ZERjVaToya2F7vC+egfoPvibf7OLxE336a5tPCywavvNihQjL8sjgpDT5AAScjb3YqK/6VLeQ18Ggt8/ufINsYkb+9/Ji/3OcGFeflnDXq80vPUyF3u4iIylob6RSZenC38cXmQB05tRNxS1B6BXCjMRdy0v4pa7oKM2GA4ADKpNrr0RI9ed+peRFwmsclH test@ansible agent_pool_profiles: - name: default count: 1 vm_size: Standard_DS1_v2 addon: http_application_routing: {} network_profile: network_plugin: kubenet enable_rbac: yes register: output - assert: that: - not output.changed - name: Get AKS fact azure_rm_aks_facts: name: "aks{{ rpfx }}" resource_group: "{{ resource_group }}" show_kubeconfig: user register: fact - name: Assert fact returns the created one assert: that: - "fact.aks | length == 1" - fact.aks[0].kube_config == output.kube_config - name: Delete the AKS instance azure_rm_aks: name: "aks{{ rpfx }}" resource_group: "{{ resource_group }}" state: absent register: output - name: Assert the AKS instance is well deleted assert: that: - output.changed - name: Delete the AKS instance (idempotent) azure_rm_aks: name: "aks{{ rpfx }}" resource_group: "{{ resource_group }}" state: absent register: output - name: Assert idempotent assert: that: - not output.changed - name: Get AKS fact azure_rm_aks_facts: name: "aks{{ rpfx }}" resource_group: "{{ resource_group }}" register: fact - name: Assert fact returns empty assert: that: - "fact.aks | length == 0"