common

package
v0.0.0-...-23ae2b2 Latest Latest
Warning

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

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

Documentation

Index

Constants

View Source
const (
	LabelCrName    = "app.kubernetes.io/Name"
	LabelComponent = "app.kubernetes.io/component"
	LabelManagedBy = "app.kubernetes.io/managed-by"
)
View Source
const (
	HdfsConsoleLogAppender = "CONSOLE"
	HdfsFileLogAppender    = "FILE"
)
View Source
const ListenerAnnotationKey = ListenerStorageClass + "/listener-class"
View Source
const ListenerStorageClass = "listeners.zncdata.dev"
View Source
const ZookeeperHdfsDiscoveryKey = "ZOOKEEPER"

Variables

View Source
var MergedCache = NewMapCache()

Functions

func AffinityDefault

func AffinityDefault(role Role, crName string) *corev1.Affinity

func ConvertToResourceRequirements

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

func CreateClusterServiceName

func CreateClusterServiceName(instanceName string) string

func CreateComponentLog4jPropertiesName

func CreateComponentLog4jPropertiesName(component ContainerComponent) string

func CreateDataNodeServiceName

func CreateDataNodeServiceName(instanceName string, groupName string) string

func CreateDataNodeStatefulSetName

func CreateDataNodeStatefulSetName(instanceName string, groupName string) string

func CreateDnsDomain

func CreateDnsDomain(svcName, namespace, clusterDomain string, port int32) string

func CreateJournalNodeServiceName

func CreateJournalNodeServiceName(instanceName string, groupName string) string

func CreateJournalNodeStatefulSetName

func CreateJournalNodeStatefulSetName(instanceName string, groupName string) string

func CreateJournalUrl

func CreateJournalUrl(jnSvcs []string, instanceName string) string

CreateJournalUrl create Journal Url

func CreateKvContentByReplicas

func CreateKvContentByReplicas(replicas int32, keyTemplate string, valueTemplate string) [][2]string

func CreateNameNodeServiceName

func CreateNameNodeServiceName(instanceName string, groupName string) string

func CreateNameNodeStatefulSetName

func CreateNameNodeStatefulSetName(instanceName string, groupName string) string

func CreateNetworkUrl

func CreateNetworkUrl(podName string, svcName, namespace, clusterDomain string, port int32) string

func CreateNetworksByReplicates

func CreateNetworksByReplicates(replicates int32, statefulResourceName, svcName, namespace,
	clusterDomain string, port int32) []string

func CreatePodNamesByReplicas

func CreatePodNamesByReplicas(replicas int32, statefulResourceName string) []string

CreatePodNamesByReplicas create pod names by replicas

func CreateRoleCfgCacheKey

func CreateRoleCfgCacheKey(instanceName string, role Role, groupName string) string

func CreateRoleGroupLoggingConfigMapName

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

CreateRoleGroupLoggingConfigMapName create role group logging config-map name

func CreateRoleServiceName

func CreateRoleServiceName(instanceName string, role Role, groupName string) string

func CreateRoleStatefulSetName

func CreateRoleStatefulSetName(instanceName string, role Role, groupName string) string

func CreateServiceAccountName

func CreateServiceAccountName(instanceName string) string

func CreateXmlContentByReplicas

func CreateXmlContentByReplicas(replicas int32, keyTemplate string, valueTemplate string) []util.XmlNameValuePair

func GetCommonCommand

func GetCommonCommand() []string

func GetCommonContainerEnv

func GetCommonContainerEnv(zkDiscoveryZNode string, container ContainerComponent) []corev1.EnvVar

func GetListenerLabels

func GetListenerLabels(listenerClass ListenerClass) map[string]string

func GetMergedRoleGroupCfg

func GetMergedRoleGroupCfg(role Role, instanceName string, groupName string) any

func MakeHadoopPolicyData

func MakeHadoopPolicyData() string

MakeHadoopPolicyData make hadoop-policy.xml data

