builder

package
v0.12.3 Latest Latest
Warning

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

Go to latest
Published: Feb 23, 2025 License: Apache-2.0 Imports: 26 Imported by: 0

Documentation

Index

Constants

View Source
const (
	VectorContainerName    = "vector"
	VectorConfigVolumeName = "vector-config"

	LogDataVolumeName = "log"

	VectorConfigFileName = "vector.yaml"
)

Variables

View Source
var (
	HTTPGetProbHandler2PortNames = []string{"http", "ui", "metrics", "health"}
	TCPProbHandler2PortNames     = []string{"master"}
)
View Source
var (
	VectorConfigFile   = path.Join(constants.KubedoopConfigDir, VectorConfigFileName)
	VectorWatcherDir   = path.Join(constants.KubedoopLogDir, "_vector")
	VectorShutdownFile = path.Join(VectorWatcherDir, "shutdown")
)
View Source
var (
	DefaultReplicas = int32(1)
)
View Source
var ErrNoContainers = errors.New("no containers defined")

Functions

func ContainerPorts2ServicePorts deprecated added in v0.8.0

func ContainerPorts2ServicePorts(port []corev1.ContainerPort) []corev1.ServicePort

Deprecated: Use PortsConverter instead

func ListenerClass2ServiceType added in v0.10.0

func ListenerClass2ServiceType(listenerClass constants.ListenerClass) corev1.ServiceType

ListenerClass2ServiceType converts listener class to k8s service type

ClusterInternal --> ClusterIP
ExternalUnstable --> NodePort
ExternalStable --> LoadBalancer
Default --> ClusterIP

func PortsConverter added in v0.12.0

func PortsConverter(port []corev1.ContainerPort) []corev1.ServicePort

Types

type BaseConfigBuilder

type BaseConfigBuilder struct {
	ObjectMeta
	// contains filtered or unexported fields
}

func NewBaseConfigBuilder

func NewBaseConfigBuilder(
	client *client.Client,
	name string,
	options ...Option,
) *BaseConfigBuilder

func (*BaseConfigBuilder) AddData

func (b *BaseConfigBuilder) AddData(data map[string]string) ConfigBuilder

func (*BaseConfigBuilder) AddItem added in v0.10.0

func (b *BaseConfigBuilder) AddItem(key, value string) ConfigBuilder

func (*BaseConfigBuilder) Build added in v0.12.0

func (*BaseConfigBuilder) ClearData

func (b *BaseConfigBuilder) ClearData() ConfigBuilder

func (*BaseConfigBuilder) GetData

func (b *BaseConfigBuilder) GetData() map[string]string

func (*BaseConfigBuilder) SetData

func (b *BaseConfigBuilder) SetData(data map[string]string) ConfigBuilder

type BaseServiceBuilder

type BaseServiceBuilder struct {
	ObjectMeta
	// contains filtered or unexported fields
}

func NewServiceBuilder

func NewServiceBuilder(
	client *client.Client,
	name string,
	ports []corev1.ContainerPort,
	options ...ServiceBuilderOption,
) *BaseServiceBuilder

func (*BaseServiceBuilder) AddPort

func (b *BaseServiceBuilder) AddPort(port *corev1.ServicePort)

func (*BaseServiceBuilder) Build

func (*BaseServiceBuilder) GetObject

func (b *BaseServiceBuilder) GetObject() *corev1.Service

func (*BaseServiceBuilder) GetPorts

func (b *BaseServiceBuilder) GetPorts() []corev1.ServicePort

type BaseWorkloadBuilder added in v0.8.0

type BaseWorkloadBuilder struct {
	ObjectMeta

	Image *util.Image

	Overrides *commonsv1alpha1.OverridesSpec

	RoleGroupConfig *commonsv1alpha1.RoleGroupConfigSpec
	// contains filtered or unexported fields
}

WorkloadOptions is a struct to hold the options for a workload

Note: The values of envOverrides and cliOverrides will only be overridden on the container with the same name as roleGroupInfo.RoleName, if roleGroupInfo exists and roleGroupInfo.RoleName has a value.

func NewBaseWorkloadBuilder added in v0.8.0

func NewBaseWorkloadBuilder(
	client *client.Client,

	name string,
	image *util.Image,
	overrides *commonsv1alpha1.OverridesSpec,
	roleGroupConfig *commonsv1alpha1.RoleGroupConfigSpec,
	options ...Option,
) *BaseWorkloadBuilder

func (*BaseWorkloadBuilder) AddContainer added in v0.8.0

func (b *BaseWorkloadBuilder) AddContainer(container *corev1.Container)

func (*BaseWorkloadBuilder) AddContainers added in v0.8.0

func (b *BaseWorkloadBuilder) AddContainers(containers []corev1.Container)

