v1alpha1

package
v0.80.0 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2024 License: Apache-2.0 Imports: 23 Imported by: 3

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the cloud.redhat.com v1alpha1 API group +kubebuilder:object:generate=true +groupName=cloud.redhat.com

Index

Constants

View Source
const (
	// Ready means all the deployments are ready
	DeploymentsReady clusterv1.ConditionType = "DeploymentsReady"
	// ReconciliationSuccessful represents status of successful reconciliation
	ReconciliationSuccessful clusterv1.ConditionType = "ReconciliationSuccessful"
	// ReconciliationFailed means the reconciliation failed
	ReconciliationFailed clusterv1.ConditionType = "ReconciliationFailed"
	// JobInvocationComplete means all the Jobs have finished
	JobInvocationComplete clusterv1.ConditionType = "JobInvocationComplete"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "cloud.redhat.com", 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

func GetAppInSameEnv

func GetAppInSameEnv(ctx context.Context, pClient client.Client, app *ClowdApp, appList *ClowdAppList) error

GetAppInSameEnv populates the appList with a list of all apps in the same ClowdEnvironment. The environment is inferred from the given app.

func Labels

func Labels(labels map[string]string) omfunc

Labels returns a function that sets the labels of an object to that of the passed in labels.

func Name

func Name(name string) omfunc

Name returns a function that sets the name of an object to that of the passed in string.

func Namespace

func Namespace(namespace string) omfunc

Namespace returns a function that sets the namespace of an object to that of the passed in string.

Types

type APIPath added in v0.65.0

type APIPath string

A string representing an API path that should route to this app for Clowder-managed Ingresses (in format "/api/somepath/") +kubebuilder:validation:Pattern=`^\/api\/[a-zA-Z0-9-]+\/$`

type AppInfo

type AppInfo struct {
	Name        string           `json:"name"`
	Deployments []DeploymentInfo `json:"deployments"`
}

AppInfo details information about a specific app.

func (*AppInfo) DeepCopy added in v0.18.1

func (in *AppInfo) DeepCopy() *AppInfo

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

func (*AppInfo) DeepCopyInto added in v0.18.1

func (in *AppInfo) DeepCopyInto(out *AppInfo)

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

type AppProtocol added in v0.25.0

type AppProtocol string

AppProtocol is used to define an appProtocol for Istio +kubebuilder:validation:Enum={"http", "http2", "https", "tcp", "tls", "grpc", "grpc-web", "mongo", "mysql", "redis"}

type AppResourceStatus added in v0.21.0

type AppResourceStatus struct {
	ManagedDeployments int32 `json:"managedDeployments"`
	ReadyDeployments   int32 `json:"readyDeployments"`
}

func (*AppResourceStatus) DeepCopy added in v0.21.0

func (in *AppResourceStatus) DeepCopy() *AppResourceStatus

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

func (*AppResourceStatus) DeepCopyInto added in v0.21.0

func (in *AppResourceStatus) DeepCopyInto(out *AppResourceStatus)

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

type AutoScaler added in v0.22.0

type AutoScaler struct {
	// PollingInterval is the interval (in seconds) to check each trigger on.
	// Default is 30 seconds.
	// +optional
	PollingInterval *int32 `json:"pollingInterval,omitempty"`
	// CooldownPeriod is the interval (in seconds) to wait after the last trigger reported active before
	// scaling the deployment down. Default is 5 minutes (300 seconds).
	// +optional
	CooldownPeriod *int32 `json:"cooldownPeriod,omitempty"`
	// MaxReplicaCount is the maximum number of replicas the scaler will scale the deployment to.
	// Default is 10.
	// +optional
	MaxReplicaCount *int32 `json:"maxReplicaCount,omitempty"`
	// MinReplicaCount is the minimum number of replicas the scaler will scale the deployment to.
	MinReplicaCount *int32 `json:"minReplicaCount,omitempty"`
	// +optional
	Advanced *keda.AdvancedConfig `json:"advanced,omitempty"`
	// +optional
	Triggers []keda.ScaleTriggers `json:"triggers,omitempty"`
	// +optional
	Fallback *keda.Fallback `json:"fallback,omitempty"`
	// ExternalHPA allows replicas on deployments to be controlled by another resource, but will
	// not be allowed to fall under the minReplicas as set in the ClowdApp.
	ExternalHPA bool `json:"externalHPA,omitempty"`
}

AutoScaler defines the autoscaling parameters of a KEDA ScaledObject targeting the given deployment.

func (*AutoScaler) DeepCopy added in v0.22.0

func (in *AutoScaler) DeepCopy() *AutoScaler

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

func (*AutoScaler) DeepCopyInto added in v0.22.0

func (in *AutoScaler) DeepCopyInto(out *AutoScaler)

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

type AutoScalerConfig added in v0.24.0

type AutoScalerConfig struct {
	// Enable the autoscaler feature
	Mode AutoScalerMode `json:"mode,omitempty"`
}

AutoScalerConfig configures the Clowder provider controlling the creation of AutoScaler configuration.

func (*AutoScalerConfig) DeepCopy added in v0.24.0

func (in *AutoScalerConfig) DeepCopy() *AutoScalerConfig

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

func (*AutoScalerConfig) DeepCopyInto added in v0.24.0

func (in *AutoScalerConfig) DeepCopyInto(out *AutoScalerConfig)

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

type AutoScalerMode added in v0.24.0

type AutoScalerMode string

AutoScaler mode enabled or disabled the autoscaler. The key "keda" is deprecated but preserved for backwards compatibility +kubebuilder:validation:Enum={"none", "enabled", "keda"}

type AutoScalerSimple added in v0.43.0

type AutoScalerSimple struct {
	Replicas SimpleAutoScalerReplicas `json:"replicas"`
	RAM      SimpleAutoScalerMetric   `json:"ram,omitempty"`
	CPU      SimpleAutoScalerMetric   `json:"cpu,omitempty"`
}

SimpleAutoScaler defines a simple HPA with scaling for RAM and CPU by value and utilization thresholds, along with replica count limits

func (*AutoScalerSimple) DeepCopy added in v0.43.0

func (in *AutoScalerSimple) DeepCopy() *AutoScalerSimple

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

func (*AutoScalerSimple) DeepCopyInto added in v0.43.0

func (in *AutoScalerSimple) DeepCopyInto(out *AutoScalerSimple)

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

type ClowdApp

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

	// A ClowdApp specification.
	Spec   ClowdAppSpec   `json:"spec,omitempty"`
	Status ClowdAppStatus `json:"status,omitempty"`
}

ClowdApp is the Schema for the clowdapps API

func GetAppForDBInSameEnv

func GetAppForDBInSameEnv(ctx context.Context, pClient client.Client, app *ClowdApp) (*ClowdApp, error)

GetAppForDBInSameEnv returns a point to a ClowdApp that has the sharedDB referenced by the given ClowdApp.

func (*ClowdApp) DeepCopy added in v0.18.1

func (in *ClowdApp) DeepCopy() *ClowdApp

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

func (*ClowdApp) DeepCopyInto added in v0.18.1

func (in *ClowdApp) DeepCopyInto(out *ClowdApp)

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

func (*ClowdApp) DeepCopyObject added in v0.18.1

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

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

func (*ClowdApp) GetClowdName

func (i *ClowdApp) GetClowdName() string

GetClowdName returns the name of the ClowdApp object.

func (*ClowdApp) GetClowdNamespace

func (i *ClowdApp) GetClowdNamespace() string

GetClowdNamespace returns the namespace of the ClowdApp object.

func (*ClowdApp) GetClowdSAName

func (i *ClowdApp) GetClowdSAName() string

GetClowdSAName returns the ServiceAccount Name for the App

func (*ClowdApp) GetConditions added in v0.25.0

func (i *ClowdApp) GetConditions() clusterv1.Conditions

func (*ClowdApp) GetCronJobNamespacedName

func (i *ClowdApp) GetCronJobNamespacedName(d *Job) types.NamespacedName

GetDeploymentStatus returns the Status.Deployments member

func (*ClowdApp) GetDeploymentNamespacedName

func (i *ClowdApp) GetDeploymentNamespacedName(d *Deployment) types.NamespacedName

GetDeploymentStatus returns the Status.Deployments member

func (*ClowdApp) GetDeploymentStatus

func (i *ClowdApp) GetDeploymentStatus() *AppResourceStatus

GetDeploymentStatus returns the Status.Deployments member

func (*ClowdApp) GetIdent

func (i *ClowdApp) GetIdent() string

GetIdent returns an ident <env>.<app> that should be unique across the cluster.

func (*ClowdApp) GetLabels

func (i *ClowdApp) GetLabels() map[string]string

GetLabels returns a base set of labels relating to the ClowdApp.

func (*ClowdApp) GetNamespacedName

func (i *ClowdApp) GetNamespacedName(pattern string) types.NamespacedName

GetNamespacedName contructs a new namespaced name for an object from the pattern.

func (*ClowdApp) GetNamespacesInEnv added in v0.27.3

func (i *ClowdApp) GetNamespacesInEnv(ctx context.Context, pClient client.Client) ([]string, error)

GetAppsInEnv populates the appList with a list of all apps in the ClowdEnvironment.

func (*ClowdApp) GetOurEnv added in v0.27.3

func (i *ClowdApp) GetOurEnv(ctx context.Context, pClient client.Client, env *ClowdEnvironment) error

func (*ClowdApp) GetPrimaryLabel

func (i *ClowdApp) GetPrimaryLabel() string

GetPrimaryLabel returns the primary label name use for identification.

func (*ClowdApp) GetUID

func (i *ClowdApp) GetUID() types.UID

GetUID returns ObjectMeta.UID

func (*ClowdApp) IsReady

func (i *ClowdApp) IsReady() bool

IsReady returns true when all deployments are ready and the reconciliation is successful

func (*ClowdApp) MakeOwnerReference

func (i *ClowdApp) MakeOwnerReference() metav1.OwnerReference

MakeOwnerReference defines the owner reference pointing to the ClowdApp resource.

func (*ClowdApp) SetConditions added in v0.25.0

func (i *ClowdApp) SetConditions(conditions clusterv1.Conditions)

func (*ClowdApp) SetObjectMeta

func (i *ClowdApp) SetObjectMeta(o metav1.Object, opts ...omfunc)

SetObjectMeta sets the metadata on a ClowdApp object.

