Skip to content

Latest commit

 

History

History
2370 lines (2047 loc) · 73.4 KB

crds.md

File metadata and controls

2370 lines (2047 loc) · 73.4 KB

API Reference

Packages:

core.openfeature.dev/v1alpha1

Resource Types:

FeatureFlagConfiguration

↩ Parent

FeatureFlagConfiguration is the Schema for the featureflagconfigurations API

Name Type Description Required
apiVersion string core.openfeature.dev/v1alpha1 true
kind string FeatureFlagConfiguration true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object FeatureFlagConfigurationSpec defines the desired state of FeatureFlagConfiguration
false
status object FeatureFlagConfigurationStatus defines the observed state of FeatureFlagConfiguration
false

FeatureFlagConfiguration.spec

↩ Parent

FeatureFlagConfigurationSpec defines the desired state of FeatureFlagConfiguration

Name Type Description Required
featureFlagSpec string FeatureFlagSpec is the json representation of the feature flag
false
flagDSpec object FlagDSpec [DEPRECATED]: superseded by FlagSourceConfiguration
false
serviceProvider object ServiceProvider [DEPRECATED]: superseded by FlagSourceConfiguration
false
syncProvider object SyncProvider [DEPRECATED]: superseded by FlagSourceConfiguration
false

FeatureFlagConfiguration.spec.flagDSpec

↩ Parent

FlagDSpec [DEPRECATED]: superseded by FlagSourceConfiguration

Name Type Description Required
envs []object
false
metricsPort integer

Format: int32
false

FeatureFlagConfiguration.spec.flagDSpec.envs[index]

↩ Parent

EnvVar represents an environment variable present in a Container.

Name Type Description Required
name string Name of the environment variable. Must be a C_IDENTIFIER.
true
value string Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".
false
valueFrom object Source for the environment variable's value. Cannot be used if value is not empty.
false

FeatureFlagConfiguration.spec.flagDSpec.envs[index].valueFrom

↩ Parent

Source for the environment variable's value. Cannot be used if value is not empty.

Name Type Description Required
configMapKeyRef object Selects a key of a ConfigMap.
false
fieldRef object Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
false
resourceFieldRef object Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
false
secretKeyRef object Selects a key of a secret in the pod's namespace
false

FeatureFlagConfiguration.spec.flagDSpec.envs[index].valueFrom.configMapKeyRef

↩ Parent

Selects a key of a ConfigMap.

Name Type Description Required
key string The key to select.
true
name string Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
false
optional boolean Specify whether the ConfigMap or its key must be defined
false

FeatureFlagConfiguration.spec.flagDSpec.envs[index].valueFrom.fieldRef

↩ Parent

Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels['<KEY>'], metadata.annotations['<KEY>'], spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.

Name Type Description Required
fieldPath string Path of the field to select in the specified API version.
true
apiVersion string Version of the schema the FieldPath is written in terms of, defaults to "v1".
false

FeatureFlagConfiguration.spec.flagDSpec.envs[index].valueFrom.resourceFieldRef

↩ Parent

Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.

Name Type Description Required
resource string Required: resource to select
true
containerName string Container name: required for volumes, optional for env vars
false
divisor int or string Specifies the output format of the exposed resources, defaults to "1"
false

FeatureFlagConfiguration.spec.flagDSpec.envs[index].valueFrom.secretKeyRef

↩ Parent

Selects a key of a secret in the pod's namespace

Name Type Description Required
key string The key of the secret to select from. Must be a valid secret key.
true
name string Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
false
optional boolean Specify whether the Secret or its key must be defined
false

FeatureFlagConfiguration.spec.serviceProvider

↩ Parent

ServiceProvider [DEPRECATED]: superseded by FlagSourceConfiguration

Name Type Description Required
name enum

Enum: flagd
true
credentials object ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". Those cannot be well described when embedded. 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .
false

FeatureFlagConfiguration.spec.serviceProvider.credentials

