v1alpha1

package
v0.12.3 Latest Latest
Warning

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

Go to latest
Published: Oct 13, 2023 License: Apache-2.0 Imports: 18 Imported by: 3

Documentation

Overview

Package v1alpha1 contains API Schema definitions for the operator v1alpha1 API group +kubebuilder:object:generate=true +groupName=operator.marin3r.3scale.net

Index

Constants

View Source
const (
	// DiscoveryServiceKind is Kind of the DiscoveryService resources
	DiscoveryServiceKind string = "DiscoveryService"
	// DiscoveryServiceListKind is the Kind of the DiscoveryServiceList resources
	DiscoveryServiceListKind string = "DiscoveryServiceList"
	// DiscoveryServiceCertificateHashLabelKey is the label in the discovery service Deployment that
	// stores the hash of the current server certificate
	DiscoveryServiceCertificateHashLabelKey string = "marin3r.3scale.net/server-certificate-hash"

	// DefaultMetricsPort is the default port where the discovery service metrics server listens
	DefaultMetricsPort uint32 = 8383
	// DefaultProbePort is the default port where the probe server listens
	DefaultProbePort uint32 = 8384
	// DefaultXdsServerPort is the default port where the discovery service xds server port listens
	DefaultXdsServerPort uint32 = 18000
	// DefaultRootCertificateDuration is the default root CA certificate duration
	DefaultRootCertificateDuration string = "26280h" // 3 years
	// DefaultRootCertificateSecretNamePrefix is the default prefix for the Secret
	// where the root CA certificate is stored
	DefaultRootCertificateSecretNamePrefix string = "marin3r-ca-cert"
	// DefaultServerCertificateDuration is the default discovery service server certificate duration
	DefaultServerCertificateDuration string = "2160h" // 3 months
	// DefaultServerCertificateSecretNamePrefix is the default prefix for the Secret
	// where the server certificate is stored
	DefaultServerCertificateSecretNamePrefix string = "marin3r-server-cert"
)
View Source
const (
	// DiscoveryServiceCertificateKind is a string that holds the Kind of DiscoveryServiceCertificate
	DiscoveryServiceCertificateKind string = "DiscoveryServiceCertificate"
	// CertificateNeedsRenewalCondition is a condition that indicates that a
	// DiscoveryServiceCertificate is invalid and needs replacement
	CertificateNeedsRenewalCondition string = "CertificateNeedsRenewal"
	// CertificateHashLabelKey is the label that stores the hash of the certificate managed
	// by the DiscoveryServiceCertificate resource
	CertificateHashLabelKey string = "certificate-hash"
	// IssuerCertificateHashLabelKey is the label that stores the hash of the certificate managed
	// by the DiscoveryServiceCertificate resource
	IssuerCertificateHashLabelKey string = "issuer-certificate-hash"
)
View Source
const (
	// DiscoveryServiceCertificateHashLabelKey is the label in the discovery service Deployment that
	// stores the hash of the current server certificate
	EnvoyDeploymentBootstrapConfigHashLabelKey string = "marin3r.3scale.net/bootstrap-config-hash"
	// ClientCertificateDefaultDuration
	ClientCertificateDefaultDuration string = "48h"
	// DefaultReplicas is the default number of replicas for the Deployment
	DefaultReplicas int32 = 1
)
View Source
const (
	// Finalizer is the finalizer for operator.marin3r.3scale.net resources
	Finalizer string = "finalizer.operator.marin3r.3scale.net"
)

Variables