func (*ClowdApp) SetupWebhookWithManager

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

func (*ClowdApp) ValidateCreate

func (r *ClowdApp) ValidateCreate() error

ValidateCreate implements webhook.Validator so a webhook will be registered for the type

func (*ClowdApp) ValidateDelete

func (r *ClowdApp) ValidateDelete() error

ValidateDelete implements webhook.Validator so a webhook will be registered for the type

func (*ClowdApp) ValidateUpdate

func (r *ClowdApp) ValidateUpdate(_ runtime.Object) error

ValidateUpdate implements webhook.Validator so a webhook will be registered for the type

type ClowdAppList

type ClowdAppList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// A list of ClowdApp Resources.
	Items []ClowdApp `json:"items"`
}

ClowdAppList contains a list of ClowdApp

func (*ClowdAppList) DeepCopy added in v0.18.1

func (in *ClowdAppList) DeepCopy() *ClowdAppList

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

func (*ClowdAppList) DeepCopyInto added in v0.18.1

func (in *ClowdAppList) DeepCopyInto(out *ClowdAppList)

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

func (*ClowdAppList) DeepCopyObject added in v0.18.1

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

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

type ClowdAppSpec

type ClowdAppSpec struct {
	// A list of deployments
	Deployments []Deployment `json:"deployments,omitempty"`

	// A list of jobs
	Jobs []Job `json:"jobs,omitempty"`

	// The name of the ClowdEnvironment resource that this ClowdApp will use as
	// its base. This does not mean that the ClowdApp needs to be placed in the
	// same directory as the targetNamespace of the ClowdEnvironment.
	EnvName string `json:"envName"`

	// A list of Kafka topics that will be created and made available to all
	// the pods listed in the ClowdApp.
	KafkaTopics []KafkaTopicSpec `json:"kafkaTopics,omitempty"`

	// The database specification defines a single database, the configuration
	// of which will be made available to all the pods in the ClowdApp.
	Database DatabaseSpec `json:"database,omitempty"`

	// A list of string names defining storage buckets. In certain modes,
	// defined by the ClowdEnvironment, Clowder will create those buckets.
	ObjectStore []string `json:"objectStore,omitempty"`

	// If inMemoryDb is set to true, Clowder will pass configuration
	// of an In Memory Database to the pods in the ClowdApp. This single
	// instance will be shared between all apps.
	InMemoryDB bool `json:"inMemoryDb,omitempty"`

	// If featureFlags is set to true, Clowder will pass configuration of a
	// FeatureFlags instance to the pods in the ClowdApp. This single
	// instance will be shared between all apps.
	FeatureFlags bool `json:"featureFlags,omitempty"`

	// A list of dependencies in the form of the name of the ClowdApps that are
	// required to be present for this ClowdApp to function.
	Dependencies []string `json:"dependencies,omitempty"`

	// A list of optional dependencies in the form of the name of the ClowdApps that
	// will be added to the configuration when present.
	OptionalDependencies []string `json:"optionalDependencies,omitempty"`

	// Iqe plugin and other specifics
	Testing TestingSpec `json:"testing,omitempty"`

	// Configures 'cyndi' database syndication for this app. When the app's ClowdEnvironment has
	// the kafka provider set to (*_operator_*) mode, Clowder will configure a CyndiPipeline
	// for this app in the environment's kafka-connect namespace. When the kafka provider is in
	// (*_app-interface_*) mode, Clowder will check to ensure that a CyndiPipeline resource exists
	// for the application in the environment's kafka-connect namespace. For all other kafka
	// provider modes, this configuration option has no effect.
	Cyndi CyndiSpec `json:"cyndi,omitempty"`

	// Disabled turns off reconciliation for this ClowdApp
	Disabled bool `json:"disabled,omitempty"`
}

ClowdAppSpec is the main specification for a single Clowder Application it defines n pods along with dependencies that are shared between them.

func (*ClowdAppSpec) DeepCopy added in v0.18.1

func (in *ClowdAppSpec) DeepCopy() *ClowdAppSpec

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

func (*ClowdAppSpec) DeepCopyInto added in v0.18.1

func (in *ClowdAppSpec) DeepCopyInto(out *ClowdAppSpec)

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

type ClowdAppStatus

type ClowdAppStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	// ClowdEnvironmentStatus defines the observed state of ClowdEnvironment
	Deployments AppResourceStatus     `json:"deployments,omitempty"`
	Ready       bool                  `json:"ready"`
	Conditions  []clusterv1.Condition `json:"conditions,omitempty"`
}

ClowdAppStatus defines the observed state of ClowdApp

func (*ClowdAppStatus) DeepCopy added in v0.18.1

func (in *ClowdAppStatus) DeepCopy() *ClowdAppStatus

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

func (*ClowdAppStatus) DeepCopyInto added in v0.18.1

func (in *ClowdAppStatus) DeepCopyInto(out *ClowdAppStatus)

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

type ClowdEnvironment

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

	// A ClowdEnvironmentSpec object.
	Spec   ClowdEnvironmentSpec   `json:"spec,omitempty"`
	Status ClowdEnvironmentStatus `json:"status,omitempty"`
}

ClowdEnvironment is the Schema for the clowdenvironments API

func (*ClowdEnvironment) ConvertDeprecatedKafkaSpec

func (i *ClowdEnvironment) ConvertDeprecatedKafkaSpec()

ConvertDeprecatedKafkaSpec converts values from the old Kafka provider spec into the new format

func (*ClowdEnvironment) DeepCopy added in v0.18.1

func (in *ClowdEnvironment) DeepCopy() *ClowdEnvironment

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

func (*ClowdEnvironment) DeepCopyInto added in v0.18.1

func (in *ClowdEnvironment) DeepCopyInto(out *ClowdEnvironment)

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

func (*ClowdEnvironment) DeepCopyObject added in v0.18.1

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

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

func (*ClowdEnvironment) GenerateHostname added in v0.21.0

func (i *ClowdEnvironment) GenerateHostname(ctx context.Context, pClient client.Client, log logr.Logger, random bool) string

GetClowdHostname gets the hostname for a particular environment

func (*ClowdEnvironment) GenerateTargetNamespace

func (i *ClowdEnvironment) GenerateTargetNamespace() string

GenerateTargetNamespace gets a generated target namespace if one is not provided

func (*ClowdEnvironment) GetAppsInEnv

func (i *ClowdEnvironment) GetAppsInEnv(ctx context.Context, pClient client.Client) (*ClowdAppList, error)

GetAppsInEnv populates the appList with a list of all apps in the ClowdEnvironment.

func (*ClowdEnvironment) GetClowdName

func (i *ClowdEnvironment) GetClowdName() string

GetClowdName returns the name of the ClowdApp object.

func (*ClowdEnvironment) GetClowdNamespace

func (i *ClowdEnvironment) GetClowdNamespace() string

GetClowdNamespace returns the namespace of the ClowdApp object.

func (*ClowdEnvironment) GetClowdSAName

func (i *ClowdEnvironment) GetClowdSAName() string

GetClowdSAName returns the ServiceAccount Name for the App

func (*ClowdEnvironment) GetConditions added in v0.25.0

func (i *ClowdEnvironment) GetConditions() clusterv1.Conditions

func (*ClowdEnvironment) GetDeploymentStatus

func (i *ClowdEnvironment) GetDeploymentStatus() *EnvResourceStatus

GetDeploymentStatus returns the Status.Deployments member

func (*ClowdEnvironment) GetLabels

func (i *ClowdEnvironment) GetLabels() map[string]string

GetLabels returns a base set of labels relating to the ClowdEnvironment.

func (*ClowdEnvironment) GetNamespacesInEnv

func (i *ClowdEnvironment) GetNamespacesInEnv(ctx context.Context, pClient client.Client) ([]string, error)

GetAppsInEnv populates the appList with a list of all apps in the ClowdEnvironment.

func (*ClowdEnvironment) GetPrimaryLabel

func (i *ClowdEnvironment) GetPrimaryLabel() string

GetPrimaryLabel returns the primary label name use for igentification.

func (*ClowdEnvironment) GetUID

func (i *ClowdEnvironment) GetUID() types.UID

GetUID returns ObjectMeta.UID

func (*ClowdEnvironment) IsNodePort

func (i *ClowdEnvironment) IsNodePort() bool

IsNodePort indicates whether or not services are configured as NodePort or not

func (*ClowdEnvironment) IsReady

func (i *ClowdEnvironment) IsReady() bool

IsReady returns true when all deployments are ready and the reconciliation is successful

func (*ClowdEnvironment) MakeOwnerReference

func (i *ClowdEnvironment) MakeOwnerReference() metav1.OwnerReference

MakeOwnerReference defines the owner reference pointing to the ClowdApp resource.

func (*ClowdEnvironment) SetConditions added in v0.25.0

func (i *ClowdEnvironment) SetConditions(conditions clusterv1.Conditions)

type ClowdEnvironmentList

type ClowdEnvironmentList struct {
	metav1.TypeMeta `json:",inline"`
	metav1.ListMeta `json:"metadata,omitempty"`

	// A list of ClowdEnvironment objects.
	Items []ClowdEnvironment `json:"items"`
}

ClowdEnvironmentList contains a list of ClowdEnvironment

func (*ClowdEnvironmentList) DeepCopy added in v0.18.1

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

func (*ClowdEnvironmentList) DeepCopyInto added in v0.18.1

func (in *ClowdEnvironmentList) DeepCopyInto(out *ClowdEnvironmentList)

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

func (*ClowdEnvironmentList) DeepCopyObject added in v0.18.1

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

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

type ClowdEnvironmentSpec

type ClowdEnvironmentSpec struct {
	// TargetNamespace describes the namespace where any generated environmental
	// resources should end up, this is particularly important in (*_local_*) mode.
	TargetNamespace string `json:"targetNamespace,omitempty"`

	// A ProvidersConfig object, detailing the setup and configuration of all the
	// providers used in this ClowdEnvironment.
	Providers ProvidersConfig `json:"providers"`

	// Defines the default resource requirements in standard k8s format in the
	// event that they omitted from a PodSpec inside a ClowdApp.
	ResourceDefaults core.ResourceRequirements `json:"resourceDefaults"`

	ServiceConfig ServiceConfig `json:"serviceConfig,omitempty"`

	// Disabled turns off reconciliation for this ClowdEnv
	Disabled bool `json:"disabled,omitempty"`
}