func MakeLog4jPropertiesData

func MakeLog4jPropertiesData(containerComponent ContainerComponent) string

func MakeSecurityPropertiesData

func MakeSecurityPropertiesData() string

MakeSecurityPropertiesData make security.properties data

func MakeSslClientData

func MakeSslClientData() string

MakeSslClientData make ssl-client.xml data

func MakeSslServerData

func MakeSslServerData() string

MakeSslServerData make ssl-server.xml data

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 NameNodePodNames

func NameNodePodNames(instanceName string, groupName string) []string

func OverrideConfigurations

func OverrideConfigurations(cm *corev1.ConfigMap, overrides *hdfsv1alpha1.ConfigOverridesSpec)

OverrideConfigurations override configurations override the content of the configMap

func OverrideEnvVars

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

func ReconcilerDoHandler

func ReconcilerDoHandler(ctx context.Context, reconcilers []ResourceReconciler) (ctrl.Result, error)

func ReleaseCache

func ReleaseCache()

Types

type AffinitySetter

type AffinitySetter interface {
	SetAffinity(resource client.Object)
}

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,
	timeAfter time.Duration) (ctrl.Result, error)

func (*BaseResourceReconciler[T, G]) ReconcileResource

func (b *BaseResourceReconciler[T, G]) ReconcileResource(
	ctx context.Context,
	builder ResourceBuilderType) (ctrl.Result, error)

type BaseRoleGroupReconciler

type BaseRoleGroupReconciler[T client.Object] struct {
	Scheme     *runtime.Scheme
	Instance   T
	Client     client.Client
	GroupName  string
	RoleLabels map[string]string
	Log        logr.Logger

	Reconcilers []ResourceReconciler
}

func (*BaseRoleGroupReconciler[T]) AppendLabels

func (m *BaseRoleGroupReconciler[T]) AppendLabels(additionalLabels map[string]string) map[string]string

AppendLabels merge role labels and additional labels

func (*BaseRoleGroupReconciler[T]) ReconcileGroup

func (m *BaseRoleGroupReconciler[T]) ReconcileGroup(ctx context.Context) (ctrl.Result, error)

ReconcileGroup ReconcileRole implements the Role interface

type BaseRoleLoggingDataBuilder

type BaseRoleLoggingDataBuilder struct {
	Role Role
}

func (*BaseRoleLoggingDataBuilder) MakeContainerLogData

func (b *BaseRoleLoggingDataBuilder) MakeContainerLogData() map[string]string

type BaseRoleReconciler

type BaseRoleReconciler[T client.Object] struct {
	Scheme   *runtime.Scheme
	Instance T
	Client   client.Client
	Log      logr.Logger
	Labels   map[string]string

	Role Role
}

func (*BaseRoleReconciler[T]) GetLabels

func (r *BaseRoleReconciler[T]) GetLabels() map[string]string

type Command

type Command interface {
	Command() []string
}

type CommandArgs

