Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Följande referens beskriver de egenskaper som stöds av Kubernetes-providern v2.3.0 för Azure App Configuration eller senare. Mer information om ändringen finns i viktig information .
Egenskaper
En AzureAppConfigurationProvider resurs har följande underordnade egenskaper på den översta nivån under spec. Antingen endpoint eller connectionStringReference måste anges.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| slutpunkt | Slutpunkten för Azure App Configuration, som du vill hämta nyckelvärdena från. | alternativ | sträng |
| connectionStringReference | Namnet på Kubernetes Secret som innehåller Azure App Configuration anslutningssträng. | alternativ | sträng |
| replicaDiscoveryEnabled | Inställningen som avgör om repliker av Azure App Configuration identifieras automatiskt och används för redundans. Om egenskapen saknas används standardvärdet true för . |
falskt | Bool |
| loadBalancingEnabled | Inställningen som gör att din arbetsbelastning kan distribuera begäranden till App Configuration över alla tillgängliga repliker. Om egenskapen saknas används standardvärdet false för . |
falskt | Bool |
| mål | Målet för de hämtade nyckelvärdena i Kubernetes. | sann | objekt |
| författare | Autentiseringsmetoden för åtkomst till Azure App Configuration. | falskt | objekt |
| konfiguration | Inställningarna för att fråga och bearbeta nyckelvärden i Azure App Configuration. | falskt | objekt |
| hemlighet | Inställningarna för Key Vault-referenser i Azure App Configuration. | villkorlig | objekt |
| featureFlag | Inställningarna för funktionsflaggor i Azure App Configuration. | falskt | objekt |
Egenskapen spec.target har följande underordnade egenskap.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| configMapName | Namnet på den ConfigMap som ska skapas. | sann | sträng |
| configMapData | Inställningen som anger hur hämtade data ska fyllas i i den genererade ConfigMap. | falskt | objekt |
Om egenskapen spec.target.configMapData inte har angetts fylls den genererade ConfigMap i med listan över nyckelvärden som hämtats från Azure App Configuration, vilket gör att ConfigMap kan användas som miljövariabler. Uppdatera den här egenskapen om du vill använda ConfigMap som en monterad fil. Den här egenskapen har följande underordnade egenskaper.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| typ | Inställningen som anger hur hämtade data konstrueras i den genererade ConfigMap. De tillåtna värdena är default, jsonoch yamlproperties . |
valfri | sträng |
| nyckel | Nyckelnamnet för hämtade data när type är inställt på json, yaml eller properties. Ange filnamnet om ConfigMap har konfigurerats för att användas som en monterad fil. |
villkorlig | sträng |
| separator | Avgränsare som används för att mata ut ConfigMap-data i hierarkiskt format när typen är inställd på json eller yaml. Avgränsaren är tom som standard och den genererade ConfigMap innehåller nyckelvärden i sitt ursprungliga formulär. Konfigurera endast den här inställningen om den konfigurationsfilinläsare som används i ditt program inte kan läsa in nyckelvärden utan att konvertera dem till det hierarkiska formatet. |
valfri | sträng |
Egenskapen spec.auth krävs inte om anslutningssträng i appkonfigurationsarkivet tillhandahålls genom att ange egenskapenspec.connectionStringReference. Annars används en av identiteterna, tjänstens huvudnamn, arbetsbelastningsidentitet eller hanterad identitet för autentisering. Har spec.auth följande underordnade egenskaper. Endast en av dem ska anges. Om ingen av dem anges används den systemtilldelade hanterade identiteten för vm-skalningsuppsättningen.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| servicePrincipalReference | Namnet på Den Kubernetes-hemlighet som innehåller autentiseringsuppgifterna för ett huvudnamn för tjänsten. Hemligheten måste finnas i samma namnrymd som Kubernetes-providern. | falskt | sträng |
| workloadIdentity (arbetsbelastning) | Inställningarna för att använda arbetsbelastningsidentitet. | falskt | objekt |
| managedIdentityClientId | Klient-ID för användartilldelad hanterad identitet för VM-skalningsuppsättning. | falskt | sträng |
Egenskapen spec.auth.workloadIdentity har följande underordnade egenskap.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| serviceAccountName | Namnet på det tjänstkonto som är associerat med arbetsbelastningsidentiteten. | sann | sträng |
Har spec.configuration följande underordnade egenskaper.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| Väljare | Listan över väljare för nyckel/värde-filtrering. | falskt | objektmatris |
| trimKeyPrefixes | Listan över nyckelprefix som ska trimmas. | falskt | strängmatris |
| uppdatera | Inställningarna för att uppdatera nyckelvärden från Azure App Configuration. Om egenskapen saknas uppdateras inte nyckelvärdena från Azure App Configuration. | falskt | objekt |
Om egenskapen spec.configuration.selectors inte har angetts laddas alla nyckelvärden utan etikett ned. Den innehåller en matris med väljareobjekt som har följande underordnade egenskaper. Observera att nyckelvärdena för den senaste väljaren har företräde och åsidosätter eventuella överlappande nycklar från föregående väljare.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| keyFilter | Nyckelfiltret för att köra frågor mot nyckelvärden. Den här egenskapen och egenskapen snapshotName bör inte anges samtidigt. |
alternativ | sträng |
| labelFilter | Etikettfiltret för att köra frågor mot nyckelvärden. Den här egenskapen och egenskapen snapshotName bör inte anges samtidigt. |
falskt | sträng |
| snapshotName | Namnet på en ögonblicksbild som nyckelvärden läses in från. Den här egenskapen ska inte användas tillsammans med andra egenskaper. | alternativ | sträng |
Egenskapen spec.configuration.refresh har följande underordnade egenskaper.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| Aktiverad | Inställningen som avgör om nyckelvärden från Azure App Configuration uppdateras automatiskt. Om egenskapen saknas används standardvärdet false för . |
falskt | Bool |
| övervakning | Nyckelvärdena som övervakas för ändringsidentifiering, t.ex. sentinel-nycklar. Nyckelvärdena från Azure App Configuration uppdateras endast om minst ett av de övervakade nyckelvärdena ändras. Om den här egenskapen saknas övervakas alla valda nyckelvärden för uppdatering. | falskt | objekt |
| intervall | Det intervall med vilket nyckelvärdena uppdateras från Azure App Configuration. Den måste vara större än eller lika med 1 sekund. Om egenskapen saknas används standardvärdet 30 sekunder. | falskt | varaktighetssträng |
spec.configuration.refresh.monitoring.keyValues är en matris med objekt som har följande underordnade egenskaper.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| nyckel | Nyckeln för ett nyckelvärde. | sann | sträng |
| etikett | Etiketten för ett nyckelvärde. | falskt | sträng |
Egenskapen spec.secret har följande underordnade egenskaper. Det krävs om några Key Vault-referenser förväntas laddas ned. Mer information om stöd för inbyggda Kubernetes-typer av hemligheter finns i Typer av hemlighet.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| mål | Målet för de hämtade hemligheterna i Kubernetes. | sann | objekt |
| författare | Autentiseringsmetoden för åtkomst till Key Vaults. | falskt | objekt |
| uppdatera | Inställningarna för att uppdatera data från Key Vaults. Om egenskapen saknas uppdateras inte data från Key Vaults om inte motsvarande Key Vault-referenser läses in igen. | falskt | objekt |
Egenskapen spec.secret.target har följande underordnade egenskap.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| hemligtNamn | Namnet på Den Kubernetes-hemlighet som ska skapas. | sann | sträng |
| secretData | Inställningen som anger hur hämtade data ska fyllas i i den genererade hemligheten. | sann | sträng |
Om egenskapen spec.secret.target.secretData inte har angetts fylls den genererade hemligheten i med listan över nyckelvärden som hämtats från Key Vaults, vilket gör att hemligheten kan användas som miljövariabler. Uppdatera den här egenskapen om du vill använda hemligheten som en monterad fil. Den här egenskapen har följande underordnade egenskaper.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| typ | Inställningen som anger hur hämtade data konstrueras i den genererade hemligheten. De tillåtna värdena är default, jsonoch yamlproperties . |
valfri | sträng |
| nyckel | Nyckelnamnet för hämtade data när type är inställt på json, yaml eller properties. Ange namnet på filen om hemligheten har konfigurerats för att användas som en monterad fil. |
villkorlig | sträng |
| separator | Avgränsare som används för att mata ut hemliga data i hierarkiskt format när typen är inställd på json eller yaml. Avgränsaren är tom som standard och den genererade hemligheten innehåller nyckelvärden i sin ursprungliga form. Konfigurera endast den här inställningen om den konfigurationsfilinläsare som används i ditt program inte kan läsa in nyckelvärden utan att konvertera dem till det hierarkiska formatet. |
valfri | sträng |
Om egenskapen spec.secret.auth inte har angetts används den systemtilldelade hanterade identiteten. Den har följande underordnade egenskaper.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| servicePrincipalReference | Namnet på Kubernetes Secret som innehåller autentiseringsuppgifterna för ett tjänsthuvudnamn som används för autentisering med Key Vaults som inte har angett enskilda autentiseringsmetoder. | falskt | sträng |
| workloadIdentity (arbetsbelastning) | Inställningarna för den arbetsbelastningsidentitet som används för autentisering med Key Vaults som inte har enskilda autentiseringsmetoder angivna. Den har samma underordnade egenskap som spec.auth.workloadIdentity. |
falskt | objekt |
| managedIdentityClientId | Klient-ID för en användartilldelad hanterad identitet för vm-skalningsuppsättning som används för autentisering med Key Vaults som inte har angett enskilda autentiseringsmetoder. | falskt | sträng |
| keyVaults (på engelska) | Autentiseringsmetoderna för enskilda Key Vaults. | falskt | objektmatris |
Autentiseringsmetoden för varje Key Vault kan anges med följande egenskaper. En av managedIdentityClientId, servicePrincipalReference eller workloadIdentity måste anges.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| URI | URI:n för ett Key Vault. | sann | sträng |
| servicePrincipalReference | Namnet på Kubernetes Secret som innehåller autentiseringsuppgifterna för ett tjänsthuvudnamn som används för autentisering med ett Key Vault. | falskt | sträng |
| workloadIdentity (arbetsbelastning) | Inställningarna för den arbetsbelastningsidentitet som används för autentisering med ett Key Vault. Den har samma underordnade egenskap som spec.auth.workloadIdentity. |
falskt | objekt |
| managedIdentityClientId | Klient-ID för en användartilldelad hanterad identitet för vm-skalningsuppsättning som används för autentisering med ett Key Vault. | falskt | sträng |
Egenskapen spec.secret.refresh har följande underordnade egenskaper.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| Aktiverad | Inställningen som avgör om data från Key Vaults uppdateras automatiskt. Om egenskapen saknas används standardvärdet false för . |
falskt | Bool |
| intervall | Intervallet då data uppdateras från Key Vault. Den måste vara större än eller lika med 1 minut. Key Vault-uppdateringen är oberoende av appkonfigurationsuppdateringen som konfigurerats via spec.configuration.refresh. |
sann | varaktighetssträng |
Egenskapen spec.featureFlag har följande underordnade egenskaper. Det krävs om några funktionsflaggor förväntas laddas ned.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| Väljare | Listan över väljare för funktionsflaggafiltrering. | falskt | objektmatris |
| uppdatera | Inställningarna för att uppdatera funktionsflaggor från Azure App Configuration. Om egenskapen saknas uppdateras inte funktionsflaggor från Azure App Configuration. | falskt | objekt |
Om egenskapen spec.featureFlag.selectors inte har angetts laddas inte funktionsflaggor ned. Den innehåller en matris med väljareobjekt som har följande underordnade egenskaper. Observera att funktionsflaggor för den senaste väljaren har företräde och åsidosätter eventuella överlappande nycklar från föregående väljare.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| keyFilter | Nyckelfiltret för att fråga efter funktionsflaggor. Den här egenskapen och egenskapen snapshotName bör inte anges samtidigt. |
alternativ | sträng |
| labelFilter | Etikettfiltret för att fråga efter funktionsflaggor. Den här egenskapen och egenskapen snapshotName bör inte anges samtidigt. |
falskt | sträng |
| snapshotName | Namnet på en ögonblicksbild som funktionsflaggor läses in från. Den här egenskapen ska inte användas tillsammans med andra egenskaper. | alternativ | sträng |
Egenskapen spec.featureFlag.refresh har följande underordnade egenskaper.
| Namn | beskrivning | Obligatoriskt | Typ |
|---|---|---|---|
| Aktiverad | Inställningen som avgör om funktionsflaggor från Azure App Configuration uppdateras automatiskt. Om egenskapen saknas används standardvärdet false för . |
falskt | Bool |
| intervall | Det intervall med vilket funktionsflaggor uppdateras från Azure App Configuration. Den måste vara större än eller lika med 1 sekund. Om egenskapen saknas används standardvärdet 30 sekunder. | falskt | varaktighetssträng |
Installation
Använd följande helm install kommando för att installera Kubernetes-providern för Azure App Configuration. Se helm-values.yaml för den fullständiga listan över parametrar och deras standardvärden. Du kan åsidosätta standardvärdena genom att skicka --set flaggan till kommandot .
helm install azureappconfiguration.kubernetesprovider \
oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
--namespace azappconfig-system \
--create-namespace
Automatisk skalning
Som standard inaktiveras automatisk skalning. Men om du har flera AzureAppConfigurationProvider resurser för att skapa flera ConfigMaps/Secrets kan du aktivera horisontell automatisk skalning av poddar genom att ange autoscaling.enabled till true.
helm install azureappconfiguration.kubernetesprovider \
oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
--namespace azappconfig-system \
--create-namespace
--set autoscaling.enabled=true
Datainsamling
Programvaran kan samla in information om dig och din användning av programvaran och skicka den till Microsoft. Microsoft kan använda denna information för att tillhandahålla tjänster och förbättra våra produkter och tjänster. Du kan inaktivera telemetrin genom att ange requestTracing.enabled=false när du installerar Kubernetes-providern för Azure App Configuration. Det finns också vissa funktioner i programvaran som kan göra det möjligt för dig och Microsoft att samla in data från användare av dina program. Om du använder dessa funktioner måste du följa tillämplig lag, inklusive att tillhandahålla lämpliga meddelanden till användare av dina program tillsammans med en kopia av Microsofts sekretesspolicy. Vår sekretesspolicy finns på https://go.microsoft.com/fwlink/?LinkID=824704. Du kan lära dig mer om datainsamling och användning i hjälpdokumentationen och vår sekretesspolicy. Genom att använda programvaran samtycker du till dessa rutiner.
Exempel
Autentisering
Använda systemtilldelad hanterad identitet för VM-skalningsuppsättning
Aktivera den systemtilldelade hanterade identiteten i vm-skalningsuppsättningen som används av AKS-klustret (Azure Kubernetes Service).
Bevilja rollen systemtilldelad hanterad identitetsappkonfigurationsdataläsare i Azure App Configuration.
Distribuera följande exempelresurs
AzureAppConfigurationProvidertill AKS-klustret.apiVersion: azconfig.io/v1 kind: AzureAppConfigurationProvider metadata: name: appconfigurationprovider-sample spec: endpoint: <your-app-configuration-store-endpoint> target: configMapName: configmap-created-by-appconfig-provider
Använda användartilldelad hanterad identitet för VM-skalningsuppsättning
Skapa en användartilldelad hanterad identitet och anteckna dess klient-ID när du har skapat den.
Tilldela den användartilldelade hanterade identiteten till vm-skalningsuppsättningen som används av AKS-klustret (Azure Kubernetes Service).
Bevilja rollen användartilldelad hanterad identitet appkonfigurationsdataläsare i Azure App Configuration.
spec.auth.managedIdentityClientIdAnge egenskapen till klient-ID för den användartilldelade hanterade identiteten i följande exempelresursAzureAppConfigurationProvideroch distribuera den till AKS-klustret.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>
Använda tjänstens huvudnamn
Ge tjänstens huvudnamn rollen App Configuration Data Reader i Azure App Configuration.
Skapa en Kubernetes-hemlighet i samma namnområde som resursen
AzureAppConfigurationProvideroch lägg till azure_client_id, azure_client_secret och azure_tenant_id av tjänstens huvudnamn i hemligheten.spec.auth.servicePrincipalReferenceAnge egenskapen till namnet på hemligheten i följande exempelresursAzureAppConfigurationProvideroch distribuera den till Kubernetes-klustret.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>
Använda arbetsbelastningsidentitet
Aktivera arbetsbelastningsidentitet i AKS-klustret (Azure Kubernetes Service).
Hämta URL:en för OIDC-utfärdaren för AKS-klustret.
Skapa en användartilldelad hanterad identitet och anteckna dess klient-ID, klient-ID, namn och resursgrupp.
Bevilja rollen användartilldelad hanterad identitet appkonfigurationsdataläsare i Azure App Configuration.
Skapa ett tjänstkonto genom att lägga till en YAML-fil (t.ex. serviceAccount.yaml) med följande innehåll i katalogen som innehåller dina AKS-distributionsfiler. Tjänstkontot skapas när du tillämpar alla distributionsändringar på ditt AKS-kluster (t.ex. med ).
kubectl applyErsätt<your-managed-identity-client-id>med klient-ID:t och<your-managed-identity-tenant-id>med klient-ID:t för den användartilldelade hanterade identiteten som just har skapats. Ersätt<your-service-account-name>med önskat namn.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>Skapa en federerad identitetsautentiseringsuppgift för den användartilldelade hanterade identiteten med hjälp av Azure CLI. Ersätt
<user-assigned-identity-name>med namnet och<resource-group>med resursgruppen för den nyligen skapade användartilldelade hanterade identiteten. Ersätt<aks-oidc-issuer>med OIDC-utfärdarens URL för AKS-klustret. Ersätt<your-service-account-name>med namnet på det nyligen skapade tjänstkontot. Ersätt<federated-identity-credential-name>med önskat namn för den federerade identitetsautentiseringsuppgiften.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://AzureADTokenExchangeObservera att ämnet för den federerade identitetsautentiseringsuppgiften bör följa det här formatet:
system:serviceaccount:<service-account-namespace>:<service-account-name>.spec.auth.workloadIdentity.serviceAccountNameAnge egenskapen till namnet på tjänstkontot i följande exempelresursAzureAppConfigurationProvider. Se till att resursenAzureAppConfigurationProvideroch tjänstkontot finns i samma namnområde.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>
Använda anslutningssträng
Skapa en Kubernetes-hemlighet i samma namnområde som resursen
AzureAppConfigurationProvideroch lägg till Azure App Configuration anslutningssträng med nyckeln azure_app_configuration_connection_string i hemligheten.spec.connectionStringReferenceAnge egenskapen till namnet på hemligheten i följande exempelresursAzureAppConfigurationProvideroch distribuera den till Kubernetes-klustret.apiVersion: azconfig.io/v1 kind: AzureAppConfigurationProvider metadata: name: appconfigurationprovider-sample spec: connectionStringReference: <your-connection-string-secret-name> target: configMapName: configmap-created-by-appconfig-provider
Val av nyckelvärde
Använd egenskapen selectors för att filtrera de nyckelvärden som ska laddas ned från Azure App Configuration.
Följande exempel laddar ned alla nyckelvärden utan etikett.
apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
name: appconfigurationprovider-sample
spec:
endpoint: <your-app-configuration-store-endpoint>
target:
configMapName: configmap-created-by-appconfig-provider
I följande exempel används två väljare för att hämta två uppsättningar nyckelvärden, var och en med unika etiketter. Observera att värdena för den senaste väljaren har företräde och åsidosätter eventuella överlappande nycklar från föregående väljare.
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
En ögonblicksbild kan användas ensam eller tillsammans med andra nyckel/värde-väljare. I följande exempel läser du in nyckelvärden för gemensam konfiguration från en ögonblicksbild och åsidosätter sedan några av dem med nyckelvärden för utveckling.
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
Trimning av nyckelprefix
I följande exempel används trimKeyPrefixes egenskapen för att trimma två prefix från nyckelnamn innan du lägger till dem i den genererade ConfigMap.
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]
Konfigurationsuppdatering
När du gör ändringar i dina data i Azure App Configuration kanske du vill att ändringarna ska uppdateras automatiskt i Kubernetes-klustret. I följande exempel kontrollerar Kubernetes-providern Azure App Configuration efter uppdateringar varje minut. Den associerade ConfigMap och hemligheten återskapas endast när ändringar identifieras. Mer information om hur du övervakar konfigurationsändringar finns i Metodtips för konfigurationsuppdatering.
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
Key Vault-referenser
Autentisering
I följande exempel autentiseras ett Key Vault med tjänstens huvudnamn, medan alla andra Nyckelvalv autentiseras med en användartilldelad hanterad identitet.
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>
Typer av hemlighet
Två inbyggda Kubernetes-typer av hemligheter, Opaque och TLS, stöds för närvarande. Hemligheter som matchas från Key Vault-referenser sparas som ogenomskinlig hemlighetstyp som standard. Om du har en Key Vault-referens till ett certifikat och vill spara det som TLS-hemlighetstyp kan du lägga till en tagg med följande namn och värde i Key Vault-referensen i Azure App Configuration. På så sätt genereras en hemlighet med kubernetes.io/tls typen och namnges efter nyckeln i Key Vault-referensen.
| Namn | Värde |
|---|---|
| .kubernetes.secret.type | kubernetes.io/tls |
I följande exempel visas hur data fylls i i de genererade hemligheterna med olika typer.
Förutsatt att ett App Configuration Store har följande Key Vault-referenser:
| nyckel | värde | taggar |
|---|---|---|
| app1-secret1 | <Key Vault-referens 1> | {} |
| app1-secret2 | <Key Vault-referens 2> | {} |
| app1-certifikat | <Key Vault-referens 3> | {".kubernetes.secret.type": "kubernetes.io/tls"} |
Följande exempel genererar hemligheter för både Ogenomskinliga och TLS-typer.
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>
De genererade hemligheterna fylls i med följande data:
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>
Uppdatering av hemligheter från Key Vault
Uppdatering av hemligheter från Key Vaults kräver vanligtvis att motsvarande Key Vault-referenser läses in igen från Azure App Configuration. Med egenskapen spec.secret.refresh kan du dock uppdatera hemligheterna från Key Vault oberoende av varandra. Detta är särskilt användbart för att säkerställa att din arbetsbelastning automatiskt hämtar uppdaterade hemligheter från Key Vault under hemlig rotation. Observera att key vault-referensen inte får vara en versionshemlighet om du vill läsa in den senaste versionen av en hemlighet.
Följande exempel uppdaterar alla icke-versioner av hemligheter från Key Vault varje timme.
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
Funktionsflaggor
I följande exempel laddas funktionsflaggor med nycklar som börjar med app1 och etiketter som motsvarar common ned och uppdateras var 10:e minut. Observera att om du vill fylla i funktionsflaggor i den genererade ConfigMap configMapData.type måste egenskapen vara json eller 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
Uppdatering på begäran
Du kan konfigurera automatisk datauppdatering, men det finns tillfällen då du kanske vill utlösa en uppdatering på begäran för att hämta de senaste data från App Configuration och Key Vault. Detta kan göras genom att lägga till eller uppdatera eventuella anteckningar i metadata.annotations avsnittet i AzureAppConfigurationProvider. Kubernetes-providern kommer sedan att stämma av och uppdatera ConfigMap och Secret med de senaste data från ditt App Configuration Store och Key Vault.
I följande exempel uppdateras med AzureAppConfigurationProvider en ny anteckning. Efter ändringen tillämpar du ändringarna med för kubectl apply att utlösa en uppdatering på begäran.
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>
ConfigMap-förbrukning
Program som körs i Kubernetes använder vanligtvis ConfigMap antingen som miljövariabler eller som konfigurationsfiler. Om egenskapen configMapData.type saknas eller är inställd på standard fylls ConfigMap i med den specificerade listan över data som hämtats från Azure App Configuration, som enkelt kan användas som miljövariabler. Om egenskapen configMapData.type är inställd på json, yaml eller egenskaper grupperas data som hämtats från Azure App Configuration i ett objekt med nyckelnamnet som anges av configMapData.key egenskapen i den genererade ConfigMap, som kan användas som en monterad fil.
Följande exempel visar hur data fylls i i den genererade ConfigMap med olika inställningar för configMapData.type egenskapen.
Förutsatt att ett App Configuration Store har följande nyckelvärden:
| nyckel | värde |
|---|---|
| nyckel 1 | värde1 |
| nyckel2 | value2 |
| key3 | value3 |
Och egenskapen configMapData.type är frånvarande eller inställd på 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
Den genererade ConfigMap fylls i med följande data:
data:
key1: value1
key2: value2
key3: value3