Dokumentacja dostawcy platformy Kubernetes konfiguracji aplikacja systemu Azure

W poniższej dokumentacji przedstawiono właściwości obsługiwane przez dostawcę v1.3.0platformy Kubernetes konfiguracji aplikacja systemu Azure . Aby uzyskać więcej informacji na temat zmiany, zobacz informacje o wersji.

Właściwości

Zasób AzureAppConfigurationProvider ma następujące właściwości podrzędne najwyższego poziomu w obszarze spec. connectionStringReference Albo endpoint musi być określony.

Nazwa/nazwisko opis Wymagania Typ
endpoint Punkt końcowy konfiguracji aplikacja systemu Azure, z którego chcesz pobrać wartości klucza. Alternatywnych string
connectionStringReference Nazwa wpisu tajnego kubernetes zawierającego aplikacja systemu Azure Configuration parametry połączenia. Alternatywnych string
replicaDiscoveryEnabled Ustawienie określające, czy repliki aplikacja systemu Azure Configuration są automatycznie odnajdywane i używane do pracy w trybie failover. Jeśli właściwość jest nieobecna, zostanie użyta wartość domyślna true . fałsz bool
target Miejsce docelowe pobranych wartości klucza na platformie Kubernetes. prawda obiekt
auth Metoda uwierzytelniania umożliwiająca dostęp do aplikacja systemu Azure Configuration. fałsz obiekt
konfiguracja Ustawienia służące do wykonywania zapytań i przetwarzania wartości kluczy w aplikacja systemu Azure Configuration. fałsz obiekt
wpis tajny Ustawienia odwołań do usługi Key Vault w aplikacja systemu Azure Configuration. Warunkowe obiekt
featureFlag Ustawienia flag funkcji w konfiguracji aplikacja systemu Azure. fałsz obiekt

Właściwość spec.target ma następującą właściwość podrzędną.

Nazwa/nazwisko opis Wymagania Typ
configMapName Nazwa obiektu ConfigMap do utworzenia. prawda string
configMapData Ustawienie określające sposób wypełniania pobranych danych w wygenerowanej ConfigMap. fałsz obiekt

spec.target.configMapData Jeśli właściwość nie jest ustawiona, wygenerowana mapa ConfigMap zostanie wypełniona listą wartości klucz-pobranych z aplikacja systemu Azure Configuration, która umożliwia użycie obiektu ConfigMap jako zmiennych środowiskowych. Zaktualizuj tę właściwość, jeśli chcesz użyć obiektu ConfigMap jako zainstalowanego pliku. Ta właściwość ma następujące właściwości podrzędne.

Nazwa/nazwisko opis Wymagania Typ
type Ustawienie wskazujące sposób konstruowania pobranych danych w wygenerowanym obiekcie ConfigMap. Dozwolone wartości obejmują default, jsonyaml i properties. optional string
key Nazwa klucza pobranych danych, gdy type parametr jest ustawiony na json, yaml lub properties. Ustaw ją na nazwę pliku, jeśli ConfigMap jest skonfigurowany do korzystania z pliku zainstalowanego. Warunkowe string
Separator Ogranicznik używany do wyprowadzania danych ConfigMap w formacie hierarchicznym, gdy typ jest ustawiony na json wartość lub yaml. Separator jest domyślnie pusty, a wygenerowany obiekt ConfigMap zawiera wartości klucza w ich oryginalnej formie. Skonfiguruj to ustawienie tylko wtedy, gdy moduł ładujący plików konfiguracji używany w aplikacji nie może załadować wartości klucz-wartość bez konwertowania ich na format hierarchiczny. optional string

Właściwość nie jest wymaganaspec.auth, jeśli parametry połączenia magazynu usługi App Configuration jest udostępniana przez ustawienie spec.connectionStringReference właściwości . W przeciwnym razie jedna z tożsamości, jednostki usługi, tożsamości obciążenia lub tożsamości zarządzanej jest używana do uwierzytelniania. Obiekt spec.auth ma następujące właściwości podrzędne. Należy określić tylko jeden z nich. Jeśli żadna z nich nie zostanie ustawiona, zostanie użyta tożsamość zarządzana przypisana przez system zestawu skalowania maszyn wirtualnych.