ClowdEnvironmentSpec defines the desired state of ClowdEnvironment.

func (*ClowdEnvironmentSpec) DeepCopy added in v0.18.1

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

func (*ClowdEnvironmentSpec) DeepCopyInto added in v0.18.1

func (in *ClowdEnvironmentSpec) DeepCopyInto(out *ClowdEnvironmentSpec)

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

type ClowdEnvironmentStatus

type ClowdEnvironmentStatus struct {
	// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
	// Important: Run "make" to regenerate code after modifying this file
	Conditions      []clusterv1.Condition `json:"conditions,omitempty"`
	TargetNamespace string                `json:"targetNamespace,omitempty"`
	Ready           bool                  `json:"ready,omitempty"`
	Deployments     EnvResourceStatus     `json:"deployments,omitempty"`
	Apps            []AppInfo             `json:"apps,omitempty"`
	Generation      int64                 `json:"generation,omitempty"`
	Hostname        string                `json:"hostname,omitempty"`
	Prometheus      PrometheusStatus      `json:"prometheus,omitempty"`
}

ClowdEnvironmentStatus defines the observed state of ClowdEnvironment

func (*ClowdEnvironmentStatus) DeepCopy added in v0.18.1

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

func (*ClowdEnvironmentStatus) DeepCopyInto added in v0.18.1

func (in *ClowdEnvironmentStatus) DeepCopyInto(out *ClowdEnvironmentStatus)

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

type ClowdJobInvocation

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

	Spec   ClowdJobInvocationSpec   `json:"spec,omitempty"`
	Status ClowdJobInvocationStatus `json:"status,omitempty"`
}

ClowdJobInvocation is the Schema for the jobinvocations API

func (*ClowdJobInvocation) DeepCopy added in v0.18.1

func (in *ClowdJobInvocation) DeepCopy() *ClowdJobInvocation

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

func (*ClowdJobInvocation) DeepCopyInto added in v0.18.1

func (in *ClowdJobInvocation) DeepCopyInto(out *ClowdJobInvocation)

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

func (*ClowdJobInvocation) DeepCopyObject added in v0.18.1

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

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

func (*ClowdJobInvocation) GenerateJobName added in v0.21.0

func (i *ClowdJobInvocation) GenerateJobName() string

func (*ClowdJobInvocation) GetClowdName

func (i *ClowdJobInvocation) GetClowdName() string

GetClowdName returns the name of the ClowdJobInvocation object.

func (*ClowdJobInvocation) GetClowdNamespace

func (i *ClowdJobInvocation) GetClowdNamespace() string

GetClowdNamespace returns the namespace of the ClowdJobInvocation object.

func (*ClowdJobInvocation) GetClowdSAName

func (i *ClowdJobInvocation) GetClowdSAName() string

GetClowdName returns the name of the ClowdJobInvocation object.

func (*ClowdJobInvocation) GetConditions added in v0.25.0

func (i *ClowdJobInvocation) GetConditions() clusterv1.Conditions

func (*ClowdJobInvocation) GetIQEName added in v0.21.0

func (i *ClowdJobInvocation) GetIQEName() string

GetIQEName returns the name of the ClowdJobInvocation's IQE job.

func (*ClowdJobInvocation) GetInvokedJobs added in v0.21.0

func (i *ClowdJobInvocation) GetInvokedJobs(ctx context.Context, c client.Client) (*batchv1.JobList, error)

func (*ClowdJobInvocation) GetLabels

func (i *ClowdJobInvocation) GetLabels() map[string]string

GetLabels returns a base set of labels relating to the ClowdJobInvocation.

func (*ClowdJobInvocation) GetNamespacedName

func (i *ClowdJobInvocation) GetNamespacedName(pattern string) types.NamespacedName

GetNamespacedName contructs a new namespaced name for an object from the pattern.

func (*ClowdJobInvocation) GetUID

func (i *ClowdJobInvocation) GetUID() types.UID

GetUID returns ObjectMeta.UID

func (*ClowdJobInvocation) MakeOwnerReference

func (i *ClowdJobInvocation) MakeOwnerReference() metav1.OwnerReference

MakeOwnerReference defines the owner reference pointing to the ClowdJobInvocation resource.

func (*ClowdJobInvocation) SetConditions added in v0.25.0

func (i *ClowdJobInvocation) SetConditions(conditions clusterv1.Conditions)

func (*ClowdJobInvocation) SetObjectMeta

func (i *ClowdJobInvocation) SetObjectMeta(o metav1.Object, opts ...omfunc)

SetObjectMeta sets the metadata on a ClowdApp object.

type ClowdJobInvocationList

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

ClowdJobInvocationList contains a list of ClowdJobInvocation

func (*ClowdJobInvocationList) DeepCopy added in v0.18.1

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

func (*ClowdJobInvocationList) DeepCopyInto added in v0.18.1

func (in *ClowdJobInvocationList) DeepCopyInto(out *ClowdJobInvocationList)

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

func (*ClowdJobInvocationList) DeepCopyObject added in v0.18.1

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

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

type ClowdJobInvocationSpec

type ClowdJobInvocationSpec struct {
	// Name of the ClowdApp who owns the jobs
	AppName string `json:"appName"`

	// Jobs is the set of jobs to be run by the invocation
	Jobs []string `json:"jobs,omitempty"`

	// Testing is the struct for building out test jobs (iqe, etc) in a CJI
	Testing JobTestingSpec `json:"testing,omitempty"`

	// RunOnNotReady is a flag that when true, the job will not wait for the deployment to be ready to run
	RunOnNotReady bool `json:"runOnNotReady,omitempty"`
}

ClowdJobInvocationSpec defines the desired state of ClowdJobInvocation

func (*ClowdJobInvocationSpec) DeepCopy added in v0.18.1

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

func (*ClowdJobInvocationSpec) DeepCopyInto added in v0.18.1

func (in *ClowdJobInvocationSpec) DeepCopyInto(out *ClowdJobInvocationSpec)

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

type ClowdJobInvocationStatus

type ClowdJobInvocationStatus struct {
	// Completed is false and updated when all jobs have either finished
	// successfully or failed past their backoff and retry values
	Completed bool `json:"completed"`
	// DEPRECATED : Jobs is an array of jobs name run by a CJI.
	Jobs []string `json:"jobs,omitempty"`
	// JobMap is a map of the job names run by Job invocation and their outcomes
	JobMap     map[string]JobConditionState `json:"jobMap"`
	Conditions []clusterv1.Condition        `json:"conditions,omitempty"`
}

ClowdJobInvocationStatus defines the observed state of ClowdJobInvocation

func (*ClowdJobInvocationStatus) DeepCopy added in v0.18.1

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

func (*ClowdJobInvocationStatus) DeepCopyInto added in v0.18.1

func (in *ClowdJobInvocationStatus) DeepCopyInto(out *ClowdJobInvocationStatus)

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

type ConfigAccessMode

type ConfigAccessMode string

Describes what amount of app config is mounted to the pod +kubebuilder:validation:Enum={"none", "app", "", "environment"}

type CyndiSpec

type CyndiSpec struct {
	// Enables or Disables the Cyndi pipeline for the Clowdapp
	Enabled bool `json:"enabled,omitempty"`

	// Application name - if empty will default to Clowdapp's name
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=64
	// +kubebuilder:validation:Pattern:="[a-z0-9]([-a-z0-9]*[a-z0-9])?(\\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*"
	AppName string `json:"appName,omitempty"`

	// AdditionalFilters
	AdditionalFilters []map[string]string `json:"additionalFilters,omitempty"`

	// Desired host syndication type (all or Insights hosts only) - defaults to false (All hosts)
	InsightsOnly bool `json:"insightsOnly,omitempty"`
}

CyndiSpec is used to indicate whether a ClowdApp needs database syndication configured by the cyndi operator and exposes a limited set of cyndi configuration options

func (*CyndiSpec) DeepCopy added in v0.18.1

func (in *CyndiSpec) DeepCopy() *CyndiSpec

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

func (*CyndiSpec) DeepCopyInto added in v0.18.1

func (in *CyndiSpec) DeepCopyInto(out *CyndiSpec)

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

type DatabaseConfig

type DatabaseConfig struct {
	// The mode of operation of the Clowder Database Provider. Valid options are:
	// (*_app-interface_*) where the provider will pass through database credentials
	// found in the secret defined by the database name in the ClowdApp, and (*_local_*)
	// where the provider will spin up a local instance of the database.
	Mode DatabaseMode `json:"mode"`

	// Indicates where Clowder will fetch the database CA certificate bundle from. Currently only used in
	// (*_app-interface_*) mode. If none is specified, the AWS RDS combined CA bundle is used.
	// +kubebuilder:validation:Pattern=`^https?:\/\/.+$`
	CaBundleURL string `json:"caBundleURL,omitempty"`

	// If using the (*_local_*) mode and PVC is set to true, this instructs the local
	// Database instance to use a PVC instead of emptyDir for its volumes.
	PVC bool `json:"pvc,omitempty"`
}

DatabaseConfig configures the Clowder provider controlling the creation of Database instances.

func (*DatabaseConfig) DeepCopy added in v0.18.1

func (in *DatabaseConfig) DeepCopy() *DatabaseConfig

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

func (*DatabaseConfig) DeepCopyInto added in v0.18.1

func (in *DatabaseConfig) DeepCopyInto(out *DatabaseConfig)

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

type DatabaseMode

type DatabaseMode string

DatabaseMode details the mode of operation of the Clowder Database Provider +kubebuilder:validation:Enum=shared;app-interface;local;none

type DatabaseSpec

type DatabaseSpec struct {
	// Defines the Version of the PostGreSQL database, defaults to 12.
	// +kubebuilder:validation:Enum:=10;12;13;14;15;16
	Version *int32 `json:"version,omitempty"`

	// Defines the Name of the database used by this app. This will be used as the
	// name of the logical database created by Clowder when the DB provider is in (*_local_*) mode.
	// In (*_app-interface_*) mode, the name here is used to locate the DB secret as a fallback mechanism
	// in cases where there is no 'clowder/database: <app-name>' annotation set on any secrets by looking
	// for a secret with 'db.host' starting with '<name>-<env>' where env is usually 'stage' or 'prod'
	Name string `json:"name,omitempty"`

	// Defines the Name of the app to share a database from
	SharedDBAppName string `json:"sharedDbAppName,omitempty"`

	// T-shirt size, one of small, medium, large
	// +kubebuilder:validation:Enum={"small", "medium", "large"}
	DBVolumeSize string `json:"dbVolumeSize,omitempty"`

	// T-shirt size, one of small, medium, large
	// +kubebuilder:validation:Enum={"small", "medium", "large"}
	DBResourceSize string `json:"dbResourceSize,omitempty"`
}