View Source
var (
	// GroupVersion is group version used to register these objects
	GroupVersion = schema.GroupVersion{Group: "operator.marin3r.3scale.net", Version: "v1alpha1"}

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

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

Functions

This section is empty.

Types

type CASignedConfig

type CASignedConfig struct {
	// A reference to a Secret containing the CA
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SecretRef corev1.SecretReference `json:"caSecretRef"`
}

CASignedConfig is used ti generate certificates signed by a CA contained in a Secret

func (*CASignedConfig) DeepCopy

func (in *CASignedConfig) DeepCopy() *CASignedConfig

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

func (*CASignedConfig) DeepCopyInto

func (in *CASignedConfig) DeepCopyInto(out *CASignedConfig)

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

type CertificateOptions

type CertificateOptions struct {
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SecretName string `json:"secretName"`
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Duration metav1.Duration `json:"duration"`
}

CertificateOptions specifies options to generate the server certificate used both for the xDS server and the mutating webhook server.

func (*CertificateOptions) DeepCopy

func (in *CertificateOptions) DeepCopy() *CertificateOptions

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

func (*CertificateOptions) DeepCopyInto

func (in *CertificateOptions) DeepCopyInto(out *CertificateOptions)

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

type CertificateRenewalConfig

type CertificateRenewalConfig struct {
	// Enabled is a flag to enable or disable renewal of the certificate
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Enabled bool `json:"enabled"`
}

CertificateRenewalConfig configures the certificate renewal process.

func (*CertificateRenewalConfig) DeepCopy

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

func (*CertificateRenewalConfig) DeepCopyInto

func (in *CertificateRenewalConfig) DeepCopyInto(out *CertificateRenewalConfig)

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

type ContainerPort

type ContainerPort struct {
	// Port name
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Name string `json:"name"`
	// Port value
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Port int32 `json:"port"`
	// Protocol. Defaults to TCP.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Protocol *corev1.Protocol `json:"protocol,omitempty"`
}

ContainerPort defines port for the Marin3r sidecar container

func (*ContainerPort) DeepCopy

func (in *ContainerPort) DeepCopy() *ContainerPort

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

func (*ContainerPort) DeepCopyInto

func (in *ContainerPort) DeepCopyInto(out *ContainerPort)

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

type DiscoveryService

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

	Spec   DiscoveryServiceSpec   `json:"spec,omitempty"`
	Status DiscoveryServiceStatus `json:"status,omitempty"`
}

DiscoveryService represents an envoy discovery service server. Only one instance per namespace is currently supported. +kubebuilder:subresource:status +kubebuilder:resource:path=discoveryservices,scope=Namespaced +operator-sdk:csv:customresourcedefinitions:displayName="DiscoveryService" +operator-sdk:csv:customresourcedefinitions.resources={{Deployment,v1},{Service,v1},{DiscoveryServiceCertificate,v1alpha1}}

func (*DiscoveryService) Debug

func (d *DiscoveryService) Debug() bool

Debug returns a boolean value that indicates if debug loggin is enabled

func (*DiscoveryService) DeepCopy

func (in *DiscoveryService) DeepCopy() *DiscoveryService

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

func (*DiscoveryService) DeepCopyInto

func (in *DiscoveryService) DeepCopyInto(out *DiscoveryService)

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

func (*DiscoveryService) DeepCopyObject

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

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

func (*DiscoveryService) GetImage

func (d *DiscoveryService) GetImage() string

GetImage returns the DiscoveryService image that matches the current version of the operator or the one defined by the user if the filed is set in the resource

func (*DiscoveryService) GetMetricsPort

func (d *DiscoveryService) GetMetricsPort() uint32

GetMetricsPort returns the port the metrics server will listen at

func (*DiscoveryService) GetPriorityClass added in v0.12.0

func (d *DiscoveryService) GetPriorityClass() *string

PodPriorityClass returns the pod's priority class

func (*DiscoveryService) GetProbePort added in v0.12.0

func (d *DiscoveryService) GetProbePort() uint32

GetProbePort returns the port the healthz server will listen at

func (*DiscoveryService) GetRootCertificateAuthorityOptions

func (d *DiscoveryService) GetRootCertificateAuthorityOptions() *CertificateOptions

GetRootCertificateAuthorityOptions returns the CertificateOptions for the root CA

func (*DiscoveryService) GetServerCertificateOptions

func (d *DiscoveryService) GetServerCertificateOptions() *CertificateOptions

GetServerCertificateOptions returns the CertificateOptions for the root CA

func (*DiscoveryService) GetServiceConfig

func (d *DiscoveryService) GetServiceConfig() *ServiceConfig

GetServiceConfig returns the Service configuration for the discovery service servers

func (*DiscoveryService) GetStatus added in v0.12.0

func (d *DiscoveryService) GetStatus() status.AppStatus

func (*DiscoveryService) GetXdsServerPort

func (d *DiscoveryService) GetXdsServerPort() uint32

GetXdsServerPort returns the port the xDS server will listen at

func (*DiscoveryService) OwnedObjectName

func (d *DiscoveryService) OwnedObjectName() string

OwnedObjectName returns the name of the resources the discoveryservices controller needs to create

func (*DiscoveryService) Resources

