AKS Cluster

Used to connect to a Kubernetes Azure cluster.

Property Description
Resource type k8s-cluster
Account type None

Inputs

Values

Name Type Description
name string The name of the cluster.
resource_group string The Azure Resource Group.
subscription_id string The Azure Subscription ID.
loadbalancer string [Optional] The IP address or hostname that ingress should be configured for in the cluster.
server_app_id string [Optional] AAD server application ID. Needed for clusters with Microsoft EntraID (former AAD) authentication enabled. In that case, set it to the value 6dae42f8-4368-4678-94ff-3960e28e3630 (see the AKS documentation).
proxy_url string [Optional] The Proxy URL if used.

Secrets

Name Type Description
credentials object Contains appId, displayName, password and tenant of the Service Principal to access the cluster.
agent_url object [Optional] The signed URL produced by the humanitec/agent driver. It is expected to be a reference to the url output of a Agent resource.

Examples

Following the instructions provided here, it should be possible to retrieve the secret inputs needed to configure the access to the cluster properly.

Set the following environment variables for the CLI and API commands:

Variable Example Description
HUMANITEC_TOKEN my-token The authentication token for accessing the Humanitec API.
HUMANITEC_ORG my-org-id The unique identifier for the organization in Humanitec.

Use the command below for the interface of your choice.

  1. Create a file defining the Resource Definition you want to create. Adjust or remove the loadbalancer and the server_app_id items as needed.
cat << EOF > k8s-cluster.yaml
apiVersion: entity.humanitec.io/v1b1
kind: Definition
metadata:
  id: my-aks-cluster
entity:
  driver_type: humanitec/k8s-cluster-aks
  name: My AKS Cluster
  type: k8s-cluster
  driver_inputs:
    secrets:
      credentials:
        appId: my-app-id
        displayName: my-service-principal-name
        password: my-service-password
        tenant: my-tenant-id
    values:
      loadbalancer: 10.10.10.10
      name: my-cluster
      resource_group: my-azure-resource-group
      subscription_id: 123456-1234-1234-1234-123456789
      server_app_id: 6dae42f8-4368-4678-94ff-3960e28e3630
  criteria:
  - env_type: development
EOF
  1. Use the humctl create command to create the Resource Definition in the Organization defined by your configured context:
humctl create -f k8s-cluster.yaml
rm k8s-cluster.yaml

curl https://api.humanitec.io/orgs/${HUMANITEC_ORG}/resources/defs \
  -X POST \
  -H "Authorization: Bearer ${HUMANITEC_TOKEN}" \
  -H "Content-Type: application/json" \
  -d '
{
  "id": "my-aks-cluster",
  "name": "My AKS Cluster",
  "type": "k8s-cluster",
  "criteria": [
    {
      "env_type": "development"
    }
  ],
  "driver_type": "humanitec/k8s-cluster-aks",
  "driver_inputs": {
    "values": {
      "loadbalancer": "10.10.10.10",
      "name": "my-cluster",
      "resource_group": "my-azure-resource-group",
      "subscription_id": "123456-1234-1234-1234-123456789",
      "server_app_id": "6dae42f8-4368-4678-94ff-3960e28e3630"
    },
    "secrets": {
      "credentials": {
        "appId": "my-app-id",
        "displayName": "my-service-principal-name",
        "password": "my-service-password",
        "tenant": "my-tenant-id"
      }
    }
  }
}'
Top