Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
65 changes: 64 additions & 1 deletion config/v1/types_cluster_version.go
Original file line number Diff line number Diff line change
Expand Up @@ -278,7 +278,7 @@ const (
)

// ClusterVersionCapability enumerates optional, core cluster components.
// +kubebuilder:validation:Enum=openshift-samples;baremetal;marketplace;Console;Insights;Storage;CSISnapshot;NodeTuning;MachineAPI;Build;DeploymentConfig;ImageRegistry;OperatorLifecycleManager;CloudCredential;Ingress;CloudControllerManager;OperatorLifecycleManagerV1
// +kubebuilder:validation:Enum=openshift-samples;baremetal;marketplace;Console;Insights;Storage;CSISnapshot;NodeTuning;MachineAPI;Build;DeploymentConfig;ImageRegistry;OperatorLifecycleManager;CloudCredential;Ingress;CloudControllerManager;OperatorLifecycleManagerV1;OptionalMonitoring
type ClusterVersionCapability string

const (
Expand Down Expand Up @@ -399,6 +399,15 @@ const (
// Managers deployed on top of OpenShift. They help you to work with cloud
// provider API and embeds cloud-specific control logic.
ClusterVersionCapabilityCloudControllerManager ClusterVersionCapability = "CloudControllerManager"

// ClusterVersionCapabilityOptionalMonitoring manages the cluster monitoring stack which is responsible for gathering and
// processing metrics from the in-house and user workloads. The following CRDs are constitute this capability:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is it only these CRDs that are removed when this capability is disabled? Are there default monitoring workloads that may no longer be running on the cluster when this is disabled?

// - TODO
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Presumably we should not add this capability until we know the full scope of what this capability will and will not do?

//
// WARNING: This capability will drop all aforementioned CRDs, and may operational issues in the cluster.
// The only supported use-case for this capability is to reduce the monitoring stack's resource usage by only
// supporting telemetry.
Comment on lines +407 to +409
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What operational issues may happen here?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What does "only supporting telemetry" mean here?

ClusterVersionCapabilityOptionalMonitoring ClusterVersionCapability = "OptionalMonitoring"
)

// KnownClusterVersionCapabilities includes all known optional, core cluster components.
Expand All @@ -420,6 +429,7 @@ var KnownClusterVersionCapabilities = []ClusterVersionCapability{
ClusterVersionCapabilityCloudCredential,
ClusterVersionCapabilityIngress,
ClusterVersionCapabilityCloudControllerManager,
ClusterVersionCapabilityOptionalMonitoring,
}

// ClusterVersionCapabilitySet defines sets of cluster version capabilities.
Expand Down Expand Up @@ -479,6 +489,18 @@ const (
// version of OpenShift is installed.
ClusterVersionCapabilitySet4_18 ClusterVersionCapabilitySet = "v4.18"

// ClusterVersionCapabilitySet4_19 is the recommended set of
// optional capabilities to enable for the 4.18 version of
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// optional capabilities to enable for the 4.18 version of
// optional capabilities to enable for the 4.19 version of

// OpenShift. This list will remain the same no matter which
// version of OpenShift is installed.
ClusterVersionCapabilitySet4_19 ClusterVersionCapabilitySet = "v4.19"

// ClusterVersionCapabilitySet4_20 is the recommended set of
// optional capabilities to enable for the 4.18 version of
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// optional capabilities to enable for the 4.18 version of
// optional capabilities to enable for the 4.20 version of

// OpenShift. This list will remain the same no matter which
// version of OpenShift is installed.
ClusterVersionCapabilitySet4_20 ClusterVersionCapabilitySet = "v4.20"

// ClusterVersionCapabilitySetCurrent is the recommended set
// of optional capabilities to enable for the cluster's
// current version of OpenShift.
Expand Down Expand Up @@ -600,6 +622,46 @@ var ClusterVersionCapabilitySets = map[ClusterVersionCapabilitySet][]ClusterVers
ClusterVersionCapabilityIngress,
ClusterVersionCapabilityCloudControllerManager,
},
ClusterVersionCapabilitySet4_19: {
ClusterVersionCapabilityBaremetal,
ClusterVersionCapabilityConsole,
ClusterVersionCapabilityInsights,
ClusterVersionCapabilityMarketplace,
ClusterVersionCapabilityStorage,
ClusterVersionCapabilityOpenShiftSamples,
ClusterVersionCapabilityCSISnapshot,
ClusterVersionCapabilityNodeTuning,
ClusterVersionCapabilityMachineAPI,
ClusterVersionCapabilityBuild,
ClusterVersionCapabilityDeploymentConfig,
ClusterVersionCapabilityImageRegistry,
ClusterVersionCapabilityOperatorLifecycleManager,
ClusterVersionCapabilityOperatorLifecycleManagerV1,
ClusterVersionCapabilityCloudCredential,
ClusterVersionCapabilityIngress,
ClusterVersionCapabilityCloudControllerManager,
ClusterVersionCapabilityOptionalMonitoring,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why should this be included in the 4.19 set if the capability does not exist in 4.19?

},
ClusterVersionCapabilitySet4_20: {
ClusterVersionCapabilityBaremetal,
ClusterVersionCapabilityConsole,
ClusterVersionCapabilityInsights,
ClusterVersionCapabilityMarketplace,
ClusterVersionCapabilityStorage,
ClusterVersionCapabilityOpenShiftSamples,
ClusterVersionCapabilityCSISnapshot,
ClusterVersionCapabilityNodeTuning,
ClusterVersionCapabilityMachineAPI,
ClusterVersionCapabilityBuild,
ClusterVersionCapabilityDeploymentConfig,
ClusterVersionCapabilityImageRegistry,
ClusterVersionCapabilityOperatorLifecycleManager,
ClusterVersionCapabilityOperatorLifecycleManagerV1,
ClusterVersionCapabilityCloudCredential,
ClusterVersionCapabilityIngress,
ClusterVersionCapabilityCloudControllerManager,
ClusterVersionCapabilityOptionalMonitoring,
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why should this be included in the 4.20 capability list if this capability does not exist in 4.20?

},
ClusterVersionCapabilitySetCurrent: {
ClusterVersionCapabilityBaremetal,
ClusterVersionCapabilityConsole,
Expand All @@ -618,6 +680,7 @@ var ClusterVersionCapabilitySets = map[ClusterVersionCapabilitySet][]ClusterVers
ClusterVersionCapabilityCloudCredential,
ClusterVersionCapabilityIngress,
ClusterVersionCapabilityCloudControllerManager,
ClusterVersionCapabilityOptionalMonitoring,
},
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down Expand Up @@ -391,6 +392,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down Expand Up @@ -418,6 +420,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down Expand Up @@ -329,6 +330,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down Expand Up @@ -356,6 +358,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down Expand Up @@ -391,6 +392,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down Expand Up @@ -418,6 +420,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down Expand Up @@ -391,6 +392,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down Expand Up @@ -418,6 +420,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down Expand Up @@ -331,6 +332,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down Expand Up @@ -358,6 +360,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down Expand Up @@ -342,6 +343,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down Expand Up @@ -369,6 +371,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down Expand Up @@ -382,6 +383,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down Expand Up @@ -409,6 +411,7 @@ spec:
- Ingress
- CloudControllerManager
- OperatorLifecycleManagerV1
- OptionalMonitoring
type: string
type: array
x-kubernetes-list-type: atomic
Expand Down