Compartilhar via


Referência do Provedor de Kubernetes da Configuração de Aplicativos do Azure

A referência a seguir descreve as propriedades compatíveis com o Provedor de Kubernetes da Configuração de Aplicativos do v2.1.0Azure. Consulte as notas de versão para obter mais informações sobre a alteração.

Propriedades

Um recurso AzureAppConfigurationProvider tem as seguintes propriedades filho de nível superior sob o spec. endpoint ou connectionStringReference precisa ser especificado.

Nome Descrição Obrigatório Tipo
endpoint O ponto de extremidade da Configuração de Aplicativos do Azure, do qual você gostaria de recuperar os valores de chave. alternativa string
connectionStringReference O nome do Segredo do Kubernetes que contém a cadeia de conexão da Configuração de Aplicativos do Azure. alternativa string
replicaDiscoveryEnabled A configuração que determina se as réplicas da Configuração de Aplicativos do Azure são descobertas e usadas automaticamente para failover. Se a propriedade estiver ausente, um valor padrão de true será usado. false bool
loadBalancingEnabled A configuração que permite que sua carga de trabalho distribua solicitações para a Configuração de Aplicativos em todas as réplicas disponíveis. Se a propriedade estiver ausente, um valor padrão de false será usado. false bool
destino O destino dos valores-chave recuperados no Kubernetes. true objeto
auth O método de autenticação para acessar a Configuração de Aplicativos do Azure. falso objeto
configuração As configurações para consultar e processar valores de chave na Configuração de Aplicativos do Azure. falso objeto
segredo As configurações das referências do Key Vault na Configuração de Aplicativos do Azure. condicional objeto
featureFlag As configurações para sinalizadores de recursos na Configuração de Aplicativos do Azure. false objeto

A propriedade spec.target tem a propriedade filho a seguir.

Nome Descrição Obrigatório Tipo
configMapName O nome do ConfigMap a ser criado. true string
configMapData A configuração que especifica como os dados recuperados devem ser preenchidos no ConfigMap gerado. falso objeto

Se a spec.target.configMapData propriedade não estiver definida, o ConfigMap gerado será preenchido com a lista de valores-chave recuperados da Configuração de Aplicativos do Azure, o que permite que o ConfigMap seja consumido como variáveis de ambiente. Atualize essa propriedade se desejar consumir o ConfigMap como um arquivo montado. Essa propriedade tem as propriedades filho a seguir.

Nome Descrição Obrigatório Tipo
tipo A configuração que indica como os dados recuperados são construídos no ConfigMap gerado. Os valores permitidos incluem default, json, yaml e properties. opcionais string
chave O nome da chave dos dados recuperados quando o type estiver definido como json, yaml ou properties. Defina-o como o nome do arquivo se o ConfigMap estiver configurado para ser consumido como um arquivo montado. condicional string
separator O delimitador usado para gerar os dados do ConfigMap em formato hierárquico quando o tipo é definido como json ou yaml. O separador está vazio por padrão e o ConfigMap gerado contém chaves-valor em sua forma original. Defina essa configuração somente se o carregador de arquivos de configuração usado em seu aplicativo não puder carregar chaves-valor sem convertê-las no formato hierárquico. opcionais string

A propriedade spec.auth não será necessária se a cadeia de conexão do repositório da Configuração de Aplicativos for fornecida definindo a propriedade spec.connectionStringReference. Caso contrário, uma das identidades, entidade de serviço, identidade de carga de trabalho ou identidade gerenciada será usada para autenticação. O spec.auth tem as propriedades filho a seguir. Apenas uma delas deve ser especificada. Se nenhum deles for definido, a identidade gerenciada atribuída pelo sistema do conjunto de dimensionamento de máquinas virtuais será usada.

Nome Descrição Obrigatório Tipo
servicePrincipalReference O nome do Segredo do Kubernetes que contém as credenciais de uma entidade de serviço. O segredo deve estar no mesmo namespace que o provedor do Kubernetes. false string
workloadIdentity As configurações para usar a identidade da carga de trabalho. falso objeto
managedIdentityClientId A ID do cliente da identidade gerenciada atribuída pelo usuário do conjunto de dimensionamento de máquinas virtuais. falso string

