Partilhar via


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

A referência a seguir descreve as propriedades suportadas pelo Provedor Kubernetes de Configuração do Aplicativo do v2.1.0Azure. Consulte as notas de versão para obter mais informações sobre a alteração.

Propriedades

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

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

A spec.target propriedade tem a seguinte propriedade filho.

Nome Descrição Obrigatório Type
configMapName O nome do ConfigMap a ser criado. verdadeiro string
configMapData A configuração que especifica como os dados recuperados devem ser preenchidos no ConfigMap gerado. false 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 do Aplicativo 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. Esta propriedade tem as seguintes propriedades filhas.

Nome Descrição Obrigatório Type
tipo A configuração que indica como os dados recuperados são construídos no ConfigMap gerado. Os valores permitidos incluem default, yaml jsone properties. opcional string
key O nome da chave dos dados recuperados quando o type está 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
separador 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 valores-chave em sua forma original. Configure essa configuração somente se o carregador de arquivos de configuração usado em seu aplicativo não puder carregar valores-chave sem convertê-los para o formato hierárquico. opcional string

A spec.auth propriedade não será necessária se a cadeia de conexão da sua loja de Configuração de Aplicativo for fornecida pela definição da spec.connectionStringReference propriedade. 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 seguintes propriedades filhas. Apenas um deles deve ser especificado. Se nenhum deles for definido, a identidade gerenciada atribuída ao sistema do conjunto de escala da máquina virtual será usada.

Nome Descrição Obrigatório Type
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. false objeto
managedIdentityClientId A ID do cliente da identidade gerenciada atribuída pelo usuário do conjunto de dimensionamento da máquina virtual. false string

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

Nome Descrição Obrigatório Type
serviceAccountName O nome da conta de serviço associada à identidade da carga de trabalho. verdadeiro string

O spec.configuration tem as seguintes propriedades filhas.

Nome Descrição Obrigatório Type
seletores A lista de seletores para filtragem chave-valor. false matriz de objetos
trimKeyPrefixes A lista de prefixos de chave a serem cortados. false matriz de cadeia de caracteres
de dados As configurações para atualizar valores-chave da Configuração do Aplicativo do Azure. Se a propriedade estiver ausente, os valores-chave da Configuração do Aplicativo do Azure não serão atualizados. false objeto

Se a spec.configuration.selectors propriedade não estiver definida, todos os valores-chave sem rótulo serão baixados. Ele contém uma matriz de objetos seletores , que têm as seguintes propriedades filhas. Observe que os valores-chave do último seletor têm precedência e substituem quaisquer teclas sobrepostas dos seletores anteriores.

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

A spec.configuration.refresh propriedade tem as seguintes propriedades filhas.

Nome Descrição Obrigatório Type
ativado A configuração que determina se os valores-chave da Configuração do Aplicativo do Azure são atualizados automaticamente. Se a propriedade estiver ausente, um valor padrão de false será usado. false booleano
monitorização Os valores-chave monitorados para deteção de alterações, também conhecidos como chaves sentinela. Os valores-chave da Configuração de Aplicativo do Azure são atualizados somente se pelo menos um dos valores-chave monitorados for alterado. Se essa propriedade estiver ausente, todos os valores-chave selecionados serão monitorados para atualização. false objeto
interval O intervalo no qual os valores-chave são atualizados da Configuração do Aplicativo do Azure. Deve ser maior ou igual a 1 segundo. Se a propriedade estiver ausente, um valor padrão de 30 segundos será usado. false String de duração

O spec.configuration.refresh.monitoring.keyValues é uma matriz de objetos, que têm as seguintes propriedades filhas.

Nome Descrição Obrigatório Type
key A chave de um valor-chave. verdadeiro string
etiqueta O rótulo de um valor-chave. false string

A spec.secret propriedade tem as seguintes propriedades filhas. É necessário se se espera que alguma referência do Cofre da Chave seja baixada. Para saber mais sobre o suporte para tipos internos de segredos do Kubernetes, consulte Tipos de segredo.

Nome Descrição Obrigatório Type
destino O destino dos segredos recuperados no Kubernetes. verdadeiro objeto
autenticação O método de autenticação para acessar os Cofres de Chaves. false objeto
de dados As configurações para atualizar dados dos Cofres de Chaves. Se a propriedade estiver ausente, os dados dos Cofres de Chaves não serão atualizados, a menos que as referências correspondentes do Cofre de Chaves sejam recarregadas. false objeto

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

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

Se a spec.secret.auth propriedade não estiver definida, a identidade gerenciada atribuída ao sistema será usada. Tem as seguintes propriedades filhas.

