Referencia del proveedor de Kubernetes de Azure App Configuration
En la referencia siguiente se describen las propiedades admitidas por el proveedor v2.1.0
de Kubernetes de configuración de App de Azure . Consulte las notas de la versión para obtener más información sobre el cambio.
Propiedades
Un recurso AzureAppConfigurationProvider
tiene las siguientes propiedades secundarias de nivel superior en spec
. Se debe especificar endpoint
o connectionStringReference
.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
endpoint | Punto de conexión de Azure App Configuration, del que desea recuperar los pares clave-valor. | alternativa | string |
connectionStringReference | Nombre del secreto de Kubernetes que contiene la cadena de conexión de Azure App Configuration. | alternativa | string |
replicaDiscoveryEnabled | Configuración que determina si las réplicas de App de Azure Configuración se detectan y usan automáticamente para la conmutación por error. Si la propiedad está ausente, se usa un valor predeterminado de true . |
false | bool |
loadBalancingEnabled | Configuración que permite que la carga de trabajo distribuya las solicitudes a App Configuration en todas las réplicas disponibles. Si la propiedad está ausente, se usa un valor predeterminado de false . |
false | bool |
Destino | Destino de los pares clave-valor recuperados en Kubernetes. | true | object |
auth | El método de autenticación para acceder a Azure App Configuration. | false | object |
configuración | La configuración para realizar consultas en los pares clave-valor y procesarlos en Azure App Configuration. | false | object |
secret | La configuración de las referencias de Key Vault en Azure App Configuration. | condicionales | objeto |
featureFlag | La configuración de las marcas de características en App de Azure Configuración. | false | object |
La propiedad spec.target
tiene la siguiente propiedad secundaria.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
configMapName | Nombre de ConfigMap que se va a crear. | true | cadena |
configMapData | Configuración que especifica cómo se deben rellenar los datos recuperados en el ConfigMap generado. | false | objeto |
Si no se establece la spec.target.configMapData
propiedad , configMap generado se rellena con la lista de valores de clave recuperados de App de Azure Configuración, lo que permite que ConfigMap se consuma como variables de entorno. Actualice esta propiedad si desea consumir ConfigMap como un archivo montado. Esta propiedad tiene las siguientes propiedades secundarias.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
type | Valor que indica cómo se construyen los datos recuperados en el ConfigMap generado. Los valores permitidos son default , json , yaml y properties . |
opcional | cadena |
key | Nombre de clave de los datos recuperados cuando type se establece en json , yaml o properties . Establézcalo en el nombre de archivo si ConfigMap está configurado para consumirse como un archivo montado. |
condicionales | string |
separator | Delimitador que se usa para generar los datos configMap en formato jerárquico cuando el tipo se establece json en o yaml . El separador está vacío de forma predeterminada y configMap generado contiene valores clave en su forma original. Configure esta opción solo si el cargador de archivos de configuración usado en la aplicación no puede cargar los valores de clave sin convertirlos al formato jerárquico. |
opcional | string |
La propiedad spec.auth
no es necesaria si se proporciona la cadena de conexión del almacén de App Configuration estableciendo la propiedad spec.connectionStringReference
. De lo contrario, se usa una de las identidades, la entidad de servicio, la identidad de carga de trabajo o la identidad administrada para la autenticación. spec.auth
tiene las siguientes propiedades secundarias. Solo se puede especificar una de ellas. Si no se establece ninguna de ellas, se usa la identidad administrada asignada por el sistema del conjunto de escalado de máquinas virtuales.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
servicePrincipalReference | Nombre del secreto de Kubernetes que contiene las credenciales de una entidad de servicio. El secreto debe estar en el mismo espacio de nombres que el proveedor de Kubernetes. | false | cadena |
workloadIdentity | Configuración para usar la identidad de carga de trabajo. | false | object |
managedIdentityClientId | Identificador de cliente de la identidad administrada asignada por el usuario del conjunto de escalado de máquinas virtuales. | false | cadena |
La propiedad spec.auth.workloadIdentity
tiene la siguiente propiedad secundaria.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
serviceAccountName | Nombre de la cuenta de servicio asociada a la identidad de carga de trabajo. | true | cadena |
spec.configuration
tiene las siguientes propiedades secundarias.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
selectores | Lista de selectores para el filtrado de pares clave-valor. | false | matriz de objeto |
trimKeyPrefixes | Lista de prefijos de clave que se van a recortar. | false | matriz de cadenas |
actualizar | La configuración para actualizar los valores de clave de App de Azure Configuration. Si la propiedad no está presente, no se actualizan los valores de clave de App de Azure Configuración. | false | objeto |
Si no se establece la spec.configuration.selectors
propiedad, se descargan todos los valores de clave sin etiqueta. Contiene una matriz de objetos selectores, que tienen las siguientes propiedades secundarias. Tenga en cuenta que los valores clave del último selector tienen prioridad e invalidan las claves superpuestas de los selectores anteriores.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
keyFilter | Filtro de clave para consultar los pares clave-valor. Esta propiedad y la snapshotName propiedad no deben establecerse al mismo tiempo. |
alternativa | string |
labelFilter | Filtro de etiqueta para consultar pares clave-valor. Esta propiedad y la snapshotName propiedad no deben establecerse al mismo tiempo. |
false | string |
snapshotName | Nombre de una instantánea desde la que se cargan los valores de clave. Esta propiedad no se debe usar junto con otras propiedades. | alternativa | string |
La propiedad spec.configuration.refresh
tiene las siguientes propiedades secundarias.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
enabled | Configuración que determina si los valores de clave de App de Azure Configuración se actualizan automáticamente. Si la propiedad está ausente, se usa un valor predeterminado de false . |
false | bool |
La supervisión | Los valores de clave supervisados para la detección de cambios, también conocidos como claves sentinel. Los valores de clave de App de Azure Configuración solo se actualizan si se cambia al menos uno de los valores de clave supervisados. Si esta propiedad no está presente, se supervisarán todos los valores de clave seleccionados para su actualización. | false | objeto |
interval | Intervalo en el que se actualizan los valores de clave desde App de Azure Configuración. Debe ser mayor o igual que 1 segundo. Si la propiedad está ausente, se usa un valor predeterminado de 30 segundos. | false | cadena de duración |
spec.configuration.refresh.monitoring.keyValues
es una matriz de objetos, que tienen las siguientes propiedades secundarias.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
key | Clave de un par clave-valor. | true | string |
label | Etiqueta de un par clave-valor. | false | string |
La propiedad spec.secret
tiene las siguientes propiedades secundarias. Se requiere si se espera que se descarguen referencias de Key Vault. Para más información sobre la compatibilidad con los tipos integrados de Secretos de Kubernetes, consulte Tipos de secretos.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
Destino | Destino de los secretos recuperados en Kubernetes. | true | object |
auth | El método de autenticación para acceder a Key Vaults. | false | object |
actualizar | La configuración para actualizar los datos de Key Vaults. Si la propiedad no está presente, los datos de Key Vault no se actualizan a menos que se vuelvan a cargar las referencias correspondientes de Key Vault. | false | object |
La propiedad spec.secret.target
tiene la siguiente propiedad secundaria.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
secretName | Nombre del secreto de Kubernetes que se va a crear. | true | string |
Si no se establece la propiedad spec.secret.auth
, se usa la identidad administrada asignada por el sistema. Tiene las siguientes propiedades secundarias.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
servicePrincipalReference | El nombre del secreto de Kubernetes que contiene las credenciales de una entidad de servicio que se usa para la autenticación con almacenes de claves que no tienen métodos de autenticación individuales especificados. | false | cadena |
workloadIdentity | La configuración de la identidad de la carga de trabajo que se usa para la autenticación con almacenes de claves que no tienen métodos de autenticación individuales especificados. Tiene la misma propiedad secundaria que spec.auth.workloadIdentity . |
false | object |
managedIdentityClientId | El id. de cliente de una identidad administrada asignada por el usuario del conjunto de escalado de máquinas virtuales que se usa para la autenticación con almacenes de claves que no tienen métodos de autenticación individuales especificados. | false | cadena |
keyVaults | Los métodos de autenticación para almacenes de claves individuales. | false | matriz de objeto |
El método de autenticación de cada instancia de Key Vault se puede especificar con las siguientes propiedades. Se debe proporcionar managedIdentityClientId
, servicePrincipalReference
o workloadIdentity
.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
uri | Identificador URI de un almacén de claves. | true | cadena |
servicePrincipalReference | Nombre del secreto de Kubernetes que contiene las credenciales de una entidad de servicio que se usa para la autenticación con un almacén de claves. | false | cadena |
workloadIdentity | La configuración de la identidad de carga de trabajo que se usa para la autenticación con un almacén de claves. Tiene la misma propiedad secundaria que spec.auth.workloadIdentity . |
false | object |
managedIdentityClientId | El id. de cliente de una identidad administrada asignada por el usuario del conjunto de escalado de máquinas virtuales que se usa para la autenticación con un almacén de claves. | false | string |
La propiedad spec.secret.refresh
tiene las siguientes propiedades secundarias.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
enabled | Configuración que determina si los datos de los almacenes de claves se actualizan automáticamente. Si la propiedad está ausente, se usa un valor predeterminado de false . |
false | bool |
interval | Intervalo en el que se actualizan los datos desde Key Vault. Debe ser mayor o igual que 1 minuto. La actualización de Key Vault es independiente de la actualización de App Configuration configurada a través spec.configuration.refresh . |
true | cadena de duración |
La propiedad spec.featureFlag
tiene las siguientes propiedades secundarias. Es necesario si se espera que se descarguen marcas de características.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
selectores | Lista de selectores para el filtrado de marcas de características. | false | matriz de objeto |
actualizar | La configuración para actualizar las marcas de características de App de Azure Configuration. Si la propiedad no está presente, no se actualizan las marcas de características de App de Azure Configuración. | false | objeto |
Si no se establece la spec.featureFlag.selectors
propiedad, no se descargan las marcas de características. Contiene una matriz de objetos selectores, que tienen las siguientes propiedades secundarias. Tenga en cuenta que las marcas de características del último selector tienen prioridad e invalidan las claves superpuestas de los selectores anteriores.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
keyFilter | Filtro de clave para consultar marcas de características. Esta propiedad y la snapshotName propiedad no deben establecerse al mismo tiempo. |
alternativa | string |
labelFilter | Filtro de etiqueta para consultar marcas de características. Esta propiedad y la snapshotName propiedad no deben establecerse al mismo tiempo. |
false | string |
snapshotName | Nombre de una instantánea desde la que se cargan las marcas de características. Esta propiedad no se debe usar junto con otras propiedades. | alternativa | string |
La propiedad spec.featureFlag.refresh
tiene las siguientes propiedades secundarias.
Nombre | Descripción | Obligatorio | Tipo |
---|---|---|---|
enabled | Configuración que determina si las marcas de características de App de Azure Configuración se actualizan automáticamente. Si la propiedad está ausente, se usa un valor predeterminado de false . |
false | bool |
interval | Intervalo en el que se actualizan las marcas de características desde App de Azure Configuración. Debe ser mayor o igual que 1 segundo. Si la propiedad está ausente, se usa un valor predeterminado de 30 segundos. | false | cadena de duración |
Instalación
Use el comando siguiente helm install
para instalar el proveedor de Kubernetes de configuración de App de Azure. Consulte helm-values.yaml para obtener la lista completa de parámetros y sus valores predeterminados. Puede invalidar los valores predeterminados pasando la --set
marca al comando .
helm install azureappconfiguration.kubernetesprovider \
oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
--namespace azappconfig-system \
--create-namespace
Escalabilidad automática
De forma predeterminada, el escalado automático está deshabilitado. Sin embargo, si tiene varios AzureAppConfigurationProvider
recursos para generar varios ConfigMaps/Secrets, puede habilitar el escalado automático horizontal de pods estableciendo autoscaling.enabled
true
en .
helm install azureappconfiguration.kubernetesprovider \
oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
--namespace azappconfig-system \
--create-namespace
--set autoscaling.enabled=true
datos, recopilación
El software puede recopilar información sobre usted y su uso del software y enviarlo a Microsoft. Microsoft puede utilizar esta información para proporcionar servicios y mejorar nuestros productos y servicios. Puede desactivar la telemetría estableciendo al requestTracing.enabled=false
instalar el proveedor de Kubernetes de configuración de App de Azure. También hay algunas características del software que pueden permitirle y Microsoft recopilar datos de los usuarios de las aplicaciones. Si usa estas características, debe cumplir con la legislación aplicable, incluida la prestación de avisos adecuados a los usuarios de sus aplicaciones junto con una copia de la declaración de privacidad de Microsoft. Nuestra declaración de privacidad se encuentra en https://go.microsoft.com/fwlink/?LinkID=824704. Puede obtener más información sobre la recopilación y el uso de datos en la documentación de ayuda y nuestra declaración de privacidad. El uso del software implica su consentimiento a estas prácticas.
Ejemplos
Autenticación
Uso de una identidad asignada por el sistema de un conjunto de escalado de máquinas virtuales
Habilitar la identidad administrada asignada por el sistema en el conjunto de escalado de máquinas virtuales que usa el clúster de Azure Kubernetes Service (AKS).
Implemente el siguiente recurso de ejemplo
AzureAppConfigurationProvider
en el clúster de 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
Uso de una identidad administrada asignada por el usuario de un conjunto de escalado de máquinas virtuales
Cree una identidad administrada asignada por el usuario y anote su id. de cliente después de la creación.
Asignar la identidad administrada asignada por el usuario al conjunto de escalado de máquinas virtuales que usa el clúster de Azure Kubernetes Service (AKS).
Establezca la propiedad
spec.auth.managedIdentityClientId
en el id. de cliente de la identidad administrada asignada por el usuario en el siguiente recurso de ejemploAzureAppConfigurationProvider
e impleméntela en el clúster de 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>
Uso de la entidad de servicio
Cree un secreto de Kubernetes en el mismo espacio de nombres que el recurso
AzureAppConfigurationProvider
y agregue azure_client_id, azure_client_secret y azure_tenant_id de la entidad de servicio al secreto.Establezca la propiedad
spec.auth.servicePrincipalReference
en el nombre del secreto en el siguiente recurso de ejemploAzureAppConfigurationProvider
e impleméntela en el clúster de 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>
Uso de la identidad de carga de trabajo
Habilite la identidad de carga de trabajo en el clúster de Azure Kubernetes Service (AKS).
Obtenga la dirección URL del emisor de OIDC del clúster de AKS.
Cree una identidad administrada asignada por el usuario y anote su identificador de cliente, identificador de inquilino, nombre y grupo de recursos.
Cree una cuenta de servicio agregando un archivo YAML (por ejemplo, serviceAccount.yaml) con el siguiente contenido en el directorio que contiene los archivos de implementación de AKS. La cuenta de servicio se creará cuando aplique todos los cambios de implementación al clúster de AKS (por ejemplo, mediante
kubectl apply
). Reemplace por<your-managed-identity-client-id>
el identificador de cliente y<your-managed-identity-tenant-id>
por el identificador de inquilino de la identidad administrada asignada por el usuario que acaba de crearse. Reemplace por<your-service-account-name>
su nombre 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>
Cree una credencial de identidad federada para la identidad administrada asignada por el usuario mediante la CLI de Azure. Reemplace
<user-assigned-identity-name>
por el nombre y<resource-group>
por el grupo de recursos de la identidad administrada asignada por el usuario recién creada. Reemplace por<aks-oidc-issuer>
la dirección URL del emisor de OIDC del clúster de AKS. Reemplace por<your-service-account-name>
el nombre de la cuenta de servicio recién creada. Reemplace<federated-identity-credential-name>
por el nombre preferido para la credencial de identidad 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
Tenga en cuenta que el asunto de la credencial de identidad federada debe seguir este formato:
system:serviceaccount:<service-account-namespace>:<service-account-name>
.Establezca la
spec.auth.workloadIdentity.serviceAccountName
propiedad en el nombre de la cuenta de servicio en el siguiente recurso de ejemploAzureAppConfigurationProvider
. Asegúrese de que elAzureAppConfigurationProvider
recurso y la cuenta de servicio están en el mismo espacio de nombres.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>
Uso de una cadena de conexión
Cree un secreto de Kubernetes en el mismo espacio de nombres que el recurso
AzureAppConfigurationProvider
y agregue la cadena de conexión de Azure App Configuration con la clave azure_app_configuration_connection_string en el secreto.Establezca la propiedad
spec.connectionStringReference
en el nombre del secreto en el siguiente recurso de ejemploAzureAppConfigurationProvider
e impleméntela en el clúster de 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
Selección de par clave-valor
Use la propiedad selectors
para filtrar los pares clave-valor que se van a descargar de Azure App Configuration.
En el ejemplo siguiente se descargan todos los pares clave-valor sin etiqueta.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
En el ejemplo siguiente, se usan dos selectores para recuperar dos conjuntos de pares clave-valor, cada uno con etiquetas únicas. Es importante tener en cuenta que los valores del último selector tienen prioridad e invalidan las claves superpuestas de los selectores 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
Una instantánea se puede usar sola o junto con otros selectores de clave-valor. En el ejemplo siguiente, se cargan los valores clave de la configuración común desde una instantánea y, a continuación, se invalidan algunos de ellos con los valores de clave para el desarrollo.
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
Recorte de prefijo de la clave
En el ejemplo siguiente se usa la propiedad trimKeyPrefixes
para recortar dos prefijos de nombres de clave antes de agregarlos al configMap generado.
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]
Actualización de configuración
Al realizar cambios en los datos en Azure App Configuration, es posible que quiera que esos cambios se actualicen automáticamente en el clúster de Kubernetes. Es habitual actualizar varios valores de clave, pero no quiere que el clúster seleccione un cambio a mitad de la actualización. Para mantener la coherencia de la configuración, puede usar un valor de clave para indicar la finalización de la actualización. Este valor de clave se conoce como clave sentinel. El proveedor de Kubernetes puede supervisar este valor de clave y ConfigMap y Secret solo se volverán a generar con datos actualizados una vez que se detecte un cambio en la clave sentinel.
En el ejemplo siguiente, se sondea cada minuto un valor de clave denominado app1_sentinel
y la configuración se actualiza cada vez que se detectan cambios en la clave sentinel.
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
Referencias de Key Vault
Autenticación
En el ejemplo siguiente, una Key Vault se autentica con una entidad de servicio, mientras que todas las demás instancias de Key Vault se autentican con una identidad administrada asignada por el usuario.
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 secreto
Actualmente se admiten dos tipos integrados de Kubernetes de secretos, opacos y TLS. Los secretos resueltos desde las referencias de Key Vault se guardan como el tipo secreto opaco de forma predeterminada. Si tiene una referencia de Key Vault a un certificado y quiere guardarla como tipo de secreto TLS, puede agregar una etiqueta con el nombre y el valor siguientes a la referencia de Key Vault en App de Azure Configuración. Al hacerlo, se generará un secreto con el kubernetes.io/tls
tipo y se denominará después de la clave de la referencia de Key Vault.
NOMBRE | Valor |
---|---|
.kubernetes.secret.type | kubernetes.io/tls |
En los ejemplos siguientes se muestra cómo se rellenan los datos en los secretos generados con distintos tipos.
Suponiendo que un almacén de App Configuration tenga estas referencias de Key Vault:
key | value | etiquetas |
---|---|---|
app1-secret1 | <Referencia de Key Vault 1> | {} |
app1-secret2 | <Referencia de Key Vault 2> | {} |
app1-certificate | <Referencia de Key Vault 3> | {".kubernetes.secret.type": "kubernetes.io/tls"} |
En el ejemplo siguiente se generan secretos de tipos Opacos y 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>
Los secretos generados se rellenan con los siguientes datos:
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>
Actualización de secretos de Key Vault
La actualización de secretos de Key Vault normalmente requiere volver a cargar las referencias de Key Vault correspondientes desde Azure App Configuration. Sin embargo, con la propiedad spec.secret.refresh
, puede actualizar los secretos de Key Vault de forma independiente. Esto es especialmente útil para garantizar que la carga de trabajo recoge automáticamente los secretos actualizados de Key Vault durante la rotación de secretos. Tenga en cuenta que para cargar la versión más reciente de un secreto, la referencia de Key Vault no debe ser un secreto con versiones.
En el ejemplo siguiente se actualizan todos los secretos sin versiones de Key Vault 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
Marcas de características
En el ejemplo siguiente, se descargan y actualizan las marcas de características con claves a partir app1
de las etiquetas y equivalentes a common
cada 10 minutos. Tenga en cuenta que para rellenar las marcas de características en el ConfigMap generado, la configMapData.type
propiedad debe ser json
o yaml
.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
configMapData:
type: json
key: appSettings.json
featureFlag:
selectors:
- keyFilter: app1*
labelFilter: common
refresh:
enabled: true
interval: 10m
Consumo de ConfigMap
Las aplicaciones que se ejecutan en Kubernetes normalmente consumen ConfigMap como variables de entorno o como archivos de configuración. Si la propiedad configMapData.type
no está presente o está establecida en su valor predeterminado, ConfigMap se rellena con la lista detallada de datos recuperados de Azure App Configuration, que se pueden consumir fácilmente como variables de entorno. Si la propiedad configMapData.type
se establece en json, yaml o properties, los datos recuperados de Azure App Configuration se agrupan en un elemento con el nombre de clave especificado por la configMapData.key
propiedad en el ConfigMap generado, que se puede consumir como un archivo montado.
En los ejemplos siguientes se muestra cómo se rellenan los datos en el ConfigMap generado con una configuración diferente de la propiedad configMapData.type
.
Suponiendo que un almacén de App Configuration tenga estos valores de clave:
key | value |
---|---|
key1 | value1 |
key2 | value2 |
key3 | value3 |
Y la configMapData.type
propiedad está ausente o se establece en 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
ConfigMap generado se rellena con los datos siguientes:
data:
key1: value1
key2: value2
key3: value3