Resources returns the Pod resources for the discovery service pod

type DiscoveryServiceCertificate

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

	Spec   DiscoveryServiceCertificateSpec   `json:"spec,omitempty"`
	Status DiscoveryServiceCertificateStatus `json:"status,omitempty"`
}

DiscoveryServiceCertificate is an internal resource used to create certificates. This resource is used by the DiscoveryService controller to create the required certificates for the different components. Direct use of DiscoveryServiceCertificate objects is discouraged. +kubebuilder:subresource:status +kubebuilder:resource:path=discoveryservicecertificates,scope=Namespaced +kubebuilder:printcolumn:JSONPath=".status.ready",name="Ready",type=boolean +kubebuilder:printcolumn:JSONPath=".status.notBefore",name=Not Before,type=string,format=date-time +kubebuilder:printcolumn:JSONPath=".status.notAfter",name=Not After,type=string,format=date-time +operator-sdk:csv:customresourcedefinitions:displayName="DiscoveryServiceCertificate" +operator-sdk:gen-csv:customresourcedefinitions:resources={{Secret,v1}}

func (*DiscoveryServiceCertificate) DeepCopy

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

func (*DiscoveryServiceCertificate) DeepCopyInto

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

func (*DiscoveryServiceCertificate) DeepCopyObject

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

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

func (*DiscoveryServiceCertificate) GetCertificateRenewalConfig

func (d *DiscoveryServiceCertificate) GetCertificateRenewalConfig() CertificateRenewalConfig

GetCertificateRenewalConfig returns the renewal configuration for the issued certificate

func (*DiscoveryServiceCertificate) GetHosts

func (d *DiscoveryServiceCertificate) GetHosts() []string

GetHosts returns the list of server names that the certificate is issued for

func (*DiscoveryServiceCertificate) IsCA

IsCA returns true if the certificate is issued to function as a certificate authority or not

func (*DiscoveryServiceCertificate) IsServerCertificate

func (d *DiscoveryServiceCertificate) IsServerCertificate() bool

IsServerCertificate returns true if the certificate is issued for server usage or false if not

type DiscoveryServiceCertificateList

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

DiscoveryServiceCertificateList contains a list of DiscoveryServiceCertificate

func (*DiscoveryServiceCertificateList) DeepCopy

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

func (*DiscoveryServiceCertificateList) DeepCopyInto

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

func (*DiscoveryServiceCertificateList) DeepCopyObject

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

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

type DiscoveryServiceCertificateSigner

type DiscoveryServiceCertificateSigner struct {
	// SelfSigned holds specific configuration for the SelfSigned signer
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	SelfSigned *SelfSignedConfig `json:"selfSigned,omitempty"`
	// CASigned holds specific configuration for the CASigned signer
	// +kubebuilder:validation:Optional
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	CASigned *CASignedConfig `json:"caSigned,omitempty"`
}

DiscoveryServiceCertificateSigner specifies the signer to use to provision the certificate

func (*DiscoveryServiceCertificateSigner) DeepCopy

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

func (*DiscoveryServiceCertificateSigner) DeepCopyInto

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

type DiscoveryServiceCertificateSpec

type DiscoveryServiceCertificateSpec struct {
	// CommonName is the CommonName of the certificate
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	CommonName string `json:"commonName"`
	// IsServerCertificate is a boolean specifying if the certificate should be
	// issued with server auth usage enabled
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	IsServerCertificate *bool `json:"server,omitempty"`
	// IsCA is a boolean specifying that the certificate is a CA
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	IsCA *bool `json:"isCA,omitempty"`
	// ValidFor specifies the validity of the certificate in seconds
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ValidFor int64 `json:"validFor"`
	// Hosts is the list of hosts the certificate is valid for. Only
	// use when 'IsServerCertificate' is true. If unset, the CommonName
	// field will be used to populate the valid hosts of the certificate.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Hosts []string `json:"hosts,omitempty"`
	// Signer specifies  the signer to use to create this certificate. Supported
	// signers are CertManager and SelfSigned.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Signer DiscoveryServiceCertificateSigner `json:"signer"`
	// SecretRef is a reference to the secret that will hold the certificate
	// and the private key.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SecretRef corev1.SecretReference `json:"secretRef"`
	// CertificateRenewalConfig configures the certificate renewal process. If unset default
	// behavior is to renew the certificate but not notify of renewals.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	CertificateRenewalConfig *CertificateRenewalConfig `json:"certificateRenewal,omitempty"`
}