Nome Descrição Obrigatório Type
servicePrincipalReference O nome do Segredo do Kubernetes que contém as credenciais de uma entidade de serviço usada para autenticação com Cofres de Chaves que não têm métodos de autenticação individuais especificados. false string
workloadIdentity As configurações da identidade da carga de trabalho usada para autenticação com Cofres de Chaves que não têm métodos de autenticação individuais especificados. Tem a mesma propriedade infantil que spec.auth.workloadIdentity. false objeto
managedIdentityClientId A ID do cliente de uma identidade gerenciada atribuída pelo usuário do conjunto de escala de máquina virtual usado para autenticação com Cofres de Chaves que não têm métodos de autenticação individuais especificados. false string
keyVaults [en] Os métodos de autenticação para Cofres de Chaves individuais. false matriz de objetos

O método de autenticação de cada Cofre da Chave pode ser especificado com as seguintes propriedades. Um dos managedIdentityClientId, servicePrincipalReference ou workloadIdentity deve ser fornecido.

Nome Descrição Obrigatório Type
uri O URI de um cofre de chaves. verdadeiro 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 Cofre de Chaves. false string
workloadIdentity As configurações da identidade da carga de trabalho usada para autenticação com um Cofre de Chaves. Tem a mesma propriedade infantil que spec.auth.workloadIdentity. false objeto
managedIdentityClientId A ID do cliente de uma identidade gerenciada atribuída pelo usuário do conjunto de escala de máquina virtual usado para autenticação com um Cofre de Chaves. false string

A spec.secret.refresh propriedade tem as seguintes propriedades filhas.

Nome Descrição Obrigatório Type
ativado A configuração que determina se os dados dos Cofres de Chaves são atualizados automaticamente. Se a propriedade estiver ausente, um valor padrão de false será usado. false booleano
interval O intervalo no qual os dados são atualizados do Cofre da Chave. Deve ser maior ou igual a 1 minuto. A atualização do Cofre da Chave é independente da atualização da Configuração do Aplicativo configurada via spec.configuration.refresh. verdadeiro String de duração

A spec.featureFlag propriedade tem as seguintes propriedades filhas. É necessário se se espera que algum sinalizador de recurso seja baixado.

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

Se a spec.featureFlag.selectors propriedade não estiver definida, os sinalizadores de recursos não serão baixados. Ele contém uma matriz de objetos seletores , que têm as seguintes propriedades filhas. Observe que os sinalizadores de recursos do último seletor têm precedência e substituem quaisquer teclas sobrepostas dos seletores anteriores.

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

A spec.featureFlag.refresh propriedade tem as seguintes propriedades filhas.

Nome Descrição Obrigatório Type
ativado A configuração que determina se os sinalizadores de recursos da Configuração do Aplicativo do Azure são atualizados automaticamente. Se a propriedade estiver ausente, um valor padrão de false será usado. false booleano
interval O intervalo no qual os sinalizadores de recurso são atualizados da Configuração do Aplicativo do Azure. Deve ser maior ou igual a 1 segundo. Se a propriedade estiver ausente, um valor padrão de 30 segundos será usado. false String de duração

Instalação

Use o comando a seguir helm install para instalar o Provedor Kubernetes de Configuração do Aplicativo 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á desativado. No entanto, se você tiver vários AzureAppConfigurationProvider recursos para produzir vários ConfigMaps/Secrets, poderá habilitar 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

Recolha de dados

O software pode coletar informações sobre você e seu uso do software e enviá-las à Microsoft. A Microsoft poderá utilizar estas informações para fornecer serviços e melhorar os nossos produtos e serviços. Você pode desativar a telemetria definindo o durante a requestTracing.enabled=false instalação do Provedor Kubernetes de Configuração do Aplicativo do Azure. Há também alguns recursos no software que podem permitir que você e a Microsoft coletem dados de usuários de seus aplicativos. Se utilizar estas funcionalidades, tem de cumprir a lei aplicável, incluindo o fornecimento de avisos apropriados aos utilizadores das suas aplicações, juntamente com uma cópia da declaração de privacidade da Microsoft. A declaração de privacidade da Microsoft está localizada em https://go.microsoft.com/fwlink/?LinkID=824704. Pode saber mais sobre a recolha e utilização de dados na documentação de ajuda e na nossa declaração de privacidade. A utilização do software por parte do Cliente funciona como o consentimento do Cliente destas práticas.

Exemplos

Autenticação

