Documentation
¶
Index ¶
Constants ¶
const ( // NamespacesByProjectExcludingRegistrationID is an index mapping namespaces to project that they belong into // The index will omit any namespaces considered to be the Project Registration namespace or a system namespace NamespacesByProjectExcludingRegistrationID = "helm.cattle.io/namespaces-by-project-id-excluding-registration" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Getter ¶
type Getter interface {
// Has implies that the namespace has been registered
Has(name string) bool
// Get retrieves a registered namespace
Get(name string) (*corev1.Namespace, bool)
}
Getter gets a namespace that has been stored in a register
type ProjectGetter ¶
type ProjectGetter interface {
// IsProjectRegistrationNamespace returns whether to watch for ProjectHelmCharts in the provided namespace
IsProjectRegistrationNamespace(namespace *corev1.Namespace) bool
// IsSystemNamespace returns whether the provided namespace is considered a system namespace
IsSystemNamespace(namespace *corev1.Namespace) bool
// GetTargetProjectNamespaces returns the list of namespaces that should be targeted for a given ProjectHelmChart
// Any namespace returned by this should not be a project registration namespace or a system namespace
GetTargetProjectNamespaces(projectHelmChart *v1alpha1.ProjectHelmChart) ([]string, error)
}
ProjectGetter allows you to get target namespaces based on a project and identify namespaces as special namespaces in a project
func NewLabelBasedProjectGetter ¶
func NewLabelBasedProjectGetter( projectLabel string, isProjectRegistrationNamespace Checker, isSystemNamespace Checker, namespaces corecontroller.NamespaceController, ) ProjectGetter
NewLabelBasedProjectGetter returns a ProjectGetter that gets target project namespaces that meet the following criteria: 1) Must have the same projectLabel value as the namespace where the ProjectHelmChart lives in 2) Must not be a project registration namespace 3) Must not be a system namespace
func NewSingleNamespaceProjectGetter ¶
func NewSingleNamespaceProjectGetter( registrationNamespace string, systemNamespaces []string, namespaces corecontroller.NamespaceController, ) ProjectGetter
NewSingleNamespaceProjectGetter returns a ProjectGetter that gets target project namespaces that meet the following criteria: 1) Must match the labels provided on spec.projectNamespaceSelector of the projectHelmChart in question 2) Must not be the registration namespace 3) Must not be part of the provided systemNamespaces
func Register ¶
func Register( ctx context.Context, apply apply.Apply, systemNamespace, valuesYaml, questionsYaml string, opts common.Options, namespaces corecontroller.NamespaceController, namespaceCache corecontroller.NamespaceCache, configmaps corecontroller.ConfigMapController, projectHelmCharts helmprojectcontroller.ProjectHelmChartController, projectHelmChartCache helmprojectcontroller.ProjectHelmChartCache, dynamic dynamic.Interface, ) ProjectGetter
type Tracker ¶
type Tracker interface {
Getter
// Set registers a namespace
Set(namespace *corev1.Namespace)
// Delete unregisters a namespace
Delete(namespace *corev1.Namespace)
}
Tracker can store namespace references and get them
func NewTracker ¶
func NewTracker() Tracker
NewTracker returns a new tracker that can track and get namespaces