DiscoveryServiceCertificateSpec defines the desired state of DiscoveryServiceCertificate

func (*DiscoveryServiceCertificateSpec) DeepCopy

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

func (*DiscoveryServiceCertificateSpec) DeepCopyInto

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

type DiscoveryServiceCertificateStatus

type DiscoveryServiceCertificateStatus struct {
	// Ready is a boolean that specifies if the certificate is ready to be used
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	Ready *bool `json:"ready,omitempty"`
	// NotBefore is the time at which the certificate starts
	// being valid
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	NotBefore *metav1.Time `json:"notBefore,omitempty"`
	// NotAfter is the time at which the certificate expires
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	NotAfter *metav1.Time `json:"notAfter,omitempty"`
	// CertificateHash stores the current hash of the certificate. It is used
	// for other controllers to validate if a certificate has been re-issued.
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	CertificateHash *string `json:"certificateHash,omitempty"`
	// Conditions represent the latest available observations of an object's state
	// +operator-sdk:csv:customresourcedefinitions:type=status
	// +optional
	Conditions []metav1.Condition `json:"conditions,omitempty"`
}

DiscoveryServiceCertificateStatus defines the observed state of DiscoveryServiceCertificate

func (*DiscoveryServiceCertificateStatus) DeepCopy

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

func (*DiscoveryServiceCertificateStatus) DeepCopyInto

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

func (*DiscoveryServiceCertificateStatus) GetCertificateHash

func (status *DiscoveryServiceCertificateStatus) GetCertificateHash() string

GetCertificateHash returns the hash of the certificate associated with the DiscoveryServiceCertificate resource. Returns an empty string if not set.

func (*DiscoveryServiceCertificateStatus) IsReady

func (status *DiscoveryServiceCertificateStatus) IsReady() bool

IsReady returns true if the certificate is ready to use, false otherwise

type DiscoveryServiceList

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

DiscoveryServiceList contains a list of DiscoveryService

func (*DiscoveryServiceList) DeepCopy

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

func (*DiscoveryServiceList) DeepCopyInto

func (in *DiscoveryServiceList) DeepCopyInto(out *DiscoveryServiceList)

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

func (*DiscoveryServiceList) DeepCopyObject

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

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

type DiscoveryServiceSpec

type DiscoveryServiceSpec struct {
	// Image holds the image to use for the discovery service Deployment
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Image *string `json:"image,omitempty"`
	// Debug enables debugging log level for the discovery service controllers. It is safe to
	// use since secret data is never shown in the logs.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Debug *bool `json:"debug,omitempty"`
	// Resources holds the Resource Requirements to use for the discovery service
	// Deployment. When not set it defaults to no resource requests nor limits.
	// CPU and Memory resources are supported.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
	// PKIConfig has configuration for the PKI that marin3r manages for the
	// different certificates it requires
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	PKIConfig *PKIConfig `json:"pkiConfg,omitempty"`
	// XdsServerPort is the port where the xDS server listens. Defaults to 18000.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	XdsServerPort *uint32 `json:"xdsServerPort,omitempty"`
	// MetricsPort is the port where metrics are served. Defaults to 8383.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	MetricsPort *uint32 `json:"metricsPort,omitempty"`
	// ProbePort is the port where healthz endpoint is served. Defaults to 8384.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	ProbePort *uint32 `json:"probePort,omitempty"`
	// ServiceConfig configures the way the DiscoveryService endpoints are exposed
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	ServiceConfig *ServiceConfig `json:"serviceConfig,omitempty"`
	// PriorityClass to assign the discovery service Pod to
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	PodPriorityClass *string `json:"podPriorityClass,omitempty"`
}

DiscoveryServiceSpec defines the desired state of DiscoveryService

func (*DiscoveryServiceSpec) DeepCopy

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

func (*DiscoveryServiceSpec) DeepCopyInto

func (in *DiscoveryServiceSpec) DeepCopyInto(out *DiscoveryServiceSpec)

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

type DiscoveryServiceStatus

type DiscoveryServiceStatus struct {
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	DeploymentName *string `json:"deploymentName,omitempty"`
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	*appsv1.DeploymentStatus `json:"deploymentStatus,omitempty"`
	// internal fields
	status.UnimplementedStatefulSetStatus `json:"-"`
}

