common

package
v0.6.0 Latest Latest
Warning

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

Go to latest
Published: Oct 15, 2022 License: AGPL-3.0 Imports: 17 Imported by: 0

Documentation

Overview

+kubebuilder:object:generate=true

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type APIKeySecret

type APIKeySecret struct {
	// Create new secret or not
	Create bool `json:"create" default:"false"`

	// Secret details
	//+kubebuilder:validation:Optional
	SecretKeyRef SecretKeyRef `json:"secretKeyRef"`

	// Value for the ApiKey
	Value string `json:"value"`
}

APIKeySecret defines fields required for creation/usage of secret for the ApiKey of Agent and Controller.

func (*APIKeySecret) DeepCopy

func (in *APIKeySecret) DeepCopy() *APIKeySecret

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

func (*APIKeySecret) DeepCopyInto

func (in *APIKeySecret) DeepCopyInto(out *APIKeySecret)

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

type APIKeySecretSpec

type APIKeySecretSpec struct {
	// API Key secret reference for Agent
	//+kubebuilder:validation:Optional
	Agent APIKeySecret `json:"agent"`

	// API Key secret reference for Controller
	//+kubebuilder:validation:Optional
	Controller APIKeySecret `json:"controller"`
}

APIKeySecretSpec defines API Key secret details for Agent and Controller.

func (*APIKeySecretSpec) DeepCopy

func (in *APIKeySecretSpec) DeepCopy() *APIKeySecretSpec

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

func (*APIKeySecretSpec) DeepCopyInto

func (in *APIKeySecretSpec) DeepCopyInto(out *APIKeySecretSpec)

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

type AgentImage

type AgentImage struct {
	// Image specs for Agent
	Image `json:",inline"`

	// The repository of the image
	//+kubebuilder:validation:Optional
	Repository string `json:"repository" default:"aperture-agent"`
}

AgentImage defines Image spec for Aperture Agent.

func (*AgentImage) DeepCopy

func (in *AgentImage) DeepCopy() *AgentImage

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

func (*AgentImage) DeepCopyInto

func (in *AgentImage) DeepCopyInto(out *AgentImage)

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

type BundledPluginsSpec

type BundledPluginsSpec struct {
	// FluxNinja Cloud plugin configuration.
	//+kubebuilder:validation:Optional
	FluxNinjaPlugin pluginconfig.FluxNinjaPluginConfig `json:"fluxninja_plugin"`

	// Sentry plugin configuration.
	//+kubebuilder:validation:Optional
	SentryPlugin sentry.SentryConfig `json:"sentry_plugin"`
}

BundledPluginsSpec defines configuration for bundled plugins.

func (*BundledPluginsSpec) DeepCopy

func (in *BundledPluginsSpec) DeepCopy() *BundledPluginsSpec

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

func (*BundledPluginsSpec) DeepCopyInto

func (in *BundledPluginsSpec) DeepCopyInto(out *BundledPluginsSpec)

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

type ClientConfigSpec

type ClientConfigSpec struct {
	// Proxy settings for the client.
	//+kubebuilder:validation:Optional
	Proxy http.ProxyConfig `json:"proxy"`
}

ClientConfigSpec defines client configuration.

func (*ClientConfigSpec) DeepCopy

func (in *ClientConfigSpec) DeepCopy() *ClientConfigSpec

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

func (*ClientConfigSpec) DeepCopyInto

func (in *ClientConfigSpec) DeepCopyInto(out *ClientConfigSpec)

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

type CommonConfigSpec

type CommonConfigSpec struct {
	// Client configuration such as proxy settings.
	//+kubebuilder:validation:Optional
	Client ClientConfigSpec `json:"client"`

	// Etcd configuration.
	//+kubebuilder:validation:Required
	Etcd etcd.EtcdConfig `json:"etcd"`

	// Liveness probe configuration.
	//+kubebuilder:validation:Optional
	Liveness ProbeConfigSpec `json:"liveness"`

	// Readiness probe configuration.
	//+kubebuilder:validation:Optional
	Readiness ProbeConfigSpec `json:"readiness"`

	// Log configuration.
	//+kubebuilder:validation:Optional
	Log config.LogConfig `json:"log"`

	// Metrics configuration.
	//+kubebuilder:validation:Optional
	Metrics metrics.MetricsConfig `json:"metrics"`

	// OTEL configuration.
	//+kubebuilder:validation:Optional
	Otel otelcollector.OtelConfig `json:"otel"`

	// Plugins configuration.
	//+kubebuilder:validation:Optional
	Plugins plugins.PluginsConfig `json:"plugins"`

	// Profilers configuration.
	//+kubebuilder:validation:Optional
	Profilers profilers.ProfilersConfig `json:"profilers"`

	// Prometheus configuration.
	//+kubebuilder:validation:Required
	Prometheus prometheus.PrometheusConfig `json:"prometheus"`

	// Server configuration.
	//+kubebuilder:validation:Optional
	Server ServerConfigSpec `json:"server"`

	// Watchdog configuration.
	//+kubebuilder:validation:Optional
	Watchdog watchdog.WatchdogConfig `json:"watchdog"`

	// BundledPluginsSpec defines configuration for bundled plugins.
	//+kubebuilder:validation:Optional
	BundledPluginsSpec `json:",inline"`
}