A propriedade spec.auth.workloadIdentity tem a propriedade filho a seguir.

Nome Descrição Obrigatório Tipo
nome_da_conta_serviço O nome da conta de serviço associada à identidade da carga de trabalho. true string

O spec.configuration tem as propriedades filho a seguir.

Nome Descrição Obrigatório Tipo
seletores A lista de seletores para filtragem de valor-chave. falso matriz de objetos
trimKeyPrefixes A lista de prefixos chave a serem cortados. falso Matriz de cadeia de caracteres
refresh As configurações para atualizar chaves-valor da Configuração de Aplicativos do Azure. Se a propriedade estiver ausente, as chaves-valor da Configuração de Aplicativos do Azure não serão atualizadas. false objeto

Se a spec.configuration.selectors propriedade não estiver definida, todas as chaves-valor sem rótulo serão baixadas. Contém uma matriz de objetos seletores, que têm as propriedades filho a seguir. Observe que as chaves-valor do último seletor têm precedência e substituem quaisquer chaves sobrepostas dos seletores anteriores.

Nome Descrição Obrigatório Tipo
keyFilter O filtro chave para consultar valores-chave. Essa propriedade e a snapshotName propriedade não devem ser definidas ao mesmo tempo. alternativa string
labelFilter O filtro de rótulo para consultar valores-chave. Essa propriedade e a snapshotName propriedade não devem ser definidas ao mesmo tempo. false string
nome instantâneo O nome de um instantâneo do qual as chaves-valor são carregadas. Essa propriedade não deve ser usada em conjunto com outras propriedades. alternativa string

A propriedade spec.configuration.refresh tem as propriedades filho a seguir.

Nome Descrição Obrigatório Tipo
Habilitado A configuração que determina se as chaves-valor da Configuração de Aplicativos do Azure são atualizadas automaticamente. Se a propriedade estiver ausente, um valor padrão de false será usado. false bool
monitoramento Os valores-chave monitorados para detecção de alterações, também conhecidos como chaves sentinelas. As chaves-valor da Configuração de Aplicativos do Azure serão atualizadas somente se pelo menos uma das chaves-valores monitoradas for alterada. Se essa propriedade estiver ausente, todas as chaves-valor selecionadas serão monitoradas para atualização. false objeto
intervalo O intervalo no qual as chaves-valor são atualizadas da Configuração de Aplicativos do Azure. Ele precisa ser maior ou igual a 1. Se a propriedade estiver ausente, um valor padrão de 30 segundos será usado. false cadeia de caracteres de duração

O spec.configuration.refresh.monitoring.keyValues é uma matriz de objetos que contém as propriedades filho a seguir.

Nome Descrição Obrigatório Tipo
chave A chave de um par chave-valor. true string
label O rótulo de um par chave-valor. falso string

A propriedade spec.secret tem as propriedades filho a seguir. É necessário se alguma referência do Key Vault deve ser baixada. Para saber mais sobre o suporte para tipos de segredos internos do Kubernetes, consulte Tipos de segredos.

Nome Descrição Obrigatório Tipo
destino O destino dos segredos recuperados no Kubernetes. true objeto
auth O método de autenticação para acessar Key Vaults. falso objeto
refresh As configurações para atualizar dados de Key Vaults. Se a propriedade estiver ausente, os dados dos Key Vaults não serão atualizados, a menos que as referências correspondentes do Key Vault sejam recarregadas. false objeto

A propriedade spec.secret.target tem a propriedade filho a seguir.

Nome Descrição Obrigatório Tipo
secretName O nome do Segredo do Kubernetes a ser criado. true string

Se a propriedade spec.secret.auth não estiver definida, a identidade gerenciada atribuída pelo sistema será usada. Ele tem as propriedades filho a seguir.