↩ Parent

ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". Those cannot be well described when embedded. 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .

Name Type Description Required
apiVersion string API version of the referent.
false
fieldPath string If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.
false
kind string Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
false
name string Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
false
namespace string Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
false
resourceVersion string Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
false
uid string UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
false

FeatureFlagConfiguration.spec.syncProvider

↩ Parent

SyncProvider [DEPRECATED]: superseded by FlagSourceConfiguration

Name Type Description Required
name string
true
httpSyncConfiguration object HttpSyncConfiguration defines the desired configuration for a http sync
false

FeatureFlagConfiguration.spec.syncProvider.httpSyncConfiguration

↩ Parent

HttpSyncConfiguration defines the desired configuration for a http sync

Name Type Description Required
target string Target is the target url for flagd to poll
true
bearerToken string
false

FlagSourceConfiguration

↩ Parent

FlagSourceConfiguration is the Schema for the FlagSourceConfigurations API

Name Type Description Required
apiVersion string core.openfeature.dev/v1alpha1 true
kind string FlagSourceConfiguration true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object FlagSourceConfigurationSpec defines the desired state of FlagSourceConfiguration
false
status object FlagSourceConfigurationStatus defines the observed state of FlagSourceConfiguration
false

FlagSourceConfiguration.spec

↩ Parent

FlagSourceConfigurationSpec defines the desired state of FlagSourceConfiguration

Name Type Description Required
sources []object Sources defines the syncProviders and associated configuration to be applied to the sidecar
true
debugLogging boolean DebugLogging defines whether to enable --debug flag of flagd sidecar. Default false (disabled).
false
defaultSyncProvider string DefaultSyncProvider defines the default sync provider
false
envVarPrefix string EnvVarPrefix defines the prefix to be applied to all environment variables applied to the sidecar, default FLAGD
false
envVars []object EnvVars define the env vars to be applied to the sidecar, any env vars in FeatureFlagConfiguration CRs are added at the lowest index, all values will have the EnvVarPrefix applied
false
evaluator string Evaluator sets an evaluator, defaults to 'json'
false
image string Image allows for the sidecar image to be overridden, defaults to 'ghcr.io/open-feature/flagd'
false
logFormat string LogFormat allows for the sidecar log format to be overridden, defaults to 'json'
false
metricsPort integer MetricsPort defines the port to serve metrics on, defaults to 8014

Format: int32
false
port integer Port defines the port to listen on, defaults to 8013

Format: int32
false
probesEnabled boolean ProbesEnabled defines whether to enable liveness and readiness probes of flagd sidecar. Default true (enabled).
false
rolloutOnChange boolean RolloutOnChange dictates whether annotated deployments will be restarted when configuration changes are detected in this CR, defaults to false
false
socketPath string SocketPath defines the unix socket path to listen on
false
syncProviderArgs []string SyncProviderArgs are string arguments passed to all sync providers, defined as key values separated by =
false
tag string Tag to be appended to the sidecar image, defaults to 'main'
false

FlagSourceConfiguration.spec.sources[index]

↩ Parent

Name Type Description Required
source string Source is a URI of the flag sources
true
certPath string CertPath is a path of a certificate to be used by grpc TLS connection
false
httpSyncBearerToken string HttpSyncBearerToken is a bearer token. Used by http(s) sync provider only
false
provider string Provider type - kubernetes, http, grpc or filepath
false
providerID string ProviderID is an identifier to be used in grpc provider
false
selector string Selector is a flag configuration selector used by grpc provider
false
tls boolean TLS - Enable/Disable secure TLS connectivity. Currently used only by GRPC sync
false

FlagSourceConfiguration.spec.envVars[index]

↩ Parent

EnvVar represents an environment variable present in a Container.

Name Type Description Required
name string Name of the environment variable. Must be a C_IDENTIFIER.
true
value string Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".
false
valueFrom object Source for the environment variable's value. Cannot be used if value is not empty.
false