DatabaseSpec is a struct defining a database to be exposed to a ClowdApp.

func (*DatabaseSpec) DeepCopy added in v0.18.1

func (in *DatabaseSpec) DeepCopy() *DatabaseSpec

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

func (*DatabaseSpec) DeepCopyInto added in v0.18.1

func (in *DatabaseSpec) DeepCopyInto(out *DatabaseSpec)

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

type Deployment

type Deployment struct {
	// Name defines the identifier of a Pod inside the ClowdApp. This name will
	// be used along side the name of the ClowdApp itself to form a <app>-<pod>
	// pattern which will be used for all other created resources and also for
	// some labels. It must be unique within a ClowdApp.
	Name string `json:"name"`

	// Deprecated: Use Replicas instead
	// If Replicas is not set and MinReplicas is set, then MinReplicas will be used
	MinReplicas *int32 `json:"minReplicas,omitempty"`

	// Defines the desired replica count for the pod
	Replicas *int32 `json:"replicas,omitempty"`

	// If set to true, creates a service on the webPort defined in
	// the ClowdEnvironment resource, along with the relevant liveness and
	// readiness probes.
	Web WebDeprecated `json:"web,omitempty"`

	WebServices WebServices `json:"webServices,omitempty"`

	// PodSpec defines a container running inside a ClowdApp.
	PodSpec PodSpec `json:"podSpec"`

	// K8sAccessLevel defines the level of access for this deployment
	K8sAccessLevel K8sAccessLevel `json:"k8sAccessLevel,omitempty"`

	// AutoScaler defines the configuration for the Keda auto scaler
	AutoScaler *AutoScaler `json:"autoScaler,omitempty"`

	AutoScalerSimple *AutoScalerSimple `json:"autoScalerSimple,omitempty"`

	// DeploymentStrategy allows the deployment strategy to be set only if the
	// deployment has no public service enabled
	DeploymentStrategy *DeploymentStrategy `json:"deploymentStrategy,omitempty"`

	Metadata DeploymentMetadata `json:"metadata,omitempty"`
}

Deployment defines a service running inside a ClowdApp and will output a deployment resource. Only one container per pod is allowed and this is defined in the PodSpec attribute.

func (*Deployment) DeepCopy added in v0.18.1

func (in *Deployment) DeepCopy() *Deployment

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

func (*Deployment) DeepCopyInto added in v0.18.1

func (in *Deployment) DeepCopyInto(out *Deployment)

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

func (*Deployment) GetReplicaCount added in v0.50.0

func (d *Deployment) GetReplicaCount() *int32

type DeploymentConfig added in v0.27.0

type DeploymentConfig struct {
	OmitPullPolicy bool `json:"omitPullPolicy,omitempty"`
}

func (*DeploymentConfig) DeepCopy added in v0.27.0

func (in *DeploymentConfig) DeepCopy() *DeploymentConfig

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

func (*DeploymentConfig) DeepCopyInto added in v0.27.0

func (in *DeploymentConfig) DeepCopyInto(out *DeploymentConfig)

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

type DeploymentInfo

type DeploymentInfo struct {
	Name     string `json:"name"`
	Hostname string `json:"hostname,omitempty"`
	Port     int32  `json:"port,omitempty"`
}

DeploymentInfo defailts information about a specific deployment.

func (*DeploymentInfo) DeepCopy added in v0.18.1

func (in *DeploymentInfo) DeepCopy() *DeploymentInfo

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

func (*DeploymentInfo) DeepCopyInto added in v0.18.1

func (in *DeploymentInfo) DeepCopyInto(out *DeploymentInfo)

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

type DeploymentMetadata added in v0.43.0

type DeploymentMetadata struct {
	Annotations map[string]string `json:"annotations,omitempty"`
}

func (*DeploymentMetadata) DeepCopy added in v0.43.0

func (in *DeploymentMetadata) DeepCopy() *DeploymentMetadata

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

func (*DeploymentMetadata) DeepCopyInto added in v0.43.0

func (in *DeploymentMetadata) DeepCopyInto(out *DeploymentMetadata)

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

type DeploymentStrategy added in v0.29.0

type DeploymentStrategy struct {
	// PrivateStrategy allows a deployment that only uses a private port to set
	// the deployment strategy one of Recreate or Rolling, default for a
	// private service is Recreate. This is to enable a quicker roll out for
	// services that do not have public facing endpoints.
	PrivateStrategy apps.DeploymentStrategyType `json:"privateStrategy,omitempty"`
}

func (*DeploymentStrategy) DeepCopy added in v0.29.0

func (in *DeploymentStrategy) DeepCopy() *DeploymentStrategy

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

func (*DeploymentStrategy) DeepCopyInto added in v0.29.0

func (in *DeploymentStrategy) DeepCopyInto(out *DeploymentStrategy)

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

type EnvResourceStatus added in v0.21.0

type EnvResourceStatus struct {
	ManagedDeployments int32 `json:"managedDeployments"`
	ReadyDeployments   int32 `json:"readyDeployments"`
	ManagedTopics      int32 `json:"managedTopics"`
	ReadyTopics        int32 `json:"readyTopics"`
}

func (*EnvResourceStatus) DeepCopy added in v0.21.0

func (in *EnvResourceStatus) DeepCopy() *EnvResourceStatus

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

func (*EnvResourceStatus) DeepCopyInto added in v0.21.0

func (in *EnvResourceStatus) DeepCopyInto(out *EnvResourceStatus)

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

type FeatureFlagsConfig

type FeatureFlagsConfig struct {
	// The mode of operation of the Clowder FeatureFlag Provider. Valid options are:
	// (*_app-interface_*) where the provider will pass through credentials
	// to the app configuration, and (*_local_*) where a local Unleash instance will
	// be created.
	Mode FeatureFlagsMode `json:"mode,omitempty"`

	// If using the (*_local_*) mode and PVC is set to true, this instructs the local
	// Database instance to use a PVC instead of emptyDir for its volumes.
	PVC bool `json:"pvc,omitempty"`

	// Defines the secret containing the client access token, only used for (*_app-interface_*)
	// mode.
	CredentialRef NamespacedName `json:"credentialRef,omitempty"`

	// Defines the hostname for (*_app-interface_*) mode
	Hostname string `json:"hostname,omitempty"`

	// Defineds the port for (*_app-interface_*) mode
	Port int32 `json:"port,omitempty"`
}

FeatureFlagsConfig configures the Clowder provider controlling the creation of FeatureFlag instances.

func (*FeatureFlagsConfig) DeepCopy added in v0.18.1

func (in *FeatureFlagsConfig) DeepCopy() *FeatureFlagsConfig

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

func (*FeatureFlagsConfig) DeepCopyInto added in v0.18.1

func (in *FeatureFlagsConfig) DeepCopyInto(out *FeatureFlagsConfig)

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

type FeatureFlagsMode

type FeatureFlagsMode string

FeatureFlagsMode details the mode of operation of the Clowder FeatureFlags Provider +kubebuilder:validation:Enum=local;app-interface;none +kubebuilder:validation:Optional

type GatewayCert added in v0.65.0

type GatewayCert struct {
	// Determines whether to enable the gateway cert, default is disabled
	Enabled bool `json:"enabled,omitempty"`

	// Determines the mode of certificate generation, either self-signed or acme
	CertMode GatewayCertMode `json:"certMode,omitempty"`

	// Determines a ConfigMap in the target namespace of the env which has ca.pem detailing the cert to use for mTLS verification
	LocalCAConfigMap string `json:"localCAConfigMap,omitempty"`

	// The email address used to register with Let's Encrypt for acme mode certs
	EmailAddress string `json:"emailAddress,omitempty"`
}

func (*GatewayCert) DeepCopy added in v0.65.0

func (in *GatewayCert) DeepCopy() *GatewayCert

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

func (*GatewayCert) DeepCopyInto added in v0.65.0

func (in *GatewayCert) DeepCopyInto(out *GatewayCert)

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

type GatewayCertMode added in v0.65.0

type GatewayCertMode string

GatewayCertMode details the mode of operation of the Gateway Cert +kubebuilder:validation:Enum=self-signed;acme;none

type InMemoryDBConfig

type InMemoryDBConfig struct {
	// The mode of operation of the Clowder InMemory Provider. Valid options are:
	// (*_redis_*) where a local Minio instance will be created, and (*_elasticache_*)
	// which will search the namespace of the ClowdApp for a secret called 'elasticache'
	Mode InMemoryMode `json:"mode"`

	// If using the (*_local_*) mode and PVC is set to true, this instructs the local
	// Database instance to use a PVC instead of emptyDir for its volumes.
	PVC bool `json:"pvc,omitempty"`
}

InMemoryDBConfig configures the Clowder provider controlling the creation of InMemoryDB instances.

func (*InMemoryDBConfig) DeepCopy added in v0.18.1

func (in *InMemoryDBConfig) DeepCopy() *InMemoryDBConfig

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

func (*InMemoryDBConfig) DeepCopyInto added in v0.18.1

func (in *InMemoryDBConfig) DeepCopyInto(out *InMemoryDBConfig)

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

type InMemoryMode

type InMemoryMode string

InMemoryMode details the mode of operation of the Clowder InMemoryDB Provider +kubebuilder:validation:Enum=redis;app-interface;elasticache;none

type InitContainer

type InitContainer struct {
	// Name gives an identifier in the situation where multiple init containers exist
	Name string `json:"name,omitempty"`

	// Image refers to the container image used to create the init container
	// (if different from the primary pod image).
	Image string `json:"image,omitempty"`

	// A list of commands to run inside the parent Pod.
	Command []string `json:"command,omitempty"`

	// A list of args to be passed to the init container.
	Args []string `json:"args,omitempty"`

	// If true, inheirts the environment variables from the parent pod.
	// specification
	InheritEnv bool `json:"inheritEnv,omitempty"`

	// A list of environment variables used only by the initContainer.
	Env []v1.EnvVar `json:"env,omitempty"`
}