Nome Descrição Obrigatório Tipo
servicePrincipalReference O nome do Segredo do Kubernetes que contém as credenciais de uma entidade de serviço usadas para autenticação com Key Vaults que não têm métodos de autenticação individuais especificados. falso string
workloadIdentity As configurações da identidade da carga de trabalho usada para autenticação com Key Vaults que não têm métodos de autenticação individuais especificados. Ele tem a mesma propriedade filho que spec.auth.workloadIdentity. false objeto
managedIdentityClientId A ID do cliente de uma identidade gerenciada atribuída pelo usuário do conjunto de dimensionamento de máquinas virtuais usado para autenticação com Key Vaults que não têm métodos de autenticação individuais especificados. falso string
keyVaults Os métodos de autenticação para Key Vaults individuais. falso matriz de objetos

O método de autenticação de cada Key Vault pode ser especificado com as propriedades a seguir. Um de managedIdentityClientId, servicePrincipalReference ou workloadIdentity deve ser fornecido.

Nome Descrição Obrigatório Tipo
uri O URI de um Key Vault. true string
servicePrincipalReference O nome do Segredo do Kubernetes que contém as credenciais de uma entidade de serviço usada para autenticação com um Key Vault. falso string
workloadIdentity As configurações da identidade da carga de trabalho usada para autenticação com um Key Vault. Ele tem a mesma propriedade filho que spec.auth.workloadIdentity. false objeto
managedIdentityClientId A ID do cliente de uma identidade gerenciada atribuída pelo usuário do conjunto de dimensionamento de máquinas virtuais usado para autenticação com um Key Vault. falso string

A propriedade spec.secret.refresh tem as propriedades filho a seguir.

Nome Descrição Obrigatório Tipo
Habilitado A configuração que determina se os dados de Key Vaults são atualizados automaticamente. Se a propriedade estiver ausente, um valor padrão de false será usado. false bool
intervalo O intervalo no qual os dados são atualizados do Key Vault. Ele precisa ser maior ou igual a 1 segundo. A atualização do Key Vault é independente da atualização da Configuração de Aplicativos configurada por meio de spec.configuration.refresh. true cadeia de caracteres de duração

A propriedade spec.featureFlag tem as propriedades filho a seguir. Ele é necessário se algum sinalizador de recurso for baixado.

Nome Descrição Obrigatório Tipo
seletores A lista de seletores para filtragem de sinalizador de recurso. false matriz de objetos
refresh As configurações para atualizar sinalizadores de recursos da Configuração de Aplicativos do Azure. Se a propriedade estiver ausente, os sinalizadores de recursos da Configuração de Aplicativos do Azure não serão atualizados. false objeto

Se a spec.featureFlag.selectors propriedade não estiver definida, os sinalizadores de recurso não serão baixados. Contém uma matriz de objetos seletores, que têm as propriedades filho a seguir. Observe que os sinalizadores de recurso do último seletor têm precedência e substituem quaisquer chaves sobrepostas dos seletores anteriores.

Nome Descrição Obrigatório Tipo
keyFilter O filtro de chave para consultar sinalizadores de recursos. Essa propriedade e a snapshotName propriedade não devem ser definidas ao mesmo tempo. alternativa string
labelFilter O filtro de rótulo para consultar sinalizadores de recursos. Essa propriedade e a snapshotName propriedade não devem ser definidas ao mesmo tempo. false string
nome instantâneo O nome de um instantâneo do qual os sinalizadores de recurso são carregados. Essa propriedade não deve ser usada em conjunto com outras propriedades. alternativa string

A propriedade spec.featureFlag.refresh tem as propriedades filho a seguir.

Nome Descrição Obrigatório Tipo
Habilitado A configuração que determina se os sinalizadores de recursos da Configuração de Aplicativos do Azure são atualizados automaticamente. Se a propriedade estiver ausente, um valor padrão de false será usado. false bool
intervalo O intervalo no qual os sinalizadores de recurso são atualizados da Configuração de Aplicativos do Azure. Ele precisa ser maior ou igual a 1. Se a propriedade estiver ausente, um valor padrão de 30 segundos será usado. false cadeia de caracteres de duração

