v1

package
v0.0.0-...-2acb69d Latest Latest
Warning

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

Go to latest
Published: Jan 4, 2024 License: GPL-3.0 Imports: 9 Imported by: 0

Documentation

Overview

Package v1 contains API Schema definitions for the stroom v1 API group +kubebuilder:object:generate=true +groupName=stroom.gchq.github.io

Index

Constants

View Source
const (
	StroomClusterFinalizerName = "stroomcluster.finalizers.stroom.gchq.github.io"
	WaitNodeTasksFinalizerName = "waitnodetasks.finalizers.stroom.gchq.github.io"

	// SecretFileMode is the file mode to use for Secret volume mounts
	SecretFileMode int32 = 0400
)
View Source
const (
	StroomClusterLabel = "stroom/cluster"
	NodeSetLabel       = "stroom/nodeSet"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "stroom.gchq.github.io", Version: "v1"}

	// 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 GeneratePassword

func GeneratePassword() []byte

GeneratePassword creates a password consisting of a random array of bytes

Types

type ConfigMapRef

type ConfigMapRef struct {
	// Name of the `ConfigMap`
	Name string `json:"name,omitempty"`
	// ConfigMap key containing the Stroom configuration data
	ItemName string `json:"itemName,omitempty"`
}

func (*ConfigMapRef) DeepCopy

func (in *ConfigMapRef) DeepCopy() *ConfigMapRef

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

func (*ConfigMapRef) DeepCopyInto

func (in *ConfigMapRef) DeepCopyInto(out *ConfigMapRef)

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

func (*ConfigMapRef) IsZero

func (in *ConfigMapRef) IsZero() bool

type DatabaseBackup

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

	Spec   DatabaseBackupSpec   `json:"spec,omitempty"`
	Status DatabaseBackupStatus `json:"status,omitempty"`
}

DatabaseBackup is the Schema for the databasebackups API

func (*DatabaseBackup) DeepCopy

func (in *DatabaseBackup) DeepCopy() *DatabaseBackup

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

func (*DatabaseBackup) DeepCopyInto

func (in *DatabaseBackup) DeepCopyInto(out *DatabaseBackup)

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

func (*DatabaseBackup) DeepCopyObject

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

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

func (*DatabaseBackup) GetBaseName

func (in *DatabaseBackup) GetBaseName() string

GetBaseName creates a name incorporating the name of the database. For Example: stroom-prod-db

func (*DatabaseBackup) GetLabels

func (in *DatabaseBackup) GetLabels() map[string]string

type DatabaseBackupList

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

DatabaseBackupList contains a list of DatabaseBackup

func (*DatabaseBackupList) DeepCopy

func (in *DatabaseBackupList) DeepCopy() *DatabaseBackupList

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

func (*DatabaseBackupList) DeepCopyInto

func (in *DatabaseBackupList) DeepCopyInto(out *DatabaseBackupList)

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

func (*DatabaseBackupList) DeepCopyObject

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

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

type DatabaseBackupSpec

type DatabaseBackupSpec struct {
	// +kubebuilder:validation:Required
	Image           Image             `json:"image"`
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// DatabaseServerRef contains either the details of a DatabaseServer resource, or the TCP connection details of
	// an external MySQL database
	// +kubebuilder:validation:Required
	DatabaseServerRef DatabaseServerRef `json:"databaseServerRef"`
	// Backup the specified database names. If unspecified, all user databases are backed up
	DatabaseNames []string `json:"databaseNames,omitempty"`
	// File system location to store the backup files
	TargetVolume corev1.VolumeSource `json:"volume"`
	// Cron schedule that determines how often backups are to be performed
	Schedule string `json:"schedule"`
}

DatabaseBackupSpec defines the desired state of DatabaseBackup

func (*DatabaseBackupSpec) DeepCopy

func (in *DatabaseBackupSpec) DeepCopy() *DatabaseBackupSpec

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

func (*DatabaseBackupSpec) DeepCopyInto

func (in *DatabaseBackupSpec) DeepCopyInto(out *DatabaseBackupSpec)

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

type DatabaseBackupStatus

type DatabaseBackupStatus struct {
}

DatabaseBackupStatus defines the observed state of DatabaseBackup

func (*DatabaseBackupStatus) DeepCopy

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

func (*DatabaseBackupStatus) DeepCopyInto