Nazwa/nazwisko opis Wymagania Typ
servicePrincipalReference Nazwa wpisu tajnego kubernetes zawierającego poświadczenia jednostki usługi. Wpis tajny musi znajdować się w tej samej przestrzeni nazw co dostawca Kubernetes. fałsz string
workloadIdentity Ustawienia korzystania z tożsamości obciążenia. fałsz obiekt
managedIdentityClientId Identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika zestawu skalowania maszyn wirtualnych. fałsz string

Właściwość spec.auth.workloadIdentity ma następujące właściwości podrzędne. Należy określić jeden z nich.

Nazwa/nazwisko opis Wymagania Typ
managedIdentityClientId Identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika skojarzony z tożsamością obciążenia. Alternatywnych string
managedIdentityClientIdReference Identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika można uzyskać z obiektu ConfigMap. ConfigMap musi znajdować się w tej samej przestrzeni nazw co dostawca Kubernetes. Alternatywnych obiekt

Właściwość spec.auth.workloadIdentity.managedIdentityClientIdReference ma następujące właściwości podrzędne.

Nazwa/nazwisko opis Wymagania Typ
configMap Nazwa ConfigMap, w której można znaleźć identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika. prawda string
key Nazwa klucza, która zawiera wartość identyfikatora klienta tożsamości zarządzanej przypisanej przez użytkownika. prawda string

Obiekt spec.configuration ma następujące właściwości podrzędne.

Nazwa/nazwisko opis Wymagania Typ
Selektory Lista selektorów filtrowania klucz-wartość. fałsz tablica obiektów
trimKeyPrefixes Lista prefiksów kluczy do przycinania. fałsz tablica ciągów
Odśwież Ustawienia odświeżania wartości kluczy z aplikacja systemu Azure Configuration. Jeśli właściwość jest nieobecna, wartości klucz-wartość z aplikacja systemu Azure Configuration nie są odświeżane. fałsz obiekt

spec.configuration.selectors Jeśli właściwość nie jest ustawiona, zostaną pobrane wszystkie wartości klucz-wartość bez etykiety. Zawiera tablicę obiektów selektora, które mają następujące właściwości podrzędne. Należy pamiętać, że wartości klucza ostatniego selektora mają pierwszeństwo i zastępują wszystkie nakładające się klucze z poprzednich selektorów.

Nazwa/nazwisko opis Wymagania Typ
keyFilter Filtr klucza do wykonywania zapytań dotyczących wartości klucz-wartość. Ta właściwość i snapshotName właściwość nie powinny być ustawiane w tym samym czasie. Alternatywnych string
labelFilter Filtr etykiety do wykonywania zapytań dotyczących wartości klucz-wartość. Ta właściwość i snapshotName właściwość nie powinny być ustawiane w tym samym czasie. fałsz string
snapshotName Nazwa migawki, z której są ładowane wartości klucza. Ta właściwość nie powinna być używana w połączeniu z innymi właściwościami. Alternatywnych string

Właściwość spec.configuration.refresh ma następujące właściwości podrzędne.

Nazwa/nazwisko opis Wymagania Typ
enabled Ustawienie określające, czy wartości klucz-wartość z aplikacja systemu Azure Configuration są automatycznie odświeżane. Jeśli właściwość jest nieobecna, zostanie użyta wartość domyślna false . fałsz bool
monitorowanie Wartości klucza monitorowane pod kątem wykrywania zmian, czyli kluczy sentinel. Wartości klucz-z aplikacja systemu Azure Configuration są odświeżane tylko wtedy, gdy zostanie zmieniony co najmniej jeden z monitorowanych wartości kluczy. prawda obiekt
interval Interwał odświeżania wartości klucza z aplikacja systemu Azure Configuration. Musi być większy lub równy 1 sekundy. Jeśli właściwość jest nieobecna, zostanie użyta wartość domyślna 30 sekund. fałsz ciąg czasu trwania

Jest spec.configuration.refresh.monitoring.keyValues to tablica obiektów, które mają następujące właściwości podrzędne.

Nazwa/nazwisko opis Wymagania Typ
key Klucz klucz-wartość. prawda string
label Etykieta klucza-wartość. fałsz string

