Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
La référence suivante décrit les propriétés prises en charge par le fournisseur v2.3.0
Kubernetes Azure App Configuration ou une version ultérieure. Pour plus d’informations sur la modification, consultez les notes de publication.
Propriétés
Une ressource AzureAppConfigurationProvider
dispose des propriétés enfants de niveau supérieur suivantes sous spec
. Soit endpoint
ou connectionStringReference
doit être spécifié.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
point de terminaison | Point de terminaison d’Azure App Configuration à partir duquel vous souhaitez récupérer les paires clé-valeur. | alternatif | ficelle |
connectionStringReference | Le nom du secret Kubernetes qui contient la chaîne de connexion Azure App Configuration. | alternatif | ficelle |
replicaDiscoveryEnabled | Paramètre qui détermine si les réplicas d’Azure App Configuration sont automatiquement découverts et utilisés pour le basculement. Si la propriété est absente, une valeur true par défaut est utilisée. |
faux | Bool |
loadBalancingEnabled | Paramètre qui permet à votre charge de travail de distribuer des demandes à App Configuration sur tous les réplicas disponibles. Si la propriété est absente, une valeur false par défaut est utilisée. |
faux | Bool |
cible | Destination des paires clé-valeur récupérées dans Kubernetes. | vrai | objet |
authen | Méthode d’authentification pour accéder à Azure App Configuration. | faux | objet |
paramétrage | Les paramètres d’interrogation et de traitement des valeurs de clé dans Azure App Configuration. | faux | objet |
secret | Les paramètres des références Key Vault dans Azure App Configuration. | conditionnelles | objet |
featureFlag | Paramètres des indicateurs de fonctionnalité dans Azure App Configuration. | faux | objet |
La propriété spec.target
dispose de la propriété enfant suivante.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
configMapName | Nom du ConfigMap à créer. | vrai | ficelle |
configMapData | Paramètre qui spécifie la façon dont les données récupérées doivent être remplies dans le ConfigMap généré. | faux | objet |
Si la spec.target.configMapData
propriété n’est pas définie, le ConfigMap généré est rempli avec la liste des valeurs clés récupérées à partir d’Azure App Configuration, ce qui permet à ConfigMap d’être consommé en tant que variables d’environnement. Mettez à jour cette propriété si vous souhaitez utiliser configMap en tant que fichier monté. Cette propriété dispose des propriétés enfants suivantes.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
type | Paramètre qui indique comment les données récupérées sont construites dans le ConfigMap généré. Les valeurs autorisées incluent default , json , yaml et properties . |
facultatifs | ficelle |
clé | Nom de clé des données récupérées lorsque est type défini sur json , yaml ou properties . Définissez-le sur le nom de fichier si le ConfigMap est configuré pour être consommé en tant que fichier monté. |
conditionnelles | ficelle |
séparateur | Délimiteur utilisé pour générer les données ConfigMap au format hiérarchique lorsque le type est défini json sur ou yaml . Le séparateur est vide par défaut et le ConfigMap généré contient des valeurs clés dans leur formulaire d’origine. Configurez ce paramètre uniquement si le chargeur de fichiers de configuration utilisé dans votre application ne peut pas charger de valeurs clés sans les convertir au format hiérarchique. |
facultatifs | ficelle |
La propriété spec.auth
n’est pas obligatoire si la chaîne de connexion de votre magasin App Configuration est fournie en définissant la propriété spec.connectionStringReference
. Sinon, l’une des identités, le principal de service, l’identité de charge de travail ou l’identité managée est utilisée pour l’authentification.
spec.auth
dispose des propriétés enfants suivantes. Seul l’un d’eux doit être spécifié. Si aucun d’entre eux n’est défini, l’identité managée affectée par le système du groupe de machines virtuelles identiques est utilisée.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
servicePrincipalReference | Nom du secret Kubernetes qui contient les informations d’identification d’un principal de service. Le secret doit se trouver dans le même espace de noms que le fournisseur Kubernetes. | faux | ficelle |
charge de travailIdentité | Paramètres d’utilisation de l’identité de charge de travail. | faux | objet |
managedIdentityClientId | ID client de l’identité managée affectée par l’utilisateur du groupe de machines virtuelles identiques. | faux | ficelle |
La propriété spec.auth.workloadIdentity
dispose de la propriété enfant suivante.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
serviceAccountName | Nom du compte de service associé à l’identité de charge de travail. | vrai | ficelle |
spec.configuration
dispose des propriétés enfants suivantes.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
sélecteurs | Liste des sélecteurs pour le filtrage de paires clé-valeur. | faux | tableau d’objets |
trimKeyPrefixes | Liste des préfixes de clé à découper. | faux | tableau de chaînes |
actualiser | Paramètres d’actualisation des valeurs clés à partir d’Azure App Configuration. Si la propriété est absente, les valeurs clés d’Azure App Configuration ne sont pas actualisées. | faux | objet |
Si la spec.configuration.selectors
propriété n’est pas définie, toutes les valeurs de clé sans étiquette sont téléchargées. Cela contient un tableau d’objets sélecteur qui disposent des propriétés enfants suivantes. Notez que les valeurs de clé du dernier sélecteur sont prioritaires et remplacent les clés qui se chevauchent des sélecteurs précédents.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
keyFilter | Filtre de clé pour l’interrogation de paires clé-valeur. Cette propriété et la snapshotName propriété ne doivent pas être définies en même temps. |
alternatif | ficelle |
labelFilter | Filtre d’étiquette pour l’interrogation de paires clé-valeur. Cette propriété et la snapshotName propriété ne doivent pas être définies en même temps. |
faux | ficelle |
snapshotName | Nom d’un instantané à partir duquel les valeurs de clé sont chargées. Cette propriété ne doit pas être utilisée conjointement avec d’autres propriétés. | alternatif | ficelle |
La propriété spec.configuration.refresh
dispose des propriétés enfants suivantes.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
activé | Paramètre qui détermine si les valeurs clés d’Azure App Configuration sont automatiquement actualisées. Si la propriété est absente, une valeur false par défaut est utilisée. |
faux | Bool |
surveillance | Les valeurs clés surveillées pour la détection des modifications, c’est-à-dire les clés sentinelles. Les valeurs clés d’Azure App Configuration sont actualisées uniquement si au moins une des valeurs de clé surveillées est modifiée. Si cette propriété est absente, toutes les valeurs de clé sélectionnées sont surveillées pour l’actualisation. | faux | objet |
intervalle | Intervalle auquel les valeurs de clé sont actualisées à partir d’Azure App Configuration. Elle doit être supérieure ou égale à 1 seconde. Si la propriété est absente, une valeur par défaut de 30 secondes est utilisée. | faux | chaîne de durée |
spec.configuration.refresh.monitoring.keyValues
est un tableau d'objets, qui ont les propriétés enfants suivantes.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
clé | La clé d'une valeur-clé. | vrai | ficelle |
étiquette | Libellé d'une valeur-clé. | faux | ficelle |
La propriété spec.secret
dispose des propriétés enfants suivantes. Elle est requise si des références Key Vault (coffre de clé) sont censées être téléchargées. Pour en savoir plus sur la prise en charge des types intégrés de Secrets Kubernetes, consultez Types de secrets.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
cible | Destination des secrets récupérés dans Kubernetes. | vrai | objet |
authen | Méthode d’authentification pour accéder aux coffres de clés. | faux | objet |
actualiser | Paramètres d’actualisation des données à partir de Key Vaults. Si la propriété est absente, les données des coffres de clés ne sont pas actualisées, sauf si les références Key Vault correspondantes sont rechargées. | faux | objet |
La propriété spec.secret.target
dispose de la propriété enfant suivante.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
secretName | Nom du secret Kubernetes à créer. | vrai | ficelle |
secretData | Paramètre qui spécifie la façon dont les données récupérées doivent être remplies dans le secret généré. | vrai | ficelle |
Si la spec.secret.target.secretData
propriété n’est pas définie, le secret généré est rempli avec la liste des valeurs de clé récupérées à partir de Coffres de clés, ce qui permet au secret d’être consommé en tant que variables d’environnement. Mettez à jour cette propriété si vous souhaitez utiliser le secret en tant que fichier monté. Cette propriété dispose des propriétés enfants suivantes.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
type | Paramètre qui indique la façon dont les données récupérées sont construites dans le secret généré. Les valeurs autorisées incluent default , json , yaml et properties . |
facultatifs | ficelle |
clé | Nom de clé des données récupérées lorsque est type défini sur json , yaml ou properties . Définissez-le sur le nom du fichier si le secret est configuré pour être consommé en tant que fichier monté. |
conditionnelles | ficelle |
séparateur | Délimiteur utilisé pour générer les données secrètes au format hiérarchique lorsque le type est défini json sur ou yaml . Le séparateur est vide par défaut et le secret généré contient des valeurs clés sous leur forme d’origine. Configurez ce paramètre uniquement si le chargeur de fichiers de configuration utilisé dans votre application ne peut pas charger de valeurs clés sans les convertir au format hiérarchique. |
facultatifs | ficelle |
Si la propriété spec.secret.auth
n’est pas définie, l’identité managée affectée par le système est utilisée. Elle dispose des propriétés enfants suivantes.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
servicePrincipalReference | Le nom du secret Kubernetes qui contient les informations d’identification d’un principal de service utilisé pour l’authentification avec des Key Vaults qui n’ont pas de méthodes d’authentification individuelles spécifiées. | faux | ficelle |
charge de travailIdentité | Les paramètres de l’identité de la charge de travail utilisés pour l’authentification avec des Key Vaults qui n’ont pas de méthodes d’authentification individuelles spécifiées. Il a la même propriété enfant que spec.auth.workloadIdentity . |
faux | objet |
managedIdentityClientId | L’ID client d’une identité managée affectée par l’utilisateur d’un groupe de machines virtuelles identiques utilisé pour l’authentification avec des Key Vaults qui n’ont pas de méthodes d’authentification individuelles spécifiées. | faux | ficelle |
keyVaults | Les méthodes d’authentification pour les Key Vaults individuels. | faux | tableau d’objets |
La méthode d’authentification de chaque Key Vault peut être spécifiée avec les propriétés suivantes. Un de managedIdentityClientId
,servicePrincipalReference
ou workloadIdentity
doit être fournie.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
URI | L’URI d’un Key Vault (coffre de clés). | vrai | ficelle |
servicePrincipalReference | Nom du secret Kubernetes qui contient les informations d’identification d’un principal de service utilisé pour l’authentification avec un Key Vault. | faux | ficelle |
charge de travailIdentité | Paramètres de l’identité de charge de travail utilisée pour l’authentification avec un Key Vault. Il a la même propriété enfant que spec.auth.workloadIdentity . |
faux | objet |
managedIdentityClientId | L’ID client d’une identité managée affectée par l’utilisateur d’un groupe de machines virtuelles identiques utilisé pour l’authentification avec un Key Vault. | faux | ficelle |
La propriété spec.secret.refresh
dispose des propriétés enfants suivantes.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
activé | Le paramètre qui détermine si les données des Key Vaults sont automatiquement actualisées. Si la propriété est absente, une valeur false par défaut est utilisée. |
faux | Bool |
intervalle | Intervalle auquel les données sont actualisées à partir de Key Vault. Elle doit être supérieure ou égale à 1 minute. L’actualisation Key Vault est indépendante de l’actualisation App Configuration configurée via spec.configuration.refresh . |
vrai | chaîne de durée |
La propriété spec.featureFlag
dispose des propriétés enfants suivantes. Il est nécessaire si des indicateurs de fonctionnalité sont censés être téléchargés.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
sélecteurs | Liste des sélecteurs pour le filtrage des indicateurs de fonctionnalité. | faux | tableau d’objets |
actualiser | Paramètres d’actualisation des indicateurs de fonctionnalité à partir d’Azure App Configuration. Si la propriété est absente, les indicateurs de fonctionnalité d’Azure App Configuration ne sont pas actualisés. | faux | objet |
Si la spec.featureFlag.selectors
propriété n’est pas définie, les indicateurs de fonctionnalité ne sont pas téléchargés. Cela contient un tableau d’objets sélecteur qui disposent des propriétés enfants suivantes. Notez que les indicateurs de fonctionnalité du dernier sélecteur sont prioritaires et remplacent les clés qui se chevauchent des sélecteurs précédents.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
keyFilter | Filtre de clé pour l’interrogation des indicateurs de fonctionnalité. Cette propriété et la snapshotName propriété ne doivent pas être définies en même temps. |
alternatif | ficelle |
labelFilter | Filtre d’étiquette pour l’interrogation des indicateurs de fonctionnalité. Cette propriété et la snapshotName propriété ne doivent pas être définies en même temps. |
faux | ficelle |
snapshotName | Nom d’un instantané à partir duquel les indicateurs de fonctionnalité sont chargés. Cette propriété ne doit pas être utilisée conjointement avec d’autres propriétés. | alternatif | ficelle |
La propriété spec.featureFlag.refresh
dispose des propriétés enfants suivantes.
Nom | Descriptif | Obligatoire | Catégorie |
---|---|---|---|
activé | Paramètre qui détermine si les indicateurs de fonctionnalité d’Azure App Configuration sont automatiquement actualisés. Si la propriété est absente, une valeur false par défaut est utilisée. |
faux | Bool |
intervalle | Intervalle auquel les indicateurs de fonctionnalité sont actualisés à partir d’Azure App Configuration. Elle doit être supérieure ou égale à 1 seconde. Si la propriété est absente, une valeur par défaut de 30 secondes est utilisée. | faux | chaîne de durée |
Installation
Utilisez la commande suivante helm install
pour installer le fournisseur Kubernetes Azure App Configuration. Consultez helm-values.yaml pour obtenir la liste complète des paramètres et leurs valeurs par défaut. Vous pouvez remplacer les valeurs par défaut en passant l’indicateur --set
à la commande.
helm install azureappconfiguration.kubernetesprovider \
oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
--namespace azappconfig-system \
--create-namespace
Mise à l’échelle automatique
Par défaut, la mise à l’échelle automatique est désactivée. Toutefois, si vous avez plusieurs AzureAppConfigurationProvider
ressources pour produire plusieurs ConfigMaps/Secrets, vous pouvez activer la mise à l’échelle automatique des pods horizontaux en définissant autoscaling.enabled
sur true
.
helm install azureappconfiguration.kubernetesprovider \
oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
--namespace azappconfig-system \
--create-namespace
--set autoscaling.enabled=true
Collecte de données
Le logiciel peut collecter des informations sur vous et votre utilisation du logiciel et l’envoyer à Microsoft. Microsoft est susceptible d’utiliser ces informations pour fournir des services et améliorer ses produits et services. Vous pouvez désactiver les données de télémétrie en définissant le requestTracing.enabled=false
tout en installant le fournisseur Kubernetes Azure App Configuration. Il existe également certaines fonctionnalités du logiciel qui peuvent vous permettre et Microsoft de collecter des données auprès des utilisateurs de vos applications. Si vous utilisez ces fonctionnalités, vous devez vous conformer à la loi applicable, y compris fournir des avis appropriés aux utilisateurs de vos applications avec une copie de la déclaration de confidentialité de Microsoft. Notre déclaration de confidentialité se trouve à l’adresse suivante https://go.microsoft.com/fwlink/?LinkID=824704. Vous pouvez en savoir plus sur la collecte et l’utilisation des données dans la documentation d’aide et notre déclaration de confidentialité. Votre utilisation du logiciel vaut acceptation de ces pratiques.
Exemples
Authentification
Utiliser l'identité gérée attribuée par le système de l'ensemble d'échelles de la machine virtuelle
Activez l’identité managée affectée par le système dans le groupe de machines virtuelles identiques utilisée par le cluster Azure Kubernetes Service (AKS).
Accordez à l’identité managée affectée par le système le rôle Lecteur de données App Configuration dans Azure App Configuration.
Déployez l’exemple de ressource
AzureAppConfigurationProvider
suivant sur le 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
Utiliser l'identité gérée attribuée à l'utilisateur de l'ensemble d'échelles de la machine virtuelle
Créez une identité managée affectée par l’utilisateur et notez son ID client après sa création.
Affectez l’identité managée affectée par l’utilisateur dans le groupe de machines virtuelles identiques utilisée par le cluster Azure Kubernetes Service (AKS).
Accordez à l’identité managée affectée par l’utilisateur le rôle Lecteur de données App Configuration dans Azure App Configuration.
Définissez la propriété
spec.auth.managedIdentityClientId
pour l’ID client de l’identité managée affectée par l’utilisateur dans l’exemple de ressourceAzureAppConfigurationProvider
suivant et déployez-la sur le 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>
Utiliser Principal de service
Accordez au principal de service le rôle Lecteur de données App Configuration dans Azure App Configuration.
Créez un secret Kubernetes dans le même espace de noms que la ressource
AzureAppConfigurationProvider
et ajoutez azure_client_id, azure_client_secret et azure_tenant_id du principal de service au secret.Définissez la propriété
spec.auth.servicePrincipalReference
sur le nom du secret dans l’exemple de ressourceAzureAppConfigurationProvider
suivant et déployez-la sur le cluster 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>
Utiliser l’identité de charge de travail
Activez l’identité de charge de travail sur le cluster Azure Kubernetes Service (AKS).
Obtenez l’URL de l’émetteur OIDC du cluster AKS.
Créez une identité managée affectée par l’utilisateur et notez son ID client, son ID client, son nom et son groupe de ressources.
Accordez à l’identité managée affectée par l’utilisateur le rôle Lecteur de données App Configuration dans Azure App Configuration.
Créez un compte de service en ajoutant un fichier YAML (par exemple, serviceAccount.yaml) avec le contenu suivant dans le répertoire contenant vos fichiers de déploiement AKS. Le compte de service est créé lorsque vous appliquez toutes vos modifications de déploiement à votre cluster AKS (par exemple, à l’aide
kubectl apply
de ). Remplacez<your-managed-identity-client-id>
par l’ID client et<your-managed-identity-tenant-id>
par l’ID de locataire de l’identité managée affectée par l’utilisateur qui vient d’être créée. Remplacez par<your-service-account-name>
votre nom préféré.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>
Créez des informations d’identification d’identité fédérée pour l’identité managée affectée par l’utilisateur à l’aide d’Azure CLI. Remplacez
<user-assigned-identity-name>
par le nom et<resource-group>
par le groupe de ressources de l’identité managée affectée par l’utilisateur nouvellement créée. Remplacez<aks-oidc-issuer>
par l’URL de l’émetteur OIDC du cluster AKS. Remplacez<your-service-account-name>
par le nom du compte de service nouvellement créé. Remplacez<federated-identity-credential-name>
par votre nom préféré pour les informations d’identification de l’identité fédérée.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
Notez que l’objet des informations d’identification de l’identité fédérée doit suivre ce format :
system:serviceaccount:<service-account-namespace>:<service-account-name>
.Définissez la
spec.auth.workloadIdentity.serviceAccountName
propriété sur le nom du compte de service dans l’exempleAzureAppConfigurationProvider
de ressource suivant. Assurez-vous que laAzureAppConfigurationProvider
ressource et le compte de service se trouvent dans le même espace de noms.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>
Utiliser la chaîne de connexion
Créez un secret Kubernetes dans le même espace de noms que la ressource
AzureAppConfigurationProvider
et ajoutez la chaîne de connexion Azure App Configuration avec la clé azure_app_configuration_connection_string dans le secret.Définissez la propriété
spec.connectionStringReference
sur le nom du secret dans l’exemple de ressourceAzureAppConfigurationProvider
suivant et déployez-la sur le cluster 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
Sélection de paires clé-valeur
Utilisez la propriété selectors
pour filtrer les paires clé-valeur à télécharger à partir d’Azure App Configuration.
L’exemple suivant télécharge toutes paires clé-valeur sans étiquette.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
Dans l’exemple suivant, deux sélecteurs sont utilisés pour récupérer deux ensembles de paires clés-valeur, chacun avec des étiquettes uniques. Il est important de noter que les valeurs du dernier sélecteur sont prioritaires et remplacent les clés qui se chevauchent provenant de précédents sélecteurs.
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
Un instantané peut être utilisé seul ou avec d’autres sélecteurs clé-valeur. Dans l’exemple suivant, vous chargez des valeurs clés de configuration courante à partir d’un instantané, puis remplacez certaines d’entre elles par des valeurs clés pour le développement.
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
Découpage du préfixe de clé
L’exemple suivant utilise la propriété trimKeyPrefixes
pour découper des noms de clés de deux préfixes avant de les ajouter au ConfigMap généré.
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]
Actualisation de la configuration
Lorsque vous apportez des modifications à vos données dans Azure App Configuration, vous souhaiterez peut-être que ces modifications soient actualisées automatiquement dans votre cluster Kubernetes. Dans l’exemple suivant, le fournisseur Kubernetes vérifie azure App Configuration pour les mises à jour toutes les minutes. Le ConfigMap et le secret associés sont régénérés uniquement lorsque des modifications sont détectées. Pour plus d’informations sur la surveillance des modifications de configuration, consultez les meilleures pratiques pour l’actualisation de la configuration.
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
Références Key Vault
Authentification
Dans l’exemple suivant, un Key Vault est authentifié auprès d’un principal de service, tandis que tous les autres coffres de clés sont authentifiés avec une identité managée affectée par l’utilisateur.
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>
Types de secrets
Deux types intégrés kubernetes de secrets, opaques et TLS sont actuellement pris en charge. Les secrets résolus à partir des références Key Vault sont enregistrés en tant que type secret opaque par défaut. Si vous disposez d’une référence Key Vault à un certificat et souhaitez l’enregistrer en tant que type de secret TLS, vous pouvez ajouter une balise portant le nom et la valeur suivants à la référence Key Vault dans Azure App Configuration. Ainsi, un secret avec le kubernetes.io/tls
type est généré et nommé après la clé de la référence Key Vault.
Nom | Valeur |
---|---|
.kubernetes.secret.type | kubernetes.io/tls |
Les exemples suivants montrent comment les données sont renseignées dans les secrets générés avec différents types.
En supposant qu’un magasin App Configuration dispose de ces références Key Vault :
clé | valeur | étiquettes |
---|---|---|
app1-secret1 | <Informations de référence sur Key Vault 1> | {} |
app1-secret2 | <Informations de référence sur Key Vault 2> | {} |
app1-certificate | <Informations de référence sur Key Vault 3> | {".kubernetes.secret.type": "kubernetes.io/tls"} |
L’exemple suivant génère des secrets des types Opaque et 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>
Les secrets générés sont remplis avec les données suivantes :
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>
Actualisation des secrets à partir de Key Vault
L’actualisation des secrets à partir de Key Vaults nécessite généralement de recharger les références Key Vault correspondantes à partir de Azure App Configuration. Toutefois, avec la spec.secret.refresh
propriété, vous pouvez actualiser les secrets de Key Vault indépendamment. Cela est particulièrement utile pour vous assurer que votre charge de travail récupère automatiquement les secrets mis à jour à partir de Key Vault pendant la rotation des secrets. Notez que pour charger la dernière version d’un secret, le Key Vault référence ne doit pas être un secret versionné.
L’exemple suivant actualise tous les secrets sans version de Key Vault toutes les heures.
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
Indicateurs de fonctionnalité
Dans l’exemple suivant, les indicateurs de fonctionnalité avec des clés commençant app1
par des étiquettes équivalentes sont common
téléchargés et actualisés toutes les 10 minutes. Notez que pour remplir les indicateurs de fonctionnalité dans le ConfigMap généré, la configMapData.type
propriété doit être 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
Actualisation à la demande
Vous pouvez configurer l’actualisation automatique des données, mais vous voudrez parfois déclencher une actualisation à la demande pour obtenir les données les plus récentes d’App Configuration et de Key Vault. Pour ce faire, ajoutez ou mettez à jour toutes les annotations de la metadata.annotations
AzureAppConfigurationProvider
section . Le fournisseur Kubernetes va ensuite rapprocher et mettre à jour la ConfigMap et le secret avec les données les plus récentes de votre magasin App Configuration et de Key Vault.
Dans l’exemple suivant, il AzureAppConfigurationProvider
est mis à jour avec une nouvelle annotation. Après la modification, appliquez les modifications à l’aide kubectl apply
du déclencheur d’une actualisation à la demande.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
annotations:
key1: value1
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
configuration:
selectors:
- keyFilter: app1*
labelFilter: common
secret:
target:
secretName: secret-created-by-appconfig-provider
auth:
managedIdentityClientId: <your-user-assigned-managed-identity-client-id>
Consommation configMap
Les applications s’exécutant dans Kubernetes utilisent généralement le ConfigMap en tant que variables d’environnement ou en tant que fichiers de configuration. Si la propriété configMapData.type
est absente ou est définie sur la valeur par défaut, le ConfigMap est rempli avec la liste détaillée des données récupérées à partir de Azure App Configuration, qui peuvent être facilement consommées en tant que variables d’environnement. Si la propriété configMapData.type
est définie sur json, yaml ou propriétés, les données récupérées à partir de Azure App Configuration sont regroupées en un seul élément avec le nom de clé spécifié par la propriété configMapData.key
dans le ConfigMap généré, qui peut être consommé en tant que fichier monté.
Les exemples suivants montrent comment les données sont remplies dans le ConfigMap généré avec différents paramètres de la propriété configMapData.type
.
En supposant qu’un magasin de App Configuration possède les valeurs clés suivantes :
clé | valeur |
---|---|
Clé1 | valeur1 |
clé2 | valeur2 |
key3 | valeur3 |
- par défaut
- json
- yaml
- Propriétés
Et la configMapData.type
propriété est absente ou définie sur 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
Le ConfigMap généré est rempli avec les données suivantes :
data:
key1: value1
key2: value2
key3: value3