func (*BaseWorkloadBuilder) AddInitContainer added in v0.8.0

func (b *BaseWorkloadBuilder) AddInitContainer(container *corev1.Container)

func (*BaseWorkloadBuilder) AddInitContainers added in v0.8.0

func (b *BaseWorkloadBuilder) AddInitContainers(containers []corev1.Container)

func (*BaseWorkloadBuilder) AddVolume added in v0.8.0

func (b *BaseWorkloadBuilder) AddVolume(volume *corev1.Volume)

func (*BaseWorkloadBuilder) AddVolumes added in v0.8.0

func (b *BaseWorkloadBuilder) AddVolumes(volumes []corev1.Volume)

func (*BaseWorkloadBuilder) Build added in v0.12.0

func (*BaseWorkloadBuilder) GetAffinity added in v0.8.0

func (b *BaseWorkloadBuilder) GetAffinity() (*corev1.Affinity, error)

func (*BaseWorkloadBuilder) GetContainer added in v0.12.0

func (b *BaseWorkloadBuilder) GetContainer(name string) *corev1.Container

func (*BaseWorkloadBuilder) GetContainers added in v0.8.0

func (b *BaseWorkloadBuilder) GetContainers() []corev1.Container

func (*BaseWorkloadBuilder) GetImage added in v0.8.0

func (b *BaseWorkloadBuilder) GetImage() *util.Image

func (*BaseWorkloadBuilder) GetImagePullSecrets added in v0.8.0

func (b *BaseWorkloadBuilder) GetImagePullSecrets() []corev1.LocalObjectReference

func (*BaseWorkloadBuilder) GetImageWithTag added in v0.8.4

func (b *BaseWorkloadBuilder) GetImageWithTag() (string, error)

func (*BaseWorkloadBuilder) GetInitContainer added in v0.12.0

func (b *BaseWorkloadBuilder) GetInitContainer(name string) *corev1.Container

func (*BaseWorkloadBuilder) GetInitContainers added in v0.8.0

func (b *BaseWorkloadBuilder) GetInitContainers() []corev1.Container

func (*BaseWorkloadBuilder) GetPodTemplate added in v0.12.0

func (b *BaseWorkloadBuilder) GetPodTemplate() (*corev1.PodTemplateSpec, error)

GetPodTemplate returns the pod template for the workload with overrides applied. All the overrides are applied to the pod template.

func (*BaseWorkloadBuilder) GetResources added in v0.8.0

func (*BaseWorkloadBuilder) GetSecurityContext added in v0.8.0

func (b *BaseWorkloadBuilder) GetSecurityContext() *corev1.PodSecurityContext

func (*BaseWorkloadBuilder) GetTerminationGracePeriod added in v0.8.0

func (b *BaseWorkloadBuilder) GetTerminationGracePeriod() (*time.Duration, error)

func (*BaseWorkloadBuilder) GetTerminationGracePeriodSeconds added in v0.8.0

func (b *BaseWorkloadBuilder) GetTerminationGracePeriodSeconds() (*int64, error)

func (*BaseWorkloadBuilder) GetVolumes added in v0.8.0

func (b *BaseWorkloadBuilder) GetVolumes() []corev1.Volume

func (*BaseWorkloadBuilder) OverrideContainer added in v0.12.0

func (b *BaseWorkloadBuilder) OverrideContainer()

func (*BaseWorkloadBuilder) ResetContainers added in v0.8.0

func (b *BaseWorkloadBuilder) ResetContainers(containers []corev1.Container)

func (*BaseWorkloadBuilder) ResetInitContainers added in v0.8.0

func (b *BaseWorkloadBuilder) ResetInitContainers(containers []corev1.Container)

func (*BaseWorkloadBuilder) ResetVolumes added in v0.8.0

func (b *BaseWorkloadBuilder) ResetVolumes(volumes []corev1.Volume)

func (*BaseWorkloadBuilder) SetAffinity added in v0.8.4

func (b *BaseWorkloadBuilder) SetAffinity(affinity *corev1.Affinity)

func (*BaseWorkloadBuilder) SetImage added in v0.8.0

func (b *BaseWorkloadBuilder) SetImage(image *util.Image)

func (*BaseWorkloadBuilder) SetResources added in v0.8.0

func (b *BaseWorkloadBuilder) SetResources(resources *commonsv1alpha1.ResourcesSpec)

func (*BaseWorkloadBuilder) SetSecurityContext added in v0.8.0

func (b *BaseWorkloadBuilder) SetSecurityContext(user int64, group int64, nonRoot bool)

type BaseWorkloadReplicasBuilder added in v0.8.0

type BaseWorkloadReplicasBuilder struct {
	BaseWorkloadBuilder
	// contains filtered or unexported fields
}

func NewBaseWorkloadReplicasBuilder added in v0.8.0