func (in *DatabaseBackupStatus) DeepCopyInto(out *DatabaseBackupStatus)

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

type DatabaseServer

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

	Spec   DatabaseServerSpec   `json:"spec,omitempty"`
	Status DatabaseServerStatus `json:"status,omitempty"`

	// Set by the controller when a StroomCluster binds to the DatabaseServer.
	// This is used to prevent the DatabaseServer from being deleted while its paired StroomCluster still exists.
	// +optional
	StroomClusterRef ResourceRef `json:"stroomClusterRef,omitempty"`
}

DatabaseServer is the Schema for the databases API

func (*DatabaseServer) DeepCopy

func (in *DatabaseServer) DeepCopy() *DatabaseServer

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

func (*DatabaseServer) DeepCopyInto

func (in *DatabaseServer) DeepCopyInto(out *DatabaseServer)

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

func (*DatabaseServer) DeepCopyObject

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

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

func (*DatabaseServer) GetBaseName

func (in *DatabaseServer) GetBaseName() string

GetBaseName creates a name incorporating the name of the database. For Example: stroom-prod-db

func (*DatabaseServer) GetConfigMapName

func (in *DatabaseServer) GetConfigMapName() string

func (*DatabaseServer) GetInitConfigMapName

func (in *DatabaseServer) GetInitConfigMapName() string

func (*DatabaseServer) GetLabels

func (in *DatabaseServer) GetLabels() map[string]string

func (*DatabaseServer) GetSecretName

func (in *DatabaseServer) GetSecretName() string

func (*DatabaseServer) GetServiceFqdn

func (in *DatabaseServer) GetServiceFqdn() string

func (*DatabaseServer) GetServiceName

func (in *DatabaseServer) GetServiceName() string

func (*DatabaseServer) IsBeingDeleted

func (in *DatabaseServer) IsBeingDeleted() bool

type DatabaseServerList

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

DatabaseServerList contains a list of DatabaseServer

func (*DatabaseServerList) DeepCopy

func (in *DatabaseServerList) DeepCopy() *DatabaseServerList

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

func (*DatabaseServerList) DeepCopyInto

func (in *DatabaseServerList) DeepCopyInto(out *DatabaseServerList)

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

func (*DatabaseServerList) DeepCopyObject

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

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

type DatabaseServerRef

type DatabaseServerRef struct {
	// If specified, point to an operator-managed DatabaseServer object
	// +optional
	ServerRef ResourceRef `json:"serverRef,omitempty"`
	// Alternatively, if the following parameters are provided, point directly to a DB by its TCP address.
	// This allows external database instances to be used in place of an operator-managed one.
	ServerAddress ServerAddress `json:"serverAddress,omitempty"`
	// UserName is the name of the Stroom database user to use when connecting to the server.
	// A corresponding key should exist in the provided Secret referenced by SecretName.
	// +kubebuilder:default:=stroomuser
	UserName string `json:"userName,omitempty"`
}

func (*DatabaseServerRef) DeepCopy

func (in *DatabaseServerRef) DeepCopy() *DatabaseServerRef

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

func (*DatabaseServerRef) DeepCopyInto

func (in *DatabaseServerRef) DeepCopyInto(out *DatabaseServerRef)

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

type DatabaseServerSpec

type DatabaseServerSpec struct {
	Image           Image             `json:"image"`
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// Names of the databases to be created on startup (if they don't already exist)
	DatabaseNames []string `json:"databaseNames"`
	// Any additional configuration lines to append to the MySQL server configuration file `/etc/my.cnf`
	AdditionalConfig      []string                         `json:"additionalConfig,omitempty"`
	Resources             corev1.ResourceRequirements      `json:"resources"`
	VolumeClaim           corev1.PersistentVolumeClaimSpec `json:"volumeClaim"`
	ReadinessProbeTimings ProbeTimings                     `json:"readinessProbeTimings,omitempty"`
	LivenessProbeTimings  ProbeTimings                     `json:"livenessProbeTimings,omitempty"`
	PodAnnotations        map[string]string                `json:"podAnnotations,omitempty"`
	PodSecurityContext    corev1.PodSecurityContext        `json:"podSecurityContext,omitempty"`
	SecurityContext       corev1.SecurityContext           `json:"securityContext,omitempty"`
	NodeSelector          map[string]string                `json:"nodeSelector,omitempty"`
	Tolerations           []corev1.Toleration              `json:"tolerations,omitempty"`
	Affinity              corev1.Affinity                  `json:"affinity,omitempty"`
}