DiscoveryServiceStatus defines the observed state of DiscoveryService

func (*DiscoveryServiceStatus) DeepCopy

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

func (*DiscoveryServiceStatus) DeepCopyInto

func (in *DiscoveryServiceStatus) DeepCopyInto(out *DiscoveryServiceStatus)

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

func (*DiscoveryServiceStatus) GetDeploymentStatus added in v0.12.0

func (dss *DiscoveryServiceStatus) GetDeploymentStatus(key types.NamespacedName) *appsv1.DeploymentStatus

func (*DiscoveryServiceStatus) SetDeploymentStatus added in v0.12.0

func (dss *DiscoveryServiceStatus) SetDeploymentStatus(key types.NamespacedName, s *appsv1.DeploymentStatus)

type DynamicReplicasSpec

type DynamicReplicasSpec struct {
	// minReplicas is the lower limit for the number of replicas to which the autoscaler
	// can scale down.  It defaults to 1 pod.  minReplicas is allowed to be 0 if the
	// alpha feature gate HPAScaleToZero is enabled and at least one Object or External
	// metric is configured.  Scaling is active as long as at least one metric value is
	// available.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	MinReplicas *int32 `json:"minReplicas,omitempty"`
	// maxReplicas is the upper limit for the number of replicas to which the autoscaler can scale up.
	// It cannot be less that minReplicas.
	MaxReplicas int32 `json:"maxReplicas"`
	// metrics contains the specifications for which to use to calculate the
	// desired replica count (the maximum replica count across all metrics will
	// be used).  The desired replica count is calculated multiplying the
	// ratio between the target value and the current value by the current
	// number of pods.  Ergo, metrics used must decrease as the pod count is
	// increased, and vice-versa.  See the individual metric source types for
	// more information about how each type of metric must respond.
	// If not set, the default metric will be set to 80% average CPU utilization.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Metrics []autoscalingv2.MetricSpec `json:"metrics,omitempty"`
	// behavior configures the scaling behavior of the target
	// in both Up and Down directions (scaleUp and scaleDown fields respectively).
	// If not set, the default HPAScalingRules for scale up and scale down are used.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Behavior *autoscalingv2.HorizontalPodAutoscalerBehavior `json:"behavior,omitempty"`
}

func (*DynamicReplicasSpec) DeepCopy

func (in *DynamicReplicasSpec) DeepCopy() *DynamicReplicasSpec

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

func (*DynamicReplicasSpec) DeepCopyInto

func (in *DynamicReplicasSpec) DeepCopyInto(out *DynamicReplicasSpec)

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

type EnvoyDeployment

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

	Spec   EnvoyDeploymentSpec   `json:"spec,omitempty"`
	Status EnvoyDeploymentStatus `json:"status,omitempty"`
}

EnvoyDeployment is a resource to deploy and manage a Kubernetes Deployment of Envoy Pods. +kubebuilder:subresource:status +kubebuilder:resource:path=envoydeployments,scope=Namespaced +operator-sdk:csv:customresourcedefinitions:displayName="EnvoyDeployment" +operator-sdk:csv:customresourcedefinitions.resources={{Deployment,v1}}

func (*EnvoyDeployment) AdminAccessLogPath

func (ed *EnvoyDeployment) AdminAccessLogPath() string

func (*EnvoyDeployment) AdminPort

func (ed *EnvoyDeployment) AdminPort() uint32

func (*EnvoyDeployment) Affinity

func (ed *EnvoyDeployment) Affinity() *corev1.Affinity

func (*EnvoyDeployment) ClientCertificateDuration

func (ed *EnvoyDeployment) ClientCertificateDuration() time.Duration

Image returns the envoy container image to use

func (*EnvoyDeployment) DeepCopy

func (in *EnvoyDeployment) DeepCopy() *EnvoyDeployment

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

func (*EnvoyDeployment) DeepCopyInto

func (in *EnvoyDeployment) DeepCopyInto(out *EnvoyDeployment)

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

func (*EnvoyDeployment) DeepCopyObject

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

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

func (*EnvoyDeployment) GetStatus added in v0.12.0

func (ed *EnvoyDeployment) GetStatus() status.AppStatus

func (*EnvoyDeployment) Image

func (ed *EnvoyDeployment) Image() string