func NewBaseWorkloadReplicasBuilder(
	client *client.Client,
	name string,
	replicas *int32,
	image *util.Image,
	overrides *commonsv1alpha1.OverridesSpec,
	roleGroupConfig *commonsv1alpha1.RoleGroupConfigSpec,
	options ...Option,
) *BaseWorkloadReplicasBuilder

func (*BaseWorkloadReplicasBuilder) GetReplicas added in v0.8.0

func (b *BaseWorkloadReplicasBuilder) GetReplicas() *int32

func (*BaseWorkloadReplicasBuilder) SetReplicas added in v0.8.0

func (b *BaseWorkloadReplicasBuilder) SetReplicas(replicas *int32)

type Clienter added in v0.12.0

type Clienter interface {
	GetClient() *client.Client
}

type ClusterRoleBindingBuilder

type ClusterRoleBindingBuilder interface {
	ObjectBuilder
	GetObject() *rbacv1.ClusterRoleBinding
}

type ClusterRoleBuilder

type ClusterRoleBuilder interface {
	ObjectBuilder
	GetObject() *rbacv1.ClusterRole
}

type ConfigBuilder

type ConfigBuilder interface {
	ObjectBuilder
	AddData(data map[string]string) ConfigBuilder
	AddItem(key, value string) ConfigBuilder
	SetData(data map[string]string) ConfigBuilder
	ClearData() ConfigBuilder
	GetData() map[string]string
}

type ConfigMapBuilder

type ConfigMapBuilder struct {
	BaseConfigBuilder
}

func NewConfigMapBuilder

func NewConfigMapBuilder(
	client *client.Client,
	name string,
	options ...Option,
) *ConfigMapBuilder

func (*ConfigMapBuilder) Build

func (*ConfigMapBuilder) GetObject

func (b *ConfigMapBuilder) GetObject() *corev1.ConfigMap

type Container added in v0.8.0

type Container struct {
	Name  string
	Image *util.Image
	// contains filtered or unexported fields
}

func NewContainer added in v0.8.0

func NewContainer(
	name string,
	image *util.Image,
) *Container

NewContainer returns a new Container

func (*Container) AddEnv added in v0.8.0

func (b *Container) AddEnv(key, value string) ContainerBuilder

func (*Container) AddEnvFromConfigMap added in v0.8.0

func (b *Container) AddEnvFromConfigMap(configMapName string) ContainerBuilder

func (*Container) AddEnvFromSecret added in v0.8.0

func (b *Container) AddEnvFromSecret(secretName string) ContainerBuilder

func (*Container) AddEnvSource added in v0.8.0

func (b *Container) AddEnvSource(envs []corev1.EnvFromSource) ContainerBuilder

func (*Container) AddEnvVar added in v0.8.0

func (b *Container) AddEnvVar(env *corev1.EnvVar) ContainerBuilder

func (*Container) AddEnvVars added in v0.8.0

func (b *Container) AddEnvVars(envVars []corev1.EnvVar) ContainerBuilder

func (*Container) AddEnvs added in v0.8.0

func (b *Container) AddEnvs(envs map[string]string) ContainerBuilder

func (*Container) AddPort added in v0.8.0

func (b *Container) AddPort(port corev1.ContainerPort)

func (*Container) AddPorts added in v0.8.0

func (b *Container) AddPorts(ports []corev1.ContainerPort) ContainerBuilder

func (*Container) AddVolumeMount added in v0.8.0

func (b *Container) AddVolumeMount(mount *corev1.VolumeMount) ContainerBuilder

func (*Container) AddVolumeMounts added in v0.8.0

func (b *Container) AddVolumeMounts(mounts []corev1.VolumeMount) ContainerBuilder

func (*Container) AutomaticSetProbe added in v0.8.0

func (b *Container) AutomaticSetProbe()

AutomaticSetProbe sets the liveness, readiness and startup probes policy: - handle policy:

  • if name of ports contains "http", "ui", "metrics" or "health", use httpGet
  • if name of ports contains "master", use tcpSocket
  • todo: add more rules

- startupProbe:

  • failureThreshold: 30
  • initialDelaySeconds: 4
  • periodSeconds: 6
  • successThreshold: 1
  • timeoutSeconds: 3

- livenessProbe:

  • failureThreshold: 3
  • periodSeconds: 10
  • successThreshold: 1
  • timeoutSeconds: 3

- readinessProbe:

  • failureThreshold: 3
  • periodSeconds: 10
  • successThreshold: 1
  • timeoutSeconds: 3

func (*Container) Build added in v0.8.0

func (b *Container) Build() *corev1.Container

func (*Container) GetEnvFrom added in v0.8.0

func (b *Container) GetEnvFrom() []corev1.EnvFromSource

