v1alpha1

package
v0.3.3 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 15, 2023 License: Apache-2.0 Imports: 11 Imported by: 0

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the config v1alpha1 API group +kubebuilder:object:generate=true +groupName=core.openfeature.dev

Index

Constants

View Source
const (
	SidecarEnvVarPrefix              string = "SIDECAR_ENV_VAR_PREFIX"
	InputConfigurationEnvVarPrefix   string = "SIDECAR"
	SidecarMetricPortEnvVar          string = "METRICS_PORT"
	SidecarPortEnvVar                string = "PORT"
	SidecarSocketPathEnvVar          string = "SOCKET_PATH"
	SidecarEvaluatorEnvVar           string = "EVALUATOR"
	SidecarImageEnvVar               string = "IMAGE"
	SidecarVersionEnvVar             string = "TAG"
	SidecarProviderArgsEnvVar        string = "PROVIDER_ARGS"
	SidecarDefaultSyncProviderEnvVar string = "SYNC_PROVIDER"
	SidecarLogFormatEnvVar           string = "LOG_FORMAT"
	SidecarProbesEnabledVar          string = "PROBES_ENABLED"

	DefaultMetricPort int32 = 8014

	SyncProviderKubernetes SyncProviderType = "kubernetes"
	SyncProviderFilepath   SyncProviderType = "filepath"
	SyncProviderHttp       SyncProviderType = "http"
	SyncProviderGrpc       SyncProviderType = "grpc"
	SyncProviderFlagdProxy SyncProviderType = "flagd-proxy"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "core.openfeature.dev", Version: "v1alpha1"}

	// SchemeBuilder is used to add go types to the GroupVersionKind scheme
	SchemeBuilder = &scheme.Builder{GroupVersion: GroupVersion}

	// AddToScheme adds the types in this group-version to the given scheme.
	AddToScheme = SchemeBuilder.AddToScheme
)

Functions

This section is empty.

Types

type FeatureFlagConfiguration

type FeatureFlagConfiguration struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   FeatureFlagConfigurationSpec   `json:"spec,omitempty"`
	Status FeatureFlagConfigurationStatus `json:"status,omitempty"`
}

FeatureFlagConfiguration is the Schema for the featureflagconfigurations API

func (*FeatureFlagConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureFlagConfiguration.

func (*FeatureFlagConfiguration) DeepCopyInto

func (in *FeatureFlagConfiguration) DeepCopyInto(out *FeatureFlagConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FeatureFlagConfiguration) DeepCopyObject

func (in *FeatureFlagConfiguration) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*FeatureFlagConfiguration) GenerateConfigMap

func (ff *FeatureFlagConfiguration) GenerateConfigMap(name string, namespace string, references []metav1.OwnerReference) corev1.ConfigMap

func (*FeatureFlagConfiguration) GetReference

func (ff *FeatureFlagConfiguration) GetReference() metav1.OwnerReference

func (*FeatureFlagConfiguration) Hub

func (ffc *FeatureFlagConfiguration) Hub()

Hub marks this type as a conversion hub.

func (*FeatureFlagConfiguration) SetupWebhookWithManager

func (r *FeatureFlagConfiguration) SetupWebhookWithManager(mgr ctrl.Manager) error

type FeatureFlagConfigurationList

type FeatureFlagConfigurationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []FeatureFlagConfiguration `json:"items"`
}

FeatureFlagConfigurationList contains a list of FeatureFlagConfiguration