type CommandArgs interface {
	CommandArgs() []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. build resource
  2. 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 ContainerBuilder

type ContainerBuilder struct {
	Image           string
	ImagePullPolicy corev1.PullPolicy
	Resources       corev1.ResourceRequirements
}

ContainerBuilder container builder contains: image, imagePullPolicy, resource, ports should be required optional: name, command, commandArgs, containerEnv, volumeMount, livenessProbe, readinessProbe should be optional, optional fields should be implemented by the struct that embeds ContainerBuilder optional fields name usually should not be set, because container name can generate by deployment, statefulSet, daemonSet..

func NewContainerBuilder

func NewContainerBuilder(
	Image string,
	ImagePullPolicy corev1.PullPolicy,
	Resource corev1.ResourceRequirements,
) *ContainerBuilder

func (*ContainerBuilder) Build

func (b *ContainerBuilder) Build(handler interface{}) corev1.Container

type ContainerComponent

type ContainerComponent string

ContainerComponent use for define container name

type ContainerEnv

type ContainerEnv interface {
	ContainerEnv() []corev1.EnvVar
}

type ContainerName

type ContainerName interface {
	ContainerName() string
}

type ContainerPorts

type ContainerPorts interface {
	ContainerPorts() []corev1.ContainerPort
}

type CoreSiteXmlGenerator

type CoreSiteXmlGenerator struct {
	InstanceName string
}

func (*CoreSiteXmlGenerator) Generate

func (c *CoreSiteXmlGenerator) Generate() string

type DataNodeHdfsSiteXmlGenerator

type DataNodeHdfsSiteXmlGenerator struct {
	NameNodeHdfsSiteXmlGenerator
	DataNodeConfig map[string]string
}

func NewDataNodeHdfsSiteXmlGenerator

func NewDataNodeHdfsSiteXmlGenerator(
	instanceName string,
	groupName string,
	nameNodeReplicas int32,
	nameSpace string,
	clusterDomain string,
	hdfsReplication int32,
	dataNodeConfig map[string]string) *DataNodeHdfsSiteXmlGenerator

NewDataNodeHdfsSiteXmlGenerator new a DataNodeHdfsSiteXmlGenerator

func (*DataNodeHdfsSiteXmlGenerator) Generate

func (c *DataNodeHdfsSiteXmlGenerator) Generate() string

Generate make hdfs-site.xml data

type GeneralConfigMapReconciler

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

GeneralConfigMapReconciler general config map reconciler generator it can be used to generate config map reconciler for simple config map parameters: 1. resourceBuilerFunc: a function to create a new resource

func NewGeneralConfigMap

func NewGeneralConfigMap[T client.Object, G any](
	scheme *runtime.Scheme,
	instance T,
	client client.Client,
	groupName string,
	mergedLabels map[string]string,
	mergedCfg G,
	resourceBuilderFunc func() (client.Object, error),
	configurationOverrideFunc func() error,

) *GeneralConfigMapReconciler[T, G]

NewGeneralConfigMap new a GeneralConfigMapReconciler

func (*GeneralConfigMapReconciler[T, G]) Build

Build implements the ResourceBuilder interface

func (*GeneralConfigMapReconciler[T, G]) ConfigurationOverride

func (c *GeneralConfigMapReconciler[T, G]) ConfigurationOverride(resource client.Object)

ConfigurationOverride implement ConfigurationOverride interface

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 HeadlessServiceType

type HeadlessServiceType string
const (
	Service         HeadlessServiceType = ""
	HeadlessService HeadlessServiceType = "None"
)

type InstanceAttributes

type InstanceAttributes interface {
	RoleConfigSpec
	GetClusterConfig() any

	GetNamespace() string

	GetInstanceName() string
}

type ListenerClass

type ListenerClass string
const (
	// ClusterIp is the default listener class for internal communication
	ClusterIp ListenerClass = "cluster-internal"
	// NodePort is for external communication
	NodePort          ListenerClass = "external-unstable"
	LoadBalancerClass ListenerClass = "external-stable"
)

type LivenessProbe

type LivenessProbe interface {
	LivenessProbe() *corev1.Probe
}

type Log4jLoggingDataBuilder

type Log4jLoggingDataBuilder struct {
	Loggers []LogBuilderLoggers
	Console *LogBuilderAppender
	File    *LogBuilderAppender
}

func CreateLog4jBuilder

func CreateLog4jBuilder(containerLogging *hdfsv1alpha1.LoggingConfigSpec, consoleAppenderName,
	fileAppenderName string) *Log4jLoggingDataBuilder

func (*Log4jLoggingDataBuilder) MakeContainerLogProperties

func (l *Log4jLoggingDataBuilder) MakeContainerLogProperties(origin string) string

MakeContainerLogProperties make log4j properties

func (*Log4jLoggingDataBuilder) MakeOverrideLoggerProperties

func (l *Log4jLoggingDataBuilder) MakeOverrideLoggerProperties() map[string]string

MakeOverrideLoggerProperties get override logger properties do works below: 1. make custom loggers properties 2. make console logger properties 3. make file appender logger properties 4. merge all the properties

type LogBuilderAppender

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

type LogBuilderLoggers

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

type LoggingPluggingDataBuilder

type LoggingPluggingDataBuilder interface {
	MakeContainerLogProperties(origin string) string
}

LoggingPluggingDataBuilder all logging data builder abstract interface for now, only support log4j todo: support other log framework, such as logback, log4j2 etc

type LoggingRecociler

type LoggingRecociler[T client.Object, G any] struct {
	GeneralResourceStyleReconciler[T, G]
	RoleLoggingDataBuilder RoleLoggingDataBuilder

	InstanceGetter InstanceAttributes
	ConfigmapName  string
	// contains filtered or unexported fields
}

func NewLoggingReconciler

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

NewLoggingReconciler new logging reconcile

func (*LoggingRecociler[T, G]) Build

func (l *LoggingRecociler[T, G]) Build(_ context.Context) (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 MultiConfigurationStyleReconciler

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

MultiConfigurationStyleReconciler multi configuration object reconciler

func NewMultiConfigurationStyleReconciler

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

NewMultiConfigurationStyleReconciler newMultiConfigurationStyleReconciler new a MultiConfigurationStyleReconciler

func (*MultiConfigurationStyleReconciler[T, G]) ReconcileResource

func (s *MultiConfigurationStyleReconciler[T, G]) ReconcileResource(
	ctx context.Context,
	builder ResourceBuilderType) (ctrl.Result, error)

ReconcileResource implement ResourceReconcile interface

type MultiResourceReconcilerBuilder

type MultiResourceReconcilerBuilder interface {
	Build(ctx context.Context) ([]ResourceBuilder, error)
}

MultiResourceReconcilerBuilder multi resource builder it will build multi resources for example, it will build more than one configMap currently, it is used to build the configMap see MultiConfigurationStyleReconciler

type NameNodeHdfsSiteXmlGenerator

type NameNodeHdfsSiteXmlGenerator struct {
	NameNodeReplicas int32
	InstanceName     string
	GroupName        string
	NameSpace        string
	ClusterDomain    string
	// contains filtered or unexported fields
}

func NewNameNodeHdfsSiteXmlGenerator

func NewNameNodeHdfsSiteXmlGenerator(
	instanceName string,
	groupName string,
	nameNodeReplicas int32,
	nameSpace string,
	clusterDomain string,
	hdfsReplication int32) *NameNodeHdfsSiteXmlGenerator

NewNameNodeHdfsSiteXmlGenerator new a NameNodeHdfsSiteXmlGenerator

func (*NameNodeHdfsSiteXmlGenerator) Generate

func (c *NameNodeHdfsSiteXmlGenerator) Generate() string

type OverrideExistLogging

type OverrideExistLogging interface {
	OverrideExist(exist *corev1.ConfigMap)
}

type OverrideExistLoggingRecociler

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

OverrideExistLoggingRecociler override exist logging config reconciler if log properties exist in some configmap, we need to override it

func NewOverrideExistLoggingRecociler

func NewOverrideExistLoggingRecociler[T client.Object](
	scheme *runtime.Scheme,
	instance T,
	client client.Client,
	groupName string,
	mergedLabels map[string]string,
	mergedCfg any,
	logDataBuilder RoleLoggingDataBuilder,
) *OverrideExistLoggingRecociler[T, any]

NewOverrideExistLoggingRecociler new OverrideExistLoggingReconcile

func (*OverrideExistLoggingRecociler[T, G]) OverrideExist

func (l *OverrideExistLoggingRecociler[T, G]) OverrideExist(exist *corev1.ConfigMap)

OverrideExist override exist logging config

type PDBReconciler

type PDBReconciler[T client.Object] struct {
	GeneralResourceStyleReconciler[T, any]
	// contains filtered or unexported fields
}

func NewReconcilePDB

func NewReconcilePDB[T client.Object](
	client client.Client,
	schema *runtime.Scheme,
	cr T,
	labels map[string]string,
	name string,
	pdb *hdfsv1alpha1.PodDisruptionBudgetSpec,
) *PDBReconciler[T]

func (*PDBReconciler[T]) Build

func (r *PDBReconciler[T]) Build(_ context.Context) (client.Object, error)

type ReadinessProbe

type ReadinessProbe interface {
	ReadinessProbe() *corev1.Probe
}

type ResourceBuilder

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

type ResourceBuilderType

type ResourceBuilderType struct {
	Single ResourceBuilder
	Multi  MultiResourceReconcilerBuilder
}

ResourceBuilderType union type for resource builder it will build the single resource or multi resources

func NewSingleResourceBuilder

func NewSingleResourceBuilder(builder ResourceBuilder) ResourceBuilderType

type ResourceClient

type ResourceClient struct {
	Ctx       context.Context
	Client    client.Client
	Namespace string
}

func NewResourceClient

func NewResourceClient(ctx context.Context, client client.Client, namespace string) *ResourceClient

NewResourceClient new resource client

func (*ResourceClient) Get

func (r *ResourceClient) Get(obj client.Object) error

type ResourceHandler

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

type ResourceReconciler

type ResourceReconciler interface {
	ReconcileResource(ctx context.Context, builder ResourceBuilderType) (ctrl.Result, error)
}

type Role

type Role string
const (
	NameNode    Role = "namenode"
	DataNode    Role = "datanode"
	JournalNode Role = "journalnode"
)

type RoleConfigSpec

type RoleConfigSpec interface {
	GetRoleConfigSpec(role Role) (any, error)
}

type RoleGroupRecociler

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

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

type RoleLabels

type RoleLabels struct {
	InstanceName string
	Name         string
}

func (*RoleLabels) GetLabels

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

type RoleLoggingDataBuilder

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

type RoleReconciler

type RoleReconciler interface {
	RoleName() Role
	ReconcileRole(ctx context.Context) (ctrl.Result, error)
	CacheRoleGroupConfig()
}

type ServiceBuilder

type ServiceBuilder struct {
	Name      string
	Namespace string
	Labels    map[string]string
	Ports     []corev1.ServicePort

	ClusterIP *HeadlessServiceType
	Type      *corev1.ServiceType
}

ServiceBuilder service builder contains: name, namespace, labels, ports, these should be required optional: clusterIP, serviceType should be optional,

func NewServiceBuilder

func NewServiceBuilder(
	name string,
	namespace string,
	labels map[string]string,
	ports []corev1.ServicePort,
) *ServiceBuilder

func (*ServiceBuilder) Build

func (s *ServiceBuilder) Build() *corev1.Service

func (*ServiceBuilder) SetClusterIP

func (s *ServiceBuilder) SetClusterIP(ip *HeadlessServiceType) *ServiceBuilder

func (*ServiceBuilder) SetType

type VolumeMount

type VolumeMount interface {
	VolumeMount() []corev1.VolumeMount
}

type WorkloadOverride

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

type WorkloadStyleReconciler

type WorkloadStyleReconciler[T client.Object, G any] struct {
	BaseResourceReconciler[T, G]
	Replicas int32
}

WorkloadStyleReconciler workload style reconciler this reconciler is used to reconcile the workload style resources such as workload, statefulSet, etc.

it will do the following things:

  1. build resource
  2. apply the resource
  3. check if the resource is satisfied
  4. if not, return requeue
  5. if satisfied, return nil

Additional:

  1. command and env override can support
  2. logging override can support

func NewWorkloadStyleReconciler

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

func (*WorkloadStyleReconciler[T, G]) CheckPodsSatisfied

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

func (*WorkloadStyleReconciler[T, G]) DoReconcile

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

Jump to

Keyboard shortcuts

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