func (*Container) GetEnvVars added in v0.8.0

func (b *Container) GetEnvVars() []corev1.EnvVar

func (*Container) GetPorts added in v0.8.0

func (b *Container) GetPorts() []corev1.ContainerPort

func (*Container) GetVolumeMounts added in v0.8.0

func (b *Container) GetVolumeMounts() []corev1.VolumeMount

func (*Container) OverrideCommand added in v0.8.0

func (b *Container) OverrideCommand(command []string) ContainerBuilder

func (*Container) OverrideEnv added in v0.8.0

func (b *Container) OverrideEnv(envs map[string]string)

func (*Container) ResetEnvFrom added in v0.8.0

func (b *Container) ResetEnvFrom(envs []corev1.EnvFromSource)

func (*Container) ResetEnvVars added in v0.8.0

func (b *Container) ResetEnvVars(envVars []corev1.EnvVar)

func (*Container) ResetPorts added in v0.8.0

func (b *Container) ResetPorts(ports []corev1.ContainerPort)

func (*Container) ResetVolumeMounts added in v0.8.0

func (b *Container) ResetVolumeMounts(mounts []corev1.VolumeMount)

func (*Container) SetArgs added in v0.8.0

func (b *Container) SetArgs(args []string) ContainerBuilder

func (*Container) SetCommand added in v0.8.0

func (b *Container) SetCommand(command []string) ContainerBuilder

func (*Container) SetImagePullPolicy added in v0.8.0

func (b *Container) SetImagePullPolicy(policy corev1.PullPolicy) ContainerBuilder

func (*Container) SetLivenessProbe added in v0.8.0

func (b *Container) SetLivenessProbe(probe *corev1.Probe) ContainerBuilder

func (*Container) SetProbeWithHealth added in v0.8.0

func (b *Container) SetProbeWithHealth()

func (*Container) SetReadinessProbe added in v0.8.0

func (b *Container) SetReadinessProbe(probe *corev1.Probe) ContainerBuilder

func (*Container) SetResources added in v0.8.0

func (b *Container) SetResources(resources *commonsv1alpha1.ResourcesSpec) ContainerBuilder

func (*Container) SetSecurityContext added in v0.8.0

func (b *Container) SetSecurityContext(user int64, group int64, nonRoot bool) ContainerBuilder

func (*Container) SetStartupProbe added in v0.8.0

func (b *Container) SetStartupProbe(probe *corev1.Probe) ContainerBuilder

type ContainerBuilder

type ContainerBuilder interface {
	Build() *corev1.Container

	SetImagePullPolicy(policy corev1.PullPolicy) ContainerBuilder

	AddVolumeMounts(mounts []corev1.VolumeMount) ContainerBuilder
	AddVolumeMount(mount *corev1.VolumeMount) ContainerBuilder

	AddEnvVars(envs []corev1.EnvVar) ContainerBuilder
	AddEnvVar(env *corev1.EnvVar) ContainerBuilder
	AddEnvs(envs map[string]string) ContainerBuilder
	AddEnv(name, value string) ContainerBuilder

	AddEnvSource(envs []corev1.EnvFromSource) ContainerBuilder

	AddEnvFromSecret(secretName string) ContainerBuilder
	AddEnvFromConfigMap(configMapName string) ContainerBuilder

	AddPorts(ports []corev1.ContainerPort) ContainerBuilder

	SetCommand(command []string) ContainerBuilder

	SetArgs(args []string) ContainerBuilder

	OverrideCommand(command []string) ContainerBuilder

	SetResources(resources *commonsv1alpha1.ResourcesSpec) ContainerBuilder

	SetLivenessProbe(probe *corev1.Probe) ContainerBuilder
	SetReadinessProbe(probe *corev1.Probe) ContainerBuilder
	SetStartupProbe(probe *corev1.Probe) ContainerBuilder

	SetSecurityContext(user int64, group int64, nonRoot bool) ContainerBuilder
}

ContainerBuilder is an interface for building a container implementation with build pattern

func NewContainerBuilder added in v0.8.0

func NewContainerBuilder(
	name string,
	image *util.Image,
) ContainerBuilder

NewContainerBuilder returns a new ContainerBuilder This method return a ContainerBuilder interface Example:

image := util.Image{Custom: "nginx"}
fooContainer := builder.NewContainerBuilder("foo", "nginx").
	SetImagePullPolicy(corev1.PullAlways).
	Build()

type DefaultPDBBuilder added in v0.11.0

type DefaultPDBBuilder struct {
	ObjectMeta
	// contains filtered or unexported fields
}

func NewDefaultPDBBuilder added in v0.11.0

func NewDefaultPDBBuilder(
	client *client.Client,
	name string,
	options ...PDBBuilderOption,
) (*DefaultPDBBuilder, error)

