From 63a13d91c53a0246eb6ced5cbd90f331f92bc970 Mon Sep 17 00:00:00 2001 From: MikelAlejoBR Date: Wed, 15 Apr 2026 12:29:16 -0400 Subject: [PATCH] feature: specify integration types with constants The goal is to avoid having misconfigurations by having a wrong value in the "disabledIntegrations" field. Kubernetes will be aware of which are the accepted values to avoid those misconfigurations. SANDBOX-1769 --- api/v1alpha1/toolchainconfig_types.go | 15 ++++++++++++++- api/v1alpha1/zz_generated.deepcopy.go | 2 +- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/api/v1alpha1/toolchainconfig_types.go b/api/v1alpha1/toolchainconfig_types.go index 924357d1..fc383ebe 100644 --- a/api/v1alpha1/toolchainconfig_types.go +++ b/api/v1alpha1/toolchainconfig_types.go @@ -4,6 +4,19 @@ import ( metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" ) +// IntegrationName identifies a downstream service integration that can be +// disabled via the ToolchainConfig CR. +// +kubebuilder:validation:Enum=openshift;openshift-ai;devspaces;ansible-automation-platform;openshift-virtualization +type IntegrationName string + +const ( + IntegrationOpenShift IntegrationName = "openshift" + IntegrationOpenShiftAI IntegrationName = "openshift-ai" + IntegrationDevSpaces IntegrationName = "devspaces" + IntegrationAnsibleAutomationPlatform IntegrationName = "ansible-automation-platform" + IntegrationOpenShiftVirtualization IntegrationName = "openshift-virtualization" +) + // These are valid conditions of a ToolchainConfig const ( ToolchainConfigSyncComplete ConditionType = "SyncComplete" @@ -256,7 +269,7 @@ type RegistrationServiceConfig struct { // considered enabled. Only listed integrations are hidden. // +optional // +listType=set - DisabledIntegrations []string `json:"disabledIntegrations,omitempty"` + DisabledIntegrations []IntegrationName `json:"disabledIntegrations,omitempty"` } // RegistrationServiceAnalyticsConfig contains the subset of registration service configuration parameters related to analytics diff --git a/api/v1alpha1/zz_generated.deepcopy.go b/api/v1alpha1/zz_generated.deepcopy.go index 160cf284..fa6255b1 100644 --- a/api/v1alpha1/zz_generated.deepcopy.go +++ b/api/v1alpha1/zz_generated.deepcopy.go @@ -1929,7 +1929,7 @@ func (in *RegistrationServiceConfig) DeepCopyInto(out *RegistrationServiceConfig } if in.DisabledIntegrations != nil { in, out := &in.DisabledIntegrations, &out.DisabledIntegrations - *out = make([]string, len(*in)) + *out = make([]IntegrationName, len(*in)) copy(*out, *in) } }