DatabaseServerSpec defines the desired state of DatabaseServer

func (*DatabaseServerSpec) DeepCopy

func (in *DatabaseServerSpec) DeepCopy() *DatabaseServerSpec

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

func (*DatabaseServerSpec) DeepCopyInto

func (in *DatabaseServerSpec) DeepCopyInto(out *DatabaseServerSpec)

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

type DatabaseServerStatus

type DatabaseServerStatus struct {
	State   string `json:"state"`
	Address string `json:"address"`
	Port    int32  `json:"port"`
}

DatabaseServerStatus defines the observed state of DatabaseServer

func (*DatabaseServerStatus) DeepCopy

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

func (*DatabaseServerStatus) DeepCopyInto

func (in *DatabaseServerStatus) DeepCopyInto(out *DatabaseServerStatus)

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

type Image

type Image struct {
	// +kubebuilder:validation:MinLength=1
	Repository string `json:"repository"`
	Tag        string `json:"tag,omitempty"`
}

func (*Image) DeepCopy

func (in *Image) DeepCopy() *Image

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

func (*Image) DeepCopyInto

func (in *Image) DeepCopyInto(out *Image)

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

func (*Image) IsZero

func (in *Image) IsZero() bool

func (*Image) String

func (in *Image) String() string

type IngressSettings

type IngressSettings struct {
	// DNS name at which the application will be reached (e.g. stroom.example.com)
	HostName string `json:"hostName"`
	// Name of the TLS `Secret` containing the private key and server certificate for the `Ingress`
	SecretName string `json:"secretName"`
	// Ingress class name (e.g. nginx)
	ClassName string `json:"className,omitempty"`
}

func (*IngressSettings) DeepCopy

func (in *IngressSettings) DeepCopy() *IngressSettings

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

func (*IngressSettings) DeepCopyInto

func (in *IngressSettings) DeepCopyInto(out *IngressSettings)

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

type JvmMemoryOptions

type JvmMemoryOptions struct {
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=100
	InitialPercentage int `json:"initialPercentage"`
	// +kubebuilder:validation:Minimum=1
	// +kubebuilder:validation:Maximum=100
	MaxPercentage int `json:"maxPercentage"`
}

func (*JvmMemoryOptions) DeepCopy

func (in *JvmMemoryOptions) DeepCopy() *JvmMemoryOptions

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

func (*JvmMemoryOptions) DeepCopyInto

func (in *JvmMemoryOptions) DeepCopyInto(out *JvmMemoryOptions)

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

type LogSenderSettings

type LogSenderSettings struct {
	// If `true`, Stroom internal audit and application logs are sent to the Stroom `Ingress` for ingestion
	// +kubebuilder:default:=false
	Enabled bool `json:"enabled"`
	// +kubebuilder:validation:Required
	Image           Image             `json:"image"`
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// Override the container security context
	SecurityContext corev1.SecurityContext `json:"securityContext,omitempty"`
	// Configure an alternate destination for events to be shipped to. If omitted, events are posted to the local cluster.
	DestinationUrl string `json:"destinationUrl,omitempty"`
	// Name of the `Environment` to set in feed metadata. If omitted, the cluster name is used (converted to UPPERCASE).
	EnvironmentName string `json:"environmentName,omitempty"`
	// Name of the `System` to set in feed metadata
	SystemName string                      `json:"systemName,omitempty"`
	Resources  corev1.ResourceRequirements `json:"resources,omitempty"`
}

func (*LogSenderSettings) DeepCopy

func (in *LogSenderSettings) DeepCopy() *LogSenderSettings

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

func (*LogSenderSettings) DeepCopyInto

func (in *LogSenderSettings) DeepCopyInto(out *LogSenderSettings)

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

func (*LogSenderSettings) IsZero

func (in *LogSenderSettings) IsZero() bool

type NodeRole

type NodeRole string
const (
	// ProcessingNodeRole applies to a NodeSet that is dedicated to receiving and processing data and does not serve
	// web front-end (UI) requests
	ProcessingNodeRole NodeRole = "Processing"

	// FrontendNodeRole applies to a NodeSet that is dedicated to serving web front-end (UI) requests only
	FrontendNodeRole = "Frontend"
)