Instalação

Use o comando a seguir helm install para instalar o Provedor de Kubernetes da Configuração de Aplicativos do Azure. Consulte helm-values.yaml para obter a lista completa de parâmetros e seus valores padrão. Você pode substituir os valores padrão passando o --set sinalizador para o comando.

helm install azureappconfiguration.kubernetesprovider \
    oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
    --namespace azappconfig-system \
    --create-namespace

Dimensionamento automático

Por padrão, o dimensionamento automático está desabilitado. No entanto, se você tiver vários AzureAppConfigurationProvider recursos para produzir vários ConfigMaps/Secrets, poderá ativar o dimensionamento automático horizontal do pod definindo autoscaling.enabled como true.

helm install azureappconfiguration.kubernetesprovider \
    oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
    --namespace azappconfig-system \
    --create-namespace
    --set autoscaling.enabled=true

Coleta de dados

O software pode coletar informações sobre você e seu uso do software e enviá-las à Microsoft. A Microsoft pode usar essas informações para fornecer serviços e aprimorar nossos produtos e serviços. Você pode desativar a telemetria definindo o requestTracing.enabled=false durante a instalação do Provedor de Kubernetes da Configuração de Aplicativos do Azure. Há também alguns recursos no software que podem permitir que você e a Microsoft coletem dados dos usuários de seus aplicativos. Se você usar esses recursos, deverá cumprir a lei aplicável, incluindo o fornecimento de avisos apropriados aos usuários de seus aplicativos, juntamente com uma cópia da política de privacidade da Microsoft. Nossa política de privacidade está localizada em https://go.microsoft.com/fwlink/?LinkID=824704. Você pode saber mais sobre a coleta e o uso de dados na documentação de ajuda e em nossa declaração de privacidade. Usar o software significa que você autoriza essas práticas.

Exemplos

Autenticação

Usar a identidade gerenciada atribuída pelo sistema de um conjunto de dimensionamento de máquinas virtuais

  1. Habilite a identidade gerenciada atribuída pelo sistema no conjunto de dimensionamento de máquinas virtuais usado pelo cluster do Serviço de Kubernetes do Azure (AKS).

  2. Conceda a função de Leitor de Dados da Configuração de Aplicativos da identidade gerenciada atribuída pelo sistema na Configuração de Aplicativos do Azure.

  3. Implante o recurso de amostra AzureAppConfigurationProvider a seguir no cluster do AKS.

    apiVersion: azconfig.io/v1
    kind: AzureAppConfigurationProvider
    metadata:
      name: appconfigurationprovider-sample
    spec:
      endpoint: <your-app-configuration-store-endpoint>
      target:
        configMapName: configmap-created-by-appconfig-provider
    

Usar a identidade gerenciada atribuída pelo usuário de um conjunto de dimensionamento de máquinas virtuais

  1. Crie uma identidade gerenciada atribuída pelo usuário e anote sua ID de cliente após a criação.

  2. Atribua a identidade gerenciada atribuída pelo usuário ao conjunto de dimensionamento de máquinas virtuais usado pelo cluster do Serviço de Kubernetes do Azure (AKS).

  3. Conceda a função de Leitor de Dados de Configuração de Aplicativos da identidade gerenciada atribuída pelo sistema na Configuração de Aplicativos do Azure.

  4. Defina a propriedade spec.auth.managedIdentityClientId como a ID do cliente da identidade gerenciada atribuída pelo usuário no recurso de amostra AzureAppConfigurationProvider a seguir e implante-a no cluster do AKS.

    apiVersion: azconfig.io/v1
    kind: AzureAppConfigurationProvider
    metadata:
      name: appconfigurationprovider-sample
    spec:
      endpoint: <your-app-configuration-store-endpoint>
      target:
        configMapName: configmap-created-by-appconfig-provider
      auth:
        managedIdentityClientId: <your-managed-identity-client-id>
    