CommonConfigSpec defines common configuration for agent and controller.

func (*CommonConfigSpec) DeepCopy

func (in *CommonConfigSpec) DeepCopy() *CommonConfigSpec

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

func (*CommonConfigSpec) DeepCopyInto

func (in *CommonConfigSpec) DeepCopyInto(out *CommonConfigSpec)

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

type CommonSpec

type CommonSpec struct {
	// Labels to add to all deployed objects
	//+mapType=atomic
	//+kubebuilder:validation:Optional
	Labels map[string]string `json:"labels,omitempty"`

	// Annotations to add to all deployed objects
	//+kubebuilder:validation:Optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Configuration for Agent or Controller service
	//+kubebuilder:validation:Optional
	Service Service `json:"service"`

	// ServiceAccountSpec defines the the configuration pf Service account for Agent or Controller
	//+kubebuilder:validation:Optional
	ServiceAccountSpec ServiceAccountSpec `json:"serviceAccount"`

	// livenessProbe related configuration
	//+kubebuilder:validation:Optional
	LivenessProbe Probe `json:"livenessProbe"`

	// readinessProbe related configuration
	//+kubebuilder:validation:Optional
	ReadinessProbe Probe `json:"readinessProbe"`

	// Custom livenessProbe that overrides the default one
	//+kubebuilder:validation:Optional
	CustomLivenessProbe *corev1.Probe `json:"customLivenessProbe,omitempty"`

	// Custom readinessProbe that overrides the default one
	//+kubebuilder:validation:Optional
	CustomReadinessProbe *corev1.Probe `json:"customReadinessProbe,omitempty"`

	// Resource requests and limits
	//+kubebuilder:validation:Optional
	Resources corev1.ResourceRequirements `json:"resources"`

	// Configure Pods' Security Context
	//+kubebuilder:validation:Optional
	PodSecurityContext PodSecurityContext `json:"podSecurityContext"`

	// Configure Containers' Security Context
	//+kubebuilder:validation:Optional
	ContainerSecurityContext ContainerSecurityContext `json:"containerSecurityContext"`

	// Override default container command
	//+kubebuilder:validation:Optional
	Command []string `json:"command,omitempty"`

	// Override default container args
	//+kubebuilder:validation:Optional
	Args []string `json:"args,omitempty"`

	// Extra labels for pods
	//+mapType=atomic
	//+kubebuilder:validation:Optional
	PodLabels map[string]string `json:"podLabels,omitempty"`

	// Extra Annotations for pods
	//+kubebuilder:validation:Optional
	PodAnnotations map[string]string `json:"podAnnotations,omitempty"`

	// Affinity for pods assignment.
	//+kubebuilder:validation:Optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`

	// Node labels for pods assignment
	//+kubebuilder:validation:Optional
	//+mapType=atomic
	NodeSelector map[string]string `json:"nodeSelector,omitempty"`

	// Tolerations for pods assignment
	//+kubebuilder:validation:Optional
	Tolerations []corev1.Toleration `json:"tolerations,omitempty"`

	// Seconds Redmine pod needs to terminate gracefully
	//+kubebuilder:validation:Optional
	TerminationGracePeriodSeconds int64 `json:"terminationGracePeriodSeconds" validate:"gte=0"`

	// For the container(s) to automate configuration before or after startup
	//+kubebuilder:validation:Optional
	LifecycleHooks *corev1.Lifecycle `json:"lifecycleHooks,omitempty" validate:"omitempty"`

	// Array with extra environment variables to add
	//+kubebuilder:validation:Optional
	ExtraEnvVars []corev1.EnvVar `json:"extraEnvVars,omitempty"`

	// Name of existing ConfigMap containing extra env vars
	//+kubebuilder:validation:Optional
	ExtraEnvVarsCM string `json:"extraEnvVarsCM"`

	// Name of existing Secret containing extra env vars
	//+kubebuilder:validation:Optional
	ExtraEnvVarsSecret string `json:"extraEnvVarsSecret"`

	// Optionally specify extra list of additional volumes for the pod(s)
	//+kubebuilder:validation:Optional
	ExtraVolumes []corev1.Volume `json:"extraVolumes,omitempty"`

	// Optionally specify extra list of additional volumeMounts
	//+kubebuilder:validation:Optional
	ExtraVolumeMounts []corev1.VolumeMount `json:"extraVolumeMounts,omitempty"`

	// Add additional sidecar containers
	//+kubebuilder:validation:Optional
	Sidecars []corev1.Container `json:"sidecars,omitempty"`

	// Add additional init containers
	//+kubebuilder:validation:Optional
	InitContainers []corev1.Container `json:"initContainers,omitempty"`

	// Secrets
	//+kubebuilder:validation:Optional
	Secrets Secrets `json:"secrets"`
}