FlagSourceConfiguration.spec.envVars[index].valueFrom

↩ Parent

Source for the environment variable's value. Cannot be used if value is not empty.

Name Type Description Required
configMapKeyRef object Selects a key of a ConfigMap.
false
fieldRef object Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
false
resourceFieldRef object Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
false
secretKeyRef object Selects a key of a secret in the pod's namespace
false

FlagSourceConfiguration.spec.envVars[index].valueFrom.configMapKeyRef

↩ Parent

Selects a key of a ConfigMap.

Name Type Description Required
key string The key to select.
true
name string Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
false
optional boolean Specify whether the ConfigMap or its key must be defined
false

FlagSourceConfiguration.spec.envVars[index].valueFrom.fieldRef

↩ Parent

Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels['<KEY>'], metadata.annotations['<KEY>'], spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.

Name Type Description Required
fieldPath string Path of the field to select in the specified API version.
true
apiVersion string Version of the schema the FieldPath is written in terms of, defaults to "v1".
false

FlagSourceConfiguration.spec.envVars[index].valueFrom.resourceFieldRef

↩ Parent

Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.

Name Type Description Required
resource string Required: resource to select
true
containerName string Container name: required for volumes, optional for env vars
false
divisor int or string Specifies the output format of the exposed resources, defaults to "1"
false

FlagSourceConfiguration.spec.envVars[index].valueFrom.secretKeyRef

↩ Parent

Selects a key of a secret in the pod's namespace

Name Type Description Required
key string The key of the secret to select from. Must be a valid secret key.
true
name string Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
false
optional boolean Specify whether the Secret or its key must be defined
false

core.openfeature.dev/v1alpha2

Resource Types:

FeatureFlagConfiguration

↩ Parent

FeatureFlagConfiguration is the Schema for the featureflagconfigurations API

Name Type Description Required
apiVersion string core.openfeature.dev/v1alpha2 true
kind string FeatureFlagConfiguration true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object FeatureFlagConfigurationSpec defines the desired state of FeatureFlagConfiguration
false
status object FeatureFlagConfigurationStatus defines the observed state of FeatureFlagConfiguration
false

FeatureFlagConfiguration.spec

↩ Parent

FeatureFlagConfigurationSpec defines the desired state of FeatureFlagConfiguration

Name Type Description Required
featureFlagSpec object FeatureFlagSpec is the structured representation of the feature flag specification
false
flagDSpec object FlagDSpec [DEPRECATED]: superseded by FlagSourceConfiguration
false
serviceProvider object ServiceProvider [DEPRECATED]: superseded by FlagSourceConfiguration
false
syncProvider object SyncProvider [DEPRECATED]: superseded by FlagSourceConfiguration
false

FeatureFlagConfiguration.spec.featureFlagSpec

↩ Parent

FeatureFlagSpec is the structured representation of the feature flag specification

Name Type Description Required
flags map[string]object
true
$evaluators object
false

FeatureFlagConfiguration.spec.featureFlagSpec.flags[key]

↩ Parent

Name Type Description Required
defaultVariant string
true
state enum

Enum: ENABLED, DISABLED
true
variants object
true
targeting object Targeting is the json targeting rule
false

FeatureFlagConfiguration.spec.flagDSpec

↩ Parent

FlagDSpec [DEPRECATED]: superseded by FlagSourceConfiguration

Name Type Description Required
envs []object
false

FeatureFlagConfiguration.spec.flagDSpec.envs[index]

↩ Parent

EnvVar represents an environment variable present in a Container.

Name Type Description Required
name string Name of the environment variable. Must be a C_IDENTIFIER.
true
value string Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".
false
valueFrom object Source for the environment variable's value. Cannot be used if value is not empty.
false

FeatureFlagConfiguration.spec.flagDSpec.envs[index].valueFrom

↩ Parent

Source for the environment variable's value. Cannot be used if value is not empty.

Name Type Description Required
configMapKeyRef object Selects a key of a ConfigMap.
false
fieldRef object Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
false
resourceFieldRef object Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
false
secretKeyRef object Selects a key of a secret in the pod's namespace
false

FeatureFlagConfiguration.spec.flagDSpec.envs[index].valueFrom.configMapKeyRef

↩ Parent

Selects a key of a ConfigMap.

Name Type Description Required
key string The key to select.
true
name string Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
false
optional boolean Specify whether the ConfigMap or its key must be defined
false

FeatureFlagConfiguration.spec.flagDSpec.envs[index].valueFrom.fieldRef

↩ Parent

Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels['<KEY>'], metadata.annotations['<KEY>'], spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.

Name Type Description Required
fieldPath string Path of the field to select in the specified API version.
true
apiVersion string Version of the schema the FieldPath is written in terms of, defaults to "v1".
false

FeatureFlagConfiguration.spec.flagDSpec.envs[index].valueFrom.resourceFieldRef

↩ Parent

Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.

Name Type Description Required
resource string Required: resource to select
true
containerName string Container name: required for volumes, optional for env vars
false
divisor int or string Specifies the output format of the exposed resources, defaults to "1"
false

FeatureFlagConfiguration.spec.flagDSpec.envs[index].valueFrom.secretKeyRef

↩ Parent

Selects a key of a secret in the pod's namespace

Name Type Description Required
key string The key of the secret to select from. Must be a valid secret key.
true
name string Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
false
optional boolean Specify whether the Secret or its key must be defined
false

FeatureFlagConfiguration.spec.serviceProvider

↩ Parent

ServiceProvider [DEPRECATED]: superseded by FlagSourceConfiguration

Name Type Description Required
name enum

Enum: flagd
true
credentials object ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". Those cannot be well described when embedded. 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .
false

FeatureFlagConfiguration.spec.serviceProvider.credentials

↩ Parent

ObjectReference contains enough information to let you inspect or modify the referred object. --- New uses of this type are discouraged because of difficulty describing its usage when embedded in APIs. 1. Ignored fields. It includes many fields which are not generally honored. For instance, ResourceVersion and FieldPath are both very rarely valid in actual usage. 2. Invalid usage help. It is impossible to add specific help for individual usage. In most embedded usages, there are particular restrictions like, "must refer only to types A and B" or "UID not honored" or "name must be restricted". Those cannot be well described when embedded. 3. Inconsistent validation. Because the usages are different, the validation rules are different by usage, which makes it hard for users to predict what will happen. 4. The fields are both imprecise and overly precise. Kind is not a precise mapping to a URL. This can produce ambiguity during interpretation and require a REST mapping. In most cases, the dependency is on the group,resource tuple and the version of the actual struct is irrelevant. 5. We cannot easily change it. Because this type is embedded in many locations, updates to this type will affect numerous schemas. Don't make new APIs embed an underspecified API type they do not control. Instead of using this type, create a locally provided and used type that is well-focused on your reference. For example, ServiceReferences for admission registration: https://github.com/kubernetes/api/blob/release-1.17/admissionregistration/v1/types.go#L533 .

Name Type Description Required
apiVersion string API version of the referent.
false
fieldPath string If referring to a piece of an object instead of an entire object, this string should contain a valid JSON/Go field access statement, such as desiredState.manifest.containers[2]. For example, if the object reference is to a container within a pod, this would take on a value like: "spec.containers{name}" (where "name" refers to the name of the container that triggered the event) or if no container name is specified "spec.containers[2]" (container with index 2 in this pod). This syntax is chosen only to have some well-defined way of referencing a part of an object. TODO: this design is not final and this field is subject to change in the future.
false
kind string Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
false
name string Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names
false
namespace string Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/
false
resourceVersion string Specific resourceVersion to which this reference is made, if any. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#concurrency-control-and-consistency
false
uid string UID of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#uids
false

FeatureFlagConfiguration.spec.syncProvider