Usar a entidade de serviço

  1. Criar uma entidade de serviço

  2. Conceda à entidade de serviço a função de Leitor de Dados de Configuração de Aplicativo na Configuração de Aplicativos do Azure.

  3. Crie um Segredo do Kubernetes no mesmo namespace que o recurso AzureAppConfigurationProvider e adicione azure_client_id, azure_client_secret e azure_tenant_id da entidade de serviço ao Segredo.

  4. Defina a propriedade spec.auth.servicePrincipalReference como o nome do Segredo no recurso de amostra AzureAppConfigurationProvider a seguir e implante-a no cluster do Kubernetes.

    apiVersion: azconfig.io/v1
    kind: AzureAppConfigurationProvider
    metadata:
      name: appconfigurationprovider-sample
    spec:
      endpoint: <your-app-configuration-store-endpoint>
      target:
        configMapName: configmap-created-by-appconfig-provider
      auth:
        servicePrincipalReference: <your-service-principal-secret-name>
    

Usar a identidade da carga de trabalho

  1. Habilite a Identidade da Carga de Trabalho no cluster do AKS (Serviço de Kubernetes do Azure).

  2. Obtenha o URL do emissor do OIDC do cluster do AKS.

  3. Crie uma identidade gerenciada atribuída pelo usuário e anote sua ID do cliente, ID do locatário, nome e grupo de recursos.

  4. Conceda a função de Leitor de Dados de Configuração de Aplicativos da identidade gerenciada atribuída pelo sistema na Configuração de Aplicativos do Azure.

  5. Crie uma conta de serviço adicionando um arquivo YAML (por exemplo, serviceAccount.yaml) com o conteúdo a seguir ao diretório que contém os arquivos de implantação do AKS. A conta de serviço será criada quando você aplicar todas as alterações de implantação ao cluster do AKS (por exemplo, usando kubectl apply). Substitua <your-managed-identity-client-id> pela ID do cliente e <your-managed-identity-tenant-id> pela ID do locatário da identidade gerenciada atribuída pelo usuário que acabou de ser criada. Substitua <your-service-account-name> pelo nome de sua preferência.

    apiVersion: v1
    kind: ServiceAccount
    metadata:
      name: <your-service-account-name>
      annotations:
        azure.workload.identity/client-id: <your-managed-identity-client-id>
        azure.workload.identity/tenant-id: <your-managed-identity-tenant-id>
    
  6. Crie uma credencial de identidade federada para a identidade gerenciada atribuída pelo usuário usando a CLI do Azure. Substitua <user-assigned-identity-name> pelo nome e <resource-group> pelo grupo de recursos da identidade gerenciada atribuída pelo usuário recém-criada. Substitua <aks-oidc-issuer> pela URL do emissor do OIDC do cluster do AKS. Substitua <your-service-account-name> pelo nome da conta de serviço recém-criada. Substitua <federated-identity-credential-name> pelo nome de sua preferência para a credencial de identidade federada.

    az identity federated-credential create --name "<federated-identity-credential-name>" --identity-name "<user-assigned-identity-name>" --resource-group "<resource-group>" --issuer "<aks-oidc-issuer>" --subject system:serviceaccount:default:<your-service-account-name> --audience api://AzureADTokenExchange
    

    Observe que o assunto da credencial de identidade federada deve seguir este formato: system:serviceaccount:<service-account-namespace>:<service-account-name>.

  7. Defina a spec.auth.workloadIdentity.serviceAccountName propriedade como o nome da conta de serviço no recurso de exemplo AzureAppConfigurationProvider a seguir. Certifique-se de que o AzureAppConfigurationProvider recurso e a conta de serviço estejam no mesmo namespace.

    apiVersion: azconfig.io/v1
    kind: AzureAppConfigurationProvider
    metadata:
      name: appconfigurationprovider-sample
    spec:
      endpoint: <your-app-configuration-store-endpoint>
      target:
        configMapName: configmap-created-by-appconfig-provider
      auth:
        workloadIdentity:
          serviceAccountName: <your-service-account-name>
    