type NodeSet

type NodeSet struct {
	// Name uniquely identifies the NodeSet within a StroomCluster. Should be a short name like "prod".
	//
	// The NodeSet name determines the name of the Stroom node, which follows the format:
	// `stroom-<cluster name>-node-<nodeset name>-<pod ordinal>`.
	//
	// For example, the first Stroom node in StroomCluster `dev`, NodeSet `data` will be named:
	// `stroom-dev-node-data-0`.
	Name string `json:"name"`
	// Number of replicas (discrete Stroom nodes) to deploy in the NodeSet
	// +kubebuilder:validation:Minimum=1
	Count int32 `json:"count"`
	// Role of each node in the NodeSet. ProcessingNodeRole nodes are limited to receiving and processing data,
	// while FrontendNodeRole nodes host the Stroom.
	//
	// If this property is omitted, nodes in the NodeSet will assume both Processing and Frontend roles.
	Role NodeRole `json:"role,omitempty"`
	// LocalDataVolumeClaim provides persistent storage for each Stroom node's data
	LocalDataVolumeClaim corev1.PersistentVolumeClaimSpec `json:"localDataVolumeClaim"`
	// Resources determine how much CPU and memory each individual Stroom node Pod within the NodeSet requests and is
	// limited to.
	Resources corev1.ResourceRequirements `json:"resources"`
	// MemoryOptions define JVM memory parameters
	MemoryOptions JvmMemoryOptions `json:"memoryOptions"`
	// IngressEnabled determines whether this node receives requests via the created Kubernetes Ingresses. Usually this
	// should be `true`, unless there is a need for a NodeSet to be pure processing-only nodes, which cannot receive data.
	// +kubebuilder:default:=true
	IngressEnabled bool `json:"ingressEnabled,omitempty"`
	// IngressAnnotations is an optional map of annotations to apply to the NodeSet's Ingress. These override any
	// default annotations provided by the controller.
	IngressAnnotations map[string]string `json:"ingressAnnotations,omitempty"`
	// StartupProbeTimings specify parameters for initial Pod startup. These should be set according to how long a node
	// typically takes to start up and respond to healthchecks.
	StartupProbeTimings ProbeTimings `json:"startupProbeTimings,omitempty"`
	// ReadinessProbeTimings determine the parameters for readiness probes. These help to protect nodes from overload,
	// removing them from service while they are non-responsive to healthchecks.
	ReadinessProbeTimings ProbeTimings `json:"readinessProbeTimings,omitempty"`
	// LivenessProbeTimings determine the parameters for liveness probes. If a Pod fails successive probes, it is
	// restarted.
	LivenessProbeTimings ProbeTimings `json:"livenessProbeTimings,omitempty"`
	// PodAnnotations are additional annotations to set for each NodeSet Pod
	PodAnnotations map[string]string `json:"podAnnotations,omitempty"`
	// PodSecurityContext applies to each NodeSet Pod
	PodSecurityContext corev1.PodSecurityContext `json:"podSecurityContext,omitempty"`
	// SecurityContext overrides the PodSecurityContext at the container level
	SecurityContext corev1.SecurityContext `json:"securityContext,omitempty"`
	// NodeSelector allows for NodeSet Pods to be deployed to a particular node, or set of nodes, by the specified labels
	NodeSelector map[string]string   `json:"nodeSelector,omitempty"`
	Tolerations  []corev1.Toleration `json:"tolerations,omitempty"`
	Affinity     corev1.Affinity     `json:"affinity,omitempty"`
}

func (*NodeSet) DeepCopy

func (in *NodeSet) DeepCopy() *NodeSet

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

func (*NodeSet) DeepCopyInto

func (in *NodeSet) DeepCopyInto(out *NodeSet)

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

type OpenIdConfiguration

type OpenIdConfiguration struct {
	// Name of the OpenID client
	ClientId string `json:"clientId"`
	// Details of the Secret containing the OpenID client secret
	ClientSecret SecretItem `json:"clientSecret"`
}

func (*OpenIdConfiguration) DeepCopy

func (in *OpenIdConfiguration) DeepCopy() *OpenIdConfiguration

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