CommonSpec defines the desired the common state of Agent and Controller.

func (*CommonSpec) DeepCopy

func (in *CommonSpec) DeepCopy() *CommonSpec

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

func (*CommonSpec) DeepCopyInto

func (in *CommonSpec) DeepCopyInto(out *CommonSpec)

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

type ContainerSecurityContext

type ContainerSecurityContext struct {
	// Enable ContainerSecurityContext on containers
	Enabled bool `json:"enabled" default:"false"`

	// Set containers' Security Context runAsUser
	//+kubebuilder:validation:Optional
	RunAsUser int64 `json:"runAsUser" default:"1001" validate:"gte=0"`

	// Set containers' Security Context runAsNonRoot
	//+kubebuilder:validation:Optional
	RunAsNonRootUser bool `json:"runAsNonRoot" default:"false"`

	// Set agent containers' Security Context runAsNonRoot
	//+kubebuilder:validation:Optional
	ReadOnlyRootFilesystem bool `json:"readOnlyRootFilesystem" default:"false"`
}

ContainerSecurityContext defines Enabled, RunAsUser, RunAsNonRootUser and ReadOnlyRootFilesystem for the containers' security context.

func (*ContainerSecurityContext) DeepCopy

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

func (*ContainerSecurityContext) DeepCopyInto

func (in *ContainerSecurityContext) DeepCopyInto(out *ContainerSecurityContext)

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

type ControllerImage

type ControllerImage struct {
	// Image specs for Controller
	Image `json:",inline"`

	// The repository of the image
	//+kubebuilder:validation:Optional
	Repository string `json:"repository" default:"aperture-controller"`
}

ControllerImage defines Image spec for Aperture Controller.

func (*ControllerImage) DeepCopy

func (in *ControllerImage) DeepCopy() *ControllerImage

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

func (*ControllerImage) DeepCopyInto

func (in *ControllerImage) DeepCopyInto(out *ControllerImage)

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

type Image

type Image struct {
	// The registry of the image
	//+kubebuilder:validation:Optional
	Registry string `json:"registry" default:"docker.io/fluxninja"`

	// The tag (version) of the image
	//+kubebuilder:validation:Optional
	Tag string `json:"tag" default:"latest"`

	// The ImagePullPolicy of the image
	//+kubebuilder:validation:Optional
	PullPolicy string `json:"pullPolicy" default:"IfNotPresent" validate:"oneof=Never Always IfNotPresent"`

	// The PullSecrets for the image
	//+kubebuilder:validation:Optional
	PullSecrets []string `json:"pullSecrets,omitempty"`
}

Image defines the Registry, Repository, Tag, PullPolicy, PullSecrets and Debug.

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.

type PodSecurityContext

type PodSecurityContext struct {
	// Enable PodSecurityContext on Pod
	Enabled bool `json:"enabled" default:"false"`

	// fsGroup to define the Group ID for the Pod
	//+kubebuilder:validation:Optional
	FsGroup int64 `json:"fsGroup" default:"1001" validate:"gte=0"`
}

PodSecurityContext defines Enabled and FsGroup for the Pods' security context.

func (*PodSecurityContext) DeepCopy

func (in *PodSecurityContext) DeepCopy() *PodSecurityContext

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

func (*PodSecurityContext) DeepCopyInto

func (in *PodSecurityContext) DeepCopyInto(out *PodSecurityContext)

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

type Probe

type Probe struct {
	// Enable probe on agent containers
	Enabled bool `json:"enabled" default:"true"`

	// Initial delay seconds for probe
	//+kubebuilder:validation:Optional
	InitialDelaySeconds int32 `json:"initialDelaySeconds" default:"15" validate:"gte=0"`

	// Period delay seconds for probe
	//+kubebuilder:validation:Optional
	PeriodSeconds int32 `json:"periodSeconds" default:"15" validate:"gte=1"`

	// Timeout delay seconds for probe
	//+kubebuilder:validation:Optional
	TimeoutSeconds int32 `json:"timeoutSeconds" default:"5" validate:"gte=1"`

	// Failure threshold for probe
	//+kubebuilder:validation:Optional
	FailureThreshold int32 `json:"failureThreshold" default:"6" validate:"gte=1"`

	// Success threshold for probe
	//+kubebuilder:validation:Optional
	SuccessThreshold int32 `json:"successThreshold" default:"1" validate:"gte=1"`
}