Usar a cadeia de conexão

  1. Crie um Segredo do Kubernetes no mesmo namespace que o recurso AzureAppConfigurationProvider e adicione a cadeia de conexão da Configuração de Aplicativos do Azure com a chave azure_app_configuration_connection_string no Segredo.

  2. Defina a propriedade spec.connectionStringReference como o nome do Segredo no recurso de amostra AzureAppConfigurationProvider a seguir e implante-a no cluster do Kubernetes.

    apiVersion: azconfig.io/v1
    kind: AzureAppConfigurationProvider
    metadata:
      name: appconfigurationprovider-sample
    spec:
      connectionStringReference: <your-connection-string-secret-name>
      target:
        configMapName: configmap-created-by-appconfig-provider
    

Seleção de valor-chave

Use a propriedade selectors para filtrar os valores-chave a serem baixados da Configuração de Aplicativos do Azure.

A amostra a seguir baixa todos os valores-chave sem rótulo.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider

No exemplo a seguir, dois seletores são usados para recuperar dois conjuntos de valores-chave, cada um com rótulos exclusivos. É importante observar que os valores do último seletor têm precedência e substituem as chaves sobrepostas dos seletores anteriores.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - keyFilter: app1*
        labelFilter: common
      - keyFilter: app1*
        labelFilter: development

Um instantâneo pode ser usado sozinho ou em conjunto com outros seletores de chave-valor. No exemplo a seguir, você carrega valores-chave de configuração comum de um instantâneo e, em seguida, substitui alguns deles por valores-chave para desenvolvimento.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - snapshotName: app1_common_configuration
      - keyFilter: app1*
        labelFilter: development

Corte de prefixo de chave

A amostra a seguir usa a propriedade trimKeyPrefixes para cortar dois prefixos de nomes-chave antes de adicioná-los ao ConfigMap gerado.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    trimKeyPrefixes: [prefix1, prefix2]

Atualização de configuração

Ao fazer alterações nos dados na Configuração de Aplicativos do Azure, talvez você queira que essas alterações sejam atualizadas automaticamente no cluster do Kubernetes. É comum atualizar vários valores de chave, mas você não deseja que o cluster pegue uma alteração no meio da atualização. Para manter a consistência da configuração, você pode usar uma chave-valor para sinalizar a conclusão da atualização. Essa chave-valor é conhecida como a chave sentinela. O provedor do Kubernetes pode monitorar esse valor-chave. O ConfigMap e o Segredo só serão regenerados com dados atualizados depois que uma alteração for detectada na chave sentinela.

No exemplo a seguir, um valor-chave chamado app1_sentinel é sondado a cada minuto e a configuração é atualizada sempre que as alterações são detectadas na chave sentinela.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - keyFilter: app1*
        labelFilter: common
    refresh:
      enabled: true
      interval: 1m
      monitoring:
        keyValues:
          - key: app1_sentinel
            label: common

Referências de Key Vault

Autenticação

No exemplo a seguir, um Key Vault é autenticado com uma entidade de serviço, enquanto todos os outros Key Vaults são autenticados com uma identidade gerenciada atribuída pelo usuário.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - keyFilter: app1*
  secret:
    target:
      secretName: secret-created-by-appconfig-provider
    auth:
      managedIdentityClientId: <your-user-assigned-managed-identity-client-id>
      keyVaults:
        - uri: <your-key-vault-uri>
          servicePrincipalReference: <name-of-secret-containing-service-principal-credentials>

Tipos de segredo

Atualmente, há suporte para dois tipos de segredos integrados do Kubernetes, Opaque e TLS. Os segredos resolvidos de referências do Key Vault são salvos como o tipo Segredo Opaco por padrão. Se você tiver uma referência do Key Vault a um certificado e quiser salvá-la como o tipo de Segredo TLS, poderá adicionar uma marca com o seguinte nome e valor à referência do Key Vault na Configuração de Aplicativos do Azure. Ao fazer isso, um Segredo com o kubernetes.io/tls tipo será gerado e nomeado após a chave da referência do Key Vault.

