Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
A referência a seguir descreve as propriedades suportadas pelo Provedor Kubernetes de Configuração de Aplicativo do v2.3.0 Azure ou posterior. 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 endpointconnectionStringReference tem de ser especificado.
| Nome | Descrição | Obrigatório | Tipo |
|---|---|---|---|
| ponto final | O ponto de extremidade da Configuração do Aplicativo do Azure, do qual você gostaria de recuperar os valores-chave. | alternativa | cadeia (de caracteres) |
| connectionStringReference | O nome do Segredo do Kubernetes que contém a cadeia de conexão Configuração do Aplicativo do Azure. | alternativa | cadeia (de caracteres) |
| 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. |
falso | 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. |
falso | booleano |
| destino | O destino dos valores-chave recuperados no Kubernetes. | verdadeiro | objecto |
| autenticação | O método de autenticação para acessar a Configuração do Aplicativo do Azure. | falso | objecto |
| configuração | As configurações para consultar e processar valores de chave na Configuração do Aplicativo do Azure. | falso | objecto |
| segredo | As configurações para referências do Cofre da Chave na Configuração do Aplicativo do Azure. | condicional | objecto |
| featureFlag | As configurações para sinalizadores de recursos na Configuração do Aplicativo do Azure. | falso | objecto |
A spec.target propriedade tem a seguinte propriedade filho.
| Nome | Descrição | Obrigatório | Tipo |
|---|---|---|---|
| configMapName | O nome do ConfigMap a ser criado. | verdadeiro | cadeia (de caracteres) |
| configMapData | A configuração que especifica como os dados recuperados devem ser preenchidos no ConfigMap gerado. | falso | objecto |
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 | Tipo |
|---|---|---|---|
| tipo | A configuração que indica como os dados recuperados são construídos no ConfigMap gerado. Os valores permitidos incluem default, jsonyamle properties. |
opcional | cadeia (de caracteres) |
| chave | 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 | cadeia (de caracteres) |
| 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 | cadeia (de caracteres) |
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 | 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. | falso | cadeia (de caracteres) |
| workloadIdentity | As configurações para usar a identidade da carga de trabalho. | falso | objecto |
| managedIdentityClientId | A ID do cliente da identidade gerenciada atribuída pelo usuário do conjunto de dimensionamento da máquina virtual. | falso | cadeia (de caracteres) |
A spec.auth.workloadIdentity propriedade tem a seguinte propriedade filho.
| Nome | Descrição | Obrigatório | Tipo |
|---|---|---|---|
| serviceAccountName | O nome da conta de serviço associada à identidade da carga de trabalho. | verdadeiro | cadeia (de caracteres) |
O spec.configuration tem as seguintes propriedades filhas.
| Nome | Descrição | Obrigatório | Tipo |
|---|---|---|---|
| seletores | A lista de seletores para filtragem chave-valor. | falso | matriz de objetos |
| trimKeyPrefixes | A lista de prefixos de chave a serem cortados. | falso | matriz de cadeia de caracteres |
| actualizar | 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. | falso | objecto |
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 | Tipo |
|---|---|---|---|
| keyFilter | O filtro de chave para consultar valores-chave. Esta propriedade e a snapshotName propriedade não devem ser definidas ao mesmo tempo. |
alternativa | cadeia (de caracteres) |
| labelFiltrar | O filtro de rótulo para consultar valores-chave. Esta propriedade e a snapshotName propriedade não devem ser definidas ao mesmo tempo. |
falso | cadeia (de caracteres) |
| tagFiltros | A etiqueta filtra para consultar valores-chave. Esta propriedade e a snapshotName propriedade não devem ser definidas ao mesmo tempo. O filtro de etiquetas deve ser formatado como tag1=value1. |
falso | matriz de cadeia de caracteres |
| 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 | cadeia (de caracteres) |
A spec.configuration.refresh propriedade tem as seguintes propriedades filhas.
| Nome | Descrição | Obrigatório | Tipo |
|---|---|---|---|
| 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. |
falso | 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. | falso | objecto |
| intervalo | 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. | falso | 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 | Tipo |
|---|---|---|---|
| chave | A chave de um valor-chave. | verdadeiro | cadeia (de caracteres) |
| etiqueta | O rótulo de um valor-chave. | falso | cadeia (de caracteres) |
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 | Tipo |
|---|---|---|---|
| destino | O destino dos segredos recuperados no Kubernetes. | verdadeiro | objecto |
| autenticação | O método de autenticação para acessar os Cofres de Chaves. | falso | objecto |
| actualizar | 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. | falso | objecto |
A spec.secret.target propriedade tem a seguinte propriedade filho.
| Nome | Descrição | Obrigatório | Tipo |
|---|---|---|---|
| nomeSegredo | O nome do Segredo do Kubernetes a ser criado. | verdadeiro | cadeia (de caracteres) |
| secretData | A configuração que especifica como os dados recuperados devem ser preenchidos no Segredo gerado. | verdadeiro | cadeia (de caracteres) |
Se a spec.secret.target.secretData propriedade não estiver definida, o Segredo gerado será preenchido com a lista de valores-chave recuperados dos Cofres de Chaves, o que permite que o Segredo seja consumido como variáveis de ambiente. Atualize esta propriedade se desejar consumir o Secret como um arquivo montado. Esta propriedade tem as seguintes propriedades filhas.
| Nome | Descrição | Obrigatório | Tipo |
|---|---|---|---|
| tipo | A configuração que indica como os dados recuperados são construídos no Segredo gerado. Os valores permitidos incluem default, jsonyamle properties. |
opcional | cadeia (de caracteres) |
| chave | 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 Segredo estiver configurado para ser consumido como um arquivo montado. |
condicional | cadeia (de caracteres) |
| separador | O delimitador usado para produzir os dados secretos em formato hierárquico quando o tipo é definido como json ou yaml. O separador está vazio por padrão e o Segredo 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 | cadeia (de caracteres) |
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 | Tipo |
|---|---|---|---|
| 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. | falso | cadeia (de caracteres) |
| 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. |
falso | objecto |
| 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. | falso | cadeia (de caracteres) |
| keyVaults [en] | Os métodos de autenticação para Cofres de Chaves individuais. | falso | 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 | Tipo |
|---|---|---|---|
| URI | O URI de um cofre de chaves. | verdadeiro | cadeia (de caracteres) |
| 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. | falso | cadeia (de caracteres) |
| 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. |
falso | objecto |
| 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. | falso | cadeia (de caracteres) |
A spec.secret.refresh propriedade tem as seguintes propriedades filhas.
| Nome | Descrição | Obrigatório | Tipo |
|---|---|---|---|
| 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. |
falso | booleano |
| intervalo | 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 | Tipo |
|---|---|---|---|
| seletores | A lista de seletores para filtragem de sinalizadores de recursos. | falso | matriz de objetos |
| actualizar | 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. | falso | objecto |
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 | Tipo |
|---|---|---|---|
| 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 | cadeia (de caracteres) |
| 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. |
falso | cadeia (de caracteres) |
| tagFiltros | A etiqueta filtra para consultar flags de funcionalidades. Esta propriedade e a snapshotName propriedade não devem ser definidas ao mesmo tempo. O filtro de etiquetas deve ser formatado como tag1=value1. |
falso | matriz de cadeia de caracteres |
| 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 | cadeia (de caracteres) |
A spec.featureFlag.refresh propriedade tem as seguintes propriedades filhas.
| Nome | Descrição | Obrigatório | Tipo |
|---|---|---|---|
| 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. |
falso | booleano |
| intervalo | 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. | falso | 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
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).
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.
Implante o seguinte recurso de exemplo
AzureAppConfigurationProviderno 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
Crie uma identidade gerenciada atribuída pelo usuário e anote sua ID de cliente após a criação.
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).
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.
Defina a
spec.auth.managedIdentityClientIdpropriedade como a ID do cliente da identidade gerenciada atribuída pelo usuário no recurso de exemploAzureAppConfigurationProvidera 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
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.
Crie um Segredo do Kubernetes no mesmo namespace que o
AzureAppConfigurationProviderrecurso e adicione azure_client_id, azure_client_secret e azure_tenant_id da entidade de serviço ao Segredo.Defina a
spec.auth.servicePrincipalReferencepropriedade como o nome do Segredo no recurso de exemploAzureAppConfigurationProvidera 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
Habilite a Identidade da Carga de Trabalho no cluster do Serviço Kubernetes do Azure (AKS).
Obtenha o URL do emissor OIDC do cluster AKS.
Crie uma identidade gerenciada atribuída pelo usuário e anote sua ID de cliente, ID de locatário, nome e grupo de recursos.
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.
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>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://AzureADTokenExchangeObserve que o assunto da credencial de identidade federada deve seguir este formato:
system:serviceaccount:<service-account-namespace>:<service-account-name>.Defina a
spec.auth.workloadIdentity.serviceAccountNamepropriedade como o nome da conta de serviço no recurso de exemploAzureAppConfigurationProvidera seguir. Certifique-se de que oAzureAppConfigurationProviderrecurso 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
Crie um Segredo do Kubernetes no mesmo namespace que o recurso e adicione a
AzureAppConfigurationProvidercadeia de conexão Configuração do Aplicativo do Azure com azure_app_configuration_connection_string de chave no Segredo.Defina a
spec.connectionStringReferencepropriedade como o nome do Segredo no recurso de exemploAzureAppConfigurationProvidera 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
Filtros de etiquetas também podem ser usados para filtrar valores-chave. No exemplo seguinte, apenas os valores-chave com a etiqueta env=prod são descarregados.
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: '*'
tagFilters:
- env=prod
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. No exemplo a seguir, o provedor do Kubernetes verifica a Configuração do Aplicativo do Azure em busca de atualizações a cada minuto. O ConfigMap e o Secret associados são regenerados somente quando as alterações são detetadas. Para obter mais informações sobre como monitorar alterações de configuração, consulte Práticas recomendadas para atualização de configuração.
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
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:
| chave | 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
Atualização sob demanda
Embora você possa configurar a atualização automática de dados, há momentos em que convém acionar uma atualização sob demanda para obter os dados mais recentes da Configuração do Aplicativo e do Cofre de Chaves. Isso pode ser feito adicionando ou atualizando quaisquer anotações na metadata.annotations seção AzureAppConfigurationProviderdo . O provedor do Kubernetes reconciliará e atualizará o ConfigMap e o Secret com os dados mais recentes da sua loja de Configuração de Aplicativos e do Cofre de Chaves.
No exemplo a seguir, o AzureAppConfigurationProvider é atualizado com uma nova anotação. Após a modificação, aplique as alterações usando kubectl apply para disparar uma atualização sob demanda.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
annotations:
key1: value1
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>
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:
| chave | 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