Image returns the envoy container image to use

func (*EnvoyDeployment) LivenessProbe

func (ed *EnvoyDeployment) LivenessProbe() ProbeSpec

func (*EnvoyDeployment) PodDisruptionBudget

func (ed *EnvoyDeployment) PodDisruptionBudget() PodDisruptionBudgetSpec

func (*EnvoyDeployment) ReadinessProbe

func (ed *EnvoyDeployment) ReadinessProbe() ProbeSpec

func (*EnvoyDeployment) Replicas

func (ed *EnvoyDeployment) Replicas() ReplicasSpec

func (*EnvoyDeployment) Resources

Resources returns the Pod resources for the envoy pod

func (*EnvoyDeployment) SetupWebhookWithManager

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

func (*EnvoyDeployment) Validate

func (r *EnvoyDeployment) Validate() error

Validate checks that the spec of the EnvoyDeployment resource is correct

func (*EnvoyDeployment) ValidateCreate

func (r *EnvoyDeployment) ValidateCreate() error

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

func (*EnvoyDeployment) ValidateDelete

func (r *EnvoyDeployment) ValidateDelete() error

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

func (*EnvoyDeployment) ValidateUpdate

func (r *EnvoyDeployment) ValidateUpdate(old runtime.Object) error

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

type EnvoyDeploymentList

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

EnvoyDeploymentList contains a list of EnvoyDeployment

func (*EnvoyDeploymentList) DeepCopy

func (in *EnvoyDeploymentList) DeepCopy() *EnvoyDeploymentList

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

func (*EnvoyDeploymentList) DeepCopyInto

func (in *EnvoyDeploymentList) DeepCopyInto(out *EnvoyDeploymentList)

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

func (*EnvoyDeploymentList) DeepCopyObject

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

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

type EnvoyDeploymentSpec

type EnvoyDeploymentSpec struct {
	// EnvoyConfigRef points to an EnvoyConfig in the same namespace
	// that holds the envoy resources for this Deployment
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	EnvoyConfigRef string `json:"envoyConfigRef"`
	// DiscoveryServiceRef points to a DiscoveryService in the same
	// namespace
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	DiscoveryServiceRef string `json:"discoveryServiceRef"`
	// Defines the local service cluster name where Envoy is running. Defaults
	// to the NodeID in the EnvoyConfig if unset
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	ClusterID *string `json:"clusterID,omitempty"`
	// Ports exposed by the Envoy container
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Ports []ContainerPort `json:"ports,omitempty"`
	// Image is the envoy image and tag to use
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Image *string `json:"image,omitempty"`
	// Resources holds the resource requirements to use for the Envoy
	// Deployment. Defaults to no resource requests nor limits.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Resources *corev1.ResourceRequirements `json:"resources,omitempty"`
	// Defines the duration of the client certificate that is used to authenticate
	// with the DiscoveryService
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	ClientCertificateDuration *metav1.Duration `json:"duration,omitempty"`
	// Allows the user to define extra command line arguments for the Envoy process
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	ExtraArgs []string `json:"extraArgs,omitempty"`
	// Configures envoy's admin port. Defaults to 9901.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	AdminPort *uint32 `json:"adminPort,omitempty"`
	// Configures envoy's admin access log path. Defaults to /dev/null.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	AdminAccessLogPath *string `json:"adminAccessLogPath,omitempty"`
	// Replicas configures the number of replicas in the Deployment. One of
	// 'static', 'dynamic' can be set. If both are set, static has precedence.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Replicas *ReplicasSpec `json:"replicas,omitempty"`
	// Liveness probe for the envoy pods
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	LivenessProbe *ProbeSpec `json:"livenessProbe,omitempty"`
	// Readiness probe for the envoy pods
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	ReadinessProbe *ProbeSpec `json:"readinessProbe,omitempty"`
	// Affinity configuration for the envoy pods
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Affinity *corev1.Affinity `json:"affinity,omitempty"`
	// Configures PodDisruptionBudget for the envoy Pods
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	PodDisruptionBudget *PodDisruptionBudgetSpec `json:"podDisruptionBudget,omitempty"`
	// ShutdownManager defines configuration for Envoy's shutdown
	// manager, which handles graceful termination of Envoy pods
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	ShutdownManager *ShutdownManager `json:"shutdownManager,omitempty"`
	// InitManager defines configuration for Envoy's init
	// manager, which handles initialization for Envoy pods
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	InitManager *InitManager `json:"initManager,omitempty"`
}