Usar a identidade gerenciada atribuída pelo sistema do conjunto de dimensionamento da máquina virtual

  1. Habilite a identidade gerenciada atribuída ao sistema no conjunto de escala de máquina virtual usado pelo cluster do Serviço Kubernetes do Azure (AKS).

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

  3. Implante o seguinte recurso de exemplo AzureAppConfigurationProvider no cluster 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 do conjunto de dimensionamento da máquina virtual

  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 escala de máquina virtual usado pelo cluster do Serviço Kubernetes do Azure (AKS).

  3. Conceda a função de Leitor de Dados de Configuração de Aplicativo de identidade gerenciada atribuída pelo usuário na Configuração de Aplicativo do Azure.

  4. Defina a spec.auth.managedIdentityClientId propriedade como a ID do cliente da identidade gerenciada atribuída pelo usuário no recurso de exemplo AzureAppConfigurationProvider a seguir e implante-a no cluster 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 entidade de serviço

  1. Criar um Principal do Serviço

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

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

  4. Defina a spec.auth.servicePrincipalReference propriedade como o nome do Segredo no recurso de exemplo 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 identidade de carga de trabalho

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

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

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

  4. Conceda a função de Leitor de Dados de Configuração de Aplicativo de identidade gerenciada atribuída pelo usuário na Configuração de Aplicativo do Azure.

  5. Crie uma conta de serviço adicionando um arquivo YAML (por exemplo, serviceAccount.yaml) com o seguinte conteúdo ao diretório que contém seus 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 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 seu nome preferido.

    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 recém-criada atribuída pelo usuário. Substitua <aks-oidc-issuer> pelo URL do emissor OIDC do cluster AKS. Substitua <your-service-account-name> pelo nome da conta de serviço recém-criada. Substitua <federated-identity-credential-name> pelo seu nome preferido 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 estão 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 cadeia de conexão

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

  2. Defina a spec.connectionStringReference propriedade como o nome do Segredo no recurso de exemplo 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 chave-valor

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

O exemplo 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 notar que os valores do último seletor têm precedência e substituem quaisquer teclas 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

O exemplo a seguir usa a trimKeyPrefixes propriedade para cortar dois prefixos de nomes de 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 em seus dados na Configuração do Aplicativo do Azure, convém que essas alterações sejam atualizadas automaticamente no cluster do Kubernetes. É comum atualizar vários valores de chave, mas você não quer que o cluster pegue uma alteração no meio da atualização. Para manter a consistência da configuração, você pode usar um valor-chave para sinalizar a conclusão da atualização. Este valor-chave é conhecido como chave sentinela. O provedor Kubernetes pode monitorar esse valor-chave, e o ConfigMap e o Secret só serão regenerados com dados atualizados quando uma alteração for detetada na chave sentinela.

No exemplo a seguir, um valor-chave nomeado app1_sentinel é pesquisado a cada minuto e a configuração é atualizada sempre que alterações são detetadas 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 do Key Vault

Autenticação

No exemplo a seguir, um Cofre de Chaves é autenticado com uma entidade de serviço, enquanto todos os outros Cofres de Chaves 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

Dois tipos internos de segredos do Kubernetes, Opaco e TLS, são atualmente suportados. Os segredos resolvidos a partir de referências do Cofre da Chave são salvos como o tipo Segredo Opaco por padrão. Se você tiver uma referência do Cofre da Chave a um certificado e quiser salvá-lo como o tipo Segredo TLS, poderá adicionar uma tag com o seguinte nome e valor à referência do Cofre da Chave na Configuração do Aplicativo 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 Cofre da Chave.

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 uma loja de configuração de aplicativos tenha estas referências do Cofre da Chave:

key valor etiquetas
app1-secret1 <Referência do Cofre da Chave 1> {}
app1-secret2 <Referência 2 do Cofre da Chave> {}
app1-certificado <Referência 3 do Cofre da Chave> {".kubernetes.secret.type": "kubernetes.io/tls"}

O exemplo a seguir gera segredos dos tipos opaco 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 Cofre da Chave

A atualização de segredos dos Cofres de Chaves geralmente requer o recarregamento das referências correspondentes do Cofre de Chaves da Configuração de Aplicativo do Azure. No entanto, com a spec.secret.refresh propriedade, você pode atualizar os segredos do Cofre da Chave de forma independente. Isso é especialmente útil para garantir que sua carga de trabalho pegue automaticamente todos os segredos atualizados do Cofre da Chave durante a rotação secreta. Observe que, para carregar a versão mais recente de um segredo, a referência do Cofre da Chave não deve ser um segredo versionado.

O exemplo a seguir atualiza todos os segredos sem versão do Cofre da Chave 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, sinalizadores de recursos com teclas 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 do ConfigMap

Os aplicativos executados no Kubernetes normalmente consomem o ConfigMap como variáveis de ambiente ou como arquivos de configuração. Se a configMapData.type propriedade estiver ausente ou definida como padrão, o ConfigMap será preenchido com a lista detalhada de dados recuperados da Configuração do Aplicativo do Azure, que podem ser facilmente consumidos como variáveis de ambiente. Se a propriedade estiver definida como json, yaml ou properties, os configMapData.type dados recuperados da Configuração do Aplicativo do Azure serão agrupados em um item com o nome da configMapData.key chave especificado pela propriedade 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 diferentes configurações da configMapData.type propriedade.

Supondo que uma loja de configuração de aplicativos tenha estes valores-chave:

key valor
chave1 valor1
chave2 valor2
Chave3 valor3

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