Nome Valor
.kubernetes.secret.type kubernetes.io/tls

Os exemplos a seguir mostram como os dados são preenchidos nos Segredos gerados com diferentes tipos.

Supondo que um repositório da Configuração de Aplicativos tenha estas referências do Key Vault:

chave value marcas
app1-secret1 <Referência 1 do Key Vault> {}
app1-secret2 <Referência 2 do Key Vault> {}
app1-certificado <Referência 3 do Key Vault> {".kubernetes.secret.type": "kubernetes.io/tls"}

O exemplo a seguir gera segredos dos tipos Opaque e TLS.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - keyFilter: app1*
  secret:
    target:
      secretName: secret-created-by-appconfig-provider
    auth:
      managedIdentityClientId: <your-user-assigned-managed-identity-client-id>

Os segredos gerados são preenchidos com os seguintes dados:

name: secret-created-by-appconfig-provider
type: Opaque
data:
  app1-secret1: <secret value retrieved from Key Vault>
  app1-secret2: <secret value retrieved from Key Vault>
name: app1-certificate
type: kubernetes.io/tls
data:
  tls.crt: |
    <certificate data retrieved from Key Vault>
  tls.key: |
    <certificate key retrieved from Key Vault>

Atualização de segredos do Key Vault

A atualização de segredos dos Key Vaults geralmente requer o recarregamento das referências de Key Vault correspondentes de Configuração de Aplicativos do Azure. No entanto, com a propriedade spec.secret.refresh, você pode atualizar os segredos de Key Vault independentemente. Isso é especialmente útil para garantir que sua carga de trabalho pegue automaticamente todos os segredos atualizados de Key Vault durante a rotação de segredos. Observe que, para carregar a versão mais recente de um segredo, a referência de Key Vault não deve ser um segredo com controle de versão.

O exemplo a seguir atualiza todos os segredos sem controle de versão de Key Vault a cada hora.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - keyFilter: app1*
        labelFilter: common
  secret:
    target:
      secretName: secret-created-by-appconfig-provider
    auth:
      managedIdentityClientId: <your-user-assigned-managed-identity-client-id>
    refresh:
      enabled: true
      interval: 1h

Sinalizadores de Recursos

No exemplo a seguir, os sinalizadores de recursos com chaves começando com app1 e rótulos equivalentes a são baixados e atualizados a common cada 10 minutos. Observe que, para preencher sinalizadores de recursos no ConfigMap gerado, a configMapData.type propriedade deve ser json ou yaml.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
    configMapData:
      type: json
      key: appSettings.json
  featureFlag:
    selectors:
      - keyFilter: app1*
        labelFilter: common
    refresh:
      enabled: true
      interval: 10m

Consumo de ConfigMap

Os aplicativos em execução no Kubernetes normalmente consomem o ConfigMap como variáveis de ambiente ou como arquivos de configuração. Se a propriedade configMapData.type estiver ausente ou estiver definida como padrão, o ConfigMap será preenchido com a lista detalhada de dados recuperados da Configuração de Aplicativos do Azure, que podem ser facilmente consumidos como variáveis de ambiente. Se a propriedade configMapData.type estiver definida como json, yaml ou propriedades, os dados recuperados da Configuração de Aplicativos do Azure serão agrupados em um item com o nome da chave especificado pela propriedade configMapData.key no ConfigMap gerado, que pode ser consumido como um arquivo montado.

Os exemplos a seguir mostram como os dados são preenchidos no ConfigMap gerado com as configurações diferentes da propriedade configMapData.type.

Supondo que um repositório da Configuração de Aplicativos tenha estas chaves-valores:

chave value
key1 value1
chave2 value2
key3 value3

E a configMapData.type propriedade está ausente ou definida como default,

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider

O ConfigMap gerado é preenchido com os seguintes dados:

data:
  key1: value1
  key2: value2
  key3: value3