EnvoyDeploymentSpec defines the desired state of EnvoyDeployment

func (*EnvoyDeploymentSpec) DeepCopy

func (in *EnvoyDeploymentSpec) DeepCopy() *EnvoyDeploymentSpec

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

func (*EnvoyDeploymentSpec) DeepCopyInto

func (in *EnvoyDeploymentSpec) DeepCopyInto(out *EnvoyDeploymentSpec)

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

type EnvoyDeploymentStatus

type EnvoyDeploymentStatus struct {
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	DeploymentName *string `json:"deploymentName,omitempty"`
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	*appsv1.DeploymentStatus `json:"deploymentStatus,omitempty"`
	// internal fields
	status.UnimplementedStatefulSetStatus `json:"-"`
}

EnvoyDeploymentStatus defines the observed state of EnvoyDeployment

func (*EnvoyDeploymentStatus) DeepCopy

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

func (*EnvoyDeploymentStatus) DeepCopyInto

func (in *EnvoyDeploymentStatus) DeepCopyInto(out *EnvoyDeploymentStatus)

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

func (*EnvoyDeploymentStatus) GetDeploymentStatus added in v0.12.0

func (eds *EnvoyDeploymentStatus) GetDeploymentStatus(key types.NamespacedName) *appsv1.DeploymentStatus

func (*EnvoyDeploymentStatus) SetDeploymentStatus added in v0.12.0

func (eds *EnvoyDeploymentStatus) SetDeploymentStatus(key types.NamespacedName, s *appsv1.DeploymentStatus)

type InitManager

type InitManager struct {
	// Image is the init manager image and tag to use
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Image *string `json:"image,omitempty"`
}

InitManager defines configuration for Envoy's shutdown manager, which handles initialization for Envoy pods

func (*InitManager) DeepCopy

func (in *InitManager) DeepCopy() *InitManager

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

func (*InitManager) DeepCopyInto

func (in *InitManager) DeepCopyInto(out *InitManager)

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

func (*InitManager) GetImage

func (im *InitManager) GetImage() string

type PKIConfig

type PKIConfig struct {
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	RootCertificateAuthority *CertificateOptions `json:"rootCertificateAuthority"`
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	ServerCertificate *CertificateOptions `json:"serverCertificate"`
}

PKIConfig has configuration for the PKI that marin3r manages for the different certificates it requires

func (*PKIConfig) DeepCopy

func (in *PKIConfig) DeepCopy() *PKIConfig

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

func (*PKIConfig) DeepCopyInto

func (in *PKIConfig) DeepCopyInto(out *PKIConfig)

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

type PodDisruptionBudgetSpec

type PodDisruptionBudgetSpec struct {
	// An eviction is allowed if at least "minAvailable" pods selected by
	// "selector" will still be available after the eviction, i.e. even in the
	// absence of the evicted pod.  So for example you can prevent all voluntary
	// evictions by specifying "100%".
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	MinAvailable *intstr.IntOrString `json:"minAvailable,omitempty"`
	// An eviction is allowed if at most "maxUnavailable" pods selected by
	// "selector" are unavailable after the eviction, i.e. even in absence of
	// the evicted pod. For example, one can prevent all voluntary evictions
	// by specifying 0. This is a mutually exclusive setting with "minAvailable".
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	MaxUnavailable *intstr.IntOrString `json:"maxUnavailable,omitempty"`
}

PodDisruptionBudgetSpec defines the PDB for the component

func (*PodDisruptionBudgetSpec) DeepCopy

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

func (*PodDisruptionBudgetSpec) DeepCopyInto

func (in *PodDisruptionBudgetSpec) DeepCopyInto(out *PodDisruptionBudgetSpec)

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

func (*PodDisruptionBudgetSpec) Validate

func (pdbs *PodDisruptionBudgetSpec) Validate() error

Validate validates that the received struct is correct

type ProbeSpec

type ProbeSpec struct {
	// Number of seconds after the container has started before liveness probes are initiated
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	InitialDelaySeconds int32 `json:"initialDelaySeconds"`
	// Number of seconds after which the probe times out
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	TimeoutSeconds int32 `json:"timeoutSeconds"`
	// How often (in seconds) to perform the probe
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	PeriodSeconds int32 `json:"periodSeconds"`
	// Minimum consecutive successes for the probe to be considered successful after having failed
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	SuccessThreshold int32 `json:"successThreshold"`
	// Minimum consecutive failures for the probe to be considered failed after having succeeded
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	FailureThreshold int32 `json:"failureThreshold"`
}