InitContainer is a struct defining a k8s init container. This will be deployed along with the parent pod and is used to carry out one time initialization procedures.

func (*InitContainer) DeepCopy added in v0.18.1

func (in *InitContainer) DeepCopy() *InitContainer

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

func (*InitContainer) DeepCopyInto added in v0.18.1

func (in *InitContainer) DeepCopyInto(out *InitContainer)

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

type IqeConfig

type IqeConfig struct {
	ImageBase string `json:"imageBase"`

	// A pass-through of a resource requirements in k8s ResourceRequirements
	// format. If omitted, the default resource requirements from the
	// ClowdEnvironment will be used.
	Resources core.ResourceRequirements `json:"resources,omitempty"`

	// Defines the secret reference for loading vault credentials into the IQE job
	VaultSecretRef NamespacedName `json:"vaultSecretRef,omitempty"`

	// Defines configurations related to UI testing containers
	UI IqeUIConfig `json:"ui,omitempty"`
}

func (*IqeConfig) DeepCopy added in v0.18.1

func (in *IqeConfig) DeepCopy() *IqeConfig

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

func (*IqeConfig) DeepCopyInto added in v0.18.1

func (in *IqeConfig) DeepCopyInto(out *IqeConfig)

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

type IqeJobSpec

type IqeJobSpec struct {
	// Image tag to use for IQE container. By default, Clowder will set the image tag to be
	// baseImage:name-of-iqe-plugin, where baseImage is defined in the ClowdEnvironment. Only the tag can be overridden here.
	ImageTag string `json:"imageTag,omitempty"`

	// A comma,separated,list indicating IQE plugin(s) to run tests for. By default, Clowder will use the plugin name given on the ClowdApp's
	// spec.testing.iqePlugin field. Use this field if you wish you override the plugin list.
	IqePlugins string `json:"plugins,omitempty"`

	// Defines configuration for a selenium container (optional)
	UI IqeUISpec `json:"ui,omitempty"`

	// Specifies environment variables to set on the IQE container
	Env *[]core.EnvVar `json:"env,omitempty"`

	// Changes entrypoint to invoke 'iqe container-debug' so that container starts but does not run tests, allowing 'rsh' to be invoked
	Debug bool `json:"debug,omitempty"`

	// (DEPRECATED, using 'env' now preferred) sets IQE_MARKER_EXPRESSION env var on the IQE container
	Marker string `json:"marker,omitempty"`

	// (DEPRECATED, using 'env' now preferred) sets ENV_FOR_DYNACONF env var on the IQE container
	DynaconfEnvName string `json:"dynaconfEnvName,omitempty"`

	// (DEPRECATED, using 'env' now preferred) sets IQE_FILTER_EXPRESSION env var on the IQE container
	Filter string `json:"filter,omitempty"`

	// (DEPRECATED, using 'env' now preferred) sets IQE_REQUIREMENTS env var on the IQE container
	Requirements *[]string `json:"requirements,omitempty"`

	// (DEPRECATED, using 'env' now preferred) sets IQE_REQUIREMENTS_PRIORITY env var on the IQE container
	RequirementsPriority *[]string `json:"requirementsPriority,omitempty"`

	// (DEPRECATED, using 'env' now preferred) sets IQE_TEST_IMPORTANCE env var on the IQE container
	TestImportance *[]string `json:"testImportance,omitempty"`

	// (DEPRECATED, using 'env' now preferred) sets IQE_LOG_LEVEL env var on the IQE container
	//+kubebuilder:validation:Enum={"", "critical", "error", "warning", "info", "debug", "notset"}
	LogLevel string `json:"logLevel,omitempty"`

	// (DEPRECATED, using 'env' now preferred) sets IQE_PARALLEL_ENABLED env var on the IQE container
	ParallelEnabled string `json:"parallelEnabled,omitempty"`

	// (DEPRECATED, using 'env' now preferred) sets IQE_PARALLEL_WORKER_COUNT env var on the IQE container
	ParallelWorkerCount string `json:"parallelWorkerCount,omitempty"`

	// (DEPRECATED, using 'env' now preferred) sets IQE_RP_ARGS env var on the IQE container
	RpArgs string `json:"rpArgs,omitempty"`

	// (DEPRECATED, using 'env' now preferred) sets IQE_IBUTSU_SOURCE env var on the IQE container
	IbutsuSource string `json:"ibutsuSource,omitempty"`
}

func (*IqeJobSpec) DeepCopy added in v0.18.1

func (in *IqeJobSpec) DeepCopy() *IqeJobSpec

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

func (*IqeJobSpec) DeepCopyInto added in v0.18.1

func (in *IqeJobSpec) DeepCopyInto(out *IqeJobSpec)

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

type IqeSeleniumSpec added in v0.29.0

type IqeSeleniumSpec struct {
	// Whether or not a selenium container should be deployed in the IQE pod
	Deploy bool `json:"deploy,omitempty"`

	// Name of selenium image tag to use if not using the environment's default
	ImageTag string `json:"imageTag,omitempty"`
}

func (*IqeSeleniumSpec) DeepCopy added in v0.29.0

func (in *IqeSeleniumSpec) DeepCopy() *IqeSeleniumSpec

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

func (*IqeSeleniumSpec) DeepCopyInto added in v0.29.0

func (in *IqeSeleniumSpec) DeepCopyInto(out *IqeSeleniumSpec)

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

type IqeUIConfig added in v0.29.0

type IqeUIConfig struct {
	// Defines configurations for selenium containers in this environment
	Selenium IqeUISeleniumConfig `json:"selenium,omitempty"`
}

func (*IqeUIConfig) DeepCopy added in v0.29.0

func (in *IqeUIConfig) DeepCopy() *IqeUIConfig

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

func (*IqeUIConfig) DeepCopyInto added in v0.29.0

func (in *IqeUIConfig) DeepCopyInto(out *IqeUIConfig)

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

type IqeUISeleniumConfig added in v0.29.0

type IqeUISeleniumConfig struct {
	// Defines the image used for selenium containers in this environment
	ImageBase string `json:"imageBase,omitempty"`

	// Defines the default image tag used for selenium containers in this environment
	DefaultImageTag string `json:"defaultImageTag,omitempty"`

	// Defines the resource requests/limits set on selenium containers
	Resources core.ResourceRequirements `json:"resources,omitempty"`
}

func (*IqeUISeleniumConfig) DeepCopy added in v0.29.0

func (in *IqeUISeleniumConfig) DeepCopy() *IqeUISeleniumConfig

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

func (*IqeUISeleniumConfig) DeepCopyInto added in v0.29.0

func (in *IqeUISeleniumConfig) DeepCopyInto(out *IqeUISeleniumConfig)

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

type IqeUISpec added in v0.29.0

type IqeUISpec struct {
	// No longer used
	Enabled bool `json:"enabled,omitempty"`

	// Configuration options for running IQE with a selenium container
	Selenium IqeSeleniumSpec `json:"selenium,omitempty"`
}

func (*IqeUISpec) DeepCopy added in v0.29.0

func (in *IqeUISpec) DeepCopy() *IqeUISpec

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

func (*IqeUISpec) DeepCopyInto added in v0.29.0

func (in *IqeUISpec) DeepCopyInto(out *IqeUISpec)

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

type Job

type Job struct {
	// Name defines identifier of the Job. This name will be used to name the
	// CronJob resource, the container will be name identically.
	Name string `json:"name"`

	// Disabled allows a job to be disabled, as such, the resource is not
	// created on the system and cannot be invoked with a CJI
	Disabled bool `json:"disabled,omitempty"`

	// Defines the schedule for the job to run
	Schedule string `json:"schedule,omitempty"`

	// Defines the parallelism of the job
	Parallelism *int32 `json:"parallelism,omitempty"`

	// Defines the completions of the job
	Completions *int32 `json:"completions,omitempty"`

	// PodSpec defines a container running inside the CronJob.
	PodSpec PodSpec `json:"podSpec"`

	// Defines the restart policy for the CronJob, defaults to never
	RestartPolicy v1.RestartPolicy `json:"restartPolicy,omitempty"`

	// Defines the concurrency policy for the CronJob, defaults to Allow
	// Only applies to Cronjobs
	ConcurrencyPolicy batch.ConcurrencyPolicy `json:"concurrencyPolicy,omitempty"`

	// This flag tells the controller to suspend subsequent executions, it does
	// not apply to already started executions.  Defaults to false.
	// Only applies to Cronjobs
	Suspend *bool `json:"suspend,omitempty"`

	// The number of successful finished jobs to retain. Value must be non-negative integer.
	// Defaults to 3.
	// Only applies to Cronjobs
	SuccessfulJobsHistoryLimit *int32 `json:"successfulJobsHistoryLimit,omitempty"`

	// The number of failed finished jobs to retain. Value must be non-negative integer.
	// Defaults to 1.
	// Only applies to Cronjobs
	FailedJobsHistoryLimit *int32 `json:"failedJobsHistoryLimit,omitempty"`

	// Defines the StartingDeadlineSeconds for the CronJob
	StartingDeadlineSeconds *int64 `json:"startingDeadlineSeconds,omitempty"`

	// The activeDeadlineSeconds for the Job or CronJob.
	// More info: https://kubernetes.io/docs/concepts/workloads/controllers/job/
	ActiveDeadlineSeconds *int64 `json:"activeDeadlineSeconds,omitempty"`
}

Job defines a ClowdJob A Job struct will deploy as a CronJob if `schedule` is set and will deploy as a Job if it is not set. Unsupported fields will be dropped from Jobs

func (*Job) DeepCopy added in v0.18.1

func (in *Job) DeepCopy() *Job

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

func (*Job) DeepCopyInto added in v0.18.1

func (in *Job) DeepCopyInto(out *Job)

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

type JobConditionState added in v0.21.0

type JobConditionState string
const (
	JobInvoked  JobConditionState = "Invoked"
	JobComplete JobConditionState = "Complete"
	JobFailed   JobConditionState = "Failed"
)

type JobTestingSpec

type JobTestingSpec struct {
	// Iqe is the job spec to override defaults from the ClowdApp's
	// definition of the job
	Iqe IqeJobSpec `json:"iqe,omitempty"`
}

func (*JobTestingSpec) DeepCopy added in v0.18.1

