From d96ded082b59f80377f48f5e160d462f72c07e98 Mon Sep 17 00:00:00 2001 From: Andrea Fasano Date: Fri, 26 Jun 2026 11:47:59 -0400 Subject: [PATCH] simplify IRI api dependency --- internal/ignition/installmanifests.go | 68 +- internal/ignition/installmanifests_test.go | 47 - .../ignition/internalreleaseimage_patcher.go | 24 +- .../internalreleaseimage_patcher_test.go | 5 +- .../openshift/api/features/features.go | 948 ------------------ .../api/features/legacyfeaturegates.go | 119 --- .../github.com/openshift/api/features/util.go | 224 ----- .../machineconfiguration/v1alpha1/Makefile | 3 - .../api/machineconfiguration/v1alpha1/doc.go | 7 - .../machineconfiguration/v1alpha1/register.go | 49 - .../machineconfiguration/v1alpha1/types.go | 10 - .../v1alpha1/types_internalreleaseimage.go | 178 ---- .../v1alpha1/types_machineconfignode.go | 273 ----- .../v1alpha1/types_osimagestream.go | 131 --- .../v1alpha1/types_pinnedimageset.go | 91 -- .../v1alpha1/zz_generated.deepcopy.go | 574 ----------- ..._generated.featuregated-crd-manifests.yaml | 148 --- .../zz_generated.swagger_doc_generated.go | 250 ----- vendor/modules.txt | 2 - 19 files changed, 18 insertions(+), 3133 deletions(-) delete mode 100644 vendor/github.com/openshift/api/features/features.go delete mode 100644 vendor/github.com/openshift/api/features/legacyfeaturegates.go delete mode 100644 vendor/github.com/openshift/api/features/util.go delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1alpha1/Makefile delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1alpha1/doc.go delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1alpha1/register.go delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types.go delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_internalreleaseimage.go delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_machineconfignode.go delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_osimagestream.go delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_pinnedimageset.go delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.deepcopy.go delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.featuregated-crd-manifests.yaml delete mode 100644 vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.swagger_doc_generated.go diff --git a/internal/ignition/installmanifests.go b/internal/ignition/installmanifests.go index c7acfe3e597b..1ec2ae79a106 100644 --- a/internal/ignition/installmanifests.go +++ b/internal/ignition/installmanifests.go @@ -13,7 +13,6 @@ import ( "os/exec" "path/filepath" "sort" - "strconv" "strings" config_latest_types "github.com/coreos/ignition/v2/config/v3_2/types" @@ -21,14 +20,11 @@ import ( "github.com/go-openapi/swag" "github.com/google/uuid" bmh_v1alpha1 "github.com/metal3-io/baremetal-operator/apis/metal3.io/v1alpha1" - v1 "github.com/openshift/api/config/v1" - "github.com/openshift/api/features" "github.com/openshift/assisted-service/internal/common" ignitioncommon "github.com/openshift/assisted-service/internal/common/ignition" "github.com/openshift/assisted-service/internal/constants" eventsapi "github.com/openshift/assisted-service/internal/events/api" "github.com/openshift/assisted-service/internal/host/hostutil" - "github.com/openshift/assisted-service/internal/installcfg" "github.com/openshift/assisted-service/internal/installercache" "github.com/openshift/assisted-service/internal/manifests" manifestsapi "github.com/openshift/assisted-service/internal/manifests/api" @@ -103,7 +99,6 @@ type installerGenerator struct { nodeIpAllocations map[strfmt.UUID]*network.NodeIpAllocation manifestApi manifestsapi.ManifestsAPI iriPatcher internalReleaseImagePatcher - rawInstallConfig []byte } var fileNames = [...]string{ @@ -146,10 +141,6 @@ func (g *installerGenerator) UploadToS3(ctx context.Context) error { } func (g *installerGenerator) patchInternalReleaseManifests(ctx context.Context, manifestFiles []s3wrapper.ObjectInfo) error { - if !g.isFeatureGateEnabled(features.FeatureGateNoRegistryClusterInstall) { - return nil - } - if err := g.iriPatcher.PatchManifests(ctx, manifestFiles); err != nil { g.log.WithError(err).Errorf("failed to process manifests for cluster %s", g.cluster.ID) return err @@ -172,8 +163,6 @@ func (g *installerGenerator) allocateNodeIpsIfNeeded(log logrus.FieldLogger) { func (g *installerGenerator) Generate(ctx context.Context, installConfig []byte, forceInsecurePolicyJson bool) error { var err error log := logutil.FromContext(ctx, g.log) - g.rawInstallConfig = installConfig - defer func() { if err != nil { os.Remove(filepath.Join(g.workDir, "manifests")) @@ -777,11 +766,9 @@ func (g *installerGenerator) updateBootstrap(ctx context.Context, bootstrapPath setNMConfigration(config) } - if g.isFeatureGateEnabled(features.FeatureGateNoRegistryClusterInstall) { - err = g.iriPatcher.UpdateBootstrap(config) - if err != nil { - return err - } + err = g.iriPatcher.UpdateBootstrap(config) + if err != nil { + return err } err = ignitioncommon.WriteIgnitionFile(bootstrapPath, config) @@ -1310,55 +1297,6 @@ func (g *installerGenerator) downloadManifest(ctx context.Context, manifest stri return nil } -func (g *installerGenerator) isFeatureGateEnabled(feature v1.FeatureGateName) bool { - var installConfig installcfg.InstallerConfigBaremetal - - if err := json.Unmarshal(g.rawInstallConfig, &installConfig); err != nil { - g.log.Errorf("cannot convert install config data while checking feature gate %s: %v", string(feature), err) - return false - } - - featureEnabled := false - switch installConfig.FeatureSet { - case v1.CustomNoUpgrade: - for _, fg := range installConfig.FeatureGates { - // Parse feature gate - featureParts := strings.Split(fg, "=") - if len(featureParts) != 2 { - g.log.Debugf("Cannot parse feature gate %s, skipping", fg) - continue - } - name := featureParts[0] - enabled, err := strconv.ParseBool(featureParts[1]) - if err != nil { - g.log.Debugf("Unsupported feature value %s, skipping", fg) - continue - } - - if name == string(feature) && enabled { - featureEnabled = true - break - } - } - default: - feats, err := features.FeatureSets(features.SelfManaged, installConfig.FeatureSet) - if err != nil { - g.log.Errorf("error while retrieving features definition: %v", err) - break - } - - for _, f := range feats.Enabled { - if f.FeatureGateAttributes.Name == feature { - featureEnabled = true - break - } - } - } - - g.log.Infof("Feature gate %s enabled: %v", string(feature), featureEnabled) - return featureEnabled -} - // UploadToS3 uploads the generated files to S3 func uploadToS3(ctx context.Context, workDir string, cluster *common.Cluster, s3Client s3wrapper.API, log logrus.FieldLogger) error { toUpload := fileNames[:] diff --git a/internal/ignition/installmanifests_test.go b/internal/ignition/installmanifests_test.go index 70f0c2024098..53a7db18c832 100644 --- a/internal/ignition/installmanifests_test.go +++ b/internal/ignition/installmanifests_test.go @@ -21,14 +21,11 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/ginkgo/extensions/table" . "github.com/onsi/gomega" - v1 "github.com/openshift/api/config/v1" - "github.com/openshift/api/features" "github.com/openshift/assisted-service/internal/common" "github.com/openshift/assisted-service/internal/common/ignition" "github.com/openshift/assisted-service/internal/constants" eventsapi "github.com/openshift/assisted-service/internal/events/api" "github.com/openshift/assisted-service/internal/host/hostutil" - "github.com/openshift/assisted-service/internal/installcfg" "github.com/openshift/assisted-service/internal/installercache" manifestsapi "github.com/openshift/assisted-service/internal/manifests/api" "github.com/openshift/assisted-service/internal/metrics" @@ -56,50 +53,6 @@ func testCluster() *common.Cluster { } } -var _ = Describe("Feature gates check", func() { - var newInstallGenerator = func(featureSet v1.FeatureSet, featureGateWithState string) *installerGenerator { - installConfig := installcfg.InstallerConfigBaremetal{ - FeatureSet: featureSet, - } - if featureGateWithState != "" { - installConfig.FeatureGates = []string{featureGateWithState} - } - bytes, err := json.Marshal(&installConfig) - Expect(err).NotTo(HaveOccurred()) - - return &installerGenerator{ - log: logrus.New(), - rawInstallConfig: bytes, - } - } - - Context("Verify NoRegistryClusterInstall feature", func() { - It("Is not enabled by default", func() { - ig := newInstallGenerator(v1.Default, "") - Expect(ig.isFeatureGateEnabled(features.FeatureGateNoRegistryClusterInstall)).To(BeFalse()) - }) - - It("Is enabled for TP and DP", func() { - ig := newInstallGenerator(v1.TechPreviewNoUpgrade, "") - Expect(ig.isFeatureGateEnabled(features.FeatureGateNoRegistryClusterInstall)).To(BeTrue()) - - ig = newInstallGenerator(v1.DevPreviewNoUpgrade, "") - Expect(ig.isFeatureGateEnabled(features.FeatureGateNoRegistryClusterInstall)).To(BeTrue()) - }) - - It("CustomNoUpgrade check", func() { - ig := newInstallGenerator(v1.CustomNoUpgrade, "") - Expect(ig.isFeatureGateEnabled(features.FeatureGateNoRegistryClusterInstall)).To(BeFalse()) - - ig = newInstallGenerator(v1.CustomNoUpgrade, string(features.FeatureGateNoRegistryClusterInstall)+"=false") - Expect(ig.isFeatureGateEnabled(features.FeatureGateNoRegistryClusterInstall)).To(BeFalse()) - - ig = newInstallGenerator(v1.CustomNoUpgrade, string(features.FeatureGateNoRegistryClusterInstall)+"=true") - Expect(ig.isFeatureGateEnabled(features.FeatureGateNoRegistryClusterInstall)).To(BeTrue()) - }) - }) -}) - var _ = Describe("Bootstrap Ignition Update", func() { const bootstrap1 = `{ "ignition": { diff --git a/internal/ignition/internalreleaseimage_patcher.go b/internal/ignition/internalreleaseimage_patcher.go index d0727f92368f..a921e3fca9a6 100644 --- a/internal/ignition/internalreleaseimage_patcher.go +++ b/internal/ignition/internalreleaseimage_patcher.go @@ -12,7 +12,6 @@ import ( config_latest_types "github.com/coreos/ignition/v2/config/v3_2/types" "github.com/go-openapi/swag" configv1 "github.com/openshift/api/config/v1" - mcfgv1alpha1 "github.com/openshift/api/machineconfiguration/v1alpha1" "github.com/openshift/assisted-service/internal/common" manifestsapi "github.com/openshift/assisted-service/internal/manifests/api" "github.com/openshift/assisted-service/models" @@ -26,7 +25,6 @@ import ( "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/kubernetes/scheme" "sigs.k8s.io/yaml" - k8syaml "sigs.k8s.io/yaml" ) const ( @@ -49,7 +47,7 @@ type internalReleaseImagePatcher struct { s3Client s3wrapper.API manifestApi manifestsapi.ManifestsAPI iriRegistryDomain string - iri *mcfgv1alpha1.InternalReleaseImage + iriFound bool } // NewInternalReleaseImagePatcher creates a new internalReleaseImagePatcher instance. @@ -60,7 +58,6 @@ func NewInternalReleaseImagePatcher(cluster *common.Cluster, s3Client s3wrapper. manifestApi: manifestApi, log: log, iriRegistryDomain: fmt.Sprintf("api-int.%s.%s", cluster.Name, cluster.BaseDNSDomain), - iri: nil, } } @@ -97,7 +94,7 @@ func (i *internalReleaseImagePatcher) uploadManifests(ctx context.Context, key s fileName := path.Base(key) i.log.Infof("Updating resource %s as %s", key, fileName) - data, err := k8syaml.Marshal(obj) + data, err := yaml.Marshal(obj) if err != nil { return err } @@ -153,15 +150,20 @@ func (i *internalReleaseImagePatcher) getInternalReleaseImageManifest(ctx contex if err != nil { return err } - obj := &mcfgv1alpha1.InternalReleaseImage{} - err = yaml.Unmarshal(content, obj) + var meta struct { + Kind string `json:"kind"` + Metadata struct { + Name string `json:"name"` + } `json:"metadata"` + } + err = yaml.Unmarshal(content, &meta) if err != nil { i.log.Debugf("Cannot decode manifest %s, skipping", f.Path) continue } - if obj.Kind == iriKind && obj.Name == iriInstanceName { - i.iri = obj.DeepCopy() + if meta.Kind == iriKind && meta.Metadata.Name == iriInstanceName { + i.iriFound = true break } } @@ -181,7 +183,7 @@ func (i *internalReleaseImagePatcher) PatchManifests(ctx context.Context, manife return err } // Skip if InternalReleaseImage manifest wasn't found. - if i.iri == nil { + if !i.iriFound { return nil } i.log.Infof("Patching InternalReleaseImage mirror resources") @@ -327,7 +329,7 @@ func (i *internalReleaseImagePatcher) getRegistriesConfFromIgn(bootstrapConfig * func (i *internalReleaseImagePatcher) UpdateBootstrap(bootstrapConfig *config_latest_types.Config) error { // Skip if InternalReleaseImage manifest wasn't found. - if i.iri == nil { + if !i.iriFound { return nil } i.log.Infof("Updating bootstrap.ign registries.conf for InternalReleaseImage") diff --git a/internal/ignition/internalreleaseimage_patcher_test.go b/internal/ignition/internalreleaseimage_patcher_test.go index e29930e82a3a..e363f66b1e85 100644 --- a/internal/ignition/internalreleaseimage_patcher_test.go +++ b/internal/ignition/internalreleaseimage_patcher_test.go @@ -14,7 +14,6 @@ import ( . "github.com/onsi/ginkgo" . "github.com/onsi/gomega" configv1 "github.com/openshift/api/config/v1" - mcfgv1alpha1 "github.com/openshift/api/machineconfiguration/v1alpha1" "github.com/openshift/assisted-service/internal/common" manifestsapi "github.com/openshift/assisted-service/internal/manifests/api" "github.com/openshift/assisted-service/pkg/s3wrapper" @@ -95,7 +94,7 @@ var _ = Describe("InternalReleaseImage resources patching", func() { Context("when IRI resource was found", func() { It("add IRI mirrors to bootstrap.ign/registries.conf", func() { - iriPatcher.iri = &mcfgv1alpha1.InternalReleaseImage{} + iriPatcher.iriFound = true bootstrapIgnition := iriBootstrapIgnition() err := iriPatcher.UpdateBootstrap(bootstrapIgnition) @@ -153,7 +152,7 @@ var _ = Describe("InternalReleaseImage resources patching", func() { Context("when IRI wasn't found", func() { It("do not update bootstrap.ign", func() { - iriPatcher.iri = nil + iriPatcher.iriFound = false bootstrapIgnition := iriBootstrapIgnition() err := iriPatcher.UpdateBootstrap(bootstrapIgnition) diff --git a/vendor/github.com/openshift/api/features/features.go b/vendor/github.com/openshift/api/features/features.go deleted file mode 100644 index 29622d508e37..000000000000 --- a/vendor/github.com/openshift/api/features/features.go +++ /dev/null @@ -1,948 +0,0 @@ -package features - -import ( - "fmt" - - configv1 "github.com/openshift/api/config/v1" -) - -func FeatureSets(clusterProfile ClusterProfileName, featureSet configv1.FeatureSet) (*FeatureGateEnabledDisabled, error) { - byFeatureSet, ok := allFeatureGates[clusterProfile] - if !ok { - return nil, fmt.Errorf("no information found for ClusterProfile=%q", clusterProfile) - } - featureGates, ok := byFeatureSet[featureSet] - if !ok { - return nil, fmt.Errorf("no information found for FeatureSet=%q under ClusterProfile=%q", featureSet, clusterProfile) - } - return featureGates.DeepCopy(), nil -} - -func AllFeatureSets() map[ClusterProfileName]map[configv1.FeatureSet]*FeatureGateEnabledDisabled { - ret := map[ClusterProfileName]map[configv1.FeatureSet]*FeatureGateEnabledDisabled{} - - for clusterProfile, byFeatureSet := range allFeatureGates { - newByFeatureSet := map[configv1.FeatureSet]*FeatureGateEnabledDisabled{} - - for featureSet, enabledDisabled := range byFeatureSet { - newByFeatureSet[featureSet] = enabledDisabled.DeepCopy() - } - ret[clusterProfile] = newByFeatureSet - } - - return ret -} - -var ( - allFeatureGates = map[ClusterProfileName]map[configv1.FeatureSet]*FeatureGateEnabledDisabled{} - - FeatureGateConsolePluginCSP = newFeatureGate("ConsolePluginContentSecurityPolicy"). - reportProblemsToJiraComponent("Management Console"). - contactPerson("jhadvig"). - productScope(ocpSpecific). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - enhancementPR("https://github.com/openshift/enhancements/pull/1706"). - mustRegister() - - FeatureGateServiceAccountTokenNodeBinding = newFeatureGate("ServiceAccountTokenNodeBinding"). - reportProblemsToJiraComponent("apiserver-auth"). - contactPerson("ibihim"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/4193"). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateMutatingAdmissionPolicy = newFeatureGate("MutatingAdmissionPolicy"). - reportProblemsToJiraComponent("kube-apiserver"). - contactPerson("benluddy"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/3962"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateGatewayAPI = newFeatureGate("GatewayAPI"). - reportProblemsToJiraComponent("Routing"). - contactPerson("miciah"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateOpenShiftPodSecurityAdmission = newFeatureGate("OpenShiftPodSecurityAdmission"). - reportProblemsToJiraComponent("auth"). - contactPerson("ibihim"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/899"). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateBuildCSIVolumes = newFeatureGate("BuildCSIVolumes"). - reportProblemsToJiraComponent("builds"). - contactPerson("adkaplan"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateDynamicResourceAllocation = newFeatureGate("DynamicResourceAllocation"). - reportProblemsToJiraComponent("scheduling"). - contactPerson("jchaloup"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/4381"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateAzureWorkloadIdentity = newFeatureGate("AzureWorkloadIdentity"). - reportProblemsToJiraComponent("cloud-credential-operator"). - contactPerson("abutcher"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateAzureDedicatedHosts = newFeatureGate("AzureDedicatedHosts"). - reportProblemsToJiraComponent("installer"). - contactPerson("rvanderp3"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1783"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateMaxUnavailableStatefulSet = newFeatureGate("MaxUnavailableStatefulSet"). - reportProblemsToJiraComponent("apps"). - contactPerson("atiratree"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/961"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateEventedPLEG = newFeatureGate("EventedPLEG"). - reportProblemsToJiraComponent("node"). - contactPerson("sairameshv"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/3386"). - mustRegister() - - FeatureGateSigstoreImageVerification = newFeatureGate("SigstoreImageVerification"). - reportProblemsToJiraComponent("node"). - contactPerson("sgrunert"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). - mustRegister() - - FeatureGateSigstoreImageVerificationPKI = newFeatureGate("SigstoreImageVerificationPKI"). - reportProblemsToJiraComponent("node"). - contactPerson("QiWang"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1658"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateAlibabaPlatform = newFeatureGate("AlibabaPlatform"). - reportProblemsToJiraComponent("cloud-provider"). - contactPerson("jspeed"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateVSphereHostVMGroupZonal = newFeatureGate("VSphereHostVMGroupZonal"). - reportProblemsToJiraComponent("splat"). - contactPerson("jcpowermac"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1677"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateVSphereMultiDisk = newFeatureGate("VSphereMultiDisk"). - reportProblemsToJiraComponent("splat"). - contactPerson("vr4manta"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1709"). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateRouteExternalCertificate = newFeatureGate("RouteExternalCertificate"). - reportProblemsToJiraComponent("router"). - contactPerson("chiragkyal"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateCPMSMachineNamePrefix = newFeatureGate("CPMSMachineNamePrefix"). - reportProblemsToJiraComponent("Cloud Compute / ControlPlaneMachineSet"). - contactPerson("chiragkyal"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1714"). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateAdminNetworkPolicy = newFeatureGate("AdminNetworkPolicy"). - reportProblemsToJiraComponent("Networking/ovn-kubernetes"). - contactPerson("tssurya"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateNetworkSegmentation = newFeatureGate("NetworkSegmentation"). - reportProblemsToJiraComponent("Networking/ovn-kubernetes"). - contactPerson("tssurya"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1623"). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateAdditionalRoutingCapabilities = newFeatureGate("AdditionalRoutingCapabilities"). - reportProblemsToJiraComponent("Networking/cluster-network-operator"). - contactPerson("jcaamano"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateRouteAdvertisements = newFeatureGate("RouteAdvertisements"). - reportProblemsToJiraComponent("Networking/ovn-kubernetes"). - contactPerson("jcaamano"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateNetworkLiveMigration = newFeatureGate("NetworkLiveMigration"). - reportProblemsToJiraComponent("Networking/ovn-kubernetes"). - contactPerson("pliu"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateNetworkDiagnosticsConfig = newFeatureGate("NetworkDiagnosticsConfig"). - reportProblemsToJiraComponent("Networking/cluster-network-operator"). - contactPerson("kyrtapz"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateOVNObservability = newFeatureGate("OVNObservability"). - reportProblemsToJiraComponent("Networking"). - contactPerson("npinaeva"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateBackendQuotaGiB = newFeatureGate("EtcdBackendQuota"). - reportProblemsToJiraComponent("etcd"). - contactPerson("hasbro17"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateAutomatedEtcdBackup = newFeatureGate("AutomatedEtcdBackup"). - reportProblemsToJiraComponent("etcd"). - contactPerson("hasbro17"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateMachineAPIOperatorDisableMachineHealthCheckController = newFeatureGate("MachineAPIOperatorDisableMachineHealthCheckController"). - reportProblemsToJiraComponent("ecoproject"). - contactPerson("msluiter"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - mustRegister() - - FeatureGateDNSNameResolver = newFeatureGate("DNSNameResolver"). - reportProblemsToJiraComponent("dns"). - contactPerson("miciah"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateMachineConfigNodes = newFeatureGate("MachineConfigNodes"). - reportProblemsToJiraComponent("MachineConfigOperator"). - contactPerson("ijanssen"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1765"). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateImageModeStatusReporting = newFeatureGate("ImageModeStatusReporting"). - reportProblemsToJiraComponent("MachineConfigOperator"). - contactPerson("ijanssen"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1809"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateClusterAPIInstall = newFeatureGate("ClusterAPIInstall"). - reportProblemsToJiraComponent("Installer"). - contactPerson("vincepri"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - mustRegister() - - FeatureGateGCPClusterHostedDNS = newFeatureGate("GCPClusterHostedDNS"). - reportProblemsToJiraComponent("Installer"). - contactPerson("barbacbd"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateAWSClusterHostedDNS = newFeatureGate("AWSClusterHostedDNS"). - reportProblemsToJiraComponent("Installer"). - contactPerson("barbacbd"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateAzureClusterHostedDNSInstall = newFeatureGate("AzureClusterHostedDNSInstall"). - reportProblemsToJiraComponent("Installer"). - contactPerson("sadasu"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1468"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateMixedCPUsAllocation = newFeatureGate("MixedCPUsAllocation"). - reportProblemsToJiraComponent("NodeTuningOperator"). - contactPerson("titzhak"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateManagedBootImages = newFeatureGate("ManagedBootImages"). - reportProblemsToJiraComponent("MachineConfigOperator"). - contactPerson("djoshy"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateManagedBootImagesAWS = newFeatureGate("ManagedBootImagesAWS"). - reportProblemsToJiraComponent("MachineConfigOperator"). - contactPerson("djoshy"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateManagedBootImagesvSphere = newFeatureGate("ManagedBootImagesvSphere"). - reportProblemsToJiraComponent("MachineConfigOperator"). - contactPerson("rsaini"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1496"). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateManagedBootImagesAzure = newFeatureGate("ManagedBootImagesAzure"). - reportProblemsToJiraComponent("MachineConfigOperator"). - contactPerson("djoshy"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1761"). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateManagedBootImagesCPMS = newFeatureGate("ManagedBootImagesCPMS"). - reportProblemsToJiraComponent("MachineConfigOperator"). - contactPerson("djoshy"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1818"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateBootImageSkewEnforcement = newFeatureGate("BootImageSkewEnforcement"). - reportProblemsToJiraComponent("MachineConfigOperator"). - contactPerson("djoshy"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1761"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateBootcNodeManagement = newFeatureGate("BootcNodeManagement"). - reportProblemsToJiraComponent("MachineConfigOperator"). - contactPerson("inesqyx"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateSignatureStores = newFeatureGate("SignatureStores"). - reportProblemsToJiraComponent("Cluster Version Operator"). - contactPerson("lmohanty"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateKMSv1 = newFeatureGate("KMSv1"). - reportProblemsToJiraComponent("kube-apiserver"). - contactPerson("dgrisonnet"). - productScope(kubernetes). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGatePinnedImages = newFeatureGate("PinnedImages"). - reportProblemsToJiraComponent("MachineConfigOperator"). - contactPerson("RishabhSaini"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateUpgradeStatus = newFeatureGate("UpgradeStatus"). - reportProblemsToJiraComponent("Cluster Version Operator"). - contactPerson("pmuller"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). - mustRegister() - - FeatureGateTranslateStreamCloseWebsocketRequests = newFeatureGate("TranslateStreamCloseWebsocketRequests"). - reportProblemsToJiraComponent("kube-apiserver"). - contactPerson("akashem"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/4006"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateVolumeAttributesClass = newFeatureGate("VolumeAttributesClass"). - reportProblemsToJiraComponent("Storage / Kubernetes External Components"). - contactPerson("dfajmon"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/3751"). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateVolumeGroupSnapshot = newFeatureGate("VolumeGroupSnapshot"). - reportProblemsToJiraComponent("Storage / Kubernetes External Components"). - contactPerson("fbertina"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/3476"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateExternalSnapshotMetadata = newFeatureGate("ExternalSnapshotMetadata"). - reportProblemsToJiraComponent("Storage / Kubernetes External Components"). - contactPerson("jdobson"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/3314"). - enableIn(configv1.DevPreviewNoUpgrade). - mustRegister() - - FeatureGateExternalOIDC = newFeatureGate("ExternalOIDC"). - reportProblemsToJiraComponent("authentication"). - contactPerson("liouk"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1596"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). - mustRegister() - - FeatureGateExternalOIDCWithAdditionalClaimMappings = newFeatureGate("ExternalOIDCWithUIDAndExtraClaimMappings"). - reportProblemsToJiraComponent("authentication"). - contactPerson("bpalmer"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1777"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). - mustRegister() - - FeatureGateExample = newFeatureGate("Example"). - reportProblemsToJiraComponent("cluster-config"). - contactPerson("deads"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateExample2 = newFeatureGate("Example2"). - reportProblemsToJiraComponent("cluster-config"). - contactPerson("JoelSpeed"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade). - mustRegister() - - FeatureGateNewOLM = newFeatureGate("NewOLM"). - reportProblemsToJiraComponent("olm"). - contactPerson("joe"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). - mustRegister() - - FeatureGateNewOLMCatalogdAPIV1Metas = newFeatureGate("NewOLMCatalogdAPIV1Metas"). - reportProblemsToJiraComponent("olm"). - contactPerson("jordank"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1749"). - enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateNewOLMPreflightPermissionChecks = newFeatureGate("NewOLMPreflightPermissionChecks"). - reportProblemsToJiraComponent("olm"). - contactPerson("tshort"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1768"). - enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateNewOLMOwnSingleNamespace = newFeatureGate("NewOLMOwnSingleNamespace"). - reportProblemsToJiraComponent("olm"). - contactPerson("nschieder"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1849"). - enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateNewOLMWebhookProviderOpenshiftServiceCA = newFeatureGate("NewOLMWebhookProviderOpenshiftServiceCA"). - reportProblemsToJiraComponent("olm"). - contactPerson("pegoncal"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1844"). - enableForClusterProfile(SelfManaged, configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateNewOLMBoxCutterRuntime = newFeatureGate("NewOLMBoxCutterRuntime"). - reportProblemsToJiraComponent("olm"). - contactPerson("pegoncal"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1890"). - mustRegister() - - FeatureGateInsightsOnDemandDataGather = newFeatureGate("InsightsOnDemandDataGather"). - reportProblemsToJiraComponent("insights"). - contactPerson("tremes"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateInsightsConfig = newFeatureGate("InsightsConfig"). - reportProblemsToJiraComponent("insights"). - contactPerson("tremes"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateMetricsCollectionProfiles = newFeatureGate("MetricsCollectionProfiles"). - reportProblemsToJiraComponent("Monitoring"). - contactPerson("rexagod"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateClusterAPIInstallIBMCloud = newFeatureGate("ClusterAPIInstallIBMCloud"). - reportProblemsToJiraComponent("Installer"). - contactPerson("cjschaef"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateMachineAPIMigration = newFeatureGate("MachineAPIMigration"). - reportProblemsToJiraComponent("OCPCLOUD"). - contactPerson("jspeed"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateClusterAPIMachineManagement = newFeatureGate("ClusterAPIMachineManagement"). - reportProblemsToJiraComponent("Cloud Compute / Cluster API Providers"). - contactPerson("ddonati"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1465"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateClusterAPIMachineManagementVSphere = newFeatureGate("ClusterAPIMachineManagementVSphere"). - reportProblemsToJiraComponent("SPLAT"). - contactPerson("jcpowermac"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1465"). - enableIn(configv1.DevPreviewNoUpgrade). - mustRegister() - - FeatureGateClusterMonitoringConfig = newFeatureGate("ClusterMonitoringConfig"). - reportProblemsToJiraComponent("Monitoring"). - contactPerson("marioferh"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateMultiArchInstallAzure = newFeatureGate("MultiArchInstallAzure"). - reportProblemsToJiraComponent("Installer"). - contactPerson("r4f4"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - mustRegister() - - FeatureGateImageStreamImportMode = newFeatureGate("ImageStreamImportMode"). - reportProblemsToJiraComponent("Multi-Arch"). - contactPerson("psundara"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateUserNamespacesSupport = newFeatureGate("UserNamespacesSupport"). - reportProblemsToJiraComponent("Node"). - contactPerson("haircommander"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/127"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). - mustRegister() - - // Note: this feature is perma-alpha, but it is safe and desireable to enable. - // It was an oversight in upstream to not remove the feature gate after the version skew became safe in 1.33. - // See https://github.com/kubernetes/enhancements/tree/d4226c42/keps/sig-node/127-user-namespaces#pod-security-standards-pss-integration - FeatureGateUserNamespacesPodSecurityStandards = newFeatureGate("UserNamespacesPodSecurityStandards"). - reportProblemsToJiraComponent("Node"). - contactPerson("haircommander"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/127"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). - mustRegister() - - FeatureGateProcMountType = newFeatureGate("ProcMountType"). - reportProblemsToJiraComponent("Node"). - contactPerson("haircommander"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/4265"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). - mustRegister() - - FeatureGateVSphereMultiNetworks = newFeatureGate("VSphereMultiNetworks"). - reportProblemsToJiraComponent("SPLAT"). - contactPerson("rvanderp"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateIngressControllerDynamicConfigurationManager = newFeatureGate("IngressControllerDynamicConfigurationManager"). - reportProblemsToJiraComponent("Networking/router"). - contactPerson("miciah"). - productScope(ocpSpecific). - enhancementPR(legacyFeatureGateWithoutEnhancement). - enableIn(configv1.DevPreviewNoUpgrade). - mustRegister() - - FeatureGateMinimumKubeletVersion = newFeatureGate("MinimumKubeletVersion"). - reportProblemsToJiraComponent("Node"). - contactPerson("haircommander"). - productScope(ocpSpecific). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - enhancementPR("https://github.com/openshift/enhancements/pull/1697"). - mustRegister() - - FeatureGateNutanixMultiSubnets = newFeatureGate("NutanixMultiSubnets"). - reportProblemsToJiraComponent("Cloud Compute / Nutanix Provider"). - contactPerson("yanhli"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1711"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateKMSEncryptionProvider = newFeatureGate("KMSEncryptionProvider"). - reportProblemsToJiraComponent("kube-apiserver"). - contactPerson("swghosh"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1682"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateHighlyAvailableArbiter = newFeatureGate("HighlyAvailableArbiter"). - reportProblemsToJiraComponent("Two Node with Arbiter"). - contactPerson("eggfoobar"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1674"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). - mustRegister() - - FeatureGateCVOConfiguration = newFeatureGate("ClusterVersionOperatorConfiguration"). - reportProblemsToJiraComponent("Cluster Version Operator"). - contactPerson("dhurta"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1492"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateGCPCustomAPIEndpoints = newFeatureGate("GCPCustomAPIEndpoints"). - reportProblemsToJiraComponent("Installer"). - contactPerson("barbacbd"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1492"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateDyanmicServiceEndpointIBMCloud = newFeatureGate("DyanmicServiceEndpointIBMCloud"). - reportProblemsToJiraComponent("Cloud Compute / IBM Provider"). - contactPerson("jared-hayes-dev"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1712"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateSELinuxMount = newFeatureGate("SELinuxMount"). - reportProblemsToJiraComponent("Storage / Kubernetes"). - contactPerson("jsafrane"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/1710"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateDualReplica = newFeatureGate("DualReplica"). - reportProblemsToJiraComponent("Two Node Fencing"). - contactPerson("jaypoulz"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1675"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateGatewayAPIController = newFeatureGate("GatewayAPIController"). - reportProblemsToJiraComponent("Routing"). - contactPerson("miciah"). - productScope(ocpSpecific). - // Previously, the "GatewayAPI" feature gate managed both the GatewayAPI CRDs - // and the Gateway Controller. However, with the introduction of Gateway CRD - // lifecycle management (EP#1756), these responsibilities were separated. - // A dedicated feature gate now controls the Gateway Controller to distinguish - // its production readiness from that of the CRDs. - enhancementPR("https://github.com/openshift/enhancements/pull/1756"). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureShortCertRotation = newFeatureGate("ShortCertRotation"). - reportProblemsToJiraComponent("kube-apiserver"). - contactPerson("vrutkovs"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1670"). - mustRegister() - - FeatureGateVSphereConfigurableMaxAllowedBlockVolumesPerNode = newFeatureGate("VSphereConfigurableMaxAllowedBlockVolumesPerNode"). - reportProblemsToJiraComponent("Storage / Kubernetes External Components"). - contactPerson("rbednar"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1748"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateAzureMultiDisk = newFeatureGate("AzureMultiDisk"). - reportProblemsToJiraComponent("splat"). - contactPerson("jcpowermac"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1779"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateStoragePerformantSecurityPolicy = newFeatureGate("StoragePerformantSecurityPolicy"). - reportProblemsToJiraComponent("Storage / Kubernetes External Components"). - contactPerson("hekumar"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1804"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). - mustRegister() - - FeatureGateMultiDiskSetup = newFeatureGate("MultiDiskSetup"). - reportProblemsToJiraComponent("splat"). - contactPerson("jcpowermac"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1805"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateAWSDedicatedHosts = newFeatureGate("AWSDedicatedHosts"). - reportProblemsToJiraComponent("splat"). - contactPerson("rvanderp3"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1781"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateVSphereMixedNodeEnv = newFeatureGate("VSphereMixedNodeEnv"). - reportProblemsToJiraComponent("splat"). - contactPerson("vr4manta"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1772"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGatePreconfiguredUDNAddresses = newFeatureGate("PreconfiguredUDNAddresses"). - reportProblemsToJiraComponent("Networking/ovn-kubernetes"). - contactPerson("kyrtapz"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1793"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). - mustRegister() - - FeatureGateAWSServiceLBNetworkSecurityGroup = newFeatureGate("AWSServiceLBNetworkSecurityGroup"). - reportProblemsToJiraComponent("Cloud Compute / Cloud Controller Manager"). - contactPerson("mtulio"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1802"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateImageVolume = newFeatureGate("ImageVolume"). - reportProblemsToJiraComponent("Node"). - contactPerson("haircommander"). - productScope(kubernetes). - enhancementPR("https://github.com/openshift/enhancements/pull/1792"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). - mustRegister() - - FeatureGateNoRegistryClusterInstall = newFeatureGate("NoRegistryClusterInstall"). - reportProblemsToJiraComponent("Installer / Agent based installation"). - contactPerson("andfasano"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1821"). - enableForClusterProfile(SelfManaged, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateGCPClusterHostedDNSInstall = newFeatureGate("GCPClusterHostedDNSInstall"). - reportProblemsToJiraComponent("Installer"). - contactPerson("barbacbd"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1468"). - enableIn(configv1.Default, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateAWSClusterHostedDNSInstall = newFeatureGate("AWSClusterHostedDNSInstall"). - reportProblemsToJiraComponent("Installer"). - contactPerson("barbacbd"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1468"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateGCPCustomAPIEndpointsInstall = newFeatureGate("GCPCustomAPIEndpointsInstall"). - reportProblemsToJiraComponent("Installer"). - contactPerson("barbacbd"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1492"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateIrreconcilableMachineConfig = newFeatureGate("IrreconcilableMachineConfig"). - reportProblemsToJiraComponent("MachineConfigOperator"). - contactPerson("pabrodri"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1785"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - FeatureGateAWSDualStackInstall = newFeatureGate("AWSDualStackInstall"). - reportProblemsToJiraComponent("Installer"). - contactPerson("sadasu"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1806"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateAzureDualStackInstall = newFeatureGate("AzureDualStackInstall"). - reportProblemsToJiraComponent("Installer"). - contactPerson("jhixson74"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1806"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateGCPDualStackInstall = newFeatureGate("GCPDualStackInstall"). - reportProblemsToJiraComponent("Installer"). - contactPerson("barbacbd"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1806"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureCBORServingAndStorage = newFeatureGate("CBORServingAndStorage"). - reportProblemsToJiraComponent("kube-apiserver"). - contactPerson("benluddy"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/4222"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureCBORClientsAllowCBOR = newFeatureGate("ClientsAllowCBOR"). - reportProblemsToJiraComponent("kube-apiserver"). - contactPerson("benluddy"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/4222"). - mustRegister() - - FeatureClientsPreferCBOR = newFeatureGate("ClientsPreferCBOR"). - reportProblemsToJiraComponent("kube-apiserver"). - contactPerson("benluddy"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/4222"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureEventTTL = newFeatureGate("EventTTL"). - reportProblemsToJiraComponent("kube-apiserver"). - contactPerson("tjungblu"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1857"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateMutableCSINodeAllocatableCount = newFeatureGate("MutableCSINodeAllocatableCount"). - reportProblemsToJiraComponent("Storage / Kubernetes External Components"). - contactPerson("jsafrane"). - productScope(kubernetes). - enhancementPR("https://github.com/kubernetes/enhancements/issues/4876"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - FeatureGateOSStreams = newFeatureGate("OSStreams"). - reportProblemsToJiraComponent("MachineConfigOperator"). - contactPerson("pabrodri"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1874"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateCRDCompatibilityRequirementOperator = newFeatureGate("CRDCompatibilityRequirementOperator"). - reportProblemsToJiraComponent("Cloud Compute / Cluster API Providers"). - contactPerson("ddonati"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1845"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - FeatureGateOnPremDNSRecords = newFeatureGate("OnPremDNSRecords"). - reportProblemsToJiraComponent("Networking / On-Prem DNS"). - contactPerson("bnemec"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1803"). - enableIn(configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade). - mustRegister() - - FeatureGateProvisioningRequestAvailable = newFeatureGate("ProvisioningRequestAvailable"). - reportProblemsToJiraComponent("Cluster Autoscaler"). - contactPerson("elmiko"). - productScope(ocpSpecific). - enhancementPR("https://github.com/openshift/enhancements/pull/1752"). - enableIn(configv1.DevPreviewNoUpgrade). - mustRegister() - - FeatureGateHyperShiftOnlyDynamicResourceAllocation = newFeatureGate("HyperShiftOnlyDynamicResourceAllocation"). - reportProblemsToJiraComponent("hypershift"). - contactPerson("csrwng"). - productScope(ocpSpecific). - enhancementPR("https://github.com/kubernetes/enhancements/issues/4381"). - enableForClusterProfile(Hypershift, configv1.DevPreviewNoUpgrade, configv1.TechPreviewNoUpgrade, configv1.Default). - mustRegister() -) diff --git a/vendor/github.com/openshift/api/features/legacyfeaturegates.go b/vendor/github.com/openshift/api/features/legacyfeaturegates.go deleted file mode 100644 index dd11fdf6632a..000000000000 --- a/vendor/github.com/openshift/api/features/legacyfeaturegates.go +++ /dev/null @@ -1,119 +0,0 @@ -package features - -import "k8s.io/apimachinery/pkg/util/sets" - -var legacyFeatureGates = sets.New( - "AWSClusterHostedDNS", - // never add to this list, if you think you have an exception ask @deads2k - "AWSEFSDriverVolumeMetrics", - // never add to this list, if you think you have an exception ask @deads2k - "AdditionalRoutingCapabilities", - // never add to this list, if you think you have an exception ask @deads2k - "AdminNetworkPolicy", - // never add to this list, if you think you have an exception ask @deads2k - "AlibabaPlatform", - // never add to this list, if you think you have an exception ask @deads2k - "AutomatedEtcdBackup", - // never add to this list, if you think you have an exception ask @deads2k - "AzureWorkloadIdentity", - // never add to this list, if you think you have an exception ask @deads2k - "BootcNodeManagement", - // never add to this list, if you think you have an exception ask @deads2k - "BuildCSIVolumes", - // never add to this list, if you think you have an exception ask @deads2k - "ClusterAPIInstall", - // never add to this list, if you think you have an exception ask @deads2k - "ClusterAPIInstallIBMCloud", - // never add to this list, if you think you have an exception ask @deads2k - "ClusterMonitoringConfig", - // never add to this list, if you think you have an exception ask @deads2k - "DNSNameResolver", - // never add to this list, if you think you have an exception ask @deads2k - "EtcdBackendQuota", - // never add to this list, if you think you have an exception ask @deads2k - "Example", - // never add to this list, if you think you have an exception ask @deads2k - "Example2", - // never add to this list, if you think you have an exception ask @deads2k - "GCPClusterHostedDNS", - // never add to this list, if you think you have an exception ask @deads2k - "GatewayAPI", - // never add to this list, if you think you have an exception ask @deads2k - "HardwareSpeed", - // never add to this list, if you think you have an exception ask @deads2k - "ImageStreamImportMode", - // never add to this list, if you think you have an exception ask @deads2k - "IngressControllerDynamicConfigurationManager", - // never add to this list, if you think you have an exception ask @deads2k - "IngressControllerLBSubnetsAWS", - // never add to this list, if you think you have an exception ask @deads2k - "InsightsConfig", - // never add to this list, if you think you have an exception ask @deads2k - "InsightsConfigAPI", - // never add to this list, if you think you have an exception ask @deads2k - "InsightsOnDemandDataGather", - // never add to this list, if you think you have an exception ask @deads2k - "InsightsRuntimeExtractor", - // never add to this list, if you think you have an exception ask @deads2k - "KMSv1", - // never add to this list, if you think you have an exception ask @deads2k - "MachineAPIMigration", - // never add to this list, if you think you have an exception ask @deads2k - "MachineAPIOperatorDisableMachineHealthCheckController", - // never add to this list, if you think you have an exception ask @deads2k - "MachineAPIProviderOpenStack", - // never add to this list, if you think you have an exception ask @deads2k - "MachineConfigNodes", - // never add to this list, if you think you have an exception ask @deads2k - "ManagedBootImages", - // never add to this list, if you think you have an exception ask @deads2k - "ManagedBootImagesAWS", - // never add to this list, if you think you have an exception ask @deads2k - "MetricsCollectionProfiles", - // never add to this list, if you think you have an exception ask @deads2k - "MixedCPUsAllocation", - // never add to this list, if you think you have an exception ask @deads2k - "MultiArchInstallAWS", - // never add to this list, if you think you have an exception ask @deads2k - "MultiArchInstallAzure", - // never add to this list, if you think you have an exception ask @deads2k - "MultiArchInstallGCP", - // never add to this list, if you think you have an exception ask @deads2k - "NetworkDiagnosticsConfig", - // never add to this list, if you think you have an exception ask @deads2k - "NetworkLiveMigration", - // never add to this list, if you think you have an exception ask @deads2k - "NetworkSegmentation", - // never add to this list, if you think you have an exception ask @deads2k - "NewOLM", - // never add to this list, if you think you have an exception ask @deads2k - "OVNObservability", - // never add to this list, if you think you have an exception ask @deads2k - "PersistentIPsForVirtualization", - // never add to this list, if you think you have an exception ask @deads2k - "PinnedImages", - // never add to this list, if you think you have an exception ask @deads2k - "PrivateHostedZoneAWS", - // never add to this list, if you think you have an exception ask @deads2k - "RouteAdvertisements", - // never add to this list, if you think you have an exception ask @deads2k - "RouteExternalCertificate", - // never add to this list, if you think you have an exception ask @deads2k - "SetEIPForNLBIngressController", - // never add to this list, if you think you have an exception ask @deads2k - "SignatureStores", - // never add to this list, if you think you have an exception ask @deads2k - "SigstoreImageVerification", - // never add to this list, if you think you have an exception ask @deads2k - "UpgradeStatus", - // never add to this list, if you think you have an exception ask @deads2k - "VSphereControlPlaneMachineSet", - // never add to this list, if you think you have an exception ask @deads2k - "VSphereDriverConfiguration", - // never add to this list, if you think you have an exception ask @deads2k - "VSphereMultiNetworks", - // never add to this list, if you think you have an exception ask @deads2k - "VSphereMultiVCenters", - // never add to this list, if you think you have an exception ask @deads2k - "VSphereStaticIPs", -) diff --git a/vendor/github.com/openshift/api/features/util.go b/vendor/github.com/openshift/api/features/util.go deleted file mode 100644 index 59bb7bff4078..000000000000 --- a/vendor/github.com/openshift/api/features/util.go +++ /dev/null @@ -1,224 +0,0 @@ -package features - -import ( - "fmt" - configv1 "github.com/openshift/api/config/v1" - "net/url" - "strings" -) - -// FeatureGateDescription is a golang-only interface used to contains details for a feature gate. -type FeatureGateDescription struct { - // FeatureGateAttributes is the information that appears in the API - FeatureGateAttributes configv1.FeatureGateAttributes - - // OwningJiraComponent is the jira component that owns most of the impl and first assignment for the bug. - // This is the team that owns the feature long term. - OwningJiraComponent string - // ResponsiblePerson is the person who is on the hook for first contact. This is often, but not always, a team lead. - // It is someone who can make the promise on the behalf of the team. - ResponsiblePerson string - // OwningProduct is the product that owns the lifecycle of the gate. - OwningProduct OwningProduct - // EnhancementPR is the PR for the enhancement. - EnhancementPR string -} - -type FeatureGateEnabledDisabled struct { - Enabled []FeatureGateDescription - Disabled []FeatureGateDescription -} - -type ClusterProfileName string - -var ( - Hypershift = ClusterProfileName("include.release.openshift.io/ibm-cloud-managed") - SelfManaged = ClusterProfileName("include.release.openshift.io/self-managed-high-availability") - AllClusterProfiles = []ClusterProfileName{Hypershift, SelfManaged} -) - -type OwningProduct string - -var ( - ocpSpecific = OwningProduct("OCP") - kubernetes = OwningProduct("Kubernetes") -) - -type featureGateBuilder struct { - name string - owningJiraComponent string - responsiblePerson string - owningProduct OwningProduct - enhancementPRURL string - - statusByClusterProfileByFeatureSet map[ClusterProfileName]map[configv1.FeatureSet]bool -} - -const ( - legacyFeatureGateWithoutEnhancement = "FeatureGate predates 4.18" -) - -// newFeatureGate featuregate are disabled in every FeatureSet and selectively enabled -func newFeatureGate(name string) *featureGateBuilder { - b := &featureGateBuilder{ - name: name, - statusByClusterProfileByFeatureSet: map[ClusterProfileName]map[configv1.FeatureSet]bool{}, - } - for _, clusterProfile := range AllClusterProfiles { - byFeatureSet := map[configv1.FeatureSet]bool{} - for _, featureSet := range configv1.AllFixedFeatureSets { - byFeatureSet[featureSet] = false - } - b.statusByClusterProfileByFeatureSet[clusterProfile] = byFeatureSet - } - return b -} - -func (b *featureGateBuilder) reportProblemsToJiraComponent(owningJiraComponent string) *featureGateBuilder { - b.owningJiraComponent = owningJiraComponent - return b -} - -func (b *featureGateBuilder) contactPerson(responsiblePerson string) *featureGateBuilder { - b.responsiblePerson = responsiblePerson - return b -} - -func (b *featureGateBuilder) productScope(owningProduct OwningProduct) *featureGateBuilder { - b.owningProduct = owningProduct - return b -} - -func (b *featureGateBuilder) enhancementPR(url string) *featureGateBuilder { - b.enhancementPRURL = url - return b -} - -func (b *featureGateBuilder) enableIn(featureSets ...configv1.FeatureSet) *featureGateBuilder { - for clusterProfile := range b.statusByClusterProfileByFeatureSet { - for _, featureSet := range featureSets { - b.statusByClusterProfileByFeatureSet[clusterProfile][featureSet] = true - } - } - return b -} - -func (b *featureGateBuilder) enableForClusterProfile(clusterProfile ClusterProfileName, featureSets ...configv1.FeatureSet) *featureGateBuilder { - for _, featureSet := range featureSets { - b.statusByClusterProfileByFeatureSet[clusterProfile][featureSet] = true - } - return b -} - -func (b *featureGateBuilder) register() (configv1.FeatureGateName, error) { - if len(b.name) == 0 { - return "", fmt.Errorf("missing name") - } - if len(b.owningJiraComponent) == 0 { - return "", fmt.Errorf("missing owningJiraComponent") - } - if len(b.responsiblePerson) == 0 { - return "", fmt.Errorf("missing responsiblePerson") - } - if len(b.owningProduct) == 0 { - return "", fmt.Errorf("missing owningProduct") - } - _, enhancementPRErr := url.Parse(b.enhancementPRURL) - switch { - case b.enhancementPRURL == legacyFeatureGateWithoutEnhancement: - if !legacyFeatureGates.Has(b.name) { - return "", fmt.Errorf("FeatureGate/%s is a new feature gate, not an existing one. It must have an enhancementPR with GA Graduation Criteria like https://github.com/openshift/enhancements/pull/#### or https://github.com/kubernetes/enhancements/issues/####", b.name) - } - - case len(b.enhancementPRURL) == 0: - return "", fmt.Errorf("FeatureGate/%s is missing an enhancementPR with GA Graduation Criteria like https://github.com/openshift/enhancements/pull/#### or https://github.com/kubernetes/enhancements/issues/####", b.name) - - case !strings.HasPrefix(b.enhancementPRURL, "https://github.com/openshift/enhancements/pull/") && !strings.HasPrefix(b.enhancementPRURL, "https://github.com/kubernetes/enhancements/issues/"): - return "", fmt.Errorf("FeatureGate/%s enhancementPR format is incorrect; must be like https://github.com/openshift/enhancements/pull/#### or https://github.com/kubernetes/enhancements/issues/####", b.name) - - case enhancementPRErr != nil: - return "", fmt.Errorf("FeatureGate/%s is enhancementPR is invalid: %w", b.name, enhancementPRErr) - } - - featureGateName := configv1.FeatureGateName(b.name) - description := FeatureGateDescription{ - FeatureGateAttributes: configv1.FeatureGateAttributes{ - Name: featureGateName, - }, - OwningJiraComponent: b.owningJiraComponent, - ResponsiblePerson: b.responsiblePerson, - OwningProduct: b.owningProduct, - EnhancementPR: b.enhancementPRURL, - } - - // statusByClusterProfileByFeatureSet is initialized by constructor to be false for every combination - for clusterProfile, byFeatureSet := range b.statusByClusterProfileByFeatureSet { - for featureSet, enabled := range byFeatureSet { - if _, ok := allFeatureGates[clusterProfile]; !ok { - allFeatureGates[clusterProfile] = map[configv1.FeatureSet]*FeatureGateEnabledDisabled{} - } - if _, ok := allFeatureGates[clusterProfile][featureSet]; !ok { - allFeatureGates[clusterProfile][featureSet] = &FeatureGateEnabledDisabled{} - } - - if enabled { - allFeatureGates[clusterProfile][featureSet].Enabled = append(allFeatureGates[clusterProfile][featureSet].Enabled, description) - } else { - allFeatureGates[clusterProfile][featureSet].Disabled = append(allFeatureGates[clusterProfile][featureSet].Disabled, description) - } - } - } - - return featureGateName, nil -} - -func (b *featureGateBuilder) mustRegister() configv1.FeatureGateName { - ret, err := b.register() - if err != nil { - panic(err) - } - return ret -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *FeatureGateEnabledDisabled) DeepCopyInto(out *FeatureGateEnabledDisabled) { - *out = *in - if in.Enabled != nil { - in, out := &in.Enabled, &out.Enabled - *out = make([]FeatureGateDescription, len(*in)) - copy(*out, *in) - } - if in.Disabled != nil { - in, out := &in.Disabled, &out.Disabled - *out = make([]FeatureGateDescription, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureGateEnabledDisabled. -func (in *FeatureGateEnabledDisabled) DeepCopy() *FeatureGateEnabledDisabled { - if in == nil { - return nil - } - out := new(FeatureGateEnabledDisabled) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *FeatureGateDescription) DeepCopyInto(out *FeatureGateDescription) { - *out = *in - out.FeatureGateAttributes = in.FeatureGateAttributes - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new FeatureGateDescription. -func (in *FeatureGateDescription) DeepCopy() *FeatureGateDescription { - if in == nil { - return nil - } - out := new(FeatureGateDescription) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/Makefile b/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/Makefile deleted file mode 100644 index 5943b2583a45..000000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/Makefile +++ /dev/null @@ -1,3 +0,0 @@ -.PHONY: test -test: - make -C ../../tests test GINKGO_EXTRA_ARGS=--focus="machineconfiguration.openshift.io/v1alpha1" diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/doc.go b/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/doc.go deleted file mode 100644 index 587680387784..000000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/doc.go +++ /dev/null @@ -1,7 +0,0 @@ -// +k8s:deepcopy-gen=package,register -// +groupName=machineconfiguration.openshift.io -// +k8s:defaulter-gen=TypeMeta -// +k8s:openapi-gen=true - -// Package v1alpha1 is the v1alpha1 version of the API. -package v1alpha1 diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/register.go b/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/register.go deleted file mode 100644 index 27610a91bc2e..000000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/register.go +++ /dev/null @@ -1,49 +0,0 @@ -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/runtime" - "k8s.io/apimachinery/pkg/runtime/schema" -) - -var ( - GroupName = "machineconfiguration.openshift.io" - GroupVersion = schema.GroupVersion{Group: GroupName, Version: "v1alpha1"} - schemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) - // Install is a function which adds this version to a scheme - Install = schemeBuilder.AddToScheme - - // SchemeGroupVersion generated code relies on this name - // Deprecated - SchemeGroupVersion = GroupVersion - // AddToScheme exists solely to keep the old generators creating valid code - // DEPRECATED - AddToScheme = schemeBuilder.AddToScheme -) - -// Adds the list of known types to api.Scheme. -func addKnownTypes(scheme *runtime.Scheme) error { - scheme.AddKnownTypes(GroupVersion, - &MachineConfigNode{}, - &MachineConfigNodeList{}, - &PinnedImageSet{}, - &PinnedImageSetList{}, - &OSImageStream{}, - &OSImageStreamList{}, - &InternalReleaseImage{}, - &InternalReleaseImageList{}, - ) - metav1.AddToGroupVersion(scheme, GroupVersion) - return nil -} - -// Resource generated code relies on this being here, but it logically belongs to the group -// DEPRECATED -func Resource(resource string) schema.GroupResource { - return schema.GroupResource{Group: GroupName, Resource: resource} -} - -// Kind is used to validate existence of a resource kind in this API group -func Kind(kind string) schema.GroupKind { - return schema.GroupKind{Group: GroupName, Kind: kind} -} diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types.go b/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types.go deleted file mode 100644 index dd5792602b59..000000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types.go +++ /dev/null @@ -1,10 +0,0 @@ -package v1alpha1 - -// ImageDigestFormat is a type that conforms to the format host[:port][/namespace]/name@sha256:. -// The digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. -// The length of the field must be between 1 to 447 characters. -// +kubebuilder:validation:MinLength=1 -// +kubebuilder:validation:MaxLength=447 -// +kubebuilder:validation:XValidation:rule=`(self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$'))`,message="the OCI Image reference must end with a valid '@sha256:' suffix, where '' is 64 characters long" -// +kubebuilder:validation:XValidation:rule=`(self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$'))`,message="the OCI Image name should follow the host[:port][/namespace]/name format, resembling a valid URL without the scheme" -type ImageDigestFormat string diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_internalreleaseimage.go b/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_internalreleaseimage.go deleted file mode 100644 index cd888c967835..000000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_internalreleaseimage.go +++ /dev/null @@ -1,178 +0,0 @@ -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +kubebuilder:object:root=true -// +kubebuilder:resource:path=internalreleaseimages,scope=Cluster -// +kubebuilder:subresource:status -// +openshift:api-approved.openshift.io=https://github.com/openshift/api/pull/2510 -// +openshift:file-pattern=cvoRunLevel=0000_80,operatorName=machine-config,operatorOrdering=01 -// +openshift:enable:FeatureGate=NoRegistryClusterInstall -// +kubebuilder:metadata:labels=openshift.io/operator-managed= -// +kubebuilder:validation:XValidation:rule="self.metadata.name == 'cluster'",message="internalreleaseimage is a singleton, .metadata.name must be 'cluster'" - -// InternalReleaseImage is used to keep track and manage a set -// of release bundles (OCP and OLM operators images) that are stored -// into the control planes nodes. -// -// Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. -// +openshift:compatibility-gen:level=4 -type InternalReleaseImage struct { - metav1.TypeMeta `json:",inline"` - - // metadata is the standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - // +required - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec describes the configuration of this internal release image. - // +required - Spec InternalReleaseImageSpec `json:"spec,omitempty,omitzero"` - - // status describes the last observed state of this internal release image. - // +optional - Status InternalReleaseImageStatus `json:"status,omitempty,omitzero"` -} - -// InternalReleaseImageSpec defines the desired state of a InternalReleaseImage. -type InternalReleaseImageSpec struct { - // releases is a list of release bundle identifiers that the user wants to - // add/remove to/from the control plane nodes. - // Entries must be unique, keyed on the name field. - // releases must contain at least one entry and must not exceed 16 entries. - // +kubebuilder:validation:MinItems=1 - // +kubebuilder:validation:MaxItems=16 - // +listType=map - // +listMapKey=name - // +required - Releases []InternalReleaseImageRef `json:"releases,omitempty"` -} - -// InternalReleaseImageRef is used to provide a simple reference for a release -// bundle. Currently it contains only the name field. -type InternalReleaseImageRef struct { - // name indicates the desired release bundle identifier. This field is required and must be between 1 and 64 characters long. - // The expected name format is ocp-release-bundle--. - // +required - // +kubebuilder:validation:MinLength=1 - // +kubebuilder:validation:MaxLength=64 - // +kubebuilder:validation:XValidation:rule=`self.matches('^ocp-release-bundle-[0-9]+\\.[0-9]+\\.[0-9]+-[A-Za-z0-9._-]+$')`,message="must be ocp-release-bundle-- and <= 64 chars" - Name string `json:"name,omitempty"` -} - -// InternalReleaseImageStatus describes the current state of a InternalReleaseImage. -type InternalReleaseImageStatus struct { - // conditions represent the observations of the InternalReleaseImage controller current state. - // Valid types are: Degraded. - // If Degraded is true, that means something has gone wrong in the controller. - // +listType=map - // +listMapKey=type - // +kubebuilder:validation:MinItems=1 - // +kubebuilder:validation:MaxItems=20 - // +optional - Conditions []metav1.Condition `json:"conditions,omitempty"` - // releases is a list of the release bundles currently owned and managed by the - // cluster. - // A release bundle content could be safely pulled only when its Conditions field - // contains at least an Available entry set to "True" and Degraded to "False". - // Entries must be unique, keyed on the name field. - // releases must contain at least one entry and must not exceed 32 entries. - // +listType=map - // +listMapKey=name - // +kubebuilder:validation:MinItems=1 - // +kubebuilder:validation:MaxItems=32 - // +required - Releases []InternalReleaseImageBundleStatus `json:"releases,omitempty"` -} - -// InternalReleaseImageStatusConditionType describes the possible states for InternalReleaseImageStatus. -// +enum -type InternalReleaseImageStatusConditionType string - -const ( - // InternalReleaseImageStatusConditionTypeDegraded describes a failure in the controller. - InternalReleaseImageStatusConditionTypeDegraded InternalReleaseImageStatusConditionType = "Degraded" -) - -type InternalReleaseImageBundleStatus struct { - // conditions represent the observations of an internal release image current state. Valid types are: - // Mounted, Installing, Available, Removing and Degraded. - // - // If Mounted is true, that means that a valid ISO has been discovered and mounted on one of the cluster nodes. - // If Installing is true, that means that a new release bundle is currently being copied on one (or more) cluster nodes, and not yet completed. - // If Available is true, it means that the release has been previously installed on all the cluster nodes, and it can be used. - // If Removing is true, it means that a release deletion is in progress on one (or more) cluster nodes, and not yet completed. - // If Degraded is true, that means something has gone wrong (possibly on one or more cluster nodes). - // - // In general, after installing a new release bundle, it is required to wait for the Conditions "Available" to become "True" (and all - // the other conditions to be equal to "False") before being able to pull its content. - // - // +listType=map - // +listMapKey=type - // +kubebuilder:validation:MinItems=1 - // +kubebuilder:validation:MaxItems=5 - // +optional - Conditions []metav1.Condition `json:"conditions,omitempty"` - // name indicates the desired release bundle identifier. This field is required and must be between 1 and 64 characters long. - // The expected name format is ocp-release-bundle--. - // +kubebuilder:validation:MinLength=1 - // +kubebuilder:validation:MaxLength=64 - // +kubebuilder:validation:XValidation:rule=`self.matches('^ocp-release-bundle-[0-9]+\\.[0-9]+\\.[0-9]+-[A-Za-z0-9._-]+$')`,message="must be ocp-release-bundle-- and <= 64 chars" - // +required - Name string `json:"name,omitempty"` - // image is an OCP release image referenced by digest. - // The format of the image pull spec is: host[:port][/namespace]/name@sha256:, - // where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. - // The length of the whole spec must be between 1 to 447 characters. - // The field is optional, and it will be provided after a release will be successfully installed. - // +kubebuilder:validation:MinLength=1 - // +kubebuilder:validation:MaxLength=447 - // +kubebuilder:validation:XValidation:rule=`(self.split('@').size() == 2 && self.split('@')[1].matches('^sha256:[a-f0-9]{64}$'))`,message="the OCI Image reference must end with a valid '@sha256:' suffix, where '' is 64 characters long" - // +kubebuilder:validation:XValidation:rule=`(self.split('@')[0].matches('^([a-zA-Z0-9-]+\\.)+[a-zA-Z0-9-]+(:[0-9]{2,5})?/([a-zA-Z0-9-_]{0,61}/)?[a-zA-Z0-9-_.]*?$'))`,message="the OCI Image name should follow the host[:port][/namespace]/name format, resembling a valid URL without the scheme" - // +optional - Image string `json:"image,omitempty"` -} - -// InternalReleaseImageConditionType is each possible state for each possible InternalReleaseImageBundleStatus -// conditions type. -// +enum -type InternalReleaseImageConditionType string - -const ( - // InternalReleaseImageConditionTypeMounted describes a new release, not yet installed, that has been discovered when an ISO has been attached to - // one of the control plane nodes - InternalReleaseImageConditionTypeMounted InternalReleaseImageConditionType = "Mounted" - // InternalReleaseImageConditionTypeInstalling describes a new release that is getting installed in the cluster. Due the size of the data - // transfered, the operation could take several minutes. The condition will remain in such state until all the control plane nodes will - // complete the installing operation - InternalReleaseImageConditionTypeInstalling InternalReleaseImageConditionType = "Installing" - // InternalReleaseImageConditionTypeAvailable describes a release that has been successfully installed in the cluster, ready to be consumed. This - // means that the release has been successfully installed on all the control plane nodes - InternalReleaseImageConditionTypeAvailable InternalReleaseImageConditionType = "Available" - // InternalReleaseImageConditionTypeRemoving describes an existing release that is getting removed from the cluster. The condition will remain in such - // state until all the control plane nodes will complete the removal operation - InternalReleaseImageConditionTypeRemoving InternalReleaseImageConditionType = "Removing" - // InternalReleaseImageConditionTypeDegraded describes a failure, happened in one or more control plane nodes, for the current release - InternalReleaseImageConditionTypeDegraded InternalReleaseImageConditionType = "Degraded" -) - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// InternalReleaseImageList is a list of InternalReleaseImage resources -// -// Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. -// +openshift:compatibility-gen:level=4 -type InternalReleaseImageList struct { - metav1.TypeMeta `json:",inline"` - - // metadata is the standard list's metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - metav1.ListMeta `json:"metadata"` - - Items []InternalReleaseImage `json:"items"` -} diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_machineconfignode.go b/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_machineconfignode.go deleted file mode 100644 index fdb6509373e3..000000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_machineconfignode.go +++ /dev/null @@ -1,273 +0,0 @@ -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +kubebuilder:object:root=true -// +kubebuilder:resource:path=machineconfignodes,scope=Cluster -// +kubebuilder:subresource:status -// +openshift:api-approved.openshift.io=https://github.com/openshift/api/pull/2256 -// +openshift:file-pattern=cvoRunLevel=0000_80,operatorName=machine-config,operatorOrdering=01 -// +openshift:enable:FeatureGate=MachineConfigNodes -// +kubebuilder:printcolumn:name="PoolName",type="string",JSONPath=.spec.pool.name,priority=0 -// +kubebuilder:printcolumn:name="DesiredConfig",type="string",JSONPath=.spec.configVersion.desired,priority=0 -// +kubebuilder:printcolumn:name="CurrentConfig",type="string",JSONPath=.status.configVersion.current,priority=0 -// +kubebuilder:printcolumn:name="Updated",type="string",JSONPath=.status.conditions[?(@.type=="Updated")].status,priority=0 -// +kubebuilder:printcolumn:name="UpdatePrepared",type="string",JSONPath=.status.conditions[?(@.type=="UpdatePrepared")].status,priority=1 -// +kubebuilder:printcolumn:name="UpdateExecuted",type="string",JSONPath=.status.conditions[?(@.type=="UpdateExecuted")].status,priority=1 -// +kubebuilder:printcolumn:name="UpdatePostActionComplete",type="string",JSONPath=.status.conditions[?(@.type=="UpdatePostActionComplete")].status,priority=1 -// +kubebuilder:printcolumn:name="UpdateComplete",type="string",JSONPath=.status.conditions[?(@.type=="UpdateComplete")].status,priority=1 -// +kubebuilder:printcolumn:name="Resumed",type="string",JSONPath=.status.conditions[?(@.type=="Resumed")].status,priority=1 -// +kubebuilder:printcolumn:name="UpdatedFilesAndOS",type="string",JSONPath=.status.conditions[?(@.type=="AppliedFilesAndOS")].status,priority=1 -// +kubebuilder:printcolumn:name="CordonedNode",type="string",JSONPath=.status.conditions[?(@.type=="Cordoned")].status,priority=1 -// +kubebuilder:printcolumn:name="DrainedNode",type="string",JSONPath=.status.conditions[?(@.type=="Drained")].status,priority=1 -// +kubebuilder:printcolumn:name="RebootedNode",type="string",JSONPath=.status.conditions[?(@.type=="RebootedNode")].status,priority=1 -// +kubebuilder:printcolumn:name="UncordonedNode",type="string",JSONPath=.status.conditions[?(@.type=="Uncordoned")].status,priority=1 -// +kubebuilder:metadata:labels=openshift.io/operator-managed= - -// MachineConfigNode describes the health of the Machines on the system -// Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. -// +openshift:compatibility-gen:level=4 -// +kubebuilder:validation:XValidation:rule="self.metadata.name == self.spec.node.name",message="spec.node.name should match metadata.name" -type MachineConfigNode struct { - metav1.TypeMeta `json:",inline"` - - // metadata is the standard object metadata. - // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec describes the configuration of the machine config node. - // +required - Spec MachineConfigNodeSpec `json:"spec"` - - // status describes the last observed state of this machine config node. - // +optional - Status MachineConfigNodeStatus `json:"status"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// MachineConfigNodeList describes all of the MachinesStates on the system -// -// Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. -// +openshift:compatibility-gen:level=4 -type MachineConfigNodeList struct { - metav1.TypeMeta `json:",inline"` - - // metadata is the standard list metadata. - // +optional - metav1.ListMeta `json:"metadata"` - - // items contains a collection of MachineConfigNode resources. - // +kubebuilder:validation:MaxItems=100 - // +optional - Items []MachineConfigNode `json:"items"` -} - -// MCOObjectReference holds information about an object the MCO either owns -// or modifies in some way -type MCOObjectReference struct { - // name is the name of the object being referenced. For example, this can represent a machine - // config pool or node name. - // Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting - // of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end - // with an alphanumeric character, and be at most 253 characters in length. - // +kubebuilder:validation:MaxLength:=253 - // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character." - // +required - Name string `json:"name"` -} - -// MachineConfigNodeSpec describes the MachineConfigNode we are managing. -type MachineConfigNodeSpec struct { - // node contains a reference to the node for this machine config node. - // +required - Node MCOObjectReference `json:"node"` - - // pool contains a reference to the machine config pool that this machine config node's - // referenced node belongs to. - // +required - Pool MCOObjectReference `json:"pool"` - - // configVersion holds the desired config version for the node targeted by this machine config node resource. - // The desired version represents the machine config the node will attempt to update to and gets set before the machine config operator validates - // the new machine config against the current machine config. - // +required - ConfigVersion MachineConfigNodeSpecMachineConfigVersion `json:"configVersion"` - - // pinnedImageSets is a user defined value that holds the names of the desired image sets that the node should pull and pin. - // +listType=map - // +listMapKey=name - // +kubebuilder:validation:MaxItems=100 - // +optional - // Tombstone: Functionality to correctly and consistely populate this field was not implemented in the MCO, so - // when applying a PIS, this field is not being updated. Since this field is not being used, it is being removed - // before this API is GAed. - // PinnedImageSets []MachineConfigNodeSpecPinnedImageSet `json:"pinnedImageSets,omitempty"` -} - -// MachineConfigNodeStatus holds the reported information on a particular machine config node. -type MachineConfigNodeStatus struct { - // conditions represent the observations of a machine config node's current state. - // +listType=map - // +listMapKey=type - // +kubebuilder:validation:MaxItems=20 - // +optional - Conditions []metav1.Condition `json:"conditions,omitempty"` - // observedGeneration represents the generation of the MachineConfigNode object observed by the Machine Config Operator's controller. - // This field is updated when the controller observes a change to the desiredConfig in the configVersion of the machine config node spec. - // +kubebuilder:validation:XValidation:rule="self >= oldSelf", message="observedGeneration must not decrease" - // +kubebuilder:validation:Minimum=0 - // +optional - ObservedGeneration int64 `json:"observedGeneration,omitempty"` - // configVersion describes the current and desired machine config version for this node. - // +required - ConfigVersion MachineConfigNodeStatusMachineConfigVersion `json:"configVersion"` - // pinnedImageSets describes the current and desired pinned image sets for this node. - // +listType=map - // +listMapKey=name - // +kubebuilder:validation:MaxItems=100 - // +optional - PinnedImageSets []MachineConfigNodeStatusPinnedImageSet `json:"pinnedImageSets,omitempty"` -} - -// MachineConfigNodeStatusPinnedImageSet holds information about the current, desired, and failed pinned image sets for the observed machine config node. -// +kubebuilder:validation:XValidation:rule="has(self.desiredGeneration) && has(self.currentGeneration) ? self.desiredGeneration >= self.currentGeneration : true",message="desired generation must be greater than or equal to the current generation" -// +kubebuilder:validation:XValidation:rule="has(self.lastFailedGeneration) && has(self.desiredGeneration) ? self.desiredGeneration >= self.lastFailedGeneration : true",message="desired generation must be greater than or equal to the last failed generation" -// +kubebuilder:validation:XValidation:rule="has(self.lastFailedGeneration) ? has(self.lastFailedGenerationError) : true",message="last failed generation error must be defined on image pull and pin failure" -type MachineConfigNodeStatusPinnedImageSet struct { - // name is the name of the pinned image set. - // Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting - // of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end - // with an alphanumeric character, and be at most 253 characters in length. - // +kubebuilder:validation:MaxLength:=253 - // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character." - // +required - Name string `json:"name"` - // currentGeneration is the generation of the pinned image set that has most recently been successfully pulled and pinned on this node. - // +kubebuilder:validation:XValidation:rule="self >= oldSelf", message="currentGeneration must not decrease" - // +kubebuilder:validation:Minimum=0 - // +optional - CurrentGeneration int32 `json:"currentGeneration,omitempty"` - // desiredGeneration is the generation of the pinned image set that is targeted to be pulled and pinned on this node. - // +kubebuilder:validation:XValidation:rule="self >= oldSelf", message="desiredGeneration must not decrease" - // +kubebuilder:validation:Minimum=0 - // +optional - DesiredGeneration int32 `json:"desiredGeneration,omitempty"` - // lastFailedGeneration is the generation of the most recent pinned image set that failed to be pulled and pinned on this node. - // +kubebuilder:validation:XValidation:rule="self >= oldSelf", message="lastFailedGeneration must not decrease" - // +kubebuilder:validation:Minimum=0 - // +optional - LastFailedGeneration int32 `json:"lastFailedGeneration,omitempty"` - // lastFailedGenerationError is the error explaining why the desired images failed to be pulled and pinned. - // The error is an empty string if the image pull and pin is successful. - // +kubebuilder:validation:MaxLength=32768 - // +optional - LastFailedGenerationError string `json:"lastFailedGenerationError,omitempty"` - // Previously, failures associated with pinning and pulling images where shared in a list of strings under `LastFailedGenerationErrors`. - // This field is being removed and a `LastFailedGenerationError` field of type string is being added in its place as this field will - // contain a single error and there is no need for a list anymore. - // Tombstone: legacy field no longer needed - // LastFailedGenerationErrors []string `json:"lastFailedGenerationErrors,omitempty"` -} - -// MachineConfigNodeStatusMachineConfigVersion holds the current and desired config versions as last updated in the MCN status. -// When the current and desired versions do not match, the machine config pool is processing an upgrade and the machine config node will -// monitor the upgrade process. -// When the current and desired versions do match, the machine config node will ignore these events given that certain operations -// happen both during the MCO's upgrade mode and the daily operations mode. -type MachineConfigNodeStatusMachineConfigVersion struct { - // current is the name of the machine config currently in use on the node. - // This value is updated once the machine config daemon has completed the update of the configuration for the node. - // This value should match the desired version unless an upgrade is in progress. - // Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting - // of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end - // with an alphanumeric character, and be at most 253 characters in length. - // +kubebuilder:validation:MaxLength:=253 - // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character." - // +optional - Current string `json:"current"` - // desired is the MachineConfig the node wants to upgrade to. - // This value gets set in the machine config node status once the machine config has been validated - // against the current machine config. - // Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting - // of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end - // with an alphanumeric character, and be at most 253 characters in length. - // +kubebuilder:validation:MaxLength:=253 - // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character." - // +required - Desired string `json:"desired"` -} - -// MachineConfigNodeSpecMachineConfigVersion holds the desired config version for the current observed machine config node. -// When Current is not equal to Desired, the MachineConfigOperator is in an upgrade phase and the machine config node will -// take account of upgrade related events. Otherwise, they will be ignored given that certain operations -// happen both during the MCO's upgrade mode and the daily operations mode. -type MachineConfigNodeSpecMachineConfigVersion struct { - // desired is the name of the machine config that the the node should be upgraded to. - // This value is set when the machine config pool generates a new version of its rendered configuration. - // When this value is changed, the machine config daemon starts the node upgrade process. - // This value gets set in the machine config node spec once the machine config has been targeted for upgrade and before it is validated. - // Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting - // of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end - // with an alphanumeric character, and be at most 253 characters in length. - // +kubebuilder:validation:MaxLength:=253 - // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character." - // +required - Desired string `json:"desired"` -} - -// Tombstone: This struct defines the type of `Spec.PinnedImageSets`, which is being removed. Therefore, this field -// is also being tombstoned. -// MachineConfigNodeSpecPinnedImageSet holds information on the desired pinned image sets that the current observed machine config node -// should pin and pull. -// type MachineConfigNodeSpecPinnedImageSet struct { -// // name is the name of the pinned image set. -// // Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting -// // of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end -// // with an alphanumeric character, and be at most 253 characters in length. -// // +kubebuilder:validation:MaxLength:=253 -// // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a lowercase RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character." -// // +required -// Name string `json:"name"` -// } - -// StateProgress is each possible state for each possible MachineConfigNodeType -// Please note: These conditions are subject to change. Both additions and deletions may be made. -// +enum -type StateProgress string - -const ( - // MachineConfigNodeUpdatePrepared describes a machine that is preparing in the daemon to trigger an update - MachineConfigNodeUpdatePrepared StateProgress = "UpdatePrepared" - // MachineConfigNodeUpdateExecuted describes a machine that has executed the body of the upgrade - MachineConfigNodeUpdateExecuted StateProgress = "UpdateExecuted" - // MachineConfigNodeUpdatePostActionComplete describes a machine that has executed its post update action - MachineConfigNodeUpdatePostActionComplete StateProgress = "UpdatePostActionComplete" - // MachineConfigNodeUpdateComplete describes a machine that has completed the core parts of an upgrade - MachineConfigNodeUpdateComplete StateProgress = "UpdateComplete" - // MachineConfigNodeUpdated describes a machine that is fully updated and has a matching desired and current config - MachineConfigNodeUpdated StateProgress = "Updated" - // MachineConfigNodeUpdateResumed describes a machine that has resumed normal processes - MachineConfigNodeResumed StateProgress = "Resumed" - // MachineConfigNodeUpdateDrained describes the part of the in progress phase where the node drains - MachineConfigNodeUpdateDrained StateProgress = "Drained" - // MachineConfigNodeUpdateFilesAndOS describes the part of the in progress phase where the nodes files and OS config change - MachineConfigNodeUpdateFilesAndOS StateProgress = "AppliedFilesAndOS" - // MachineConfigNodeUpdateCordoned describes the part of the in progress phase where the node cordons - MachineConfigNodeUpdateCordoned StateProgress = "Cordoned" - // MachineConfigNodeUpdateUncordoned describes the part of the completing phase where the node uncordons - MachineConfigNodeUpdateUncordoned StateProgress = "Uncordoned" - // MachineConfigNodeUpdateRebooted describes the part of the post action phase where the node reboots itself - MachineConfigNodeUpdateRebooted StateProgress = "RebootedNode" - // MachineConfigNodeNodeDegraded describes a machine that has failed to update to the desired machine config and is in a degraded state - MachineConfigNodeNodeDegraded StateProgress = "NodeDegraded" - // MachineConfigNodePinnedImageSetsProgressing describes a machine currently progressing to the desired pinned image sets - MachineConfigNodePinnedImageSetsProgressing StateProgress = "PinnedImageSetsProgressing" - // MachineConfigNodePinnedImageSetsDegraded describes a machine that has failed to progress to the desired pinned image sets - MachineConfigNodePinnedImageSetsDegraded StateProgress = "PinnedImageSetsDegraded" -) diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_osimagestream.go b/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_osimagestream.go deleted file mode 100644 index cb6163ddb739..000000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_osimagestream.go +++ /dev/null @@ -1,131 +0,0 @@ -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OSImageStream describes a set of streams and associated images available -// for the MachineConfigPools to be used as base OS images. -// -// The resource is a singleton named "cluster". -// -// Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. -// +openshift:compatibility-gen:level=4 -// +kubebuilder:object:root=true -// +kubebuilder:resource:path=osimagestreams,scope=Cluster -// +kubebuilder:subresource:status -// +openshift:api-approved.openshift.io=https://github.com/openshift/api/pull/2555 -// +openshift:file-pattern=cvoRunLevel=0000_80,operatorName=machine-config,operatorOrdering=01 -// +openshift:enable:FeatureGate=OSStreams -// +kubebuilder:metadata:labels=openshift.io/operator-managed= -// +kubebuilder:validation:XValidation:rule="self.metadata.name == 'cluster'",message="osimagestream is a singleton, .metadata.name must be 'cluster'" -type OSImageStream struct { - metav1.TypeMeta `json:",inline"` - - // metadata is the standard object's metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - // +optional - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec contains the desired OSImageStream config configuration. - // +required - Spec *OSImageStreamSpec `json:"spec,omitempty"` - - // status describes the last observed state of this OSImageStream. - // Populated by the MachineConfigOperator after reading release metadata. - // When not present, the controller has not yet reconciled this resource. - // +optional - Status OSImageStreamStatus `json:"status,omitempty,omitzero"` -} - -// OSImageStreamStatus describes the current state of a OSImageStream -// +kubebuilder:validation:XValidation:rule="self.defaultStream in self.availableStreams.map(s, s.name)",message="defaultStream must reference a stream name from availableStreams" -type OSImageStreamStatus struct { - - // availableStreams is a list of the available OS Image Streams that can be - // used as the base image for MachineConfigPools. - // availableStreams is required, must have at least one item, must not exceed - // 100 items, and must have unique entries keyed on the name field. - // - // +required - // +kubebuilder:validation:MinItems=1 - // +kubebuilder:validation:MaxItems=100 - // +listType=map - // +listMapKey=name - AvailableStreams []OSImageStreamSet `json:"availableStreams,omitempty"` - - // defaultStream is the name of the stream that should be used as the default - // when no specific stream is requested by a MachineConfigPool. - // - // It must be a valid RFC 1123 subdomain between 1 and 253 characters in length, - // consisting of lowercase alphanumeric characters, hyphens ('-'), and periods ('.'), - // and must reference the name of one of the streams in availableStreams. - // - // +required - // +kubebuilder:validation:MinLength=1 - // +kubebuilder:validation:MaxLength=253 - // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character." - DefaultStream string `json:"defaultStream,omitempty"` -} - -// OSImageStreamSpec defines the desired state of a OSImageStream. -type OSImageStreamSpec struct { -} - -type OSImageStreamSet struct { - // name is the required identifier of the stream. - // - // name is determined by the operator based on the OCI label of the - // discovered OS or Extension Image. - // - // Must be a valid RFC 1123 subdomain between 1 and 253 characters in length, - // consisting of lowercase alphanumeric characters, hyphens ('-'), and periods ('.'). - // - // +required - // +kubebuilder:validation:MinLength=1 - // +kubebuilder:validation:MaxLength=253 - // +kubebuilder:validation:XValidation:rule="!format.dns1123Subdomain().validate(self).hasValue()",message="a RFC 1123 subdomain must consist of lower case alphanumeric characters, '-' or '.', and must start and end with an alphanumeric character." - Name string `json:"name,omitempty"` - - // osImage is a required OS Image referenced by digest. - // - // osImage contains the immutable, fundamental operating system components, including the kernel - // and base utilities, that define the core environment for the node's host operating system. - // - // The format of the image pull spec is: host[:port][/namespace]/name@sha256:, - // where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. - // The length of the whole spec must be between 1 to 447 characters. - // +required - OSImage ImageDigestFormat `json:"osImage,omitempty"` - - // osExtensionsImage is a required OS Extensions Image referenced by digest. - // - // osExtensionsImage bundles the extra repositories used to enable extensions, augmenting - // the base operating system without modifying the underlying immutable osImage. - // - // The format of the image pull spec is: host[:port][/namespace]/name@sha256:, - // where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. - // The length of the whole spec must be between 1 to 447 characters. - // +required - OSExtensionsImage ImageDigestFormat `json:"osExtensionsImage,omitempty"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// OSImageStreamList is a list of OSImageStream resources -// -// Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. -// +openshift:compatibility-gen:level=4 -type OSImageStreamList struct { - metav1.TypeMeta `json:",inline"` - - // metadata is the standard list's metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - metav1.ListMeta `json:"metadata"` - - Items []OSImageStream `json:"items"` -} diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_pinnedimageset.go b/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_pinnedimageset.go deleted file mode 100644 index 4708609fc5d0..000000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/types_pinnedimageset.go +++ /dev/null @@ -1,91 +0,0 @@ -package v1alpha1 - -import ( - metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" -) - -// +genclient -// +genclient:nonNamespaced -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object -// +kubebuilder:object:root=true -// +kubebuilder:resource:path=pinnedimagesets,scope=Cluster -// +kubebuilder:subresource:status -// +openshift:api-approved.openshift.io=https://github.com/openshift/api/pull/1713 -// +openshift:file-pattern=cvoRunLevel=0000_80,operatorName=machine-config,operatorOrdering=01 -// +openshift:enable:FeatureGate=PinnedImages -// +kubebuilder:metadata:labels=openshift.io/operator-managed= - -// PinnedImageSet describes a set of images that should be pinned by CRI-O and -// pulled to the nodes which are members of the declared MachineConfigPools. -// -// Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. -// +openshift:compatibility-gen:level=4 -type PinnedImageSet struct { - metav1.TypeMeta `json:",inline"` - metav1.ObjectMeta `json:"metadata,omitempty"` - - // spec describes the configuration of this pinned image set. - // +required - Spec PinnedImageSetSpec `json:"spec"` - - // status describes the last observed state of this pinned image set. - // +optional - Status PinnedImageSetStatus `json:"status"` -} - -// PinnedImageSetStatus describes the current state of a PinnedImageSet. -type PinnedImageSetStatus struct { - // conditions represent the observations of a pinned image set's current state. - // +listType=map - // +listMapKey=type - // +optional - Conditions []metav1.Condition `json:"conditions,omitempty"` -} - -// PinnedImageSetSpec defines the desired state of a PinnedImageSet. -type PinnedImageSetSpec struct { - // pinnedImages is a list of OCI Image referenced by digest that should be - // pinned and pre-loaded by the nodes of a MachineConfigPool. - // Translates into a new file inside the /etc/crio/crio.conf.d directory - // with content similar to this: - // - // pinned_images = [ - // "quay.io/openshift-release-dev/ocp-release@sha256:...", - // "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", - // "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...", - // ... - // ] - // - // These image references should all be by digest, tags aren't allowed. - // +required - // +kubebuilder:validation:MinItems=1 - // +kubebuilder:validation:MaxItems=500 - // +listType=map - // +listMapKey=name - PinnedImages []PinnedImageRef `json:"pinnedImages"` -} - -type PinnedImageRef struct { - // name is an OCI Image referenced by digest. - // The format of the image pull spec is: host[:port][/namespace]/name@sha256:, - // where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. - // The length of the whole spec must be between 1 to 447 characters. - // +required - Name ImageDigestFormat `json:"name,omitempty"` -} - -// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object - -// PinnedImageSetList is a list of PinnedImageSet resources -// -// Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support. -// +openshift:compatibility-gen:level=4 -type PinnedImageSetList struct { - metav1.TypeMeta `json:",inline"` - - // metadata is the standard list's metadata. - // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata - metav1.ListMeta `json:"metadata"` - - Items []PinnedImageSet `json:"items"` -} diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.deepcopy.go b/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.deepcopy.go deleted file mode 100644 index 69b63f67789e..000000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.deepcopy.go +++ /dev/null @@ -1,574 +0,0 @@ -//go:build !ignore_autogenerated -// +build !ignore_autogenerated - -// Code generated by codegen. DO NOT EDIT. - -package v1alpha1 - -import ( - v1 "k8s.io/apimachinery/pkg/apis/meta/v1" - runtime "k8s.io/apimachinery/pkg/runtime" -) - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *InternalReleaseImage) DeepCopyInto(out *InternalReleaseImage) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalReleaseImage. -func (in *InternalReleaseImage) DeepCopy() *InternalReleaseImage { - if in == nil { - return nil - } - out := new(InternalReleaseImage) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *InternalReleaseImage) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *InternalReleaseImageBundleStatus) DeepCopyInto(out *InternalReleaseImageBundleStatus) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalReleaseImageBundleStatus. -func (in *InternalReleaseImageBundleStatus) DeepCopy() *InternalReleaseImageBundleStatus { - if in == nil { - return nil - } - out := new(InternalReleaseImageBundleStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *InternalReleaseImageList) DeepCopyInto(out *InternalReleaseImageList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]InternalReleaseImage, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalReleaseImageList. -func (in *InternalReleaseImageList) DeepCopy() *InternalReleaseImageList { - if in == nil { - return nil - } - out := new(InternalReleaseImageList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *InternalReleaseImageList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *InternalReleaseImageRef) DeepCopyInto(out *InternalReleaseImageRef) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalReleaseImageRef. -func (in *InternalReleaseImageRef) DeepCopy() *InternalReleaseImageRef { - if in == nil { - return nil - } - out := new(InternalReleaseImageRef) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *InternalReleaseImageSpec) DeepCopyInto(out *InternalReleaseImageSpec) { - *out = *in - if in.Releases != nil { - in, out := &in.Releases, &out.Releases - *out = make([]InternalReleaseImageRef, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalReleaseImageSpec. -func (in *InternalReleaseImageSpec) DeepCopy() *InternalReleaseImageSpec { - if in == nil { - return nil - } - out := new(InternalReleaseImageSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *InternalReleaseImageStatus) DeepCopyInto(out *InternalReleaseImageStatus) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - if in.Releases != nil { - in, out := &in.Releases, &out.Releases - *out = make([]InternalReleaseImageBundleStatus, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InternalReleaseImageStatus. -func (in *InternalReleaseImageStatus) DeepCopy() *InternalReleaseImageStatus { - if in == nil { - return nil - } - out := new(InternalReleaseImageStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MCOObjectReference) DeepCopyInto(out *MCOObjectReference) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MCOObjectReference. -func (in *MCOObjectReference) DeepCopy() *MCOObjectReference { - if in == nil { - return nil - } - out := new(MCOObjectReference) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MachineConfigNode) DeepCopyInto(out *MachineConfigNode) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - out.Spec = in.Spec - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNode. -func (in *MachineConfigNode) DeepCopy() *MachineConfigNode { - if in == nil { - return nil - } - out := new(MachineConfigNode) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MachineConfigNode) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MachineConfigNodeList) DeepCopyInto(out *MachineConfigNodeList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]MachineConfigNode, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeList. -func (in *MachineConfigNodeList) DeepCopy() *MachineConfigNodeList { - if in == nil { - return nil - } - out := new(MachineConfigNodeList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *MachineConfigNodeList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MachineConfigNodeSpec) DeepCopyInto(out *MachineConfigNodeSpec) { - *out = *in - out.Node = in.Node - out.Pool = in.Pool - out.ConfigVersion = in.ConfigVersion - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeSpec. -func (in *MachineConfigNodeSpec) DeepCopy() *MachineConfigNodeSpec { - if in == nil { - return nil - } - out := new(MachineConfigNodeSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MachineConfigNodeSpecMachineConfigVersion) DeepCopyInto(out *MachineConfigNodeSpecMachineConfigVersion) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeSpecMachineConfigVersion. -func (in *MachineConfigNodeSpecMachineConfigVersion) DeepCopy() *MachineConfigNodeSpecMachineConfigVersion { - if in == nil { - return nil - } - out := new(MachineConfigNodeSpecMachineConfigVersion) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MachineConfigNodeStatus) DeepCopyInto(out *MachineConfigNodeStatus) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - out.ConfigVersion = in.ConfigVersion - if in.PinnedImageSets != nil { - in, out := &in.PinnedImageSets, &out.PinnedImageSets - *out = make([]MachineConfigNodeStatusPinnedImageSet, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeStatus. -func (in *MachineConfigNodeStatus) DeepCopy() *MachineConfigNodeStatus { - if in == nil { - return nil - } - out := new(MachineConfigNodeStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MachineConfigNodeStatusMachineConfigVersion) DeepCopyInto(out *MachineConfigNodeStatusMachineConfigVersion) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeStatusMachineConfigVersion. -func (in *MachineConfigNodeStatusMachineConfigVersion) DeepCopy() *MachineConfigNodeStatusMachineConfigVersion { - if in == nil { - return nil - } - out := new(MachineConfigNodeStatusMachineConfigVersion) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *MachineConfigNodeStatusPinnedImageSet) DeepCopyInto(out *MachineConfigNodeStatusPinnedImageSet) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new MachineConfigNodeStatusPinnedImageSet. -func (in *MachineConfigNodeStatusPinnedImageSet) DeepCopy() *MachineConfigNodeStatusPinnedImageSet { - if in == nil { - return nil - } - out := new(MachineConfigNodeStatusPinnedImageSet) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OSImageStream) DeepCopyInto(out *OSImageStream) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - if in.Spec != nil { - in, out := &in.Spec, &out.Spec - *out = new(OSImageStreamSpec) - **out = **in - } - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSImageStream. -func (in *OSImageStream) DeepCopy() *OSImageStream { - if in == nil { - return nil - } - out := new(OSImageStream) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OSImageStream) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OSImageStreamList) DeepCopyInto(out *OSImageStreamList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]OSImageStream, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSImageStreamList. -func (in *OSImageStreamList) DeepCopy() *OSImageStreamList { - if in == nil { - return nil - } - out := new(OSImageStreamList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *OSImageStreamList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OSImageStreamSet) DeepCopyInto(out *OSImageStreamSet) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSImageStreamSet. -func (in *OSImageStreamSet) DeepCopy() *OSImageStreamSet { - if in == nil { - return nil - } - out := new(OSImageStreamSet) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OSImageStreamSpec) DeepCopyInto(out *OSImageStreamSpec) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSImageStreamSpec. -func (in *OSImageStreamSpec) DeepCopy() *OSImageStreamSpec { - if in == nil { - return nil - } - out := new(OSImageStreamSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *OSImageStreamStatus) DeepCopyInto(out *OSImageStreamStatus) { - *out = *in - if in.AvailableStreams != nil { - in, out := &in.AvailableStreams, &out.AvailableStreams - *out = make([]OSImageStreamSet, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OSImageStreamStatus. -func (in *OSImageStreamStatus) DeepCopy() *OSImageStreamStatus { - if in == nil { - return nil - } - out := new(OSImageStreamStatus) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PinnedImageRef) DeepCopyInto(out *PinnedImageRef) { - *out = *in - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PinnedImageRef. -func (in *PinnedImageRef) DeepCopy() *PinnedImageRef { - if in == nil { - return nil - } - out := new(PinnedImageRef) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PinnedImageSet) DeepCopyInto(out *PinnedImageSet) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ObjectMeta.DeepCopyInto(&out.ObjectMeta) - in.Spec.DeepCopyInto(&out.Spec) - in.Status.DeepCopyInto(&out.Status) - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PinnedImageSet. -func (in *PinnedImageSet) DeepCopy() *PinnedImageSet { - if in == nil { - return nil - } - out := new(PinnedImageSet) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *PinnedImageSet) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PinnedImageSetList) DeepCopyInto(out *PinnedImageSetList) { - *out = *in - out.TypeMeta = in.TypeMeta - in.ListMeta.DeepCopyInto(&out.ListMeta) - if in.Items != nil { - in, out := &in.Items, &out.Items - *out = make([]PinnedImageSet, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PinnedImageSetList. -func (in *PinnedImageSetList) DeepCopy() *PinnedImageSetList { - if in == nil { - return nil - } - out := new(PinnedImageSetList) - in.DeepCopyInto(out) - return out -} - -// DeepCopyObject is an autogenerated deepcopy function, copying the receiver, creating a new runtime.Object. -func (in *PinnedImageSetList) DeepCopyObject() runtime.Object { - if c := in.DeepCopy(); c != nil { - return c - } - return nil -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PinnedImageSetSpec) DeepCopyInto(out *PinnedImageSetSpec) { - *out = *in - if in.PinnedImages != nil { - in, out := &in.PinnedImages, &out.PinnedImages - *out = make([]PinnedImageRef, len(*in)) - copy(*out, *in) - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PinnedImageSetSpec. -func (in *PinnedImageSetSpec) DeepCopy() *PinnedImageSetSpec { - if in == nil { - return nil - } - out := new(PinnedImageSetSpec) - in.DeepCopyInto(out) - return out -} - -// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. -func (in *PinnedImageSetStatus) DeepCopyInto(out *PinnedImageSetStatus) { - *out = *in - if in.Conditions != nil { - in, out := &in.Conditions, &out.Conditions - *out = make([]v1.Condition, len(*in)) - for i := range *in { - (*in)[i].DeepCopyInto(&(*out)[i]) - } - } - return -} - -// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new PinnedImageSetStatus. -func (in *PinnedImageSetStatus) DeepCopy() *PinnedImageSetStatus { - if in == nil { - return nil - } - out := new(PinnedImageSetStatus) - in.DeepCopyInto(out) - return out -} diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.featuregated-crd-manifests.yaml b/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.featuregated-crd-manifests.yaml deleted file mode 100644 index dc82dc2049a6..000000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.featuregated-crd-manifests.yaml +++ /dev/null @@ -1,148 +0,0 @@ -internalreleaseimages.machineconfiguration.openshift.io: - Annotations: {} - ApprovedPRNumber: https://github.com/openshift/api/pull/2510 - CRDName: internalreleaseimages.machineconfiguration.openshift.io - Capability: "" - Category: "" - FeatureGates: - - NoRegistryClusterInstall - FilenameOperatorName: machine-config - FilenameOperatorOrdering: "01" - FilenameRunLevel: "0000_80" - GroupName: machineconfiguration.openshift.io - HasStatus: true - KindName: InternalReleaseImage - Labels: - openshift.io/operator-managed: "" - PluralName: internalreleaseimages - PrinterColumns: [] - Scope: Cluster - ShortNames: null - TopLevelFeatureGates: - - NoRegistryClusterInstall - Version: v1alpha1 - -machineconfignodes.machineconfiguration.openshift.io: - Annotations: {} - ApprovedPRNumber: https://github.com/openshift/api/pull/2256 - CRDName: machineconfignodes.machineconfiguration.openshift.io - Capability: "" - Category: "" - FeatureGates: - - MachineConfigNodes - FilenameOperatorName: machine-config - FilenameOperatorOrdering: "01" - FilenameRunLevel: "0000_80" - GroupName: machineconfiguration.openshift.io - HasStatus: true - KindName: MachineConfigNode - Labels: - openshift.io/operator-managed: "" - PluralName: machineconfignodes - PrinterColumns: - - jsonPath: .spec.pool.name - name: PoolName - type: string - - jsonPath: .spec.configVersion.desired - name: DesiredConfig - type: string - - jsonPath: .status.configVersion.current - name: CurrentConfig - type: string - - jsonPath: .status.conditions[?(@.type=="Updated")].status - name: Updated - type: string - - jsonPath: .status.conditions[?(@.type=="UpdatePrepared")].status - name: UpdatePrepared - priority: 1 - type: string - - jsonPath: .status.conditions[?(@.type=="UpdateExecuted")].status - name: UpdateExecuted - priority: 1 - type: string - - jsonPath: .status.conditions[?(@.type=="UpdatePostActionComplete")].status - name: UpdatePostActionComplete - priority: 1 - type: string - - jsonPath: .status.conditions[?(@.type=="UpdateComplete")].status - name: UpdateComplete - priority: 1 - type: string - - jsonPath: .status.conditions[?(@.type=="Resumed")].status - name: Resumed - priority: 1 - type: string - - jsonPath: .status.conditions[?(@.type=="AppliedFilesAndOS")].status - name: UpdatedFilesAndOS - priority: 1 - type: string - - jsonPath: .status.conditions[?(@.type=="Cordoned")].status - name: CordonedNode - priority: 1 - type: string - - jsonPath: .status.conditions[?(@.type=="Drained")].status - name: DrainedNode - priority: 1 - type: string - - jsonPath: .status.conditions[?(@.type=="RebootedNode")].status - name: RebootedNode - priority: 1 - type: string - - jsonPath: .status.conditions[?(@.type=="Uncordoned")].status - name: UncordonedNode - priority: 1 - type: string - Scope: Cluster - ShortNames: null - TopLevelFeatureGates: - - MachineConfigNodes - Version: v1alpha1 - -osimagestreams.machineconfiguration.openshift.io: - Annotations: {} - ApprovedPRNumber: https://github.com/openshift/api/pull/2555 - CRDName: osimagestreams.machineconfiguration.openshift.io - Capability: "" - Category: "" - FeatureGates: - - OSStreams - FilenameOperatorName: machine-config - FilenameOperatorOrdering: "01" - FilenameRunLevel: "0000_80" - GroupName: machineconfiguration.openshift.io - HasStatus: true - KindName: OSImageStream - Labels: - openshift.io/operator-managed: "" - PluralName: osimagestreams - PrinterColumns: [] - Scope: Cluster - ShortNames: null - TopLevelFeatureGates: - - OSStreams - Version: v1alpha1 - -pinnedimagesets.machineconfiguration.openshift.io: - Annotations: {} - ApprovedPRNumber: https://github.com/openshift/api/pull/1713 - CRDName: pinnedimagesets.machineconfiguration.openshift.io - Capability: "" - Category: "" - FeatureGates: - - PinnedImages - FilenameOperatorName: machine-config - FilenameOperatorOrdering: "01" - FilenameRunLevel: "0000_80" - GroupName: machineconfiguration.openshift.io - HasStatus: true - KindName: PinnedImageSet - Labels: - openshift.io/operator-managed: "" - PluralName: pinnedimagesets - PrinterColumns: [] - Scope: Cluster - ShortNames: null - TopLevelFeatureGates: - - PinnedImages - Version: v1alpha1 - diff --git a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.swagger_doc_generated.go b/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.swagger_doc_generated.go deleted file mode 100644 index 144d295afeb2..000000000000 --- a/vendor/github.com/openshift/api/machineconfiguration/v1alpha1/zz_generated.swagger_doc_generated.go +++ /dev/null @@ -1,250 +0,0 @@ -package v1alpha1 - -// This file contains a collection of methods that can be used from go-restful to -// generate Swagger API documentation for its models. Please read this PR for more -// information on the implementation: https://github.com/emicklei/go-restful/pull/215 -// -// TODOs are ignored from the parser (e.g. TODO(andronat):... || TODO:...) if and only if -// they are on one line! For multiple line or blocks that you want to ignore use ---. -// Any context after a --- is ignored. -// -// Those methods can be generated by using hack/update-swagger-docs.sh - -// AUTO-GENERATED FUNCTIONS START HERE -var map_InternalReleaseImage = map[string]string{ - "": "InternalReleaseImage is used to keep track and manage a set of release bundles (OCP and OLM operators images) that are stored into the control planes nodes.\n\nCompatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.", - "metadata": "metadata is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - "spec": "spec describes the configuration of this internal release image.", - "status": "status describes the last observed state of this internal release image.", -} - -func (InternalReleaseImage) SwaggerDoc() map[string]string { - return map_InternalReleaseImage -} - -var map_InternalReleaseImageBundleStatus = map[string]string{ - "conditions": "conditions represent the observations of an internal release image current state. Valid types are: Mounted, Installing, Available, Removing and Degraded.\n\nIf Mounted is true, that means that a valid ISO has been discovered and mounted on one of the cluster nodes. If Installing is true, that means that a new release bundle is currently being copied on one (or more) cluster nodes, and not yet completed. If Available is true, it means that the release has been previously installed on all the cluster nodes, and it can be used. If Removing is true, it means that a release deletion is in progress on one (or more) cluster nodes, and not yet completed. If Degraded is true, that means something has gone wrong (possibly on one or more cluster nodes).\n\nIn general, after installing a new release bundle, it is required to wait for the Conditions \"Available\" to become \"True\" (and all the other conditions to be equal to \"False\") before being able to pull its content.", - "name": "name indicates the desired release bundle identifier. This field is required and must be between 1 and 64 characters long. The expected name format is ocp-release-bundle--.", - "image": "image is an OCP release image referenced by digest. The format of the image pull spec is: host[:port][/namespace]/name@sha256:, where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. The length of the whole spec must be between 1 to 447 characters. The field is optional, and it will be provided after a release will be successfully installed.", -} - -func (InternalReleaseImageBundleStatus) SwaggerDoc() map[string]string { - return map_InternalReleaseImageBundleStatus -} - -var map_InternalReleaseImageList = map[string]string{ - "": "InternalReleaseImageList is a list of InternalReleaseImage resources\n\nCompatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.", - "metadata": "metadata is the standard list's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", -} - -func (InternalReleaseImageList) SwaggerDoc() map[string]string { - return map_InternalReleaseImageList -} - -var map_InternalReleaseImageRef = map[string]string{ - "": "InternalReleaseImageRef is used to provide a simple reference for a release bundle. Currently it contains only the name field.", - "name": "name indicates the desired release bundle identifier. This field is required and must be between 1 and 64 characters long. The expected name format is ocp-release-bundle--.", -} - -func (InternalReleaseImageRef) SwaggerDoc() map[string]string { - return map_InternalReleaseImageRef -} - -var map_InternalReleaseImageSpec = map[string]string{ - "": "InternalReleaseImageSpec defines the desired state of a InternalReleaseImage.", - "releases": "releases is a list of release bundle identifiers that the user wants to add/remove to/from the control plane nodes. Entries must be unique, keyed on the name field. releases must contain at least one entry and must not exceed 16 entries.", -} - -func (InternalReleaseImageSpec) SwaggerDoc() map[string]string { - return map_InternalReleaseImageSpec -} - -var map_InternalReleaseImageStatus = map[string]string{ - "": "InternalReleaseImageStatus describes the current state of a InternalReleaseImage.", - "conditions": "conditions represent the observations of the InternalReleaseImage controller current state. Valid types are: Degraded. If Degraded is true, that means something has gone wrong in the controller.", - "releases": "releases is a list of the release bundles currently owned and managed by the cluster. A release bundle content could be safely pulled only when its Conditions field contains at least an Available entry set to \"True\" and Degraded to \"False\". Entries must be unique, keyed on the name field. releases must contain at least one entry and must not exceed 32 entries.", -} - -func (InternalReleaseImageStatus) SwaggerDoc() map[string]string { - return map_InternalReleaseImageStatus -} - -var map_MCOObjectReference = map[string]string{ - "": "MCOObjectReference holds information about an object the MCO either owns or modifies in some way", - "name": "name is the name of the object being referenced. For example, this can represent a machine config pool or node name. Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end with an alphanumeric character, and be at most 253 characters in length.", -} - -func (MCOObjectReference) SwaggerDoc() map[string]string { - return map_MCOObjectReference -} - -var map_MachineConfigNode = map[string]string{ - "": "MachineConfigNode describes the health of the Machines on the system Compatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.", - "metadata": "metadata is the standard object metadata.", - "spec": "spec describes the configuration of the machine config node.", - "status": "status describes the last observed state of this machine config node.", -} - -func (MachineConfigNode) SwaggerDoc() map[string]string { - return map_MachineConfigNode -} - -var map_MachineConfigNodeList = map[string]string{ - "": "MachineConfigNodeList describes all of the MachinesStates on the system\n\nCompatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.", - "metadata": "metadata is the standard list metadata.", - "items": "items contains a collection of MachineConfigNode resources.", -} - -func (MachineConfigNodeList) SwaggerDoc() map[string]string { - return map_MachineConfigNodeList -} - -var map_MachineConfigNodeSpec = map[string]string{ - "": "MachineConfigNodeSpec describes the MachineConfigNode we are managing.", - "node": "node contains a reference to the node for this machine config node.", - "pool": "pool contains a reference to the machine config pool that this machine config node's referenced node belongs to.", - "configVersion": "configVersion holds the desired config version for the node targeted by this machine config node resource. The desired version represents the machine config the node will attempt to update to and gets set before the machine config operator validates the new machine config against the current machine config.", -} - -func (MachineConfigNodeSpec) SwaggerDoc() map[string]string { - return map_MachineConfigNodeSpec -} - -var map_MachineConfigNodeSpecMachineConfigVersion = map[string]string{ - "": "MachineConfigNodeSpecMachineConfigVersion holds the desired config version for the current observed machine config node. When Current is not equal to Desired, the MachineConfigOperator is in an upgrade phase and the machine config node will take account of upgrade related events. Otherwise, they will be ignored given that certain operations happen both during the MCO's upgrade mode and the daily operations mode.", - "desired": "desired is the name of the machine config that the the node should be upgraded to. This value is set when the machine config pool generates a new version of its rendered configuration. When this value is changed, the machine config daemon starts the node upgrade process. This value gets set in the machine config node spec once the machine config has been targeted for upgrade and before it is validated. Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end with an alphanumeric character, and be at most 253 characters in length.", -} - -func (MachineConfigNodeSpecMachineConfigVersion) SwaggerDoc() map[string]string { - return map_MachineConfigNodeSpecMachineConfigVersion -} - -var map_MachineConfigNodeStatus = map[string]string{ - "": "MachineConfigNodeStatus holds the reported information on a particular machine config node.", - "conditions": "conditions represent the observations of a machine config node's current state.", - "observedGeneration": "observedGeneration represents the generation of the MachineConfigNode object observed by the Machine Config Operator's controller. This field is updated when the controller observes a change to the desiredConfig in the configVersion of the machine config node spec.", - "configVersion": "configVersion describes the current and desired machine config version for this node.", - "pinnedImageSets": "pinnedImageSets describes the current and desired pinned image sets for this node.", -} - -func (MachineConfigNodeStatus) SwaggerDoc() map[string]string { - return map_MachineConfigNodeStatus -} - -var map_MachineConfigNodeStatusMachineConfigVersion = map[string]string{ - "": "MachineConfigNodeStatusMachineConfigVersion holds the current and desired config versions as last updated in the MCN status. When the current and desired versions do not match, the machine config pool is processing an upgrade and the machine config node will monitor the upgrade process. When the current and desired versions do match, the machine config node will ignore these events given that certain operations happen both during the MCO's upgrade mode and the daily operations mode.", - "current": "current is the name of the machine config currently in use on the node. This value is updated once the machine config daemon has completed the update of the configuration for the node. This value should match the desired version unless an upgrade is in progress. Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end with an alphanumeric character, and be at most 253 characters in length.", - "desired": "desired is the MachineConfig the node wants to upgrade to. This value gets set in the machine config node status once the machine config has been validated against the current machine config. Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end with an alphanumeric character, and be at most 253 characters in length.", -} - -func (MachineConfigNodeStatusMachineConfigVersion) SwaggerDoc() map[string]string { - return map_MachineConfigNodeStatusMachineConfigVersion -} - -var map_MachineConfigNodeStatusPinnedImageSet = map[string]string{ - "": "MachineConfigNodeStatusPinnedImageSet holds information about the current, desired, and failed pinned image sets for the observed machine config node.", - "name": "name is the name of the pinned image set. Must be a lowercase RFC-1123 subdomain name (https://tools.ietf.org/html/rfc1123) consisting of only lowercase alphanumeric characters, hyphens (-), and periods (.), and must start and end with an alphanumeric character, and be at most 253 characters in length.", - "currentGeneration": "currentGeneration is the generation of the pinned image set that has most recently been successfully pulled and pinned on this node.", - "desiredGeneration": "desiredGeneration is the generation of the pinned image set that is targeted to be pulled and pinned on this node.", - "lastFailedGeneration": "lastFailedGeneration is the generation of the most recent pinned image set that failed to be pulled and pinned on this node.", - "lastFailedGenerationError": "lastFailedGenerationError is the error explaining why the desired images failed to be pulled and pinned. The error is an empty string if the image pull and pin is successful.", -} - -func (MachineConfigNodeStatusPinnedImageSet) SwaggerDoc() map[string]string { - return map_MachineConfigNodeStatusPinnedImageSet -} - -var map_OSImageStream = map[string]string{ - "": "OSImageStream describes a set of streams and associated images available for the MachineConfigPools to be used as base OS images.\n\nThe resource is a singleton named \"cluster\".\n\nCompatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.", - "metadata": "metadata is the standard object's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", - "spec": "spec contains the desired OSImageStream config configuration.", - "status": "status describes the last observed state of this OSImageStream. Populated by the MachineConfigOperator after reading release metadata. When not present, the controller has not yet reconciled this resource.", -} - -func (OSImageStream) SwaggerDoc() map[string]string { - return map_OSImageStream -} - -var map_OSImageStreamList = map[string]string{ - "": "OSImageStreamList is a list of OSImageStream resources\n\nCompatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.", - "metadata": "metadata is the standard list's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", -} - -func (OSImageStreamList) SwaggerDoc() map[string]string { - return map_OSImageStreamList -} - -var map_OSImageStreamSet = map[string]string{ - "name": "name is the required identifier of the stream.\n\nname is determined by the operator based on the OCI label of the discovered OS or Extension Image.\n\nMust be a valid RFC 1123 subdomain between 1 and 253 characters in length, consisting of lowercase alphanumeric characters, hyphens ('-'), and periods ('.').", - "osImage": "osImage is a required OS Image referenced by digest.\n\nosImage contains the immutable, fundamental operating system components, including the kernel and base utilities, that define the core environment for the node's host operating system.\n\nThe format of the image pull spec is: host[:port][/namespace]/name@sha256:, where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. The length of the whole spec must be between 1 to 447 characters.", - "osExtensionsImage": "osExtensionsImage is a required OS Extensions Image referenced by digest.\n\nosExtensionsImage bundles the extra repositories used to enable extensions, augmenting the base operating system without modifying the underlying immutable osImage.\n\nThe format of the image pull spec is: host[:port][/namespace]/name@sha256:, where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. The length of the whole spec must be between 1 to 447 characters.", -} - -func (OSImageStreamSet) SwaggerDoc() map[string]string { - return map_OSImageStreamSet -} - -var map_OSImageStreamSpec = map[string]string{ - "": "OSImageStreamSpec defines the desired state of a OSImageStream.", -} - -func (OSImageStreamSpec) SwaggerDoc() map[string]string { - return map_OSImageStreamSpec -} - -var map_OSImageStreamStatus = map[string]string{ - "": "OSImageStreamStatus describes the current state of a OSImageStream", - "availableStreams": "availableStreams is a list of the available OS Image Streams that can be used as the base image for MachineConfigPools. availableStreams is required, must have at least one item, must not exceed 100 items, and must have unique entries keyed on the name field.", - "defaultStream": "defaultStream is the name of the stream that should be used as the default when no specific stream is requested by a MachineConfigPool.\n\nIt must be a valid RFC 1123 subdomain between 1 and 253 characters in length, consisting of lowercase alphanumeric characters, hyphens ('-'), and periods ('.'), and must reference the name of one of the streams in availableStreams.", -} - -func (OSImageStreamStatus) SwaggerDoc() map[string]string { - return map_OSImageStreamStatus -} - -var map_PinnedImageRef = map[string]string{ - "name": "name is an OCI Image referenced by digest. The format of the image pull spec is: host[:port][/namespace]/name@sha256:, where the digest must be 64 characters long, and consist only of lowercase hexadecimal characters, a-f and 0-9. The length of the whole spec must be between 1 to 447 characters.", -} - -func (PinnedImageRef) SwaggerDoc() map[string]string { - return map_PinnedImageRef -} - -var map_PinnedImageSet = map[string]string{ - "": "PinnedImageSet describes a set of images that should be pinned by CRI-O and pulled to the nodes which are members of the declared MachineConfigPools.\n\nCompatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.", - "spec": "spec describes the configuration of this pinned image set.", - "status": "status describes the last observed state of this pinned image set.", -} - -func (PinnedImageSet) SwaggerDoc() map[string]string { - return map_PinnedImageSet -} - -var map_PinnedImageSetList = map[string]string{ - "": "PinnedImageSetList is a list of PinnedImageSet resources\n\nCompatibility level 4: No compatibility is provided, the API can change at any point for any reason. These capabilities should not be used by applications needing long term support.", - "metadata": "metadata is the standard list's metadata. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata", -} - -func (PinnedImageSetList) SwaggerDoc() map[string]string { - return map_PinnedImageSetList -} - -var map_PinnedImageSetSpec = map[string]string{ - "": "PinnedImageSetSpec defines the desired state of a PinnedImageSet.", - "pinnedImages": "pinnedImages is a list of OCI Image referenced by digest that should be pinned and pre-loaded by the nodes of a MachineConfigPool. Translates into a new file inside the /etc/crio/crio.conf.d directory with content similar to this:\n\n pinned_images = [\n \"quay.io/openshift-release-dev/ocp-release@sha256:...\",\n \"quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...\",\n \"quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:...\",\n ...\n ]\n\nThese image references should all be by digest, tags aren't allowed.", -} - -func (PinnedImageSetSpec) SwaggerDoc() map[string]string { - return map_PinnedImageSetSpec -} - -var map_PinnedImageSetStatus = map[string]string{ - "": "PinnedImageSetStatus describes the current state of a PinnedImageSet.", - "conditions": "conditions represent the observations of a pinned image set's current state.", -} - -func (PinnedImageSetStatus) SwaggerDoc() map[string]string { - return map_PinnedImageSetStatus -} - -// AUTO-GENERATED FUNCTIONS END HERE diff --git a/vendor/modules.txt b/vendor/modules.txt index 351220b1a376..de5cca070c4f 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -717,7 +717,6 @@ github.com/openshift/api/config/v1alpha1 github.com/openshift/api/config/v1alpha2 github.com/openshift/api/console github.com/openshift/api/console/v1 -github.com/openshift/api/features github.com/openshift/api/helm github.com/openshift/api/helm/v1beta1 github.com/openshift/api/image @@ -733,7 +732,6 @@ github.com/openshift/api/machine github.com/openshift/api/machine/v1 github.com/openshift/api/machine/v1alpha1 github.com/openshift/api/machine/v1beta1 -github.com/openshift/api/machineconfiguration/v1alpha1 github.com/openshift/api/monitoring github.com/openshift/api/monitoring/v1 github.com/openshift/api/network