func (*OpenIdConfiguration) DeepCopyInto

func (in *OpenIdConfiguration) DeepCopyInto(out *OpenIdConfiguration)

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

func (*OpenIdConfiguration) IsZero

func (in *OpenIdConfiguration) IsZero() bool

type ProbeTimings

type ProbeTimings struct {
	// +kubebuilder:default:=5
	InitialDelaySeconds int32 `json:"initialDelaySeconds,omitempty"`
	// +kubebuilder:default:=5
	TimeoutSeconds int32 `json:"timeoutSeconds,omitempty"`
	// +kubebuilder:default:=5
	PeriodSeconds int32 `json:"periodSeconds,omitempty"`
	// +kubebuilder:default:=1
	SuccessThreshold int32 `json:"successThreshold,omitempty"`
	// +kubebuilder:default:=10
	FailureThreshold int32 `json:"failureThreshold,omitempty"`
}

func (*ProbeTimings) DeepCopy

func (in *ProbeTimings) DeepCopy() *ProbeTimings

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

func (*ProbeTimings) DeepCopyInto

func (in *ProbeTimings) DeepCopyInto(out *ProbeTimings)

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

type ResourceRef

type ResourceRef struct {
	Name      string `json:"name"`
	Namespace string `json:"namespace,omitempty"`
}

func (*ResourceRef) DeepCopy

func (in *ResourceRef) DeepCopy() *ResourceRef

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

func (*ResourceRef) DeepCopyInto

func (in *ResourceRef) DeepCopyInto(out *ResourceRef)

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

func (*ResourceRef) IsZero

func (in *ResourceRef) IsZero() bool

func (*ResourceRef) NamespacedName

func (in *ResourceRef) NamespacedName() types.NamespacedName

func (*ResourceRef) String

func (in *ResourceRef) String() string

String returns the general purpose string representation

type SecretItem

type SecretItem struct {
	SecretName string `json:"secretName"`
	Key        string `json:"key"`
}

func (*SecretItem) DeepCopy

func (in *SecretItem) DeepCopy() *SecretItem

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

func (*SecretItem) DeepCopyInto

func (in *SecretItem) DeepCopyInto(out *SecretItem)

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

type ServerAddress

type ServerAddress struct {
	// Host is the hostname or IP of the database server
	Host string `json:"host,omitempty"`
	// Port number the database server is listening on
	// +kubebuilder:default:=3306
	Port int32 `json:"port,omitempty"`
	// SecretName is the name of the secret containing the `password` of the database user `stroomuser`
	SecretName string `json:"secretName,omitempty"`
}

func (*ServerAddress) DeepCopy

func (in *ServerAddress) DeepCopy() *ServerAddress

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

func (*ServerAddress) DeepCopyInto

func (in *ServerAddress) DeepCopyInto(out *ServerAddress)

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

type StroomCluster

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

	Spec   StroomClusterSpec   `json:"spec,omitempty"`
	Status StroomClusterStatus `json:"status,omitempty"`
}

StroomCluster is the Schema for the stroomclusters API

func (*StroomCluster) DeepCopy

func (in *StroomCluster) DeepCopy() *StroomCluster

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

func (*StroomCluster) DeepCopyInto

func (in *StroomCluster) DeepCopyInto(out *StroomCluster)

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

func (*StroomCluster) DeepCopyObject

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

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

func (*StroomCluster) GetBaseName

func (in *StroomCluster) GetBaseName() string

func (*StroomCluster) GetCliJobName

func (in *StroomCluster) GetCliJobName(name string) string

func (*StroomCluster) GetDatafeedUrl

func (in *StroomCluster) GetDatafeedUrl() string

func (*StroomCluster) GetLabels

func (in *StroomCluster) GetLabels() map[string]string

func (*StroomCluster) GetLogSenderConfigMapName

func (in *StroomCluster) GetLogSenderConfigMapName() string

func (*StroomCluster) GetNodeSetHeadlessServiceName

func (in *StroomCluster) GetNodeSetHeadlessServiceName(nodeSet *NodeSet) string

func (*StroomCluster) GetNodeSetName

func (in *StroomCluster) GetNodeSetName(nodeSet *NodeSet) string

func (*StroomCluster) GetNodeSetSelectorLabels

func (in *StroomCluster) GetNodeSetSelectorLabels(nodeSet *NodeSet) map[string]string

