Installation: From YAML

Prerequisites

  1. You have installed Cert Manager as per the installation instructions up to the “install from Helm” step.
  2. You have the AZURE_SUBSCRIPTION_ID, AZURE_TENANT_ID, AZURE_CLIENT_ID and AZURE_CLIENT_SECRET environment variables set from the installation instructions.

Installation

  1. Install the latest v2+ release of Azure Service Operator.
    kubectl apply --server-side=true -f https://github.com/Azure/azure-service-operator/releases/download/v2.0.0/azureserviceoperator_v2.0.0.yaml
    
  2. Create the Azure Service Operator v2 secret. This secret contains the identity that Azure Service Operator will run as. Make sure that you have the 4 environment variables from the Helm installation instructions set. To learn more about other authentication options, see the authentication documentation:
    cat <<EOF | kubectl apply -f -
    apiVersion: v1
    kind: Secret
    metadata:
      name: aso-controller-settings
      namespace: azureserviceoperator-system
    stringData:
      AZURE_SUBSCRIPTION_ID: "$AZURE_SUBSCRIPTION_ID"
      AZURE_TENANT_ID: "$AZURE_TENANT_ID"
      AZURE_CLIENT_ID: "$AZURE_CLIENT_ID"
      AZURE_CLIENT_SECRET: "$AZURE_CLIENT_SECRET"
    EOF
    

Troubleshooting

Metadata too long

If you omit the --server-side=true flag from the kubectl apply command, you will see an error like the following:

CustomResourceDefinition.apiextensions.k8s.io "storageaccounts.storage.azure.com" is invalid:
metadata.annotations: Too long: must have at most 262144 bytes

Why does this happen? ASO CRDs are a complete representation of the Azure Resource surface area, including documentation. This is tremendously useful - but also means they are quite large.