azure / azure.azcollection / 0.3.0 / module / azure_rm_aks Manage a managed Azure Container Service (AKS) instance | "added in version" 2.6 of azure.azcollection" Authors: Sertac Ozercan (@sozercan), Yuwei Zhou (@yuwzho) preview | supported by communityazure.azcollection.azure_rm_aks (0.3.0) — module
Install with ansible-galaxy collection install azure.azcollection:==0.3.0
collections: - name: azure.azcollection version: 0.3.0
Create, update and delete a managed Azure Container Service (AKS) instance.
- name: Create an AKS instance azure_rm_aks: name: myAKS resource_group: myResourceGroup location: eastus dns_prefix: akstest kubernetes_version: 1.14.6 linux_profile: admin_username: azureuser ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA... service_principal: client_id: "cf72ca99-f6b9-4004-b0e0-bee10c521948" client_secret: "Password1234!" agent_pool_profiles: - name: default count: 1 vm_size: Standard_DS1_v2 enable_auto_scaling: True type: VirtualMachineScaleSets max_count: 3 min_count: 1 enable_rbac: yes
- name: Create a managed Azure Container Services (AKS) instance azure_rm_aks: name: myAKS location: eastus resource_group: myResourceGroup dns_prefix: akstest kubernetes_version: 1.14.6 linux_profile: admin_username: azureuser ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAA... service_principal: client_id: "cf72ca99-f6b9-4004-b0e0-bee10c521948" client_secret: "Password123!" agent_pool_profiles: - name: default count: 5 vm_size: Standard_D2_v2 tags: Environment: Production
- name: Remove a managed Azure Container Services (AKS) instance azure_rm_aks: name: myAKS resource_group: myResourceGroup state: absent
name: description: - Name of the managed Azure Container Services (AKS) instance. required: true tags: description: - Dictionary of string:string pairs to assign as metadata to the object. - Metadata tags on the object will be updated with any provided values. - To remove tags set append_tags option to false. type: dict addon: description: - Profile of managed cluster add-on. - Key can be C(http_application_routing), C(monitoring), C(virtual_node). - Value must be a dict contains a bool variable C(enabled). suboptions: http_application_routing: description: - The HTTP application routing solution makes it easy to access applications that are deployed to your cluster. suboptions: enabled: description: - Whether the solution enabled. type: bool type: dict monitoring: description: - It gives you performance visibility by collecting memory and processor metrics from controllers, nodes, and containers that are available in Kubernetes through the Metrics API. suboptions: enabled: description: - Whether the solution enabled. type: bool log_analytics_workspace_resource_id: description: - Where to store the container metrics. required: true type: dict virtual_node: description: - With virtual nodes, you have quick provisioning of pods, and only pay per second for their execution time. - You don't need to wait for Kubernetes cluster autoscaler to deploy VM compute nodes to run the additional pods. suboptions: enabled: description: - Whether the solution enabled. type: bool subnet_resource_id: description: - Subnet associated to the cluster. required: true type: dict type: dict version_added: '2.8' version_added_collection: azure.azcollection state: choices: - absent - present default: present description: - Assert the state of the AKS. Use C(present) to create or update an AKS and C(absent) to delete it. secret: description: - Azure client secret. Use when authenticating with a Service Principal. type: str tenant: description: - Azure tenant ID. Use when authenticating with a Service Principal. type: str ad_user: description: - Active Directory username. Use when authenticating with an Active Directory user rather than service principal. type: str profile: description: - Security profile found in ~/.azure/credentials file. type: str location: description: - Valid azure location. Defaults to location of the resource group. password: description: - Active Directory user password. Use when authenticating with an Active Directory user rather than service principal. type: str client_id: description: - Azure client ID. Use when authenticating with a Service Principal. type: str dns_prefix: description: - DNS prefix specified when creating the managed cluster. aad_profile: description: - Profile of Azure Active Directory configuration. suboptions: client_app_id: description: The client AAD application ID. server_app_id: description: The server AAD application ID. server_app_secret: description: The server AAD application secret. tenant_id: description: - The AAD tenant ID to use for authentication. - If not specified, will use the tenant of the deployment subscription. version_added: '2.8' version_added_collection: azure.azcollection api_profile: default: latest description: - Selects an API profile to use when communicating with Azure services. Default value of C(latest) is appropriate for public clouds; future values will allow use with Azure Stack. type: str version_added: '2.5' version_added_collection: azure.azcollection append_tags: default: true description: - Use to control if tags field is canonical or just appends to existing tags. - When canonical, any tags not found in the tags parameter will be removed from the object's metadata. type: bool auth_source: choices: - auto - cli - credential_file - env - msi description: - Controls the source of the credentials to use for authentication. - If not specified, ANSIBLE_AZURE_AUTH_SOURCE environment variable will be used and default to C(auto) if variable is not defined. - C(auto) will follow the default precedence of module parameters -> environment variables -> default profile in credential file C(~/.azure/credentials). - When set to C(cli), the credentials will be sources from the default Azure CLI profile. - Can also be set via the C(ANSIBLE_AZURE_AUTH_SOURCE) environment variable. - When set to C(msi), the host machine must be an azure resource with an enabled MSI extension. C(subscription_id) or the environment variable C(AZURE_SUBSCRIPTION_ID) can be used to identify the subscription ID if the resource is granted access to more than one subscription, otherwise the first subscription is chosen. - The C(msi) was added in Ansible 2.6. type: str version_added: '2.5' version_added_collection: azure.azcollection enable_rbac: default: false description: - Enable RBAC. - Existing non-RBAC enabled AKS clusters cannot currently be updated for RBAC use. type: bool version_added: '2.8' version_added_collection: azure.azcollection linux_profile: description: - The Linux profile suboptions. suboptions: admin_username: description: - The Admin Username for the cluster. required: true ssh_key: description: - The Public SSH Key used to access the cluster. required: true resource_group: description: - Name of a resource group where the managed Azure Container Services (AKS) exists or will be created. required: true network_profile: description: - Profile of network configuration. suboptions: dns_service_ip: default: 10.0.0.10 description: - An IP address assigned to the Kubernetes DNS service. - It must be within the Kubernetes service address range specified in serviceCidr. docker_bridge_cidr: default: 172.17.0.1/16 description: - A CIDR notation IP range assigned to the Docker bridge network. - It must not overlap with any Subnet IP ranges or the Kubernetes service address range. network_plugin: choices: - azure - kubenet default: kubenet description: - Network plugin used for building Kubernetes network. - This property cannot been changed. - With C(kubenet), nodes get an IP address from the Azure virtual network subnet. - AKS features such as Virtual Nodes or network policies aren't supported with C(kubenet). - C(azure) enables Azure Container Networking Interface(CNI), every pod gets an IP address from the subnet and can be accessed directly. network_policy: choices: - azure - calico description: Network policy used for building Kubernetes network. pod_cidr: default: 10.244.0.0/16 description: - A CIDR notation IP range from which to assign pod IPs when I(network_plugin=kubenet) is used. - It should be a large address space that isn't in use elsewhere in your network environment. - This address range must be large enough to accommodate the number of nodes that you expect to scale up to. service_cidr: default: 10.0.0.0/16 description: - A CIDR notation IP range from which to assign service cluster IPs. - It must not overlap with any Subnet IP ranges. - It should be the *.10 address of your service IP address range. version_added: '2.8' version_added_collection: azure.azcollection subscription_id: description: - Your Azure subscription Id. type: str cloud_environment: default: AzureCloud description: - For cloud environments other than the US public cloud, the environment name (as defined by Azure Python SDK, eg, C(AzureChinaCloud), C(AzureUSGovernment)), or a metadata discovery endpoint URL (required for Azure Stack). Can also be set via credential file profile or the C(AZURE_CLOUD_ENVIRONMENT) environment variable. type: str version_added: '2.4' version_added_collection: azure.azcollection service_principal: description: - The service principal suboptions. suboptions: client_id: description: - The ID for the Service Principal. required: true client_secret: description: - The secret password associated with the service principal. adfs_authority_url: description: - Azure AD authority url. Use when authenticating with Username/password, and has your own ADFS authority. type: str version_added: '2.6' version_added_collection: azure.azcollection kubernetes_version: description: - Version of Kubernetes specified when creating the managed cluster. agent_pool_profiles: description: - The agent pool profile suboptions. suboptions: count: description: - Number of agents (VMs) to host docker containers. - Allowed values must be in the range of C(1) to C(100) (inclusive). required: true enable_auto_scaling: description: - To enable auto-scaling. type: bool max_count: description: - Maximum number of nodes for auto-scaling. - Required if I(enable_auto_scaling=True). type: int min_count: description: - Minmum number of nodes for auto-scaling. - Required if I(enable_auto_scaling=True). type: int name: description: - Unique name of the agent pool profile in the context of the subscription and resource group. required: true os_disk_size_gb: description: - Size of the OS disk. type: choices: - VirtualMachineScaleSets - AvailabilitySet description: - AgentPoolType represents types of an agent pool. - Possible values include C(VirtualMachineScaleSets) and C(AvailabilitySet). type: str vm_size: description: - The VM Size of each of the Agent Pool VM's (e.g. C(Standard_F1) / C(Standard_D2v2)). required: true node_resource_group: description: - Name of the resource group containing agent pool nodes. - Unable to update. type: str cert_validation_mode: choices: - ignore - validate description: - Controls the certificate validation behavior for Azure endpoints. By default, all modules will validate the server certificate, but when an HTTPS proxy is in use, or against Azure Stack, it may be necessary to disable this behavior by passing C(ignore). Can also be set via credential file profile or the C(AZURE_CERT_VALIDATION) environment variable. type: str version_added: '2.5' version_added_collection: azure.azcollection
state: description: Current state of the Azure Container Service (AKS). example: agent_pool_profiles: - count: 1 dns_prefix: null name: default os_disk_size_gb: null os_type: Linux ports: null storage_profile: ManagedDisks vm_size: Standard_DS1_v2 vnet_subnet_id: null changed: false dns_prefix: aks9860bdcd89 id: /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/aks9860bdc kube_config: '......' kubernetes_version: 1.14.6 linux_profile: admin_username: azureuser ssh_key: ssh-rsa AAAAB3NzaC1yc2EAAAADA..... location: eastus name: aks9860bdc provisioning_state: Succeeded service_principal_profile: client_id: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx tags: {} type: Microsoft.ContainerService/ManagedClusters returned: always type: dict