func (*StroomCluster) GetNodeSetServiceName

func (in *StroomCluster) GetNodeSetServiceName(nodeSet *NodeSet) string

func (*StroomCluster) GetStaticContentConfigMapName

func (in *StroomCluster) GetStaticContentConfigMapName() string

func (*StroomCluster) IsBeingDeleted

func (in *StroomCluster) IsBeingDeleted() bool

type StroomClusterList

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

StroomClusterList contains a list of StroomCluster

func (*StroomClusterList) DeepCopy

func (in *StroomClusterList) DeepCopy() *StroomClusterList

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

func (*StroomClusterList) DeepCopyInto

func (in *StroomClusterList) DeepCopyInto(out *StroomClusterList)

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

func (*StroomClusterList) DeepCopyObject

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

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

type StroomClusterSpec

type StroomClusterSpec struct {
	// +kubebuilder:validation:Required
	Image           Image             `json:"image"`
	ImagePullPolicy corev1.PullPolicy `json:"imagePullPolicy,omitempty"`
	// DatabaseServerRef contains either the details of a DatabaseServer resource, or the TCP connection details of
	// an external MySQL database
	// +kubebuilder:validation:Required
	DatabaseServerRef DatabaseServerRef `json:"databaseServerRef"`
	// Name of the main Stroom database, usually `stroom`
	// +kubebuilder:default:="stroom"
	// +kubebuilder:validation:MinLength=1
	AppDatabaseName string `json:"appDatabaseName"`
	// Name of the statistics database, usually `stats`
	// +kubebuilder:default:="stats"
	// +kubebuilder:validation:MinLength=1
	StatsDatabaseName string `json:"statsDatabaseName"`
	// Override the Stroom configuration provided to each node, by providing the name of an existing `ConfigMap`
	// in the same namespace as the `StroomCluster`
	ConfigMapRef ConfigMapRef `json:"configMapRef,omitempty"`
	// Configures OpenID to enable operator components to query the Stroom API
	OpenId OpenIdConfiguration `json:"openId"`
	// +kubebuilder:validation:Required
	Ingress IngressSettings `json:"ingress"`
	// Pod management policy to use when deploying or scaling the StroomCluster
	PodManagementPolicy v1.PodManagementPolicyType `json:"podManagementPolicy,omitempty"`
	// Amount of time granted to nodes to drain their active tasks before being terminated
	// +kubebuilder:default:=60
	NodeTerminationPeriodSecs int64 `json:"nodeTerminationPeriodSecs"`
	// Delete Stroom node `PersistentVolumeClaim`s in accordance with this policy
	VolumeClaimDeletePolicy VolumeClaimDeletePolicy `json:"volumeClaimDeletePolicy,omitempty"`

	// Each NodeSet is a functional grouping of Stroom nodes with a particular role, within the cluster.
	// It is recommended two NodeSets should be provided: one for storing and processing data and a separate one for
	// serving the Stroom front-end.
	// +kubebuilder:validation:MinItems=1
	NodeSets []NodeSet `json:"nodeSets"`

	// Additional Java Virtual Machine (JVM) options to use. Example of a valid entry: `-Xms1g`
	ExtraJvmOpts []string `json:"extraJvmOpts,omitempty"`
	// Additional environment variables provided to each NodeSet pod
	ExtraEnv []corev1.EnvVar `json:"extraEnv,omitempty"`
	// Additional volumes to be mounted in each NodeSet pod
	ExtraVolumes      []corev1.Volume      `json:"extraVolumes,omitempty"`
	ExtraVolumeMounts []corev1.VolumeMount `json:"extraVolumeMounts,omitempty"`

	// Configures the mechanism that posts internal audit and logging to Stroom
	LogSender LogSenderSettings `json:"logSender,omitempty"`
}

StroomClusterSpec defines the desired state of StroomCluster

func (*StroomClusterSpec) DeepCopy

func (in *StroomClusterSpec) DeepCopy() *StroomClusterSpec

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

func (*StroomClusterSpec) DeepCopyInto

func (in *StroomClusterSpec) DeepCopyInto(out *StroomClusterSpec)

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

type StroomClusterStatus

type StroomClusterStatus struct {
	Nodes []string `json:"nodes,omitempty"`
}

StroomClusterStatus defines the observed state of StroomCluster