Właściwość spec.secret ma następujące właściwości podrzędne. Jest to wymagane, jeśli zostaną pobrane odwołania do usługi Key Vault. Aby dowiedzieć się więcej na temat obsługi wbudowanych typów wpisów tajnych platformy Kubernetes, zobacz Typy wpisów tajnych.

Nazwa/nazwisko opis Wymagania Typ
target Miejsce docelowe pobranych wpisów tajnych na platformie Kubernetes. prawda obiekt
auth Metoda uwierzytelniania w celu uzyskania dostępu do usługi Key Vault. fałsz obiekt
Odśwież Ustawienia odświeżania danych z usługi Key Vault. Jeśli właściwość jest nieobecna, dane z usługi Key Vault nie są odświeżane, chyba że odpowiednie odwołania do usługi Key Vault zostaną ponownie załadowane. fałsz obiekt

Właściwość spec.secret.target ma następującą właściwość podrzędną.

Nazwa/nazwisko opis Wymagania Typ
secretName Nazwa wpisu tajnego kubernetes do utworzenia. prawda string

spec.secret.auth Jeśli właściwość nie jest ustawiona, zostanie użyta tożsamość zarządzana przypisana przez system. Ma następujące właściwości podrzędne.

Nazwa/nazwisko opis Wymagania Typ
servicePrincipalReference Nazwa wpisu tajnego kubernetes zawierającego poświadczenia jednostki usługi używanej do uwierzytelniania w usłudze Key Vault, które nie mają określonych indywidualnych metod uwierzytelniania. fałsz string
workloadIdentity Ustawienia tożsamości obciążenia używanej do uwierzytelniania w usłudze Key Vault, które nie mają określonych indywidualnych metod uwierzytelniania. Ma te same właściwości podrzędne co spec.auth.workloadIdentity. fałsz obiekt
managedIdentityClientId Identyfikator klienta przypisanej przez użytkownika tożsamości zarządzanej zestawu skalowania maszyn wirtualnych używany do uwierzytelniania w usłudze Key Vault, które nie mają określonych indywidualnych metod uwierzytelniania. fałsz string
keyVaults Metody uwierzytelniania dla poszczególnych magazynów kluczy. fałsz tablica obiektów

Metodę uwierzytelniania każdego magazynu kluczy można określić przy użyciu następujących właściwości. managedIdentityClientIdNależy podać jeden z elementów lub servicePrincipalReferenceworkloadIdentity.

Nazwa/nazwisko opis Wymagania Typ
uri Identyfikator URI usługi Key Vault. prawda string
servicePrincipalReference Nazwa wpisu tajnego kubernetes zawierającego poświadczenia jednostki usługi używanej do uwierzytelniania w usłudze Key Vault. fałsz string
workloadIdentity Ustawienia tożsamości obciążenia używanej do uwierzytelniania w usłudze Key Vault. Ma te same właściwości podrzędne co spec.auth.workloadIdentity. fałsz obiekt
managedIdentityClientId Identyfikator klienta przypisanej przez użytkownika tożsamości zarządzanej zestawu skalowania maszyn wirtualnych używany do uwierzytelniania w usłudze Key Vault. fałsz string

Właściwość spec.secret.refresh ma następujące właściwości podrzędne.

Nazwa/nazwisko opis Wymagania Typ
enabled Ustawienie określające, czy dane z usługi Key Vault są automatycznie odświeżane. Jeśli właściwość jest nieobecna, zostanie użyta wartość domyślna false . fałsz bool
interval Interwał odświeżania danych z usługi Key Vault. Musi być większy lub równy 1 minucie. Odświeżanie usługi Key Vault jest niezależne od odświeżania usługi App Configuration skonfigurowanego za pomocą polecenia spec.configuration.refresh. prawda ciąg czasu trwania

Właściwość spec.featureFlag ma następujące właściwości podrzędne. Jest to wymagane, jeśli zostaną pobrane jakiekolwiek flagi funkcji.

Nazwa/nazwisko opis Wymagania Typ
Selektory Lista selektorów filtrowania flag funkcji. fałsz tablica obiektów
Odśwież Ustawienia odświeżania flag funkcji z aplikacja systemu Azure Configuration. Jeśli właściwość jest nieobecna, flagi funkcji z aplikacja systemu Azure Configuration nie są odświeżane. fałsz obiekt