Probe defines Enabled, InitialDelaySeconds, PeriodSeconds, TimeoutSeconds, FailureThreshold and SuccessThreshold for probes like livenessProbe.

func (*Probe) DeepCopy

func (in *Probe) DeepCopy() *Probe

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

func (*Probe) DeepCopyInto

func (in *Probe) DeepCopyInto(out *Probe)

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

type ProbeConfigSpec

type ProbeConfigSpec struct {
	// Scheduler settings.
	//+kubebuilder:validation:Optional
	Scheduler jobs.JobGroupConfig `json:"scheduler"`

	// Service settings.
	//+kubebuilder:validation:Optional
	Service jobs.JobConfig `json:"service"`
}

ProbeConfigSpec defines liveness and readiness probe configuration.

func (*ProbeConfigSpec) DeepCopy

func (in *ProbeConfigSpec) DeepCopy() *ProbeConfigSpec

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

func (*ProbeConfigSpec) DeepCopyInto

func (in *ProbeConfigSpec) DeepCopyInto(out *ProbeConfigSpec)

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

type SecretKeyRef

type SecretKeyRef struct {
	// Name of the secret
	//+kubebuilder:validation:Optional
	Name string `json:"name"`

	// Key of the secret in Data
	//+kubebuilder:validation:Optional
	Key string `json:"key" default:"apiKey"`
}

SecretKeyRef defines fields for details of the ApiKey secret.

func (*SecretKeyRef) DeepCopy

func (in *SecretKeyRef) DeepCopy() *SecretKeyRef

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

func (*SecretKeyRef) DeepCopyInto

func (in *SecretKeyRef) DeepCopyInto(out *SecretKeyRef)

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

type Secrets

type Secrets struct {
	// FluxNinja plugin.
	//+kubebuilder:validation:Optional
	FluxNinjaPlugin APIKeySecret `json:"fluxNinjaPlugin"`
}

Secrets for Agent or Controller.

func (*Secrets) DeepCopy

func (in *Secrets) DeepCopy() *Secrets

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

func (*Secrets) DeepCopyInto

func (in *Secrets) DeepCopyInto(out *Secrets)

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

type ServerConfigSpec

type ServerConfigSpec struct {
	// Listener configuration.
	//+kubebuilder:validation:Optional
	listener.ListenerConfig `json:",inline"`

	// GRPC server configuration.
	//+kubebuilder:validation:Optional
	Grpc grpc.GRPCServerConfig `json:"grpc"`

	// GRPC Gateway configuration.
	//+kubebuilder:validation:Optional
	GrpcGateway grpcgateway.GRPCGatewayConfig `json:"grpc_gateway"`

	// HTTP server configuration.
	//+kubebuilder:validation:Optional
	HTTP http.HTTPServerConfig `json:"http"`

	// TLS configuration.
	//+kubebuilder:validation:Optional
	TLS tlsconfig.ServerTLSConfig `json:"tls"`
}

ServerConfigSpec configures main server.

func (*ServerConfigSpec) DeepCopy

func (in *ServerConfigSpec) DeepCopy() *ServerConfigSpec

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

func (*ServerConfigSpec) DeepCopyInto

func (in *ServerConfigSpec) DeepCopyInto(out *ServerConfigSpec)

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

type Service

type Service struct {
	// Additional custom annotations for service
	//+kubebuilder:pruning:PreserveUnknownFields
	//+kubebuilder:validation:Optional
	Annotations map[string]string `json:"annotations,omitempty"`
}

Service defines fields required to create Kubernetes' service.

func (*Service) DeepCopy

func (in *Service) DeepCopy() *Service

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

func (*Service) DeepCopyInto

func (in *Service) DeepCopyInto(out *Service)

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

type ServiceAccountSpec

type ServiceAccountSpec struct {
	// Specifies whether a ServiceAccount should be created
	Create bool `json:"create" default:"true"`

	// Additional Service Account annotations
	//+kubebuilder:validation:Optional
	Annotations map[string]string `json:"annotations,omitempty"`

	// Automount service account token for the server service account
	//+kubebuilder:validation:Optional
	AutomountServiceAccountToken bool `json:"automountServiceAccountToken" default:"true"`
}

ServiceAccountSpec defines the the configuration for Service account for Agent and Controller.

func (*ServiceAccountSpec) DeepCopy

func (in *ServiceAccountSpec) DeepCopy() *ServiceAccountSpec

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

func (*ServiceAccountSpec) DeepCopyInto

func (in *ServiceAccountSpec) DeepCopyInto(out *ServiceAccountSpec)

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