func (*StroomClusterStatus) DeepCopy

func (in *StroomClusterStatus) DeepCopy() *StroomClusterStatus

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

func (*StroomClusterStatus) DeepCopyInto

func (in *StroomClusterStatus) DeepCopyInto(out *StroomClusterStatus)

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

type StroomTaskAutoscaler

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

	Spec   StroomTaskAutoscalerSpec   `json:"spec,omitempty"`
	Status StroomTaskAutoscalerStatus `json:"status,omitempty"`
}

StroomTaskAutoscaler is the Schema for the stroomtaskautoscalers API

func (*StroomTaskAutoscaler) DeepCopy

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

func (*StroomTaskAutoscaler) DeepCopyInto

func (in *StroomTaskAutoscaler) DeepCopyInto(out *StroomTaskAutoscaler)

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

func (*StroomTaskAutoscaler) DeepCopyObject

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

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

type StroomTaskAutoscalerList

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

StroomTaskAutoscalerList contains a list of StroomTaskAutoscaler

func (*StroomTaskAutoscalerList) DeepCopy

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

func (*StroomTaskAutoscalerList) DeepCopyInto

func (in *StroomTaskAutoscalerList) DeepCopyInto(out *StroomTaskAutoscalerList)

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

func (*StroomTaskAutoscalerList) DeepCopyObject

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

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

type StroomTaskAutoscalerSpec

type StroomTaskAutoscalerSpec struct {
	// The target StroomCluster to apply autoscaling to
	StroomClusterRef ResourceRef `json:"stroomClusterRef"`

	// Name of the Stroom node task to auto-scale. Usually "Data Processor".
	// +kubebuilder:validation:Required
	TaskName string `json:"taskName"`

	// How often (in minutes) adjustments are made to the number of Stroom node tasks
	// +kubebuilder:default:=1
	// +kubebuilder:validation:Minimum:=1
	AdjustmentIntervalMins int `json:"adjustmentIntervalMins,omitempty"`

	// Sliding window (in minutes) over which to calculate CPU usage vs. the threshold parameters
	// +kubebuilder:default:=1
	// +kubebuilder:validation:Minimum:=1
	MetricsSlidingWindowMins int `json:"metricsSlidingWindowMins,omitempty"`

	// Minimum CPU usage threshold before the number of tasks is adjusted upwards
	// +kubebuilder:default:=50
	MinCpuPercent int `json:"minCpuPercent,omitempty"`

	// Maximum CPU usage threshold before the number of tasks is adjusted downwards
	// +kubebuilder:default:=90
	MaxCpuPercent int `json:"maxCpuPercent,omitempty"`

	// Minimum number of tasks auto-scaler may set the node limit to
	// +kubebuilder:default:=1
	MinTaskLimit int `json:"minTaskLimit,omitempty"`

	// Maximum number of tasks auto-scaler may set the node limit to
	// +kubebuilder:default:=20
	MaxTaskLimit int `json:"maxTaskLimit,omitempty"`

	// Number of tasks to add/subtract each adjustment interval, based on usage
	// +kubebuilder:default:=1
	// +kubebuilder:validation:Minimum:=1
	StepAmount int `json:"stepAmount,omitempty"`
}

StroomTaskAutoscalerSpec defines the desired state of StroomTaskAutoscaler

func (*StroomTaskAutoscalerSpec) DeepCopy

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

func (*StroomTaskAutoscalerSpec) DeepCopyInto

func (in *StroomTaskAutoscalerSpec) DeepCopyInto(out *StroomTaskAutoscalerSpec)

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

type StroomTaskAutoscalerStatus

type StroomTaskAutoscalerStatus struct {
}

StroomTaskAutoscalerStatus defines the observed state of StroomTaskAutoscaler

func (*StroomTaskAutoscalerStatus) DeepCopy

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

func (*StroomTaskAutoscalerStatus) DeepCopyInto

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

type VolumeClaimDeletePolicy

type VolumeClaimDeletePolicy string
const (
	DeleteOnScaledownAndClusterDeletionPolicy VolumeClaimDeletePolicy = "DeleteOnScaledownAndClusterDeletion"
	DeleteOnScaledownOnlyPolicy                                       = "DeleteOnScaledownOnly"
)

Jump to

Keyboard shortcuts

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