func (*DefaultPDBBuilder) Build added in v0.11.0

Build implements PodDisruptionBudgetBuilder. Subtle: this method shadows the method (BaseObjectBuilder).Build of DefaultPodDisruptionBudgetBuilder.BaseObjectBuilder.

func (*DefaultPDBBuilder) GetObject added in v0.11.0

You can specify only one of maxUnavailable and minAvailable in a single PodDisruptionBudget. maxUnavailable can only be used to control the eviction of pods that have an associated controller managing them.

func (*DefaultPDBBuilder) SetMaxUnavailable added in v0.11.0

func (d *DefaultPDBBuilder) SetMaxUnavailable(value *int32)

SetMaxUnavailable implements PodDisruptionBudgetBuilder.

func (*DefaultPDBBuilder) SetMinAvailable added in v0.11.0

func (d *DefaultPDBBuilder) SetMinAvailable(value *int32)

SetMinAvailable implements PodDisruptionBudgetBuilder.

type Deployment added in v0.8.0

type Deployment struct {
	BaseWorkloadReplicasBuilder
}

func NewDeployment added in v0.8.0

func NewDeployment(
	client *client.Client,
	name string,
	replicas *int32,
	image *util.Image,
	overrides *commonsv1alpha1.OverridesSpec,
	roleGroupConfig *commonsv1alpha1.RoleGroupConfigSpec,
	options ...Option,
) *Deployment

func (*Deployment) Build added in v0.8.0

func (*Deployment) GetObject added in v0.8.0

func (b *Deployment) GetObject() (*appv1.Deployment, error)

type DeploymentBuilder

type DeploymentBuilder interface {
	WorkloadBuilder
	WorkloadReplicas

	GetObject() (*appv1.Deployment, error)
}

type GenericClusterRoleBindingBuilder

type GenericClusterRoleBindingBuilder struct {
	ObjectMeta
	// contains filtered or unexported fields
}

func NewGenericClusterRoleBindingBuilder

func NewGenericClusterRoleBindingBuilder(
	client *resourceClient.Client,
	name string,
	options ...Option,
) *GenericClusterRoleBindingBuilder

func (*GenericClusterRoleBindingBuilder) AddSubject added in v0.9.1

add subect

func (*GenericClusterRoleBindingBuilder) Build

func (*GenericClusterRoleBindingBuilder) GetObject

func (*GenericClusterRoleBindingBuilder) SetClusterRoleBinding added in v0.9.1

set clusterRoleBinding

func (*GenericClusterRoleBindingBuilder) SetRoleRef added in v0.9.1

set roleref when obj not provided, need to set it, after the resource is applied, the roleRef is Immutable

func (*GenericClusterRoleBindingBuilder) SetSubjects added in v0.9.1

set subjects after the resource is applied, the subjects can be set continuously

type GenericClusterRoleBuilder

type GenericClusterRoleBuilder struct {
	ObjectMeta
	// contains filtered or unexported fields
}

func NewGenericClusterRoleBuilder

func NewGenericClusterRoleBuilder(
	client *resourceClient.Client,
	name string,
	options ...Option,
) *GenericClusterRoleBuilder

func (*GenericClusterRoleBuilder) Build

func (*GenericClusterRoleBuilder) GetObject

type GenericRoleBindingBuilder

type GenericRoleBindingBuilder struct {
	ObjectMeta
	// contains filtered or unexported fields
}

func NewGenericRoleBindingBuilder

func NewGenericRoleBindingBuilder(
	client *resourceClient.Client,
	name string,
	options ...Option,
) *GenericRoleBindingBuilder

func (*GenericRoleBindingBuilder) AddSubject added in v0.9.1

func (b *GenericRoleBindingBuilder) AddSubject(saName string) RoleBindingBuilder

add subect

func (*GenericRoleBindingBuilder) Build

func (*GenericRoleBindingBuilder) GetObject

func (*GenericRoleBindingBuilder) SetRoleRef added in v0.9.1

func (b *GenericRoleBindingBuilder) SetRoleRef(roleRefName string, isCluster bool) RoleBindingBuilder

set roleref when obj not provided, need to set it, after the resource is applied, the roleRef is Immutable

func (*GenericRoleBindingBuilder) SetSubjects added in v0.9.1

func (b *GenericRoleBindingBuilder) SetSubjects(saNames []string) RoleBindingBuilder

set subjects after the resource is applied, the subjects can be set continuously

type GenericRoleBuilder

type GenericRoleBuilder struct {
	ObjectMeta
	// contains filtered or unexported fields
}

func NewGenericRoleBuilder

func NewGenericRoleBuilder(
	client *resourceClient.Client,
	name string,
	options ...Option,
) *GenericRoleBuilder