func (in *JobTestingSpec) DeepCopy() *JobTestingSpec

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

func (*JobTestingSpec) DeepCopyInto added in v0.18.1

func (in *JobTestingSpec) DeepCopyInto(out *JobTestingSpec)

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

type K8sAccessLevel

type K8sAccessLevel string

K8sAccessLevel defines the access level for the deployment, one of 'default', 'view' or 'edit' +kubebuilder:validation:Enum={"default", "view", "", "edit"}

type KafkaClusterConfig

type KafkaClusterConfig struct {
	// Defines the kafka cluster name (default: <ClowdEnvironment Name>-<UID>)
	Name string `json:"name,omitempty"`

	// The namespace the kafka cluster is expected to reside in (default: the environment's targetNamespace)
	Namespace string `json:"namespace,omitempty"`

	// Force TLS
	ForceTLS bool `json:"forceTLS,omitempty"`

	// The requested number of replicas for kafka/zookeeper. If unset, default is '1'
	// +kubebuilder:validation:Minimum:=1
	Replicas int32 `json:"replicas,omitempty"`

	// Persistent volume storage size. If unset, default is '1Gi'
	// Only applies when KafkaConfig.PVC is set to 'true'
	StorageSize string `json:"storageSize,omitempty"`

	// Delete persistent volume claim if the Kafka cluster is deleted
	// Only applies when KafkaConfig.PVC is set to 'true'
	DeleteClaim bool `json:"deleteClaim,omitempty"`

	// Version. If unset, default is '2.5.0'
	Version string `json:"version,omitempty"`

	// Config full options
	Config *map[string]string `json:"config,omitempty"`

	// JVM Options
	JVMOptions strimzi.KafkaSpecKafkaJvmOptions `json:"jvmOptions,omitempty"`

	// Resource Limits
	Resources strimzi.KafkaSpecKafkaResources `json:"resources,omitempty"`
}

KafkaClusterConfig defines options related to the Kafka cluster managed/monitored by Clowder

func (*KafkaClusterConfig) DeepCopy added in v0.18.1

func (in *KafkaClusterConfig) DeepCopy() *KafkaClusterConfig

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

func (*KafkaClusterConfig) DeepCopyInto added in v0.18.1

func (in *KafkaClusterConfig) DeepCopyInto(out *KafkaClusterConfig)

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

type KafkaConfig

type KafkaConfig struct {
	// The mode of operation of the Clowder Kafka Provider. Valid options are:
	// (*_operator_*) which provisions Strimzi resources and will configure
	// KafkaTopic CRs and place them in the Kafka cluster's namespace described in the configuration,
	// (*_app-interface_*) which simply passes the topic names through to the App's
	// cdappconfig.json and expects app-interface to have created the relevant
	// topics, and (*_local_*) where a small instance of Kafka is created in the desired cluster namespace
	// and configured to auto-create topics.
	Mode KafkaMode `json:"mode"`

	// EnableLegacyStrimzi disables TLS + user auth
	EnableLegacyStrimzi bool `json:"enableLegacyStrimzi,omitempty"`

	// If using the (*_local_*) or (*_operator_*) mode and PVC is set to true, this sets the provisioned
	// Kafka instance to use a PVC instead of emptyDir for its volumes.
	PVC bool `json:"pvc,omitempty"`

	// Defines options related to the Kafka cluster for this environment. Ignored for (*_local_*) mode.
	Cluster KafkaClusterConfig `json:"cluster,omitempty"`

	// Defines options related to the Kafka Connect cluster for this environment. Ignored for (*_local_*) mode.
	Connect KafkaConnectClusterConfig `json:"connect,omitempty"`

	// Defines the secret reference for the Managed Kafka mode. Only used in (*_managed_*) mode.
	ManagedSecretRef NamespacedName `json:"managedSecretRef,omitempty"`

	// Managed topic prefix for the managed cluster. Only used in (*_managed_*) mode.
	ManagedPrefix string `json:"managedPrefix,omitempty"`

	// Namespace that kafkaTopics should be written to for (*_msk_*) mode.
	TopicNamespace string `json:"topicNamespace,omitempty"`

	// Cluster annotation identifier for (*_msk_*) mode.
	ClusterAnnotation string `json:"clusterAnnotation,omitempty"`

	// (Deprecated) Defines the cluster name to be used by the Kafka Provider this will
	// be used in some modes to locate the Kafka instance.
	ClusterName string `json:"clusterName,omitempty"`

	// (Deprecated) The Namespace the cluster is expected to reside in. This is only used
	// in (*_app-interface_*) and (*_operator_*) modes.
	Namespace string `json:"namespace,omitempty"`

	// (Deprecated) The namespace that the Kafka Connect cluster is expected to reside in. This is only used
	// in (*_app-interface_*) and (*_operator_*) modes.
	ConnectNamespace string `json:"connectNamespace,omitempty"`

	// (Deprecated) Defines the kafka connect cluster name that is used in this environment.
	ConnectClusterName string `json:"connectClusterName,omitempty"`

	// (Deprecated) (Unused)
	Suffix string `json:"suffix,omitempty"`

	// Sets the replica count for ephem-msk mode for kafka connect
	KafkaConnectReplicaCount int `json:"kafkaConnectReplicaCount,omitempty"`
}

KafkaConfig configures the Clowder provider controlling the creation of Kafka instances.

func (*KafkaConfig) DeepCopy added in v0.18.1

func (in *KafkaConfig) DeepCopy() *KafkaConfig

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

func (*KafkaConfig) DeepCopyInto added in v0.18.1

func (in *KafkaConfig) DeepCopyInto(out *KafkaConfig)

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

type KafkaConnectClusterConfig

type KafkaConnectClusterConfig struct {
	// Defines the kafka connect cluster name (default: <kafka cluster's name>)
	Name string `json:"name,omitempty"`

	// The namespace the kafka connect cluster is expected to reside in (default: the kafka cluster's namespace)
	Namespace string `json:"namespace,omitempty"`

	// The requested number of replicas for kafka connect. If unset, default is '1'
	// +kubebuilder:validation:Minimum:=1
	Replicas int32 `json:"replicas,omitempty"`

	// Version. If unset, default is '2.5.0'
	Version string `json:"version,omitempty"`

	// Image. If unset, default is 'quay.io/cloudservices/xjoin-kafka-connect-strimzi:latest'
	Image string `json:"image,omitempty"`

	// Resource Limits
	Resources strimzi.KafkaConnectSpecResources `json:"resources,omitempty"`
}

KafkaConnectClusterConfig defines options related to the Kafka Connect cluster managed/monitored by Clowder

func (*KafkaConnectClusterConfig) DeepCopy added in v0.18.1

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

func (*KafkaConnectClusterConfig) DeepCopyInto added in v0.18.1

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

type KafkaMode

type KafkaMode string

KafkaMode details the mode of operation of the Clowder Kafka Provider +kubebuilder:validation:Enum=ephem-msk;managed;operator;app-interface;local;none

type KafkaTopicSpec

type KafkaTopicSpec struct {

	// A key/value pair describing the configuration of a particular topic.
	// +optional
	Config map[string]string `json:"config,omitempty"`

	// The requested number of partitions for this topic. If unset, default is '3'
	// +optional
	// +kubebuilder:validation:Minimum:=1
	// +kubebuilder:validation:Maximum:=200000
	Partitions int32 `json:"partitions,omitempty"`

	// The requested number of replicas for this topic. If unset, default is '3'
	// +optional
	// +kubebuilder:validation:Minimum:=1
	// +kubebuilder:validation:Maximum:=32767
	Replicas int32 `json:"replicas,omitempty"`

	// The requested name for this topic.
	// +kubebuilder:validation:MinLength:=1
	// +kubebuilder:validation:MaxLength:=249
	// +kubebuilder:validation:Pattern:="[a-zA-Z0-9\\._\\-]"
	TopicName string `json:"topicName"`
}

KafkaTopicSpec defines the desired state of KafkaTopic

func (*KafkaTopicSpec) DeepCopy added in v0.18.1

func (in *KafkaTopicSpec) DeepCopy() *KafkaTopicSpec

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

func (*KafkaTopicSpec) DeepCopyInto added in v0.18.1

func (in *KafkaTopicSpec) DeepCopyInto(out *KafkaTopicSpec)

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

type LoggingConfig

type LoggingConfig struct {
	// The mode of operation of the Clowder Logging Provider. Valid options are:
	// (*_app-interface_*) where the provider will pass through cloudwatch credentials
	// to the app configuration, and (*_none_*) where no logging will be configured.
	Mode LoggingMode `json:"mode"`
}

LoggingConfig configures the Clowder provider controlling the creation of Logging instances.

func (*LoggingConfig) DeepCopy added in v0.18.1

func (in *LoggingConfig) DeepCopy() *LoggingConfig

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

func (*LoggingConfig) DeepCopyInto added in v0.18.1

func (in *LoggingConfig) DeepCopyInto(out *LoggingConfig)

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

type LoggingMode

type LoggingMode string

LoggingMode details the mode of operation of the Clowder Logging Provider +kubebuilder:validation:Enum=app-interface;null;none

type MetricsConfig

type MetricsConfig struct {
	// The port that metrics services inside ClowdApp pods should be served on.
	Port int32 `json:"port"`

	// A prefix path that pods will be instructed to use when setting up their
	// metrics server.
	Path string `json:"path,omitempty"`

	// The mode of operation of the Metrics provider. The allowed modes are
	//  (*_none_*), which disables metrics service generation, or
	// (*_operator_*) where services and probes are generated.
	// (*_app-interface_*) where services and probes are generated for app-interface.
	Mode MetricsMode `json:"mode"`

	// Prometheus specific configuration
	Prometheus PrometheusConfig `json:"prometheus,omitempty"`
}

MetricsConfig configures the Clowder provider controlling the creation of metrics services and their probes.

func (*MetricsConfig) DeepCopy added in v0.18.1

func (in *MetricsConfig) DeepCopy() *MetricsConfig

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

func (*MetricsConfig) DeepCopyInto added in v0.18.1

func (in *MetricsConfig) DeepCopyInto(out *MetricsConfig)

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

type MetricsMode

type MetricsMode string

MetricsMode details the mode of operation of the Clowder Metrics Provider +kubebuilder:validation:Enum=none;operator;app-interface

type MetricsWebService

type MetricsWebService struct {
}

MetricsWebService is the definition of the metrics web service. This is automatically enabled and the configuration here at the moment is included for completeness, as there are no configurable options.

func (*MetricsWebService) DeepCopy added in v0.18.1

func (in *MetricsWebService) DeepCopy() *MetricsWebService

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

func (*MetricsWebService) DeepCopyInto added in v0.18.1

func (in *MetricsWebService) DeepCopyInto(out *MetricsWebService)

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

type MinioStatus

type MinioStatus struct {
	// A reference to standard k8s secret.
	Credentials core.SecretReference `json:"credentials"`

	// The hostname of a Minio instance.
	Hostname string `json:"hostname"`

	// The port number the Minio instance is to be served on.
	Port int32 `json:"port"`
}

MinioStatus defines the status of a minio instance in local mode.

func (*MinioStatus) DeepCopy added in v0.18.1

func (in *MinioStatus) DeepCopy() *MinioStatus

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

func (*MinioStatus) DeepCopyInto added in v0.18.1

func (in *MinioStatus) DeepCopyInto(out *MinioStatus)

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

type NamespacedName

type NamespacedName struct {
	// Name defines the Name of a resource.
	Name string `json:"name"`

	// Namespace defines the Namespace of a resource.
	Namespace string `json:"namespace"`
}

NamespacedName type to represent a real Namespaced Name

func (*NamespacedName) DeepCopy added in v0.18.1

func (in *NamespacedName) DeepCopy() *NamespacedName

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

func (*NamespacedName) DeepCopyInto added in v0.18.1

func (in *NamespacedName) DeepCopyInto(out *NamespacedName)

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

type ObjectStoreConfig

type ObjectStoreConfig struct {
	// The mode of operation of the Clowder ObjectStore Provider. Valid options are:
	// (*_app-interface_*) where the provider will pass through Amazon S3 credentials
	// to the app configuration, and (*_minio_*) where a local Minio instance will
	// be created.
	Mode ObjectStoreMode `json:"mode"`

	// Currently unused.
	Suffix string `json:"suffix,omitempty"`

	// If using the (*_local_*) mode and PVC is set to true, this instructs the local
	// Database instance to use a PVC instead of emptyDir for its volumes.
	PVC bool `json:"pvc,omitempty"`
}

ObjectStoreConfig configures the Clowder provider controlling the creation of ObjectStore instances.

func (*ObjectStoreConfig) DeepCopy added in v0.18.1

func (in *ObjectStoreConfig) DeepCopy() *ObjectStoreConfig

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

func (*ObjectStoreConfig) DeepCopyInto added in v0.18.1

func (in *ObjectStoreConfig) DeepCopyInto(out *ObjectStoreConfig)

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

type ObjectStoreMode

type ObjectStoreMode string

ObjectStoreMode details the mode of operation of the Clowder ObjectStore Provider +kubebuilder:validation:Enum=minio;app-interface;none

type PodSpec

type PodSpec struct {
	// Image refers to the container image used to create the pod.
	Image string `json:"image,omitempty"`

	// A list of init containers used to perform at-startup operations.
	InitContainers []InitContainer `json:"initContainers,omitempty"`

	// Allows for defining custom PodSpec metadata, such as annotations
	Metadata PodspecMetadata `json:"metadata,omitempty"`

	// The command that will be invoked inside the pod at startup.
	Command []string `json:"command,omitempty"`

	// A list of args to be passed to the pod container.
	Args []string `json:"args,omitempty"`

	// A list of environment variables in k8s defined format.
	Env []v1.EnvVar `json:"env,omitempty"`

	// A pass-through of a resource requirements in k8s ResourceRequirements
	// format. If omitted, the default resource requirements from the
	// ClowdEnvironment will be used.
	Resources v1.ResourceRequirements `json:"resources,omitempty"`

	// A pass-through of a Liveness Probe specification in standard k8s format.
	// If omitted, a standard probe will be setup point to the webPort defined
	// in the ClowdEnvironment and a path of /healthz. Ignored if Web is set to
	// false.
	LivenessProbe *v1.Probe `json:"livenessProbe,omitempty"`

	// A pass-through of a Readiness Probe specification in standard k8s format.
	// If omitted, a standard probe will be setup point to the webPort defined
	// in the ClowdEnvironment and a path of /healthz. Ignored if Web is set to
	// false.
	ReadinessProbe *v1.Probe `json:"readinessProbe,omitempty"`

	// A pass-through of a list of Volumes in standa k8s format.
	Volumes []v1.Volume `json:"volumes,omitempty"`

	// A pass-through of a list of VolumesMounts in standa k8s format.
	VolumeMounts []v1.VolumeMount `json:"volumeMounts,omitempty"`

	// A pass-through of Lifecycle specification in standard k8s format
	Lifecycle *v1.Lifecycle `json:"lifecycle,omitempty"`

	// A pass-through of TerminationGracePeriodSeconds specification in standard k8s format
	// default is 30 seconds
	TerminationGracePeriodSeconds *int64 `json:"terminationGracePeriodSeconds,omitempty"`

	// Lists the expected side cars, will be validated in the validating webhook
	Sidecars []Sidecar `json:"sidecars,omitempty"`

	// MachinePool allows the pod to be scheduled to a particular machine pool.
	MachinePool string `json:"machinePool,omitempty"`
}

PodSpec defines a container running inside a ClowdApp.

func (*PodSpec) DeepCopy added in v0.18.1

func (in *PodSpec) DeepCopy() *PodSpec

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

func (*PodSpec) DeepCopyInto added in v0.18.1

func (in *PodSpec) DeepCopyInto(out *PodSpec)

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

type PodspecMetadata added in v0.45.0

type PodspecMetadata struct {
	Annotations map[string]string `json:"annotations,omitempty"`
}

Metadata for applying annotations etc to PodSpec

func (*PodspecMetadata) DeepCopy added in v0.45.0

func (in *PodspecMetadata) DeepCopy() *PodspecMetadata

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

func (*PodspecMetadata) DeepCopyInto added in v0.45.0

func (in *PodspecMetadata) DeepCopyInto(out *PodspecMetadata)

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

type PrivateWebService

type PrivateWebService struct {
	// Enabled describes if Clowder should enable the private service and provide the
	// configuration in the cdappconfig.
	Enabled bool `json:"enabled,omitempty"`

	// AppProtocol determines the protocol to be used for the private port, (defaults to http)
	AppProtocol AppProtocol `json:"appProtocol,omitempty"`
}

PrivateWebService is the definition of the private web service. There can be only one private service managed by Clowder.

func (*PrivateWebService) DeepCopy added in v0.18.1

func (in *PrivateWebService) DeepCopy() *PrivateWebService

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

func (*PrivateWebService) DeepCopyInto added in v0.18.1

func (in *PrivateWebService) DeepCopyInto(out *PrivateWebService)

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

type PrometheusConfig

type PrometheusConfig struct {
	// Determines whether to deploy prometheus in operator mode
	Deploy bool `json:"deploy,omitempty"`

	// Specify prometheus hostname when in app-interface mode
	AppInterfaceHostname string `json:"appInterfaceHostname,omitempty"`
}

func (*PrometheusConfig) DeepCopy added in v0.18.1

func (in *PrometheusConfig) DeepCopy() *PrometheusConfig

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

func (*PrometheusConfig) DeepCopyInto added in v0.18.1

func (in *PrometheusConfig) DeepCopyInto(out *PrometheusConfig)

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

type PrometheusStatus added in v0.21.0

type PrometheusStatus struct {
	Hostname string `json:"hostname"`
}

PrometheusStatus provides info on how to connect to Prometheus

func (*PrometheusStatus) DeepCopy added in v0.21.0

func (in *PrometheusStatus) DeepCopy() *PrometheusStatus

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

func (*PrometheusStatus) DeepCopyInto added in v0.21.0

func (in *PrometheusStatus) DeepCopyInto(out *PrometheusStatus)

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

type ProvidersConfig

type ProvidersConfig struct {
	// Defines the Configuration for the Clowder Database Provider.
	Database DatabaseConfig `json:"db,omitempty"`

	// Defines the Configuration for the Clowder InMemoryDB Provider.
	InMemoryDB InMemoryDBConfig `json:"inMemoryDb"`

	// Defines the Configuration for the Clowder Kafka Provider.
	Kafka KafkaConfig `json:"kafka"`

	// Defines the Configuration for the Clowder Logging Provider.
	Logging LoggingConfig `json:"logging"`

	// Defines the Configuration for the Clowder Metrics Provider.
	Metrics MetricsConfig `json:"metrics,omitempty"`

	// Defines the Configuration for the Clowder ObjectStore Provider.
	ObjectStore ObjectStoreConfig `json:"objectStore"`

	// Defines the Configuration for the Clowder Web Provider.
	Web WebConfig `json:"web,omitempty"`

	// Defines the Configuration for the Clowder FeatureFlags Provider.
	FeatureFlags FeatureFlagsConfig `json:"featureFlags,omitempty"`

	// Defines the Configuration for the Clowder ServiceMesh Provider.
	ServiceMesh ServiceMeshConfig `json:"serviceMesh,omitempty"`

	// Defines the pull secret to use for the service accounts.
	PullSecrets []NamespacedName `json:"pullSecrets,omitempty"`

	// Defines the environment for iqe/smoke testing
	Testing TestingConfig `json:"testing,omitempty"`

	// Defines the sidecar configuration
	Sidecars Sidecars `json:"sidecars,omitempty"`

	// Defines the autoscaler configuration
	AutoScaler AutoScalerConfig `json:"autoScaler,omitempty"`

	// Defines the Deployment provider options
	Deployment DeploymentConfig `json:"deployment,omitempty"`
}

ProvidersConfig defines a group of providers configuration for a ClowdEnvironment.

func (*ProvidersConfig) DeepCopy added in v0.18.1

func (in *ProvidersConfig) DeepCopy() *ProvidersConfig

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

func (*ProvidersConfig) DeepCopyInto added in v0.18.1

func (in *ProvidersConfig) DeepCopyInto(out *ProvidersConfig)

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

type PublicWebService