↩ Parent

SyncProvider [DEPRECATED]: superseded by FlagSourceConfiguration

Name Type Description Required
name string
true
httpSyncConfiguration object HttpSyncConfiguration defines the desired configuration for a http sync
false

FeatureFlagConfiguration.spec.syncProvider.httpSyncConfiguration

↩ Parent

HttpSyncConfiguration defines the desired configuration for a http sync

Name Type Description Required
target string Target is the target url for flagd to poll
true
bearerToken string
false

FlagSourceConfiguration

↩ Parent

FlagSourceConfiguration is the Schema for the FlagSourceConfigurations API

Name Type Description Required
apiVersion string core.openfeature.dev/v1alpha2 true
kind string FlagSourceConfiguration true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object FlagSourceConfigurationSpec defines the desired state of FlagSourceConfiguration
false
status object FlagSourceConfigurationStatus defines the observed state of FlagSourceConfiguration
false

FlagSourceConfiguration.spec

↩ Parent

FlagSourceConfigurationSpec defines the desired state of FlagSourceConfiguration

Name Type Description Required
defaultSyncProvider string DefaultSyncProvider defines the default sync provider
false
evaluator string Evaluator sets an evaluator, defaults to 'json'
false
image string Image allows for the sidecar image to be overridden, defaults to 'ghcr.io/open-feature/flagd'
false
logFormat string LogFormat allows for the sidecar log format to be overridden, defaults to 'json'
false
metricsPort integer MetricsPort defines the port to serve metrics on, defaults to 8013

Format: int32
false
port integer Port defines the port to listen on, defaults to 8014

Format: int32
false
probesEnabled boolean ProbesEnabled defines whether to enable liveness and readiness probes of flagd sidecar. Default true (enabled).
false
socketPath string SocketPath defines the unix socket path to listen on
false
syncProviderArgs []string SyncProviderArgs are string arguments passed to all sync providers, defined as key values separated by =
false
tag string Tag to be appended to the sidecar image, defaults to 'main'
false

core.openfeature.dev/v1alpha3

Resource Types:

FlagSourceConfiguration

↩ Parent

FlagSourceConfiguration is the Schema for the FlagSourceConfigurations API

Name Type Description Required
apiVersion string core.openfeature.dev/v1alpha3 true
kind string FlagSourceConfiguration true
metadata object Refer to the Kubernetes API documentation for the fields of the `metadata` field. true
spec object FlagSourceConfigurationSpec defines the desired state of FlagSourceConfiguration
false
status object FlagSourceConfigurationStatus defines the observed state of FlagSourceConfiguration
false

FlagSourceConfiguration.spec

↩ Parent

FlagSourceConfigurationSpec defines the desired state of FlagSourceConfiguration

Name Type Description Required
sources []object SyncProviders define the syncProviders and associated configuration to be applied to the sidecar
true
debugLogging boolean DebugLogging defines whether to enable --debug flag of flagd sidecar. Default false (disabled).
false
defaultSyncProvider string DefaultSyncProvider defines the default sync provider
false
envVarPrefix string EnvVarPrefix defines the prefix to be applied to all environment variables applied to the sidecar, default FLAGD
false
envVars []object EnvVars define the env vars to be applied to the sidecar, any env vars in FeatureFlagConfiguration CRs are added at the lowest index, all values will have the EnvVarPrefix applied, default FLAGD
false
evaluator string Evaluator sets an evaluator, defaults to 'json'
false
image string Image allows for the sidecar image to be overridden, defaults to 'ghcr.io/open-feature/flagd'
false
logFormat string LogFormat allows for the sidecar log format to be overridden, defaults to 'json'
false
metricsPort integer MetricsPort defines the port to serve metrics on, defaults to 8014

Format: int32
false
port integer Port defines the port to listen on, defaults to 8013

