Kubernetes-providerreferens för Azure App Configuration
Följande referens beskriver de egenskaper som stöds av Kubernetes-providern v2.1.0
för Azure App Configuration . 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.
Name | 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. | true | 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.
Name | beskrivning | Obligatoriskt | Typ |
---|---|---|---|
configMapName | Namnet på den ConfigMap som ska skapas. | true | 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.
Name | beskrivning | Obligatoriskt | Typ |
---|---|---|---|
type | Inställningen som anger hur hämtade data konstrueras i den genererade ConfigMap. De tillåtna värdena är default , json och properties yaml . |
valfri | sträng |
key | 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.
Name | 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 | 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.
Name | beskrivning | Obligatoriskt | Typ |
---|---|---|---|
serviceAccountName | Namnet på det tjänstkonto som är associerat med arbetsbelastningsidentiteten. | true | sträng |
Har spec.configuration
följande underordnade egenskaper.
Name | 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.
Name | 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.
Name | beskrivning | Obligatoriskt | Typ |
---|---|---|---|
enabled | 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 |
interval | 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.
Name | beskrivning | Obligatoriskt | Typ |
---|---|---|---|
key | Nyckeln för ett nyckelvärde. | true | sträng |
label | 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.
Name | beskrivning | Obligatoriskt | Typ |
---|---|---|---|
mål | Målet för de hämtade hemligheterna i Kubernetes. | true | 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.
Name | beskrivning | Obligatoriskt | Typ |
---|---|---|---|
secretName | Namnet på Den Kubernetes-hemlighet som ska skapas. | true | sträng |
Om egenskapen spec.secret.auth
inte har angetts används den systemtilldelade hanterade identiteten. Den har följande underordnade egenskaper.
Name | 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 | 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 | 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.
Name | beskrivning | Obligatoriskt | Typ |
---|---|---|---|
uri | URI:n för ett Key Vault. | true | 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 | 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.
Name | beskrivning | Obligatoriskt | Typ |
---|---|---|---|
enabled | 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 |
interval | 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 . |
true | varaktighetssträng |
Egenskapen spec.featureFlag
har följande underordnade egenskaper. Det krävs om några funktionsflaggor förväntas laddas ned.
Name | 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.
Name | 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.
Name | beskrivning | Obligatoriskt | Typ |
---|---|---|---|
enabled | 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 |
interval | 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
AzureAppConfigurationProvider
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
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.managedIdentityClientId
Ange egenskapen till klient-ID för den användartilldelade hanterade identiteten i följande exempelresursAzureAppConfigurationProvider
och 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
AzureAppConfigurationProvider
och lägg till azure_client_id, azure_client_secret och azure_tenant_id av tjänstens huvudnamn i hemligheten.spec.auth.servicePrincipalReference
Ange egenskapen till namnet på hemligheten i följande exempelresursAzureAppConfigurationProvider
och 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 apply
Ersä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://AzureADTokenExchange
Observera 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.serviceAccountName
Ange egenskapen till namnet på tjänstkontot i följande exempelresursAzureAppConfigurationProvider
. Se till att resursenAzureAppConfigurationProvider
och 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
AzureAppConfigurationProvider
och lägg till Azure App Configuration anslutningssträng med nyckeln azure_app_configuration_connection_string i hemligheten.spec.connectionStringReference
Ange egenskapen till namnet på hemligheten i följande exempelresursAzureAppConfigurationProvider
och 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. Det är vanligt att uppdatera flera nyckelvärden, men du vill inte att klustret ska hämta en ändring halvvägs genom uppdateringen. För att upprätthålla konfigurationskonsekvensen kan du använda ett nyckelvärde för att signalera att uppdateringen har slutförts. Det här nyckelvärdet kallas sentinel-nyckeln. Kubernetes-providern kan övervaka det här nyckelvärdet och ConfigMap och Hemligheten återskapas endast med uppdaterade data när en ändring har identifierats i sentinel-nyckeln.
I följande exempel avsöks ett nyckelvärde med namnet app1_sentinel
varje minut och konfigurationen uppdateras när ändringar identifieras i sentinel-nyckeln.
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
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.
Name | 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:
key | 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
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:
key | värde |
---|---|
key1 | value1 |
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