func (*GenericRoleBuilder) AddPolicyRule added in v0.11.0

func (b *GenericRoleBuilder) AddPolicyRule(rule rbacv1.PolicyRule)

func (*GenericRoleBuilder) AddPolicyRules added in v0.11.0

func (b *GenericRoleBuilder) AddPolicyRules(rules []rbacv1.PolicyRule)

func (*GenericRoleBuilder) Build

func (*GenericRoleBuilder) GetObject

func (b *GenericRoleBuilder) GetObject() *rbacv1.Role

func (*GenericRoleBuilder) ResetPolicyRules added in v0.11.0

func (b *GenericRoleBuilder) ResetPolicyRules(rules []rbacv1.PolicyRule)

func (*GenericRoleBuilder) SetObject added in v0.11.0

func (b *GenericRoleBuilder) SetObject(obj *rbacv1.Role)

set obj

type GenericServiceAccountBuilder

type GenericServiceAccountBuilder struct {
	ObjectMeta
	// contains filtered or unexported fields
}

func NewGenericServiceAccountBuilder

func NewGenericServiceAccountBuilder(
	client *resourceClient.Client,
	name string,
	options ...Option,
) *GenericServiceAccountBuilder

func (*GenericServiceAccountBuilder) Build

func (*GenericServiceAccountBuilder) GetObject

type Job added in v0.8.4

type Job struct {
	BaseWorkloadBuilder
	// contains filtered or unexported fields
}

func (*Job) Build added in v0.8.4

func (b *Job) Build(_ context.Context) (ctrlclient.Object, error)

func (*Job) GetObject added in v0.8.4

func (b *Job) GetObject() (*batchv1.Job, error)

func (*Job) SetRestPolicy added in v0.8.4

func (b *Job) SetRestPolicy(policy *corev1.RestartPolicy)

type JobBuilder

type JobBuilder interface {
	WorkloadBuilder

	GetObject() (*batchv1.Job, error)

	SetRestPolicy(policy *corev1.RestartPolicy)
}

func NewGenericJobBuilder

func NewGenericJobBuilder(
	client *resourceClient.Client,
	name string,
	image *util.Image,
	overrides *commonsv1alpha1.OverridesSpec,
	roleGroupConfig *commonsv1alpha1.RoleGroupConfigSpec,
	options ...Option,
) JobBuilder

type ListenerOperatorVolume added in v0.8.6

type ListenerOperatorVolume struct {
	Name          string
	ListenerClass string
	// contains filtered or unexported fields
}

func NewListenerOperatorVolume added in v0.8.6

func NewListenerOperatorVolume(name, listenerClass string) *ListenerOperatorVolume

func (*ListenerOperatorVolume) Builde added in v0.8.6

func (l *ListenerOperatorVolume) Builde() *corev1.Volume

func (*ListenerOperatorVolume) SetListenerName added in v0.8.6

func (l *ListenerOperatorVolume) SetListenerName(name string)

type ObjectBuilder added in v0.12.0

type ObjectBuilder interface {
	ObjectMetaBuilder
	Build(ctx context.Context) (ctrlclient.Object, error)
}

type ObjectMeta added in v0.12.0

type ObjectMeta struct {
	Client *client.Client

	Name string // this is resource name when creating

	ClusterName   string
	RoleName      string
	RoleGroupName string
	// contains filtered or unexported fields
}

func NewObjectMeta added in v0.12.0

func NewObjectMeta(
	client *client.Client,
	name string,
	options ...Option,
) *ObjectMeta

func (*ObjectMeta) AddAnnotations added in v0.12.0

func (b *ObjectMeta) AddAnnotations(annotations map[string]string)

func (*ObjectMeta) AddLabels added in v0.12.0

func (b *ObjectMeta) AddLabels(labels map[string]string)

func (*ObjectMeta) GetAnnotations added in v0.12.0

func (b *ObjectMeta) GetAnnotations() map[string]string

func (*ObjectMeta) GetClient added in v0.12.0

func (b *ObjectMeta) GetClient() *client.Client

func (*ObjectMeta) GetLabelSelector added in v0.12.0

func (b *ObjectMeta) GetLabelSelector() *metav1.LabelSelector

func (*ObjectMeta) GetLabels added in v0.12.0

func (b *ObjectMeta) GetLabels() map[string]string

func (*ObjectMeta) GetMatchingLabels added in v0.12.0

func (b *ObjectMeta) GetMatchingLabels() map[string]string

func (*ObjectMeta) GetName added in v0.12.0

func (b *ObjectMeta) GetName() string

func (*ObjectMeta) GetObjectMeta added in v0.12.0

func (b *ObjectMeta) GetObjectMeta() metav1.ObjectMeta

func (*ObjectMeta) GetObjectMetaWithClusterScope added in v0.12.0

func (b *ObjectMeta) GetObjectMetaWithClusterScope() metav1.ObjectMeta

GetObjectMetaWithClusterScope returns the object meta with cluster scope, meaning that the object is not namespaced.

func (*ObjectMeta) SetName added in v0.12.0

func (b *ObjectMeta) SetName(name string)

type ObjectMetaBuilder added in v0.12.0

type ObjectMetaBuilder interface {
	Clienter
	GetObjectMeta() metav1.ObjectMeta
	SetName(name string)
	GetName() string
	AddLabels(labels map[string]string)
	GetLabels() map[string]string
	AddAnnotations(annotations map[string]string)
	GetAnnotations() map[string]string
}

type Option added in v0.10.0

type Option func(*Options)

type Optioner added in v0.12.0

type Optioner interface {
	Apply(opts *Options)
}

type Options

type Options struct {
	ClusterName   string
	RoleName      string
	RoleGroupName string
	Labels        map[string]string
	Annotations   map[string]string
}

func (*Options) Apply added in v0.12.0

func (o *Options) Apply(opts *Options)

type PDBBuilderOption added in v0.11.0

type PDBBuilderOption func(*PDBBuilderOptions)

type PDBBuilderOptions added in v0.11.0

type PDBBuilderOptions struct {
	Options
	MaxUnavailableAmount *int32
	MinAvailableAmount   *int32
}

type PodDisruptionBudgetBuilder added in v0.11.0

type PodDisruptionBudgetBuilder interface {
	ObjectBuilder
	GetObject() (*policyv1.PodDisruptionBudget, error)
	SetMaxUnavailable(max *int32)
	SetMinAvailable(min *int32)
}

type RoleBindingBuilder

type RoleBindingBuilder interface {
	ObjectBuilder
	GetObject() *rbacv1.RoleBinding
}

type RoleBuilder

type RoleBuilder interface {
	ObjectBuilder
	GetObject() *rbacv1.Role
}

type SecretBuilder

type SecretBuilder struct {
	BaseConfigBuilder
}

func NewSecretBuilder

func NewSecretBuilder(
	client *client.Client,
	name string,
	options ...Option,
) *SecretBuilder

func (*SecretBuilder) Build

func (*SecretBuilder) GetObject

func (b *SecretBuilder) GetObject() *corev1.Secret

type SecretOperatorVolume added in v0.8.6

type SecretOperatorVolume struct {
	Name        string
	SecretClass string
	// contains filtered or unexported fields
}

func NewSecretOperatorVolume added in v0.8.6

func NewSecretOperatorVolume(name, secretClass string) *SecretOperatorVolume

func (*SecretOperatorVolume) Builde added in v0.8.6

func (s *SecretOperatorVolume) Builde() *corev1.Volume

func (*SecretOperatorVolume) SetCertJitterFactor added in v0.8.6

func (s *SecretOperatorVolume) SetCertJitterFactor(factor string)

func (*SecretOperatorVolume) SetCertLifeTime added in v0.8.6

func (s *SecretOperatorVolume) SetCertLifeTime(lifetime string)

func (*SecretOperatorVolume) SetFormatName added in v0.8.6

func (s *SecretOperatorVolume) SetFormatName(format constants.SecretFormat)

func (*SecretOperatorVolume) SetKerberosServiceNames added in v0.8.6

func (s *SecretOperatorVolume) SetKerberosServiceNames(service string, services ...string)

func (*SecretOperatorVolume) SetPKCS12Password added in v0.8.6

func (s *SecretOperatorVolume) SetPKCS12Password(password string)

func (*SecretOperatorVolume) SetScope added in v0.8.6

func (s *SecretOperatorVolume) SetScope(scope *SecretVolumeScope)

type SecretVolumeScope added in v0.12.1

type SecretVolumeScope struct {
	Pod            bool
	Node           bool
	Service        []string
	ListenerVolume []string
}

type ServiceAccountBuilder

type ServiceAccountBuilder interface {
	ObjectBuilder
	GetObject() *corev1.ServiceAccount
}

type ServiceBuilder

type ServiceBuilder interface {
	ObjectBuilder
	GetObject() *corev1.Service
	AddPort(port *corev1.ServicePort)
	GetPorts() []corev1.ServicePort
}

type ServiceBuilderOption added in v0.10.0

type ServiceBuilderOption func(*ServiceBuilderOptions)

type ServiceBuilderOptions added in v0.10.0

type ServiceBuilderOptions struct {
	Options

	// If not set, ClusterIP will be used
	ListenerClass  constants.ListenerClass
	Headless       bool
	MatchingLabels map[string]string
}

type StatefulSet added in v0.8.0

type StatefulSet struct {
	BaseWorkloadReplicasBuilder
	// contains filtered or unexported fields
}