ProbeSpec specifies configuration for a probe

func (*ProbeSpec) DeepCopy

func (in *ProbeSpec) DeepCopy() *ProbeSpec

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

func (*ProbeSpec) DeepCopyInto

func (in *ProbeSpec) DeepCopyInto(out *ProbeSpec)

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

type ReplicasSpec

type ReplicasSpec struct {
	// Configure a static number of replicas. Defaults to 1.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Static *int32 `json:"static,omitempty"`
	// Configure a min and max value for the number of pods to autoscale dynamically.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Dynamic *DynamicReplicasSpec `json:"dynamic,omitempty"`
}

ReplicasSpec configures the number of replicas of the Deployment

func (*ReplicasSpec) DeepCopy

func (in *ReplicasSpec) DeepCopy() *ReplicasSpec

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

func (*ReplicasSpec) DeepCopyInto

func (in *ReplicasSpec) DeepCopyInto(out *ReplicasSpec)

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

func (*ReplicasSpec) Validate

func (rs *ReplicasSpec) Validate() error

Validate validates that the received struct is correct

type SelfSignedConfig

type SelfSignedConfig struct{}

SelfSignedConfig is an empty struct to refer to the selfsiged certificates provisioner

func (*SelfSignedConfig) DeepCopy

func (in *SelfSignedConfig) DeepCopy() *SelfSignedConfig

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

func (*SelfSignedConfig) DeepCopyInto

func (in *SelfSignedConfig) DeepCopyInto(out *SelfSignedConfig)

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

type ServiceConfig

type ServiceConfig struct {
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Name string `json:"name,omitempty"`
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	Type ServiceType `json:"type,omitempty"`
}

ServiceConfig has options to configure the way the Service is deployed

func (*ServiceConfig) DeepCopy

func (in *ServiceConfig) DeepCopy() *ServiceConfig

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

func (*ServiceConfig) DeepCopyInto

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

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

type ServiceType

type ServiceType string

ServiceType is an enum with the available discovery service Service types

const (
	// ClusterIPType represents a ClusterIP Service
	ClusterIPType ServiceType = "ClusterIP"
	// LoadBalancerType represents a LoadBalancer Service
	LoadBalancerType ServiceType = "LoadBalancer"
	// HeadlessType represents a headless Service
	HeadlessType ServiceType = "Headless"
)

type ShutdownManager

type ShutdownManager struct {
	// Image is the shutdown manager image and tag to use
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	Image *string `json:"image,omitempty"`
	// Configures the sutdown manager's server port. Defaults to 8090.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	ServerPort *uint32 `json:"serverPort,omitempty"`
	// The time in seconds that Envoy will drain connections during shutdown.
	// It also affects drain behaviour when listeners are modified or removed via LDS.
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	DrainTime *int64 `json:"drainTime,omitempty"`
	// The drain strategy for the graceful shutdown. It also affects
	// drain when listeners are modified or removed via LDS.
	// +kubebuilder:validation:Enum=gradual;immediate
	// +operator-sdk:csv:customresourcedefinitions:type=spec
	// +optional
	DrainStrategy *defaults.DrainStrategy `json:"drainStrategy,omitempty"`
}

ShutdownManager defines configuration for Envoy's shutdown manager, which handles graceful termination of Envoy Pods

func (*ShutdownManager) DeepCopy

func (in *ShutdownManager) DeepCopy() *ShutdownManager

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

func (*ShutdownManager) DeepCopyInto

func (in *ShutdownManager) DeepCopyInto(out *ShutdownManager)

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

func (*ShutdownManager) GetDrainStrategy added in v0.10.0

func (sm *ShutdownManager) GetDrainStrategy() defaults.DrainStrategy

func (*ShutdownManager) GetDrainTime added in v0.10.0

func (sm *ShutdownManager) GetDrainTime() int64

func (*ShutdownManager) GetImage

func (sm *ShutdownManager) GetImage() string

func (*ShutdownManager) GetServer

func (sm *ShutdownManager) GetServer() uint32

Jump to

Keyboard shortcuts

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