type PublicWebService struct {

	// Enabled describes if Clowder should enable the public service and provide the
	// configuration in the cdappconfig.
	Enabled bool `json:"enabled,omitempty"`

	// (DEPRECATED, use apiPaths instead) Configures a path named '/api/<apiPath>/' that this app will serve requests from.
	APIPath string `json:"apiPath,omitempty"`

	// Defines a list of API paths (each matching format: "/api/some-path/") that this app will serve requests from.
	APIPaths []APIPath `json:"apiPaths,omitempty"`

	// WhitelistPaths define the paths that do not require authentication
	WhitelistPaths []string `json:"whitelistPaths,omitempty"`

	// Set SessionAffinity to true to enable sticky sessions
	SessionAffinity bool `json:"sessionAffinity,omitempty"`
}

PublicWebService is the definition of the public web service. There can be only one public service managed by Clowder.

func (*PublicWebService) DeepCopy added in v0.18.1

func (in *PublicWebService) DeepCopy() *PublicWebService

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

func (*PublicWebService) DeepCopyInto added in v0.18.1

func (in *PublicWebService) DeepCopyInto(out *PublicWebService)

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

type ServiceConfig

type ServiceConfig struct {
	// +kubebuilder:validation:Enum=ClusterIP;NodePort;""
	Type string `json:"type"`
}

ServiceConfig provides options for k8s Service resources

func (*ServiceConfig) DeepCopy added in v0.18.1

func (in *ServiceConfig) DeepCopy() *ServiceConfig

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

func (*ServiceConfig) DeepCopyInto added in v0.18.1

func (in *ServiceConfig) DeepCopyInto(out *ServiceConfig)

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

type ServiceMeshConfig

type ServiceMeshConfig struct {
	Mode ServiceMeshMode `json:"mode,omitempty"`
}

ServiceMeshConfig determines if this env should be part of a service mesh and, if enabled, configures the service mesh

func (*ServiceMeshConfig) DeepCopy added in v0.18.1

func (in *ServiceMeshConfig) DeepCopy() *ServiceMeshConfig

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

func (*ServiceMeshConfig) DeepCopyInto added in v0.18.1

func (in *ServiceMeshConfig) DeepCopyInto(out *ServiceMeshConfig)

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

type ServiceMeshMode

type ServiceMeshMode string

ServiceMeshMode just determines if we enable or disable the service mesh +kubebuilder:validation:Enum=enabled;disabled

type Sidecar

type Sidecar struct {
	// The name of the sidecar, only supported names allowed, (token-refresher)
	Name string `json:"name"`

	// Defines if the sidecar is enabled, defaults to False
	Enabled bool `json:"enabled"`
}

func (*Sidecar) DeepCopy added in v0.18.1

func (in *Sidecar) DeepCopy() *Sidecar

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

func (*Sidecar) DeepCopyInto added in v0.18.1

func (in *Sidecar) DeepCopyInto(out *Sidecar)

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

type Sidecars

type Sidecars struct {
	// Sets up Token Refresher configuration
	TokenRefresher TokenRefresherConfig `json:"tokenRefresher,omitempty"`
}

func (*Sidecars) DeepCopy added in v0.18.1

func (in *Sidecars) DeepCopy() *Sidecars

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

func (*Sidecars) DeepCopyInto added in v0.18.1

func (in *Sidecars) DeepCopyInto(out *Sidecars)

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

type SimpleAutoScalerMetric added in v0.43.0

type SimpleAutoScalerMetric struct {
	ScaleAtValue       string `json:"scaleAtValue,omitempty"`
	ScaleAtUtilization int32  `json:"scaleAtUtilization,omitempty"`
}

SimpleAutoScalerMetric defines a metric of either a value or utilization

func (*SimpleAutoScalerMetric) DeepCopy added in v0.43.0

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

func (*SimpleAutoScalerMetric) DeepCopyInto added in v0.43.0

func (in *SimpleAutoScalerMetric) DeepCopyInto(out *SimpleAutoScalerMetric)

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

type SimpleAutoScalerReplicas added in v0.43.0

type SimpleAutoScalerReplicas struct {
	Min int32 `json:"min"`
	Max int32 `json:"max"`
}

SimpleAutoScalerReplicas defines the minimum and maximum replica counts for the auto scaler

func (*SimpleAutoScalerReplicas) DeepCopy added in v0.43.0

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

func (*SimpleAutoScalerReplicas) DeepCopyInto added in v0.43.0

func (in *SimpleAutoScalerReplicas) DeepCopyInto(out *SimpleAutoScalerReplicas)

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

type TLS added in v0.55.0

type TLS struct {
	Enabled     bool  `json:"enabled,omitempty"`
	Port        int32 `json:"port,omitempty"`
	PrivatePort int32 `json:"privatePort,omitempty"`
}

func (*TLS) DeepCopy added in v0.55.0

func (in *TLS) DeepCopy() *TLS

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

func (*TLS) DeepCopyInto added in v0.55.0

func (in *TLS) DeepCopyInto(out *TLS)

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

type TestingConfig

type TestingConfig struct {
	// Defines the environment for iqe/smoke testing
	Iqe IqeConfig `json:"iqe,omitempty"`

	// The mode of operation of the testing Pod. Valid options are:
	// 'default', 'view' or 'edit'
	K8SAccessLevel K8sAccessLevel `json:"k8sAccessLevel"`

	// The mode of operation for access to outside app configs. Valid
	// options are:
	// (*_none_*) -- no app config is mounted to the pod
	// (*_app_*) -- only the ClowdApp's config is mounted to the pod
	// (*_environment_*) -- the config for all apps in the env are mounted
	ConfigAccess ConfigAccessMode `json:"configAccess"`
}

func (*TestingConfig) DeepCopy added in v0.18.1

func (in *TestingConfig) DeepCopy() *TestingConfig

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

func (*TestingConfig) DeepCopyInto added in v0.18.1

func (in *TestingConfig) DeepCopyInto(out *TestingConfig)

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

type TestingSpec

type TestingSpec struct {
	IqePlugin string `json:"iqePlugin"`
}

func (*TestingSpec) DeepCopy added in v0.18.1

func (in *TestingSpec) DeepCopy() *TestingSpec

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

func (*TestingSpec) DeepCopyInto added in v0.18.1

func (in *TestingSpec) DeepCopyInto(out *TestingSpec)

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

type TokenRefresherConfig

type TokenRefresherConfig struct {
	// Enables or disables token refresher sidecars
	Enabled bool `json:"enabled"`
}

func (*TokenRefresherConfig) DeepCopy added in v0.18.1

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

func (*TokenRefresherConfig) DeepCopyInto added in v0.18.1

func (in *TokenRefresherConfig) DeepCopyInto(out *TokenRefresherConfig)

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

type WebConfig

type WebConfig struct {
	// The port that web services inside ClowdApp pods should be served on.
	Port int32 `json:"port"`

	// The private port that web services inside a ClowdApp should be served on.
	PrivatePort int32 `json:"privatePort,omitempty"`

	// The auth port that the web local mode will use with the AuthSidecar
	AuthPort int32 `json:"aiuthPort,omitempty"`

	// An api prefix path that pods will be instructed to use when setting up
	// their web server.
	APIPrefix string `json:"apiPrefix,omitempty"`

	// The mode of operation of the Web provider. The allowed modes are
	// (*_none_*/*_operator_*), and (*_local_*) which deploys keycloak and BOP.
	Mode WebMode `json:"mode"`

	// The URL of BOP - only used in (*_none_*/*_operator_*) mode.
	BOPURL string `json:"bopURL,omitempty"`

	// Ingress Class Name used only in (*_local_*) mode.
	IngressClass string `json:"ingressClass,omitempty"`

	// Optional keycloak version override -- used only in (*_local_*) mode -- if not set, a hard-coded default is used.
	KeycloakVersion string `json:"keycloakVersion,omitempty"`

	// Optionally use PVC storage for keycloak db
	KeycloakPVC bool `json:"keycloakPVC,omitempty"`

	// Optional images to use for web provider components -- only applies when running in (*_local_*) mode.
	Images WebImages `json:"images,omitempty"`

	// TLS sidecar enablement
	TLS TLS `json:"tls,omitempty"`

	// Gateway cert
	GatewayCert GatewayCert `json:"gatewayCert,omitempty"`
}

WebConfig configures the Clowder provider controlling the creation of web services and their probes.

func (*WebConfig) DeepCopy added in v0.18.1

func (in *WebConfig) DeepCopy() *WebConfig

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

func (*WebConfig) DeepCopyInto added in v0.18.1

func (in *WebConfig) DeepCopyInto(out *WebConfig)

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

type WebDeprecated

type WebDeprecated bool

WebDeprecated defines a boolean flag to help distinguish from the newer WebServices

type WebImages added in v0.42.0

type WebImages struct {
	// Mock entitlements image -- if not defined, value from operator config is used if set, otherwise a hard-coded default is used.
	Mocktitlements string `json:"mocktitlements,omitempty"`

	// Keycloak image -- default is 'quay.io/keycloak/keycloak:{KeycloakVersion}' unless overridden here
	Keycloak string `json:"keycloak,omitempty"`

	// Caddy image -- if not defined, value from operator config is used if set, otherwise a hard-coded default is used.
	Caddy string `json:"caddy,omitempty"`

	// Caddy Gateway image -- if not defined, value from operator config is used if set, otherwise a hard-coded default is used.
	CaddyGateway string `json:"caddyGateway,omitempty"`

	// Mock BOP image -- if not defined, value from operator config is used if set, otherwise a hard-coded default is used.
	MockBOP string `json:"mockBop,omitempty"`
}

WebImages defines optional container image overrides for the web provider components

func (*WebImages) DeepCopy added in v0.42.0

func (in *WebImages) DeepCopy() *WebImages

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

func (*WebImages) DeepCopyInto added in v0.42.0

func (in *WebImages) DeepCopyInto(out *WebImages)

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

type WebMode

type WebMode string

WebMode details the mode of operation of the Clowder Web Provider +kubebuilder:validation:Enum=none;operator;local

type WebServices

type WebServices struct {
	Public  PublicWebService  `json:"public,omitempty"`
	Private PrivateWebService `json:"private,omitempty"`
	Metrics MetricsWebService `json:"metrics,omitempty"`
}

WebServices defines the structs for the three exposed web services: public, private and metrics.

func (*WebServices) DeepCopy added in v0.18.1

func (in *WebServices) DeepCopy() *WebServices

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

func (*WebServices) DeepCopyInto added in v0.18.1

func (in *WebServices) DeepCopyInto(out *WebServices)

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

Jump to

Keyboard shortcuts

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