Format: int32
false
probesEnabled boolean ProbesEnabled defines whether to enable liveness and readiness probes of flagd sidecar. Default true (enabled).
false
rolloutOnChange boolean RolloutOnChange dictates whether annotated deployments will be restarted when configuration changes are detected in this CR, defaults to false
false
socketPath string SocketPath defines the unix socket path to listen on
false
syncProviderArgs []string SyncProviderArgs are string arguments passed to all sync providers, defined as key values separated by =
false
tag string Tag to be appended to the sidecar image, defaults to 'main'
false

FlagSourceConfiguration.spec.sources[index]

↩ Parent

Name Type Description Required
source string Source is a URI of the flag sources
true
certPath string CertPath is a path of a certificate to be used by grpc TLS connection
false
httpSyncBearerToken string HttpSyncBearerToken is a bearer token. Used by http(s) sync provider only
false
provider string Provider type - kubernetes, http(s), grpc(s) or filepath
false
providerID string ProviderID is an identifier to be used in grpc provider
false
selector string Selector is a flag configuration selector used by grpc provider
false
tls boolean TLS - Enable/Disable secure TLS connectivity. Currently used only by GRPC sync
false

FlagSourceConfiguration.spec.envVars[index]

↩ Parent

EnvVar represents an environment variable present in a Container.

Name Type Description Required
name string Name of the environment variable. Must be a C_IDENTIFIER.
true
value string Variable references $(VAR_NAME) are expanded using the previously defined environment variables in the container and any service environment variables. If a variable cannot be resolved, the reference in the input string will be unchanged. Double $$ are reduced to a single $, which allows for escaping the $(VAR_NAME) syntax: i.e. "$$(VAR_NAME)" will produce the string literal "$(VAR_NAME)". Escaped references will never be expanded, regardless of whether the variable exists or not. Defaults to "".
false
valueFrom object Source for the environment variable's value. Cannot be used if value is not empty.
false

FlagSourceConfiguration.spec.envVars[index].valueFrom

↩ Parent

Source for the environment variable's value. Cannot be used if value is not empty.

Name Type Description Required
configMapKeyRef object Selects a key of a ConfigMap.
false
fieldRef object Selects a field of the pod: supports metadata.name, metadata.namespace, `metadata.labels['']`, `metadata.annotations['']`, spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.
false
resourceFieldRef object Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.
false
secretKeyRef object Selects a key of a secret in the pod's namespace
false

FlagSourceConfiguration.spec.envVars[index].valueFrom.configMapKeyRef

↩ Parent

Selects a key of a ConfigMap.

Name Type Description Required
key string The key to select.
true
name string Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
false
optional boolean Specify whether the ConfigMap or its key must be defined
false

FlagSourceConfiguration.spec.envVars[index].valueFrom.fieldRef

↩ Parent

Selects a field of the pod: supports metadata.name, metadata.namespace, metadata.labels['<KEY>'], metadata.annotations['<KEY>'], spec.nodeName, spec.serviceAccountName, status.hostIP, status.podIP, status.podIPs.

Name Type Description Required
fieldPath string Path of the field to select in the specified API version.
true
apiVersion string Version of the schema the FieldPath is written in terms of, defaults to "v1".
false

FlagSourceConfiguration.spec.envVars[index].valueFrom.resourceFieldRef

↩ Parent

Selects a resource of the container: only resources limits and requests (limits.cpu, limits.memory, limits.ephemeral-storage, requests.cpu, requests.memory and requests.ephemeral-storage) are currently supported.

Name Type Description Required
resource string Required: resource to select
true
containerName string Container name: required for volumes, optional for env vars
false
divisor int or string Specifies the output format of the exposed resources, defaults to "1"
false

FlagSourceConfiguration.spec.envVars[index].valueFrom.secretKeyRef

↩ Parent

Selects a key of a secret in the pod's namespace

Name Type Description Required
key string The key of the secret to select from. Must be a valid secret key.
true
name string Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?
false
optional boolean Specify whether the Secret or its key must be defined
false