spec.featureFlag.selectors Jeśli właściwość nie jest ustawiona, flagi funkcji nie są pobierane. Zawiera tablicę obiektów selektora, które mają następujące właściwości podrzędne. Należy pamiętać, że flagi funkcji ostatniego selektora mają pierwszeństwo i przesłaniają wszystkie nakładające się klucze z poprzednich selektorów.

Nazwa/nazwisko opis Wymagania Typ
keyFilter Filtr klucza dla flag funkcji wykonywania zapytań. Ta właściwość i snapshotName właściwość nie powinny być ustawiane w tym samym czasie. Alternatywnych string
labelFilter Filtr etykiety dla flag funkcji kwerendy. Ta właściwość i snapshotName właściwość nie powinny być ustawiane w tym samym czasie. fałsz string
snapshotName Nazwa migawki, z której są ładowane flagi funkcji. Ta właściwość nie powinna być używana w połączeniu z innymi właściwościami. Alternatywnych string

Właściwość spec.featureFlag.refresh ma następujące właściwości podrzędne.

Nazwa/nazwisko opis Wymagania Typ
enabled Ustawienie określające, czy flagi funkcji z aplikacja systemu Azure Configuration są automatycznie odświeżane. Jeśli właściwość jest nieobecna, zostanie użyta wartość domyślna false . fałsz bool
interval Interwał odświeżania flag funkcji z aplikacja systemu Azure Configuration. Musi być większy lub równy 1 sekundy. Jeśli właściwość jest nieobecna, zostanie użyta wartość domyślna 30 sekund. fałsz ciąg czasu trwania

Instalacja

Użyj następującego helm install polecenia, aby zainstalować dostawcę kubernetes konfiguracji aplikacja systemu Azure. Zobacz helm-values.yaml , aby uzyskać pełną listę parametrów i ich wartości domyślnych. Wartości domyślne można zastąpić, przekazując flagę --set do polecenia .

helm install azureappconfiguration.kubernetesprovider \
    oci://mcr.microsoft.com/azure-app-configuration/helmchart/kubernetes-provider \
    --namespace azappconfig-system \
    --create-namespace

Skalowanie automatyczne

Domyślnie skalowanie automatyczne jest wyłączone. Jeśli jednak masz wiele zasobów do utworzenia wielu AzureAppConfigurationProvider konfiguracji Mapy/wpisów tajnych, możesz włączyć skalowanie automatyczne zasobników w poziomie, ustawiając wartość autoscaling.enabled .true

Przykłady

Uwierzytelnianie

Używanie przypisanej przez system tożsamości zarządzanej zestawu skalowania maszyn wirtualnych

  1. Włącz tożsamość zarządzaną przypisaną przez system w zestawie skalowania maszyn wirtualnych używanym przez klaster usługi Azure Kubernetes Service (AKS).

  2. Udziel przypisanej przez system roli Czytelnik danych konfiguracji aplikacji tożsamości zarządzanej w usłudze aplikacja systemu Azure Configuration.

  3. Wdróż następujący przykładowy AzureAppConfigurationProvider zasób w klastrze usługi 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
    

Używanie tożsamości zarządzanej przypisanej przez użytkownika zestawu skalowania maszyn wirtualnych

  1. Utwórz tożsamość zarządzaną przypisaną przez użytkownika i zanotuj jej identyfikator klienta po utworzeniu.

  2. Przypisz tożsamość zarządzaną przypisaną przez użytkownika do zestawu skalowania maszyn wirtualnych używanego przez klaster usługi Azure Kubernetes Service (AKS).

  3. Udziel przypisanej przez użytkownika roli Czytelnik danych usługi App Configuration w usłudze aplikacja systemu Azure Configuration.

  4. spec.auth.managedIdentityClientId Ustaw właściwość na identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika w poniższym przykładowym AzureAppConfigurationProvider zasobie i wdróż ją w klastrze usługi 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>
    

