Compartir a través de


Referencia del proveedor de Kubernetes de Azure App Configuration

En la referencia siguiente se describen las propiedades admitidas por el proveedor v2.1.0de 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 trueen .

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

  1. 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).

  2. Conceder a la identidad administrada asignada por el sistema el rol Lector de datos de App Configuration en Azure App Configuration.

  3. 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

  1. Cree una identidad administrada asignada por el usuario y anote su id. de cliente después de la creación.

  2. 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).

  3. Conceder a la identidad administrada asignada por el usuario el rol Lector de datos de App Configuration en Azure App Configuration.

  4. Establezca la propiedad spec.auth.managedIdentityClientId en el id. de cliente de la identidad administrada asignada por el usuario en el siguiente recurso de ejemplo AzureAppConfigurationProvider 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

  1. Creación de una entidad de servicio

  2. Conceder a la entidad de servicio principal el rol Lector de datos de App Configuration en Azure App Configuration.

  3. 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.

  4. Establezca la propiedad spec.auth.servicePrincipalReference en el nombre del secreto en el siguiente recurso de ejemplo AzureAppConfigurationProvider 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

  1. Habilite la identidad de carga de trabajo en el clúster de Azure Kubernetes Service (AKS).

  2. Obtenga la dirección URL del emisor de OIDC del clúster de AKS.

  3. Cree una identidad administrada asignada por el usuario y anote su identificador de cliente, identificador de inquilino, nombre y grupo de recursos.

  4. Conceder a la identidad administrada asignada por el usuario el rol Lector de datos de App Configuration en Azure App Configuration.

  5. 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>
    
  6. 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>.

  7. Establezca la spec.auth.workloadIdentity.serviceAccountName propiedad en el nombre de la cuenta de servicio en el siguiente recurso de ejemplo AzureAppConfigurationProvider . Asegúrese de que el AzureAppConfigurationProvider 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

  1. 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.

  2. Establezca la propiedad spec.connectionStringReference en el nombre del secreto en el siguiente recurso de ejemplo AzureAppConfigurationProvider 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