func NewStatefulSetBuilder added in v0.8.0

func NewStatefulSetBuilder(
	client *client.Client,
	name string,
	replicas *int32,
	image *util.Image,
	overrides *commonsv1alpha1.OverridesSpec,
	roleGroupConfig *commonsv1alpha1.RoleGroupConfigSpec,
	options ...Option,
) *StatefulSet

func (*StatefulSet) AddVolumeClaimTemplate added in v0.8.0

func (b *StatefulSet) AddVolumeClaimTemplate(pvc *corev1.PersistentVolumeClaim)

func (*StatefulSet) AddVolumeClaimTemplates added in v0.8.0

func (b *StatefulSet) AddVolumeClaimTemplates(claims []corev1.PersistentVolumeClaim)

func (*StatefulSet) Build added in v0.8.0

func (b *StatefulSet) Build(ctx context.Context) (ctrlclient.Object, error)

func (*StatefulSet) GetObject added in v0.8.0

func (b *StatefulSet) GetObject() (*appv1.StatefulSet, error)

func (*StatefulSet) GetVolumeClaimTemplates added in v0.8.0

func (b *StatefulSet) GetVolumeClaimTemplates() []corev1.PersistentVolumeClaim

func (*StatefulSet) ResetVolumeClaimTemplates added in v0.8.0

func (b *StatefulSet) ResetVolumeClaimTemplates(claims []corev1.PersistentVolumeClaim)

type StatefulSetBuilder

type StatefulSetBuilder interface {
	WorkloadBuilder
	WorkloadReplicas

	GetObject() (*appv1.StatefulSet, error)

	AddVolumeClaimTemplates(claims []corev1.PersistentVolumeClaim)
	AddVolumeClaimTemplate(claim *corev1.PersistentVolumeClaim)
	ResetVolumeClaimTemplates(claims []corev1.PersistentVolumeClaim)
	GetVolumeClaimTemplates() []corev1.PersistentVolumeClaim
}

type Vector added in v0.12.1

type Vector struct {
	VectorConfigVolumeName string
	LogDataVolumeName      string

	Image *util.Image

	Port int32
	// contains filtered or unexported fields
}

func NewVector added in v0.12.1

func NewVector(
	configVolumeName string,
	logVolumeName string,
	image *util.Image,
	options ...VectorOption,
) *Vector

NewVector creates a new Vector instance. When use vector, a log volume is required to store the log data. To mount the log data to vector container, and vector agent will collect the log data. The config volume should container vector configuration file named "vector.yaml".

func (*Vector) GetContainer added in v0.12.1

func (v *Vector) GetContainer() *corev1.Container

func (*Vector) GetVolumes added in v0.12.1

func (v *Vector) GetVolumes() []corev1.Volume

type VectorOption added in v0.12.1

type VectorOption func(*VectorOptions)

type VectorOptions added in v0.12.1

type VectorOptions struct {
	Port           int32
	VectorDataSize *resource.Quantity
}

type VolumeBuilder added in v0.8.6

type VolumeBuilder interface {
	Builde() *corev1.Volume
}

type WorkloadBuilder added in v0.12.0

type WorkloadBuilder interface {
	ObjectBuilder
	WorkloadContainers
	WorkloadVolumes

	SetImage(image *util.Image)
	GetImage() *util.Image
	GetImageWithTag() (string, error)

	SetSecurityContext(user int64, group int64, nonRoot bool)
	GetSecurityContext() *corev1.PodSecurityContext

	SetAffinity(affinity *corev1.Affinity)
	GetAffinity() (*corev1.Affinity, error)

	SetResources(resources *commonsv1alpha1.ResourcesSpec)
	GetResources() *commonsv1alpha1.ResourcesSpec

	GetTerminationGracePeriod() (*time.Duration, error)
	GetTerminationGracePeriodSeconds() (*int64, error)
}

type WorkloadContainers added in v0.8.0

type WorkloadContainers interface {
	AddContainers(containers []corev1.Container)
	AddContainer(container *corev1.Container)
	ResetContainers(containers []corev1.Container)
	GetContainers() []corev1.Container

	AddInitContainers(containers []corev1.Container)
	AddInitContainer(container *corev1.Container)
	ResetInitContainers(containers []corev1.Container)
	GetInitContainers() []corev1.Container
}

type WorkloadReplicas added in v0.8.0

type WorkloadReplicas interface {
	SetReplicas(replicas *int32)
	GetReplicas() *int32
}

type WorkloadVolumes added in v0.8.0

type WorkloadVolumes interface {
	AddVolumes(volumes []corev1.Volume)
	AddVolume(volume *corev1.Volume)
	ResetVolumes(volumes []corev1.Volume)
	GetVolumes() []corev1.Volume
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL
JackTT - Gopher 🇻🇳