1
0
Fork 0
mirror of https://github.com/external-secrets/external-secrets.git synced 2024-12-14 11:57:59 +00:00
external-secrets/docs/spec.md
2021-08-25 16:54:16 +02:00

45 KiB
Raw Blame History

Packages:

external-secrets.io/v1alpha1

Package v1alpha1 contains resources for external-secrets

Resource Types:

    AWSAuth

    (Appears on: AWSProvider)

    AWSAuth tells the controller how to do authentication with aws. Only one of secretRef or jwt can be specified. if none is specified the controller will load credentials using the aws sdk defaults.

    Field Description
    secretRef
    AWSAuthSecretRef
    (Optional)
    jwt
    AWSJWTAuth
    (Optional)

    AWSAuthSecretRef

    (Appears on: AWSAuth)

    AWSAuthSecretRef holds secret references for AWS credentials both AccessKeyID and SecretAccessKey must be defined in order to properly authenticate.

    Field Description
    accessKeyIDSecretRef
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector

    The AccessKeyID is used for authentication

    secretAccessKeySecretRef
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector

    The SecretAccessKey is used for authentication

    AWSJWTAuth

    (Appears on: AWSAuth)

    Authenticate against AWS using service account tokens.

    Field Description
    serviceAccountRef
    github.com/external-secrets/external-secrets/apis/meta/v1.ServiceAccountSelector

    AWSProvider

    (Appears on: SecretStoreProvider)

    AWSProvider configures a store to sync secrets with AWS.

    Field Description
    service
    AWSServiceType

    Service defines which service should be used to fetch the secrets

    auth
    AWSAuth
    (Optional)

    Auth defines the information necessary to authenticate against AWS if not set aws sdk will infer credentials from your environment see: https://docs.aws.amazon.com/sdk-for-go/v1/developer-guide/configuring-sdk.html#specifying-credentials

    role
    string
    (Optional)

    Role is a Role ARN which the SecretManager provider will assume

    region
    string

    AWS Region to be used for the provider

    AWSServiceType (string alias)

    (Appears on: AWSProvider)

    AWSServiceType is a enum that defines the service/API that is used to fetch the secrets.

    Value Description

    "ParameterStore"

    AWSServiceParameterStore is the AWS SystemsManager ParameterStore. see: https://docs.aws.amazon.com/systems-manager/latest/userguide/systems-manager-parameter-store.html

    "SecretsManager"

    AWSServiceSecretsManager is the AWS SecretsManager. see: https://docs.aws.amazon.com/secretsmanager/latest/userguide/intro.html

    AzureKVAuth

    (Appears on: AzureKVProvider)

    Configuration used to authenticate with Azure.

    Field Description
    clientId
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector

    The Azure clientId of the service principle used for authentication.

    clientSecret
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector

    The Azure ClientSecret of the service principle used for authentication.

    AzureKVProvider

    (Appears on: SecretStoreProvider)

    Configures an store to sync secrets using Azure KV.

    Field Description
    vaultUrl
    string

    Vault Url from which the secrets to be fetched from.

    tenantId
    string

    TenantID configures the Azure Tenant to send requests to.

    authSecretRef
    AzureKVAuth

    Auth configures how the operator authenticates with Azure.

    ClusterSecretStore

    ClusterSecretStore represents a secure external location for storing secrets, which can be referenced as part of storeRef fields.

    Field Description
    metadata
    Kubernetes meta/v1.ObjectMeta
    Refer to the Kubernetes API documentation for the fields of the metadata field.
    spec
    SecretStoreSpec


    controller
    string
    (Optional)

    Used to select the correct KES controller (think: ingress.ingressClassName) The KES controller is instantiated with a specific controller name and filters ES based on this property

    provider
    SecretStoreProvider

    Used to configure the provider. Only one provider may be set

    status
    SecretStoreStatus

    ExternalSecret

    ExternalSecret is the Schema for the external-secrets API.

    Field Description
    metadata
    Kubernetes meta/v1.ObjectMeta
    Refer to the Kubernetes API documentation for the fields of the metadata field.
    spec
    ExternalSecretSpec


    secretStoreRef
    SecretStoreRef
    target
    ExternalSecretTarget
    refreshInterval
    Kubernetes meta/v1.Duration

    RefreshInterval is the amount of time before the values are read again from the SecretStore provider Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h” May be set to zero to fetch and create it once. Defaults to 1h.

    data
    []ExternalSecretData
    (Optional)

    Data defines the connection between the Kubernetes Secret keys and the Provider data

    dataFrom
    []ExternalSecretDataRemoteRef
    (Optional)

    DataFrom is used to fetch all properties from a specific Provider data If multiple entries are specified, the Secret keys are merged in the specified order

    status
    ExternalSecretStatus

    ExternalSecretConditionType (string alias)

    (Appears on: ExternalSecretStatusCondition)

    Value Description

    "Deleted"

    "Ready"

    ExternalSecretCreationPolicy (string alias)

    (Appears on: ExternalSecretTarget)

    ExternalSecretCreationPolicy defines rules on how to create the resulting Secret.

    Value Description

    "Merge"

    Merge does not create the Secret, but merges the data fields to the Secret.

    "None"

    None does not create a Secret (future use with injector).

    "Owner"

    Owner creates the Secret and sets .metadata.ownerReferences to the ExternalSecret resource.

    ExternalSecretData

    (Appears on: ExternalSecretSpec)

    ExternalSecretData defines the connection between the Kubernetes Secret key (spec.data.) and the Provider data.

    Field Description
    secretKey
    string
    remoteRef
    ExternalSecretDataRemoteRef

    ExternalSecretDataRemoteRef

    (Appears on: ExternalSecretData, ExternalSecretSpec)

    ExternalSecretDataRemoteRef defines Provider data location.

    Field Description
    key
    string

    Key is the key used in the Provider, mandatory

    version
    string
    (Optional)

    Used to select a specific version of the Provider value, if supported

    property
    string
    (Optional)

    Used to select a specific property of the Provider value (if a map), if supported

    ExternalSecretSpec

    (Appears on: ExternalSecret)

    ExternalSecretSpec defines the desired state of ExternalSecret.

    Field Description
    secretStoreRef
    SecretStoreRef
    target
    ExternalSecretTarget
    refreshInterval
    Kubernetes meta/v1.Duration

    RefreshInterval is the amount of time before the values are read again from the SecretStore provider Valid time units are “ns”, “us” (or “µs”), “ms”, “s”, “m”, “h” May be set to zero to fetch and create it once. Defaults to 1h.

    data
    []ExternalSecretData
    (Optional)

    Data defines the connection between the Kubernetes Secret keys and the Provider data

    dataFrom
    []ExternalSecretDataRemoteRef
    (Optional)

    DataFrom is used to fetch all properties from a specific Provider data If multiple entries are specified, the Secret keys are merged in the specified order

    ExternalSecretStatus

    (Appears on: ExternalSecret)

    Field Description
    refreshTime
    Kubernetes meta/v1.Time

    refreshTime is the time and date the external secret was fetched and the target secret updated

    syncedResourceVersion
    string

    SyncedResourceVersion keeps track of the last synced version

    conditions
    []ExternalSecretStatusCondition
    (Optional)

    ExternalSecretStatusCondition

    (Appears on: ExternalSecretStatus)

    Field Description
    type
    ExternalSecretConditionType
    status
    Kubernetes core/v1.ConditionStatus
    reason
    string
    (Optional)
    message
    string
    (Optional)
    lastTransitionTime
    Kubernetes meta/v1.Time
    (Optional)

    ExternalSecretTarget

    (Appears on: ExternalSecretSpec)

    ExternalSecretTarget defines the Kubernetes Secret to be created There can be only one target per ExternalSecret.

    Field Description
    name
    string
    (Optional)

    Name defines the name of the Secret resource to be managed This field is immutable Defaults to the .metadata.name of the ExternalSecret resource

    creationPolicy
    ExternalSecretCreationPolicy
    (Optional)

    CreationPolicy defines rules on how to create the resulting Secret Defaults to Owner

    template
    ExternalSecretTemplate
    (Optional)

    Template defines a blueprint for the created Secret resource.

    ExternalSecretTemplate

    (Appears on: ExternalSecretTarget)

    ExternalSecretTemplate defines a blueprint for the created Secret resource. we can not use native corev1.Secret, it will have empty ObjectMeta values: https://github.com/kubernetes-sigs/controller-tools/issues/448

    Field Description
    type
    Kubernetes core/v1.SecretType
    (Optional)
    metadata
    ExternalSecretTemplateMetadata
    (Optional)
    data
    map[string]string
    (Optional)
    templateFrom
    []TemplateFrom
    (Optional)

    ExternalSecretTemplateMetadata

    (Appears on: ExternalSecretTemplate)

    ExternalSecretTemplateMetadata defines metadata fields for the Secret blueprint.

    Field Description
    annotations
    map[string]string
    (Optional)
    labels
    map[string]string
    (Optional)

    GCPSMAuth

    (Appears on: GCPSMProvider)

    Field Description
    secretRef
    GCPSMAuthSecretRef

    GCPSMAuthSecretRef

    (Appears on: GCPSMAuth)

    Field Description
    secretAccessKeySecretRef
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector
    (Optional)

    The SecretAccessKey is used for authentication

    GCPSMProvider

    (Appears on: SecretStoreProvider)

    GCPSMProvider Configures a store to sync secrets using the GCP Secret Manager provider.

    Field Description
    auth
    GCPSMAuth
    (Optional)

    Auth defines the information necessary to authenticate against GCP

    projectID
    string

    ProjectID project where secret is located

    GenericStore

    GenericStore is a common interface for interacting with ClusterSecretStore or a namespaced SecretStore.

    GitlabAuth

    (Appears on: GitlabProvider)

    Field Description
    SecretRef
    GitlabSecretRef

    GitlabProvider

    (Appears on: SecretStoreProvider)

    Configures an store to sync secrets using a IBM Cloud Secrets Manager backend.

    Field Description
    auth
    GitlabAuth

    Auth configures how secret-manager authenticates with the IBM secrets manager.

    projectID
    string

    ProjectID project where secret is located

    GitlabSecretRef

    (Appears on: GitlabAuth)

    Field Description
    accessToken
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector

    The Access Token is used for authentication

    IBMAuth

    (Appears on: IBMProvider)

    Field Description
    secretRef
    IBMAuthSecretRef

    IBMAuthSecretRef

    (Appears on: IBMAuth)

    Field Description
    secretApiKeySecretRef
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector
    (Optional)

    The SecretAccessKey is used for authentication

    IBMProvider

    (Appears on: SecretStoreProvider)

    Configures an store to sync secrets using a IBM Cloud Secrets Manager backend.

    Field Description
    auth
    IBMAuth

    Auth configures how secret-manager authenticates with the IBM secrets manager.

    serviceUrl
    string

    ServiceURL is the Endpoint URL that is specific to the Secrets Manager service instance

    SecretStore

    SecretStore represents a secure external location for storing secrets, which can be referenced as part of storeRef fields.

    Field Description
    metadata
    Kubernetes meta/v1.ObjectMeta
    Refer to the Kubernetes API documentation for the fields of the metadata field.
    spec
    SecretStoreSpec


    controller
    string
    (Optional)

    Used to select the correct KES controller (think: ingress.ingressClassName) The KES controller is instantiated with a specific controller name and filters ES based on this property

    provider
    SecretStoreProvider

    Used to configure the provider. Only one provider may be set

    status
    SecretStoreStatus

    SecretStoreConditionType (string alias)

    (Appears on: SecretStoreStatusCondition)

    Value Description

    "Ready"

    SecretStoreProvider

    (Appears on: SecretStoreSpec)

    SecretStoreProvider contains the provider-specific configration.

    Field Description
    aws
    AWSProvider
    (Optional)

    AWS configures this store to sync secrets using AWS Secret Manager provider

    azurekv
    AzureKVProvider
    (Optional)

    AzureKV configures this store to sync secrets using Azure Key Vault provider

    vault
    VaultProvider
    (Optional)

    Vault configures this store to sync secrets using Hashi provider

    gcpsm
    GCPSMProvider
    (Optional)

    GCPSM configures this store to sync secrets using Google Cloud Platform Secret Manager provider

    ibm
    IBMProvider
    (Optional)

    IBM configures this store to sync secrets using IBM Cloud provider

    yandexlockbox
    YandexLockboxProvider
    (Optional)

    YandexLockbox configures this store to sync secrets using Yandex Lockbox provider

    gitlab
    GitlabProvider
    (Optional)

    GItlab configures this store to sync secrets using Gitlab Variables provider

    SecretStoreRef

    (Appears on: ExternalSecretSpec)

    SecretStoreRef defines which SecretStore to fetch the ExternalSecret data.

    Field Description
    name
    string

    Name of the SecretStore resource

    kind
    string
    (Optional)

    Kind of the SecretStore resource (SecretStore or ClusterSecretStore) Defaults to SecretStore

    SecretStoreSpec

    (Appears on: ClusterSecretStore, SecretStore)

    SecretStoreSpec defines the desired state of SecretStore.

    Field Description
    controller
    string
    (Optional)

    Used to select the correct KES controller (think: ingress.ingressClassName) The KES controller is instantiated with a specific controller name and filters ES based on this property

    provider
    SecretStoreProvider

    Used to configure the provider. Only one provider may be set

    SecretStoreStatus

    (Appears on: ClusterSecretStore, SecretStore)

    SecretStoreStatus defines the observed state of the SecretStore.

    Field Description
    conditions
    []SecretStoreStatusCondition
    (Optional)

    SecretStoreStatusCondition

    (Appears on: SecretStoreStatus)

    Field Description
    type
    SecretStoreConditionType
    status
    Kubernetes core/v1.ConditionStatus
    reason
    string
    (Optional)
    message
    string
    (Optional)
    lastTransitionTime
    Kubernetes meta/v1.Time
    (Optional)

    TemplateFrom

    (Appears on: ExternalSecretTemplate)

    Field Description
    configMap
    TemplateRef
    secret
    TemplateRef

    TemplateRef

    (Appears on: TemplateFrom)

    Field Description
    name
    string
    items
    []TemplateRefItem

    TemplateRefItem

    (Appears on: TemplateRef)

    Field Description
    key
    string

    VaultAppRole

    (Appears on: VaultAuth)

    VaultAppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource.

    Field Description
    path
    string

    Path where the App Role authentication backend is mounted in Vault, e.g: “approle”

    roleId
    string

    RoleID configured in the App Role authentication backend when setting up the authentication backend in Vault.

    secretRef
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector

    Reference to a key in a Secret that contains the App Role secret used to authenticate with Vault. The key field must be specified and denotes which entry within the Secret resource is used as the app role secret.

    VaultAuth

    (Appears on: VaultProvider)

    VaultAuth is the configuration used to authenticate with a Vault server. Only one of tokenSecretRef, appRole, kubernetes, ldap, jwt or cert can be specified.

    Field Description
    tokenSecretRef
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector
    (Optional)

    TokenSecretRef authenticates with Vault by presenting a token.

    appRole
    VaultAppRole
    (Optional)

    AppRole authenticates with Vault using the App Role auth mechanism, with the role and secret stored in a Kubernetes Secret resource.

    kubernetes
    VaultKubernetesAuth
    (Optional)

    Kubernetes authenticates with Vault by passing the ServiceAccount token stored in the named Secret resource to the Vault server.

    ldap
    VaultLdapAuth
    (Optional)

    Ldap authenticates with Vault by passing username/password pair using the LDAP authentication method

    jwt
    VaultJwtAuth
    (Optional)

    Jwt authenticates with Vault by passing role and JWT token using the JWT/OIDC authentication method

    cert
    VaultCertAuth
    (Optional)

    Cert authenticates with TLS Certificates by passing client certificate, private key and ca certificate Cert authentication method

    VaultCertAuth

    (Appears on: VaultAuth)

    VaultJwtAuth authenticates with Vault using the JWT/OIDC authentication method, with the role name and token stored in a Kubernetes Secret resource.

    Field Description
    clientCert
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector
    (Optional)

    ClientCert is a certificate to authenticate using the Cert Vault authentication method

    secretRef
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector

    SecretRef to a key in a Secret resource containing client private key to authenticate with Vault using the Cert authentication method

    VaultJwtAuth

    (Appears on: VaultAuth)

    VaultJwtAuth authenticates with Vault using the JWT/OIDC authentication method, with the role name and token stored in a Kubernetes Secret resource.

    Field Description
    role
    string
    (Optional)

    Role is a JWT role to authenticate using the JWT/OIDC Vault authentication method

    secretRef
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector

    SecretRef to a key in a Secret resource containing JWT token to authenticate with Vault using the JWT/OIDC authentication method

    VaultKVStoreVersion (string alias)

    (Appears on: VaultProvider)

    Value Description

    "v1"

    "v2"

    VaultKubernetesAuth

    (Appears on: VaultAuth)

    Authenticate against Vault using a Kubernetes ServiceAccount token stored in a Secret.

    Field Description
    mountPath
    string

    Path where the Kubernetes authentication backend is mounted in Vault, e.g: “kubernetes”

    serviceAccountRef
    github.com/external-secrets/external-secrets/apis/meta/v1.ServiceAccountSelector
    (Optional)

    Optional service account field containing the name of a kubernetes ServiceAccount. If the service account is specified, the service account secret token JWT will be used for authenticating with Vault. If the service account selector is not supplied, the secretRef will be used instead.

    secretRef
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector
    (Optional)

    Optional secret field containing a Kubernetes ServiceAccount JWT used for authenticating with Vault. If a name is specified without a key, token is the default. If one is not specified, the one bound to the controller will be used.

    role
    string

    A required field containing the Vault Role to assume. A Role binds a Kubernetes ServiceAccount with a set of Vault policies.

    VaultLdapAuth

    (Appears on: VaultAuth)

    VaultLdapAuth authenticates with Vault using the LDAP authentication method, with the username and password stored in a Kubernetes Secret resource.

    Field Description
    username
    string

    Username is a LDAP user name used to authenticate using the LDAP Vault authentication method

    secretRef
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector

    SecretRef to a key in a Secret resource containing password for the LDAP user used to authenticate with Vault using the LDAP authentication method

    VaultProvider

    (Appears on: SecretStoreProvider)

    Configures an store to sync secrets using a HashiCorp Vault KV backend.

    Field Description
    auth
    VaultAuth

    Auth configures how secret-manager authenticates with the Vault server.

    server
    string

    Server is the connection address for the Vault server, e.g: “https://vault.example.com:8200”.

    path
    string

    Path is the mount path of the Vault KV backend endpoint, e.g: “secret”. The v2 KV secret engine version specific “/data” path suffix for fetching secrets from Vault is optional and will be appended if not present in specified path.

    version
    VaultKVStoreVersion

    Version is the Vault KV secret engine version. This can be either “v1” or “v2”. Version defaults to “v2”.

    namespace
    string
    (Optional)

    Name of the vault namespace. Namespaces is a set of features within Vault Enterprise that allows Vault environments to support Secure Multi-tenancy. e.g: “ns1”. More about namespaces can be found here https://www.vaultproject.io/docs/enterprise/namespaces

    caBundle
    []byte
    (Optional)

    PEM encoded CA bundle used to validate Vault server certificate. Only used if the Server URL is using HTTPS protocol. This parameter is ignored for plain HTTP protocol connection. If not set the system root certificates are used to validate the TLS connection.

    YandexLockboxAuth

    (Appears on: YandexLockboxProvider)

    Field Description
    authorizedKeySecretRef
    github.com/external-secrets/external-secrets/apis/meta/v1.SecretKeySelector
    (Optional)

    The authorized key used for authentication

    YandexLockboxProvider

    (Appears on: SecretStoreProvider)

    YandexLockboxProvider Configures a store to sync secrets using the Yandex Lockbox provider.

    Field Description
    apiEndpoint
    string
    (Optional)

    Yandex.Cloud API endpoint (e.g. api.cloud.yandex.net:443)

    auth
    YandexLockboxAuth

    Auth defines the information necessary to authenticate against Yandex Lockbox


    Generated with gen-crd-api-reference-docs.