Korzystanie z jednostki usługi

  1. Tworzenie jednostki usługi

  2. Przyznaj jednostce usługi rolę Czytelnik danych konfiguracji aplikacji w usłudze aplikacja systemu Azure Configuration.

  3. Utwórz wpis tajny Kubernetes w tej samej przestrzeni nazw co AzureAppConfigurationProvider zasób i dodaj azure_client_id, azure_client_secret i azure_tenant_id jednostki usługi do wpisu tajnego.

  4. spec.auth.servicePrincipalReference Ustaw właściwość na nazwę wpisu tajnego w następującym przykładowym AzureAppConfigurationProvider zasobie i wdróż ją w klastrze 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>
    

Korzystanie z tożsamości obciążenia

  1. Włącz tożsamość obciążenia w klastrze usługi Azure Kubernetes Service (AKS).

  2. Pobierz adres URL wystawcy OIDC klastra usługi AKS.

  3. Utwórz tożsamość zarządzaną przypisaną przez użytkownika i zanotuj jej identyfikator klienta po utworzeniu.

  4. Utwórz poświadczenie tożsamości federacyjnej między tożsamością zarządzaną, wystawcą OIDC i podmiotem przy użyciu interfejsu wiersza polecenia platformy Azure.

    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:azappconfig-system:az-appconfig-k8s-provider --audience api://AzureADTokenExchange
    
  5. Udziel przypisanej przez użytkownika roli Czytelnik danych usługi App Configuration w usłudze aplikacja systemu Azure Configuration.

  6. spec.auth.workloadIdentity.managedIdentityClientId Ustaw właściwość na identyfikator klienta tożsamości zarządzanej przypisanej przez użytkownika w poniższym przykładowym AzureAppConfigurationProvider zasobie i wdróż ją w klastrze usługi 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:
        workloadIdentity:
          managedIdentityClientId: <your-managed-identity-client-id>
    

Korzystanie z parametry połączenia

  1. Utwórz wpis tajny kubernetes w tej samej przestrzeni nazw co AzureAppConfigurationProvider zasób i dodaj aplikacja systemu Azure Configuration parametry połączenia z kluczem azure_app_configuration_connection_string w kluczu tajnym.

  2. spec.connectionStringReference Ustaw właściwość na nazwę wpisu tajnego w następującym przykładowym AzureAppConfigurationProvider zasobie i wdróż ją w klastrze 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
    

Wybór wartości klucza

selectors Użyj właściwości , aby filtrować wartości klucza do pobrania z aplikacja systemu Azure Configuration.

Poniższy przykład pobiera wszystkie wartości klucza bez etykiety.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider

W poniższym przykładzie dwa selektory są używane do pobierania dwóch zestawów klucz-wartości, z których każda ma unikatowe etykiety. Należy pamiętać, że wartości ostatniego selektora mają pierwszeństwo i zastępują wszystkie nakładające się klucze z poprzednich selektorów.

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

Migawka może być używana samodzielnie lub razem z innymi selektorami klucz-wartość. W poniższym przykładzie załadujesz wartości kluczy wspólnej konfiguracji z migawki, a następnie zastąpisz niektóre z nich kluczami do programowania.

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

Przycinanie prefiksu klucza

W poniższym przykładzie użyto trimKeyPrefixes właściwości do przycinania dwóch prefiksów z nazw kluczy przed dodaniem ich do wygenerowanej 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]

Odświeżanie konfiguracji

Po wprowadzeniu zmian w danych w konfiguracji aplikacja systemu Azure może być konieczne automatyczne odświeżenie tych zmian w klastrze Kubernetes. Często aktualizuje się wiele wartości klucz-wartość, ale nie chcesz, aby klaster pobierał zmianę w połowie aktualizacji. Aby zachować spójność konfiguracji, możesz użyć klucza-wartość, aby zasygnalizować ukończenie aktualizacji. Ta wartość klucza jest znana jako klucz sentinel. Dostawca Kubernetes może monitorować tę wartość klucza, a ConfigMap i Secret zostaną ponownie wygenerowane tylko przy użyciu zaktualizowanych danych po wykryciu zmiany w kluczu sentinel.

W poniższym przykładzie wartość klucza o nazwie app1_sentinel jest sondowana co minutę, a konfiguracja jest odświeżona za każdym razem, gdy zmiany zostaną wykryte w kluczu sentinel.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  configuration:
    selectors:
      - keyFilter: app1*
        labelFilter: common
    refresh:
      enabled: true
      interval: 1m
      monitoring:
        keyValues:
          - key: app1_sentinel
            label: common

Odwołania do usługi Key Vault

Uwierzytelnianie

W poniższym przykładzie jedna usługa Key Vault jest uwierzytelniana przy użyciu jednostki usługi, podczas gdy wszystkie inne magazyny kluczy są uwierzytelniane przy użyciu tożsamości zarządzanej przypisanej przez użytkownika.

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>

Typy wpisów tajnych

Obecnie obsługiwane są dwa wbudowane typy wpisów tajnych kubernetes, nieprzezroczyste i TLS. Wpisy tajne rozpoznawane z odwołań usługi Key Vault są domyślnie zapisywane jako nieprzezroczystym typem wpisu tajnego. Jeśli masz odwołanie do magazynu kluczy do certyfikatu i chcesz zapisać go jako typ wpisu tajnego protokołu TLS, możesz dodać tag o następującej nazwie i wartości do odwołania do usługi Key Vault w aplikacja systemu Azure Configuration. W ten sposób zostanie wygenerowany wpis tajny z kubernetes.io/tls typem i nazwany po kluczu odwołania do usługi Key Vault.

Nazwa/nazwisko Wartość
.kubernetes.secret.type kubernetes.io/tls

Odświeżanie wpisów tajnych z usługi Key Vault

Odświeżanie wpisów tajnych z usługi Key Vault zwykle wymaga ponownego załadowania odpowiednich odwołań usługi Key Vault z aplikacja systemu Azure Configuration. Jednak za pomocą spec.secret.refresh właściwości można niezależnie odświeżyć wpisy tajne z usługi Key Vault. Jest to szczególnie przydatne w przypadku zapewnienia, że obciążenie automatycznie pobiera wszystkie zaktualizowane wpisy tajne z usługi Key Vault podczas rotacji wpisów tajnych. Należy pamiętać, że aby załadować najnowszą wersję wpisu tajnego, odwołanie do usługi Key Vault nie może być wpisem tajnym w wersji.

Poniższy przykład odświeża wszystkie nieodświeżone wpisy tajne z usługi Key Vault co godzinę.

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

Flagi funkcji

W poniższym przykładzie flagi funkcji z kluczami rozpoczynającymi się od app1 i etykiety równoważne common są pobierane i odświeżane co 10 minut.

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider
  featureFlag:
    selectors:
      - keyFilter: app1*
        labelFilter: common
    refresh:
      enabled: true
      interval: 10m

Użycie obiektu ConfigMap

Aplikacje uruchomione na platformie Kubernetes zwykle używają obiektu ConfigMap jako zmiennych środowiskowych lub plików konfiguracji. configMapData.type Jeśli właściwość jest nieobecna lub jest ustawiona na wartość domyślną, obiekt ConfigMap jest wypełniany elementami listy danych pobranych z aplikacja systemu Azure Configuration, które można łatwo użyć jako zmiennych środowiskowych. configMapData.type Jeśli właściwość jest ustawiona na json, yaml lub właściwości, dane pobrane z aplikacja systemu Azure Configuration są pogrupowane w jeden element o nazwie klucza określonej przez configMapData.key właściwość w wygenerowanej ConfigMap, która może być używana jako zainstalowany plik.

W poniższych przykładach pokazano, jak dane są wypełniane w wygenerowanej ConfigMap z różnymi ustawieniami configMapData.type właściwości.

Zakładając, że magazyn usługi App Configuration ma następujące wartości klucza:

key wartość
klucz1 wartość1
klucz2 value2
key3 value3

Właściwość jest nieobecna configMapData.type lub ustawiona na defaultwartość ,

apiVersion: azconfig.io/v1
kind: AzureAppConfigurationProvider
metadata:
  name: appconfigurationprovider-sample
spec:
  endpoint: <your-app-configuration-store-endpoint>
  target:
    configMapName: configmap-created-by-appconfig-provider

Wygenerowany obiekt ConfigMap jest wypełniany następującymi danymi:

data:
  key1: value1
  key2: value2
  key3: value3