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.0
Azure. 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 json e 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
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
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
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.managedIdentityClientId
propriedade como a ID do cliente da identidade gerenciada atribuída pelo usuário no recurso de exemploAzureAppConfigurationProvider
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
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
AzureAppConfigurationProvider
recurso e adicione azure_client_id, azure_client_secret e azure_tenant_id da entidade de serviço ao Segredo.Defina a
spec.auth.servicePrincipalReference
propriedade como o nome do Segredo no recurso de exemploAzureAppConfigurationProvider
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
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://AzureADTokenExchange
Observe 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.serviceAccountName
propriedade como o nome da conta de serviço no recurso de exemploAzureAppConfigurationProvider
a seguir. Certifique-se de que oAzureAppConfigurationProvider
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
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.Defina a
spec.connectionStringReference
propriedade como o nome do Segredo no recurso de exemploAzureAppConfigurationProvider
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