func (*FeatureFlagConfigurationList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureFlagConfigurationList.

func (*FeatureFlagConfigurationList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FeatureFlagConfigurationList) DeepCopyObject

func (in *FeatureFlagConfigurationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FeatureFlagConfigurationSpec

type FeatureFlagConfigurationSpec struct {

	// ServiceProvider [DEPRECATED]: superseded by FlagSourceConfiguration
	// +optional
	// +nullable
	ServiceProvider *FeatureFlagServiceProvider `json:"serviceProvider"`
	// SyncProvider [DEPRECATED]: superseded by FlagSourceConfiguration
	// +optional
	// +nullable
	SyncProvider *FeatureFlagSyncProvider `json:"syncProvider"`
	// FlagDSpec [DEPRECATED]: superseded by FlagSourceConfiguration
	// +optional
	// +nullable
	FlagDSpec *FlagDSpec `json:"flagDSpec"`
	// FeatureFlagSpec is the json representation of the feature flag
	FeatureFlagSpec string `json:"featureFlagSpec,omitempty"`
}

FeatureFlagConfigurationSpec defines the desired state of FeatureFlagConfiguration

func (*FeatureFlagConfigurationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureFlagConfigurationSpec.

func (*FeatureFlagConfigurationSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FeatureFlagConfigurationStatus

type FeatureFlagConfigurationStatus struct {
}

FeatureFlagConfigurationStatus defines the observed state of FeatureFlagConfiguration

func (*FeatureFlagConfigurationStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureFlagConfigurationStatus.

func (*FeatureFlagConfigurationStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FeatureFlagServiceProvider

type FeatureFlagServiceProvider struct {
	// +kubebuilder:validation:Enum=flagd
	Name string `json:"name"`
	// +optional
	// +nullable
	Credentials *corev1.ObjectReference `json:"credentials"`
}

func (*FeatureFlagServiceProvider) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureFlagServiceProvider.

func (*FeatureFlagServiceProvider) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FeatureFlagServiceProvider) IsSet

func (p *FeatureFlagServiceProvider) IsSet() bool

type FeatureFlagSyncProvider

type FeatureFlagSyncProvider struct {
	Name string `json:"name"`
	// +optional
	// +nullable
	HttpSyncConfiguration *HttpSyncConfiguration `json:"httpSyncConfiguration"`
}

func (*FeatureFlagSyncProvider) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureFlagSyncProvider.

func (*FeatureFlagSyncProvider) DeepCopyInto

func (in *FeatureFlagSyncProvider) DeepCopyInto(out *FeatureFlagSyncProvider)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FlagDSpec

type FlagDSpec struct {
	// +optional
	MetricsPort int32 `json:"metricsPort"`
	// +optional
	Envs []corev1.EnvVar `json:"envs"`
}

func (*FlagDSpec) DeepCopy

func (in *FlagDSpec) DeepCopy() *FlagDSpec

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlagDSpec.

func (*FlagDSpec) DeepCopyInto

func (in *FlagDSpec) DeepCopyInto(out *FlagDSpec)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type FlagSourceConfiguration

type FlagSourceConfiguration struct {
	metav1.TypeMeta   `json:",inline"`
	metav1.ObjectMeta `json:"metadata,omitempty"`

	Spec   FlagSourceConfigurationSpec   `json:"spec,omitempty"`
	Status FlagSourceConfigurationStatus `json:"status,omitempty"`
}

FlagSourceConfiguration is the Schema for the FlagSourceConfigurations API

func (*FlagSourceConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlagSourceConfiguration.

func (*FlagSourceConfiguration) DeepCopyInto

func (in *FlagSourceConfiguration) DeepCopyInto(out *FlagSourceConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FlagSourceConfiguration) DeepCopyObject

func (in *FlagSourceConfiguration) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

func (*FlagSourceConfiguration) Hub

func (ffc *FlagSourceConfiguration) Hub()

Hub marks this type as a conversion hub.

func (*FlagSourceConfiguration) SetupWebhookWithManager

func (r *FlagSourceConfiguration) SetupWebhookWithManager(mgr ctrl.Manager) error

type FlagSourceConfigurationList

type FlagSourceConfigurationList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`
	Items           []FlagSourceConfiguration `json:"items"`
}

FlagSourceConfigurationList contains a list of FlagSourceConfiguration

func (*FlagSourceConfigurationList) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlagSourceConfigurationList.

func (*FlagSourceConfigurationList) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FlagSourceConfigurationList) DeepCopyObject

func (in *FlagSourceConfigurationList) DeepCopyObject() runtime.Object

DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object.

type FlagSourceConfigurationSpec

type FlagSourceConfigurationSpec struct {

	// MetricsPort defines the port to serve metrics on, defaults to 8014
	// +optional
	MetricsPort int32 `json:"metricsPort"`

	// Port defines the port to listen on, defaults to 8013
	// +optional
	Port int32 `json:"port"`

	// SocketPath defines the unix socket path to listen on
	// +optional
	SocketPath string `json:"socketPath"`

	// SyncProviderArgs are string arguments passed to all sync providers, defined as key values separated by =
	// +optional
	SyncProviderArgs []string `json:"syncProviderArgs"`

	// Evaluator sets an evaluator, defaults to 'json'
	// +optional
	Evaluator string `json:"evaluator"`

	// Image allows for the sidecar image to be overridden, defaults to 'ghcr.io/open-feature/flagd'
	// +optional
	Image string `json:"image"`

	// Tag to be appended to the sidecar image, defaults to 'main'
	// +optional
	Tag string `json:"tag"`

	// DefaultSyncProvider defines the default sync provider
	// +optional
	DefaultSyncProvider SyncProviderType `json:"defaultSyncProvider"`

	// Sources defines the syncProviders and associated configuration to be applied to the sidecar
	// +kubebuilder:validation:MinItems=1
	Sources []Source `json:"sources"`

	// 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
	// +optional
	EnvVars []corev1.EnvVar `json:"envVars"`

	// EnvVarPrefix defines the prefix to be applied to all environment variables applied to the sidecar, default FLAGD
	// +optional
	EnvVarPrefix string `json:"envVarPrefix"`

	// LogFormat allows for the sidecar log format to be overridden, defaults to 'json'
	// +optional
	LogFormat string `json:"logFormat"`

	// RolloutOnChange dictates whether annotated deployments will be restarted when configuration changes are
	// detected in this CR, defaults to false
	// +optional
	RolloutOnChange *bool `json:"rolloutOnChange"`

	// ProbesEnabled defines whether to enable liveness and readiness probes of flagd sidecar. Default true (enabled).
	// +optional
	ProbesEnabled *bool `json:"probesEnabled"`

	// DebugLogging defines whether to enable --debug flag of flagd sidecar. Default false (disabled).
	// +optional
	DebugLogging *bool `json:"debugLogging"`

	// OtelCollectorUri defines whether to enable --otel-collector-uri flag of flagd sidecar. Default false (disabled).
	// +optional
	OtelCollectorUri string `json:"otelCollectorUri"`

	// Resources defines flagd sidecar resources. Default to operator sidecar-cpu-* and sidecar-ram-* flags.
	// +optional
	Resources corev1.ResourceRequirements `json:"resources"`
}

FlagSourceConfigurationSpec defines the desired state of FlagSourceConfiguration

func NewFlagSourceConfigurationSpec

func NewFlagSourceConfigurationSpec() (*FlagSourceConfigurationSpec, error)

func (*FlagSourceConfigurationSpec) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlagSourceConfigurationSpec.

func (*FlagSourceConfigurationSpec) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

func (*FlagSourceConfigurationSpec) Merge

func (*FlagSourceConfigurationSpec) ToEnvVars

func (fc *FlagSourceConfigurationSpec) ToEnvVars() []corev1.EnvVar

type FlagSourceConfigurationStatus

type FlagSourceConfigurationStatus struct {
}

FlagSourceConfigurationStatus defines the observed state of FlagSourceConfiguration

func (*FlagSourceConfigurationStatus) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FlagSourceConfigurationStatus.

func (*FlagSourceConfigurationStatus) DeepCopyInto

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type HttpSyncConfiguration

type HttpSyncConfiguration struct {
	// Target is the target url for flagd to poll
	Target string `json:"target"`
	// +optional
	BearerToken string `json:"bearerToken,omitempty"`
}

HttpSyncConfiguration defines the desired configuration for a http sync

func (*HttpSyncConfiguration) DeepCopy

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new HttpSyncConfiguration.

func (*HttpSyncConfiguration) DeepCopyInto

func (in *HttpSyncConfiguration) DeepCopyInto(out *HttpSyncConfiguration)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type Source

type Source struct {
	// Source is a URI of the flag sources
	Source string `json:"source"`

	// Provider type - kubernetes, http, grpc or filepath
	// +optional
	Provider SyncProviderType `json:"provider"`

	// HttpSyncBearerToken is a bearer token. Used by http(s) sync provider only
	// +optional
	HttpSyncBearerToken string `json:"httpSyncBearerToken"`

	// TLS - Enable/Disable secure TLS connectivity. Currently used only by GRPC sync
	// +optional
	TLS bool `json:"tls"`

	// CertPath is a path of a certificate to be used by grpc TLS connection
	// +optional
	CertPath string `json:"certPath"`

	// ProviderID is an identifier to be used in grpc provider
	// +optional
	ProviderID string `json:"providerID"`

	// Selector is a flag configuration selector used by grpc provider
	// +optional
	Selector string `json:"selector,omitempty"`
}

func (*Source) DeepCopy

func (in *Source) DeepCopy() *Source

DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Source.

func (*Source) DeepCopyInto

func (in *Source) DeepCopyInto(out *Source)

DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil.

type SyncProviderType

type SyncProviderType string

func (SyncProviderType) IsFilepath

func (s SyncProviderType) IsFilepath() bool

func (SyncProviderType) IsFlagdProxy

func (s SyncProviderType) IsFlagdProxy() bool

func (SyncProviderType) IsGrpc

func (s SyncProviderType) IsGrpc() bool

func (SyncProviderType) IsHttp

func (s SyncProviderType) IsHttp() bool

func (SyncProviderType) IsKubernetes

func (s SyncProviderType) IsKubernetes() bool

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL