common

package
v0.0.0-...-d57a396 Latest Latest
Warning

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

Go to latest
Published: Apr 21, 2024 License: Apache-2.0 Imports: 18 Imported by: 0

Documentation

Index

Constants

View Source
const DefaultLog4jProperties = `` /* 10744-byte string literal not displayed */
View Source
const Log4jCfgName = "log4j.properties"

Variables

View Source
var MergedCache = NewMapCache()

Functions

func ConvertToResourceRequirements

func ConvertToResourceRequirements(resources *alluxiov1alpha1.ResourcesSpec) *corev1.ResourceRequirements

func CreateAlluxioLoggerVolumeMounts

func CreateAlluxioLoggerVolumeMounts() corev1.VolumeMount

func CreateLoggerConfigMapKey

func CreateLoggerConfigMapKey(logger Logger) string

func CreateMasterConfigMapName

func CreateMasterConfigMapName(instanceName string, groupName string) string

CreateMasterConfigMapName create configMap Name

func CreateRoleGroupLoggingConfigMapName

func CreateRoleGroupLoggingConfigMapName(instanceName string, role string, groupName string) string

CreateRoleGroupLoggingConfigMapName create role group logging config-map name

func GetJobWorkerPorts

GetJobWorkerPorts get job worker ports

func GetStorageClass

func GetStorageClass(origin string) *string

func GetWorkerPorts

GetWorkerPorts get worker ports

func Log4jVolumeName

func Log4jVolumeName() string

func MergeObjects

func MergeObjects(left interface{}, right interface{}, exclude []string)

MergeObjects merge right to left, if field not in left, it will be added from right, else skip. Node: If variable is a pointer, it will be modified directly.

func OverrideEnvVars

func OverrideEnvVars(origin *[]corev1.EnvVar, override map[string]string)

func PropertiesValue

func PropertiesValue(logger Logger, loggingConfig *alluxiov1alpha1.LoggingConfigSpec) string

func ReleaseCache

func ReleaseCache()

Types

type BaseResourceReconciler

type BaseResourceReconciler[T client.Object, G any] struct {
	Instance  T
	Scheme    *runtime.Scheme
	Client    client.Client
	GroupName string

	MergedLabels map[string]string
	MergedCfg    G
}

func NewBaseResourceReconciler

func NewBaseResourceReconciler[T client.Object, G any](
	scheme *runtime.Scheme,
	instance T,
	client client.Client,
	groupName string,
	mergedLabels map[string]string,
	mergedCfg G) *BaseResourceReconciler[T, G]

NewBaseResourceReconciler new a BaseResourceReconciler

func (*BaseResourceReconciler[T, G]) Apply

func (b *BaseResourceReconciler[T, G]) Apply(ctx context.Context, dep client.Object) (ctrl.Result, error)

func (*BaseResourceReconciler[T, G]) ReconcileResource

func (b *BaseResourceReconciler[T, G]) ReconcileResource(
	ctx context.Context,
	groupName string,
	resInstance ResourceBuilder) (ctrl.Result, error)

type BaseRoleReconciler

type BaseRoleReconciler[R any] struct {
	Scheme   *runtime.Scheme
	Instance *alluxiov1alpha1.AlluxioCluster
	Client   client.Client
	Log      logr.Logger
	Labels   map[string]string
	Role     R
}

func (*BaseRoleReconciler[R]) EnabledClusterConfig

func (r *BaseRoleReconciler[R]) EnabledClusterConfig() bool

func (*BaseRoleReconciler[R]) GetLabels

func (r *BaseRoleReconciler[R]) GetLabels(role Role) map[string]string

type ConditionsGetter

type ConditionsGetter interface {
	GetConditions() *[]metav1.Condition
}

type ConfigurationOverride

type ConfigurationOverride interface {
	ConfigurationOverride(resource client.Object)
}

type ConfigurationStyleReconciler

type ConfigurationStyleReconciler[T client.Object, G any] struct {
	GeneralResourceStyleReconciler[T, G]
}

ConfigurationStyleReconciler configuration style reconciler this reconciler is used to reconcile the configuration style resources such as configMap, secret, etc. it will do the following things: 1. apply the resource Additional: 1. configuration override support

func NewConfigurationStyleReconciler

func NewConfigurationStyleReconciler[T client.Object, G any](
	scheme *runtime.Scheme,
	instance T,
	client client.Client,
	groupName string,
	mergedLabels map[string]string,
	mergedCfg G,
) *ConfigurationStyleReconciler[T, G]

func (*ConfigurationStyleReconciler[T, G]) DoReconcile

func (s *ConfigurationStyleReconciler[T, G]) DoReconcile(
	ctx context.Context,
	resource client.Object,
	instance ResourceHandler,
) (ctrl.Result, error)

type DeploymentStyleReconciler

type DeploymentStyleReconciler[T client.Object, G any] struct {
	BaseResourceReconciler[T, G]
	// contains filtered or unexported fields
}

DeploymentStyleReconciler deployment style reconciler this reconciler is used to reconcile the deployment style resources such as deployment, statefulSet, etc. it will do the following things: 1. apply the resource 2. check if the resource is satisfied 3. if not, return requeue 4. if satisfied, return nil Additional:

command and env override can support

func NewDeploymentStyleReconciler

func NewDeploymentStyleReconciler[T client.Object, G any](
	scheme *runtime.Scheme,
	instance T,
	client client.Client,
	groupName string,
	mergedLabels map[string]string,
	mergedCfg G,
	replicas int32,
) *DeploymentStyleReconciler[T, G]

func (*DeploymentStyleReconciler[T, G]) CheckPodsSatisfied

func (s *DeploymentStyleReconciler[T, G]) CheckPodsSatisfied(ctx context.Context) (bool, error)

func (*DeploymentStyleReconciler[T, G]) DoReconcile

func (s *DeploymentStyleReconciler[T, G]) DoReconcile(
	ctx context.Context,
	resource client.Object,
	instance ResourceHandler,
) (ctrl.Result, error)

type GeneralResourceStyleReconciler

type GeneralResourceStyleReconciler[T client.Object, G any] struct {
	BaseResourceReconciler[T, G]
}

GeneralResourceStyleReconciler general style resource reconcile this reconciler is used to reconcile the general style resources such as configMap, secret, svc, etc.

func NewGeneraResourceStyleReconciler

func NewGeneraResourceStyleReconciler[T client.Object, G any](
	scheme *runtime.Scheme,
	instance T,
	client client.Client,
	groupName string,
	mergedLabels map[string]string,
	mergedCfg G,
) *GeneralResourceStyleReconciler[T, G]

func (*GeneralResourceStyleReconciler[T, G]) DoReconcile

func (s *GeneralResourceStyleReconciler[T, G]) DoReconcile(
	ctx context.Context,
	resource client.Object,
	_ ResourceHandler,
) (ctrl.Result, error)

type IReconciler

type IReconciler interface {
	ReconcileResource(ctx context.Context, groupName string, do ResourceHandler) (ctrl.Result, error)
}

type Logger

type Logger string
const (
	JobMasterLogger Logger = "JOB_MASTER_LOGGER"
	JobWorkerLogger Logger = "JOB_WORKER_LOGGER"
	MasterLogger    Logger = "MASTER_LOGGER"
	WorkerLogger    Logger = "WORKER_LOGGER"
)

type LoggingRecociler

type LoggingRecociler struct {
	GeneralResourceStyleReconciler[*alluxiov1alpha1.AlluxioCluster, any]
	RoleLoggingDataBuilder RoleLoggingDataBuilder
	// contains filtered or unexported fields
}

func NewLoggingReconciler

func NewLoggingReconciler(
	scheme *runtime.Scheme,
	instance *alluxiov1alpha1.AlluxioCluster,
	client client.Client,
	groupName string,
	mergedLabels map[string]string,
	mergedCfg any,
	logDataBuilder RoleLoggingDataBuilder,
	role Role,
) *LoggingRecociler

NewLoggingReconciler new logging reconcile

func (*LoggingRecociler) Build

func (l *LoggingRecociler) Build() (client.Object, error)

Build log4j config map

type MapCache

type MapCache struct {
	// contains filtered or unexported fields
}

func NewMapCache

func NewMapCache() *MapCache

func (*MapCache) Del

func (c *MapCache) Del(key string)

func (*MapCache) Get

func (c *MapCache) Get(key string) (interface{}, bool)

func (*MapCache) Set

func (c *MapCache) Set(key string, value interface{})

type PDBReconciler

type PDBReconciler struct {
	BaseResourceReconciler[*alluxiov1alpha1.AlluxioCluster, any]
	// contains filtered or unexported fields
}

func (*PDBReconciler) Build

func (r *PDBReconciler) Build() (client.Object, error)

type ResourceBuilder

type ResourceBuilder interface {
	Build() (client.Object, error)
}

type ResourceHandler

type ResourceHandler interface {
	DoReconcile(ctx context.Context, resource client.Object, instance ResourceHandler) (ctrl.Result, error)
}

type ResourceNameGenerator

type ResourceNameGenerator struct {
	InstanceName string
	RoleName     string
	GroupName    string
}

func NewResourceNameGenerator

func NewResourceNameGenerator(instanceName, roleName, groupName string) *ResourceNameGenerator

NewResourceNameGenerator new a ResourceNameGenerator

func (*ResourceNameGenerator) GenerateResourceName

func (r *ResourceNameGenerator) GenerateResourceName(extraSuffix string) string

GenerateResourceName generate resource Name

type Role

type Role string
const (
	Master Role = "master"
	Worker Role = "worker"
)

type RoleGroupRecociler

type RoleGroupRecociler interface {
	ReconcileGroup(ctx context.Context) (ctrl.Result, error)
	MergeLabels(mergedGroupCfg any) map[string]string
	MergeGroupConfigSpec() any
}

RoleGroupRecociler RoleReconcile role reconciler interface all role reconciler should implement this interface

type RoleLabels

type RoleLabels struct {
	Cr   *alluxiov1alpha1.AlluxioCluster
	Name string
}

func (*RoleLabels) GetLabels

func (r *RoleLabels) GetLabels() map[string]string

type RoleLoggingDataBuilder

type RoleLoggingDataBuilder interface {
	MakeContainerLog4jData() map[string]string
}

type RoleReconciler

type RoleReconciler interface {
	RoleName() Role
	MergeLabels() map[string]string
	ReconcileRole(ctx context.Context) (ctrl.Result, error)
}

type WorkloadOverride

type WorkloadOverride interface {
	CommandOverride(resource client.Object)
	EnvOverride(resource client.Object)
	LogOverride(resource client.Object)
}

Jump to

Keyboard shortcuts

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