From 8a7f47b303392b9483313d1762f17651fe5ed3e2 Mon Sep 17 00:00:00 2001 From: Martin Schuppert Date: Tue, 15 Apr 2025 13:59:58 +0200 Subject: [PATCH 1/5] bump to golang 1.24 * bump in go.mod (base and api) * bump go-toolset in Dockerfile * bump golang version and custom_iamge in github jobs ('.github/workflows') * Bump the golangci-lint version in the .pre-commit-config.yaml to v2.4.0 * Bump build_root_image in .ci-operator.yaml to ci-build-root-golang-1.24-sdk-1.31 Also fixes golangci-lint reported issues for new v2.4.0 version. Jira: OSPRH-12935 Signed-off-by: Martin Schuppert --- .ci-operator.yaml | 2 +- .../workflows/build-openstack-operator.yaml | 2 +- .github/workflows/docs.yaml | 2 +- .github/workflows/force-bump-pr-manual.yaml | 1 + .../workflows/force-bump-pr-scheduled.yaml | 1 + .github/workflows/kustom.yaml | 2 +- .golangci.yaml | 8 ++++- .pre-commit-config.yaml | 2 +- Dockerfile | 2 +- Makefile | 5 ++-- apis/go.mod | 2 +- cmd/operator/main.go | 1 + .../client/openstackclient_controller.go | 18 +++++++----- .../core/openstackcontrolplane_controller.go | 7 +++-- .../core/openstackversion_controller.go | 6 ++-- ...openstackdataplanedeployment_controller.go | 11 +++---- .../openstackdataplanenodeset_controller.go | 12 ++++---- .../openstacklightspeed_controller.go | 16 +++++----- controllers/operator/openstack_controller.go | 29 ++++++++++--------- go.mod | 2 +- main.go | 1 + pkg/dataplane/baremetal.go | 5 ++-- pkg/dataplane/deployment.go | 8 ++--- pkg/dataplane/inventory.go | 2 +- pkg/dataplane/ipam.go | 4 +-- pkg/dataplane/service.go | 6 ++-- pkg/dataplane/util/ansible_execution.go | 13 +++++++-- pkg/dataplane/util/ansibleee.go | 6 ++-- pkg/dataplane/util/datasource.go | 4 +-- pkg/dataplane/util/image_registry.go | 2 +- pkg/dataplane/util/version.go | 2 +- pkg/lightspeed/funcs.go | 12 ++++---- pkg/openstack/barbican.go | 1 + pkg/openstack/ca.go | 5 ++-- pkg/openstack/common.go | 28 +++++++++--------- pkg/openstack/dataplane.go | 1 + pkg/openstack/galera.go | 4 +-- pkg/openstack/instanceha.go | 5 +++- pkg/openstack/ironic.go | 2 +- pkg/openstack/memcached.go | 2 +- pkg/openstack/nova.go | 12 ++++---- pkg/openstack/openstackclient.go | 2 +- pkg/openstack/ovn.go | 8 +++-- pkg/openstack/rabbitmq.go | 4 +-- pkg/openstack/redis.go | 2 +- pkg/openstack/telemetry.go | 10 +++---- pkg/openstack/test.go | 17 +++++++---- pkg/openstack/version.go | 4 +-- pkg/openstackclient/funcs.go | 1 + pkg/operator/bindata/apply.go | 1 + pkg/operator/bindata/render.go | 2 +- pkg/operator/override.go | 4 +++ .../openstackoperator_controller_test.go | 2 +- .../openstackversion_controller_test.go | 2 +- tests/functional/ctlplane/suite_test.go | 4 ++- ...enstackdataplanenodeset_controller_test.go | 8 ++--- ...enstackdataplaneservice_controller_test.go | 4 +-- zuul.d/jobs.yaml | 4 +-- 58 files changed, 195 insertions(+), 140 deletions(-) diff --git a/.ci-operator.yaml b/.ci-operator.yaml index 810dbb5117..1a05e60693 100644 --- a/.ci-operator.yaml +++ b/.ci-operator.yaml @@ -1,4 +1,4 @@ build_root_image: name: tools namespace: openstack-k8s-operators - tag: ci-build-root-golang-1.21-sdk-1.31 + tag: ci-build-root-golang-1.24-sdk-1.31 diff --git a/.github/workflows/build-openstack-operator.yaml b/.github/workflows/build-openstack-operator.yaml index 4a3547af07..1e48855eda 100644 --- a/.github/workflows/build-openstack-operator.yaml +++ b/.github/workflows/build-openstack-operator.yaml @@ -15,7 +15,7 @@ jobs: uses: openstack-k8s-operators/openstack-k8s-operators-ci/.github/workflows/reusable-build-operator.yaml@main with: operator_name: openstack - go_version: 1.21.x + go_version: 1.24.x operator_sdk_version: 1.31.0 bundle_dockerfile: ./bundle.Dockerfile secrets: diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml index 9462c13b41..67fac07f20 100644 --- a/.github/workflows/docs.yaml +++ b/.github/workflows/docs.yaml @@ -21,7 +21,7 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - go-version: 1.21.x + go-version: 1.24.x - uses: actions/checkout@v4 with: # this fetches all branches. Needed because we need gh-pages branch for deploy to work diff --git a/.github/workflows/force-bump-pr-manual.yaml b/.github/workflows/force-bump-pr-manual.yaml index 746c31e8bd..9f7adc7b78 100644 --- a/.github/workflows/force-bump-pr-manual.yaml +++ b/.github/workflows/force-bump-pr-manual.yaml @@ -9,5 +9,6 @@ jobs: with: operator_name: openstack branch_name: ${{ github.ref_name }} + custom_image: quay.io/openstack-k8s-operators/openstack-k8s-operators-ci-build-tools:golang-1.24-sdk-1.31 secrets: FORCE_BUMP_PULL_REQUEST_PAT: ${{ secrets.FORCE_BUMP_PULL_REQUEST_PAT }} diff --git a/.github/workflows/force-bump-pr-scheduled.yaml b/.github/workflows/force-bump-pr-scheduled.yaml index e41db04912..4aab072a5d 100644 --- a/.github/workflows/force-bump-pr-scheduled.yaml +++ b/.github/workflows/force-bump-pr-scheduled.yaml @@ -10,5 +10,6 @@ jobs: uses: openstack-k8s-operators/openstack-k8s-operators-ci/.github/workflows/force-bump-branches.yaml@main with: operator_name: openstack + custom_image: quay.io/openstack-k8s-operators/openstack-k8s-operators-ci-build-tools:golang-1.24-sdk-1.31 secrets: FORCE_BUMP_PULL_REQUEST_PAT: ${{ secrets.FORCE_BUMP_PULL_REQUEST_PAT }} diff --git a/.github/workflows/kustom.yaml b/.github/workflows/kustom.yaml index d753673239..85f542d9ff 100644 --- a/.github/workflows/kustom.yaml +++ b/.github/workflows/kustom.yaml @@ -16,7 +16,7 @@ jobs: - name: Install Go uses: actions/setup-go@v3 with: - go-version: 1.21.x + go-version: 1.24.x - uses: actions/checkout@v4 with: # this fetches all branches. Needed because we need gh-pages branch for deploy to work diff --git a/.golangci.yaml b/.golangci.yaml index 937a37eacc..26142afbc2 100644 --- a/.golangci.yaml +++ b/.golangci.yaml @@ -1,3 +1,5 @@ +version: 2 + linters: # Enable specific linter # https://golangci-lint.run/usage/linters/#enabled-by-default @@ -5,7 +7,11 @@ linters: - errorlint - revive - ginkgolinter - - gofmt - govet + +formatters: + enable: + - gofmt + run: timeout: 5m diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index e75528744a..7ffb008a35 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -70,7 +70,7 @@ repos: entry: bashate --error . --ignore=E006,E040,E011,E020,E012 - repo: https://github.com/golangci/golangci-lint - rev: v1.59.1 + rev: v2.4.0 hooks: - id: golangci-lint-full args: ["-v"] diff --git a/Dockerfile b/Dockerfile index 368c1615ed..644c22b32a 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -ARG GOLANG_BUILDER=registry.access.redhat.com/ubi9/go-toolset:1.21 +ARG GOLANG_BUILDER=registry.access.redhat.com/ubi9/go-toolset:1.24 ARG OPERATOR_BASE_IMAGE=registry.access.redhat.com/ubi9/ubi-minimal:latest # Build the manager binary FROM $GOLANG_BUILDER AS builder diff --git a/Makefile b/Makefile index 3b7cecc89b..a4a9563762 100644 --- a/Makefile +++ b/Makefile @@ -186,9 +186,10 @@ tidy: ## Run go mod tidy on every mod file in the repo go mod tidy cd ./apis && go mod tidy +GOLANGCI_LINT_VERSION ?= v2.4.0 .PHONY: golangci-lint golangci-lint: - test -s $(LOCALBIN)/golangci-lint || curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.59.1 + test -s $(LOCALBIN)/golangci-lint || curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s $(GOLANGCI_LINT_VERSION) $(LOCALBIN)/golangci-lint run --fix MAX_PROCS := 5 @@ -312,7 +313,7 @@ KUSTOMIZE_VERSION ?= v5.5.0 #(dprince: bumped to aquire new features like --load CONTROLLER_TOOLS_VERSION ?= v0.14.0 CRD_MARKDOWN_VERSION ?= v0.0.3 KUTTL_VERSION ?= 0.17.0 -GOTOOLCHAIN_VERSION ?= go1.21.0 +GOTOOLCHAIN_VERSION ?= go1.24.0 OC_VERSION ?= 4.16.0 KUSTOMIZE_INSTALL_SCRIPT ?= "https://raw.githubusercontent.com/kubernetes-sigs/kustomize/master/hack/install_kustomize.sh" diff --git a/apis/go.mod b/apis/go.mod index 28e5ee7f87..e67ebe7950 100644 --- a/apis/go.mod +++ b/apis/go.mod @@ -1,6 +1,6 @@ module github.com/openstack-k8s-operators/openstack-operator/apis -go 1.21 +go 1.24 require ( github.com/cert-manager/cert-manager v1.14.7 diff --git a/cmd/operator/main.go b/cmd/operator/main.go index a3e0bed883..23cce6b471 100644 --- a/cmd/operator/main.go +++ b/cmd/operator/main.go @@ -14,6 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package main provides the entry point for the OpenStack operator package main import ( diff --git a/controllers/client/openstackclient_controller.go b/controllers/client/openstackclient_controller.go index 6e120eea9b..fec1245dac 100644 --- a/controllers/client/openstackclient_controller.go +++ b/controllers/client/openstackclient_controller.go @@ -11,6 +11,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package client contains the OpenStackClient controller implementation package client import ( @@ -87,7 +88,7 @@ func (r *OpenStackClientReconciler) Reconcile(ctx context.Context, req ctrl.Requ Log := r.GetLogger(ctx) instance := &clientv1.OpenStackClient{} - err := r.Client.Get(context.TODO(), req.NamespacedName, instance) + err := r.Get(context.TODO(), req.NamespacedName, instance) if err != nil { if k8s_errors.IsNotFound(err) { Log.Info("OpenStackClient CR not found") @@ -277,7 +278,8 @@ func (r *OpenStackClientReconciler) Reconcile(ctx context.Context, req ctrl.Requ condition.TLSInputReadyCondition, condition.ErrorReason, condition.SeverityWarning, - fmt.Sprintf(condition.TLSInputReadyWaitingMessage, instance.Spec.CaBundleSecretName))) + condition.TLSInputReadyWaitingMessage, + instance.Spec.CaBundleSecretName)) return ctrl.Result{}, nil } instance.Status.Conditions.Set(condition.FalseCondition( @@ -326,7 +328,7 @@ func (r *OpenStackClientReconciler) Reconcile(ctx context.Context, req ctrl.Requ podSpecHashName := "podSpec" op, err := controllerutil.CreateOrPatch(ctx, r.Client, osclient, func() error { - isPodUpdate := !osclient.ObjectMeta.CreationTimestamp.IsZero() + isPodUpdate := !osclient.CreationTimestamp.IsZero() currentPodSpecHash := instance.Status.Hash[podSpecHashName] if !isPodUpdate || currentPodSpecHash != podSpecHash { osclient.Spec = spec @@ -354,14 +356,14 @@ func (r *OpenStackClientReconciler) Reconcile(ctx context.Context, req ctrl.Requ // openstackclient pod if err := r.Delete(ctx, osclient); err != nil && !k8s_errors.IsNotFound(err) { // Error deleting the object - return ctrl.Result{}, fmt.Errorf("Error deleting OpenStackClient pod %s: %w", osclient.Name, err) + return ctrl.Result{}, fmt.Errorf("error deleting OpenStackClient pod %s: %w", osclient.Name, err) } Log.Info(fmt.Sprintf("OpenStackClient pod deleted due to change %s", err.Error())) return ctrl.Result{Requeue: true}, nil } - return ctrl.Result{}, fmt.Errorf("Failed to create or update pod %s: %w", osclient.Name, err) + return ctrl.Result{}, fmt.Errorf("failed to create or update pod %s: %w", osclient.Name, err) } if err != nil { @@ -389,9 +391,9 @@ func (r *OpenStackClientReconciler) Reconcile(ctx context.Context, req ctrl.Requ terminatingDuration := time.Since(osclient.DeletionTimestamp.Time) if terminatingDuration > time.Minute*3 { // Force delete only truly stuck pods - err := r.Client.Delete(ctx, osclient, client.GracePeriodSeconds(0)) + err := r.Delete(ctx, osclient, client.GracePeriodSeconds(0)) if err != nil { - return ctrl.Result{}, fmt.Errorf("Failed to force delete pod: %w", err) + return ctrl.Result{}, fmt.Errorf("failed to force delete pod: %w", err) } } } @@ -486,7 +488,7 @@ func (r *OpenStackClientReconciler) SetupWithManager( listOpts := []client.ListOption{ client.InNamespace(o.GetNamespace()), } - if err := r.Client.List(ctx, openstackclients, listOpts...); err != nil { + if err := r.List(ctx, openstackclients, listOpts...); err != nil { Log.Error(err, "Unable to retrieve OpenstackClient CRs %v") return nil } diff --git a/controllers/core/openstackcontrolplane_controller.go b/controllers/core/openstackcontrolplane_controller.go index e1e05cd403..e484ef7382 100644 --- a/controllers/core/openstackcontrolplane_controller.go +++ b/controllers/core/openstackcontrolplane_controller.go @@ -13,6 +13,8 @@ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. */ + +// Package core contains the OpenStackControlPlane controller implementation package core import ( @@ -32,7 +34,6 @@ import ( ironicv1 "github.com/openstack-k8s-operators/ironic-operator/api/v1beta1" keystonev1 "github.com/openstack-k8s-operators/keystone-operator/api/v1beta1" condition "github.com/openstack-k8s-operators/lib-common/modules/common/condition" - "github.com/openstack-k8s-operators/lib-common/modules/common/helper" common_helper "github.com/openstack-k8s-operators/lib-common/modules/common/helper" corev1 "k8s.io/api/core/v1" @@ -131,7 +132,7 @@ func (r *OpenStackControlPlaneReconciler) Reconcile(ctx context.Context, req ctr Log := r.GetLogger(ctx) // Fetch the OpenStackControlPlane instance instance := &corev1beta1.OpenStackControlPlane{} - err := r.Client.Get(ctx, req.NamespacedName, instance) + err := r.Get(ctx, req.NamespacedName, instance) if err != nil { if k8s_errors.IsNotFound(err) { // Request object not found, could have been deleted after reconcile request. @@ -781,7 +782,7 @@ func (r *OpenStackControlPlaneReconciler) findObjectsForSrc(ctx context.Context, // Verify the referenced topology exists func (r *OpenStackControlPlaneReconciler) checkTopologyRef( ctx context.Context, - h *helper.Helper, + h *common_helper.Helper, topologyRef *topologyv1.TopoRef, namespace string, ) error { diff --git a/controllers/core/openstackversion_controller.go b/controllers/core/openstackversion_controller.go index 86393782b6..b3b2884881 100644 --- a/controllers/core/openstackversion_controller.go +++ b/controllers/core/openstackversion_controller.go @@ -93,7 +93,7 @@ func (r *OpenStackVersionReconciler) Reconcile(ctx context.Context, req ctrl.Req Log.Info("Reconciling OpenStackVersion") // Fetch the instance instance := &corev1beta1.OpenStackVersion{} - err := r.Client.Get(ctx, req.NamespacedName, instance) + err := r.Get(ctx, req.NamespacedName, instance) if err != nil { if k8s_errors.IsNotFound(err) { // Request object not found, could have been deleted after reconcile request. @@ -228,7 +228,7 @@ func (r *OpenStackVersionReconciler) Reconcile(ctx context.Context, req ctrl.Req // lookup the current Controlplane object controlPlane := &corev1beta1.OpenStackControlPlane{} - err = r.Client.Get(ctx, client.ObjectKey{ + err = r.Get(ctx, client.ObjectKey{ Namespace: instance.Namespace, Name: instance.Name, }, controlPlane) @@ -418,7 +418,7 @@ func (r *OpenStackVersionReconciler) SetupWithManager(mgr ctrl.Manager) error { listOpts := []client.ListOption{ client.InNamespace(o.GetNamespace()), } - if err := r.Client.List(ctx, versionList, listOpts...); err != nil { + if err := r.List(ctx, versionList, listOpts...); err != nil { Log.Error(err, "Unable to retrieve OpenStackVersion") return nil } diff --git a/controllers/dataplane/openstackdataplanedeployment_controller.go b/controllers/dataplane/openstackdataplanedeployment_controller.go index d24ae28781..be5301ae48 100644 --- a/controllers/dataplane/openstackdataplanedeployment_controller.go +++ b/controllers/dataplane/openstackdataplanedeployment_controller.go @@ -14,6 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package dataplane contains the OpenStackDataPlaneDeployment controller implementation package dataplane import ( @@ -82,7 +83,7 @@ func (r *OpenStackDataPlaneDeploymentReconciler) Reconcile(ctx context.Context, } // Fetch the OpenStackDataPlaneDeployment instance instance := &dataplanev1.OpenStackDataPlaneDeployment{} - err := r.Client.Get(ctx, req.NamespacedName, instance) + err := r.Get(ctx, req.NamespacedName, instance) if err != nil { if k8s_errors.IsNotFound(err) { // Request object not found, could have been deleted after reconcile request. @@ -343,7 +344,7 @@ func (r *OpenStackDataPlaneDeploymentReconciler) Reconcile(ctx context.Context, severity, condition.DeploymentReadyErrorMessage, deploymentErrMsg) - return ctrl.Result{}, fmt.Errorf(deploymentErrMsg) + return ctrl.Result{}, fmt.Errorf("%s", deploymentErrMsg) } if shouldRequeue { @@ -365,7 +366,7 @@ func (r *OpenStackDataPlaneDeploymentReconciler) Reconcile(ctx context.Context, return ctrl.Result{}, nil } -// GetService +// GetService retrieves a service for the OpenStackDataPlaneDeployment func (r *OpenStackDataPlaneDeploymentReconciler) GetService( ctx context.Context, helper *helper.Helper, @@ -456,7 +457,7 @@ func (r *OpenStackDataPlaneDeploymentReconciler) SetupWithManager(mgr ctrl.Manag listOpts := []client.ListOption{ client.InNamespace(obj.GetNamespace()), } - if err := r.Client.List(context.Background(), deployments, listOpts...); err != nil { + if err := r.List(context.Background(), deployments, listOpts...); err != nil { Log.Error(err, "Unable to retrieve deployments %w") return nil } @@ -504,7 +505,7 @@ func (r *OpenStackDataPlaneDeploymentReconciler) listNodeSets(ctx context.Contex // Fetch the OpenStackDataPlaneNodeSet instance nodeSetInstance := &dataplanev1.OpenStackDataPlaneNodeSet{} - err := r.Client.Get( + err := r.Get( ctx, types.NamespacedName{ Namespace: instance.GetNamespace(), diff --git a/controllers/dataplane/openstackdataplanenodeset_controller.go b/controllers/dataplane/openstackdataplanenodeset_controller.go index b2623bc713..1f6f7c541b 100644 --- a/controllers/dataplane/openstackdataplanenodeset_controller.go +++ b/controllers/dataplane/openstackdataplanenodeset_controller.go @@ -145,7 +145,7 @@ func (r *OpenStackDataPlaneNodeSetReconciler) Reconcile(ctx context.Context, req // Fetch the OpenStackDataPlaneNodeSet instance instance := &dataplanev1.OpenStackDataPlaneNodeSet{} - err := r.Client.Get(ctx, req.NamespacedName, instance) + err := r.Get(ctx, req.NamespacedName, instance) if err != nil { if k8s_errors.IsNotFound(err) { // Request object not found, could have been deleted after reconcile request. @@ -282,7 +282,7 @@ func (r *OpenStackDataPlaneNodeSetReconciler) Reconcile(ctx context.Context, req condition.InputReadyCondition, condition.ErrorReason, condition.SeverityError, - err.Error()) + "%s", err.Error()) return result, err } else if (result != ctrl.Result{}) { // Since the the private key secret should have been manually created by the user when provided in the spec, @@ -469,7 +469,7 @@ func (r *OpenStackDataPlaneNodeSetReconciler) Reconcile(ctx context.Context, req condition.DeploymentReadyCondition, condition.ErrorReason, condition.SeverityError, - deployErrorMsg) + "%s", deployErrorMsg) } return ctrl.Result{}, err @@ -519,7 +519,7 @@ func checkDeployment(ctx context.Context, helper *helper.Helper, instance.Status.DeploymentStatuses[deployment.Name] = deploymentConditions deploymentCondition := deploymentConditions.Get(dataplanev1.NodeSetDeploymentReadyCondition) if condition.IsError(deploymentCondition) { - err = fmt.Errorf(deploymentCondition.Message) + err = fmt.Errorf("%s", deploymentCondition.Message) isDeploymentFailed = true failedDeploymentName = deployment.Name break @@ -685,7 +685,7 @@ func (r *OpenStackDataPlaneNodeSetReconciler) machineConfigWatcherFn( listOpts := []client.ListOption{ client.InNamespace(obj.GetNamespace()), } - if err := r.Client.List(ctx, nodeSets, listOpts...); err != nil { + if err := r.List(ctx, nodeSets, listOpts...); err != nil { Log.Error(err, "Unable to retrieve OpenStackDataPlaneNodeSetList") return nil } @@ -747,7 +747,7 @@ func (r *OpenStackDataPlaneNodeSetReconciler) genericWatcherFn( listOpts := []client.ListOption{ client.InNamespace(obj.GetNamespace()), } - if err := r.Client.List(ctx, nodeSets, listOpts...); err != nil { + if err := r.List(ctx, nodeSets, listOpts...); err != nil { Log.Error(err, "Unable to retrieve OpenStackDataPlaneNodeSetList") return nil } diff --git a/controllers/lightspeed/openstacklightspeed_controller.go b/controllers/lightspeed/openstacklightspeed_controller.go index 99dac08bc8..56b1dd726a 100644 --- a/controllers/lightspeed/openstacklightspeed_controller.go +++ b/controllers/lightspeed/openstacklightspeed_controller.go @@ -14,6 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package lightspeed implements the OpenStackLightspeed controller for managing OpenStack Lightspeed resources package lightspeed import ( @@ -39,7 +40,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/controller/controllerutil" "sigs.k8s.io/controller-runtime/pkg/log" - lightspeedv1beta1 "github.com/openstack-k8s-operators/openstack-operator/apis/lightspeed/v1beta1" "github.com/openstack-k8s-operators/openstack-operator/pkg/lightspeed" ) @@ -74,8 +74,8 @@ func (r *OpenStackLightspeedReconciler) GetLogger(ctx context.Context) logr.Logg func (r *OpenStackLightspeedReconciler) Reconcile(ctx context.Context, req ctrl.Request) (ctrl.Result, error) { Log := r.GetLogger(ctx) - instance := &lightspeedv1beta1.OpenStackLightspeed{} - err := r.Client.Get(ctx, req.NamespacedName, instance) + instance := &lightspeedv1.OpenStackLightspeed{} + err := r.Get(ctx, req.NamespacedName, instance) if err != nil { if k8s_errors.IsNotFound(err) { Log.Info("OpenStackLightspeed CR not found") @@ -145,7 +145,7 @@ func (r *OpenStackLightspeedReconciler) Reconcile(ctx context.Context, req ctrl. } if instance.Spec.RAGImage == "" { - instance.Spec.RAGImage = lightspeedv1beta1.OpenStackLightspeedDefaultValues.RAGImageURL + instance.Spec.RAGImage = lightspeedv1.OpenStackLightspeedDefaultValues.RAGImageURL } OLSOperatorInstalled, err := lightspeed.IsOLSOperatorInstalled(ctx, helper) @@ -242,7 +242,7 @@ func (r *OpenStackLightspeedReconciler) Reconcile(ctx context.Context, req ctrl. func (r *OpenStackLightspeedReconciler) reconcileDelete( ctx context.Context, helper *common_helper.Helper, - instance *lightspeedv1beta1.OpenStackLightspeed, + instance *lightspeedv1.OpenStackLightspeed, ) (ctrl.Result, error) { Log := r.GetLogger(ctx) @@ -272,7 +272,7 @@ func (r *OpenStackLightspeedReconciler) reconcileDelete( return ctrl.Result{}, err } - err = r.Client.Delete(ctx, &olsConfig) + err = r.Delete(ctx, &olsConfig) if err != nil { return ctrl.Result{}, err } @@ -293,7 +293,7 @@ func (r *OpenStackLightspeedReconciler) SetupWithManager(mgr ctrl.Manager) error listOpts := []client.ListOption{ client.InNamespace(o.GetNamespace()), } - if err := r.Client.List(ctx, versionList, listOpts...); err != nil { + if err := r.List(ctx, versionList, listOpts...); err != nil { Log.Error(err, "Unable to retrieve OpenStackVersion") return nil } @@ -313,7 +313,7 @@ func (r *OpenStackLightspeedReconciler) SetupWithManager(mgr ctrl.Manager) error }) return ctrl.NewControllerManagedBy(mgr). - For(&lightspeedv1beta1.OpenStackLightspeed{}). + For(&lightspeedv1.OpenStackLightspeed{}). Watches(&corev1beta1.OpenStackVersion{}, versionFunc). Complete(r) } diff --git a/controllers/operator/openstack_controller.go b/controllers/operator/openstack_controller.go index 998b2c1d8e..fff4c2a5cd 100644 --- a/controllers/operator/openstack_controller.go +++ b/controllers/operator/openstack_controller.go @@ -14,6 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package operator contains the OpenStack operator controller implementation package operator import ( @@ -133,12 +134,12 @@ func (r *OpenStackReconciler) Reconcile(ctx context.Context, req ctrl.Request) ( // Fetch the OpenStack instance instanceList := &operatorv1beta1.OpenStackList{} - err := r.Client.List(ctx, instanceList, &client.ListOptions{}) + err := r.List(ctx, instanceList, &client.ListOptions{}) if err != nil { return ctrl.Result{}, errors.Wrap(err, "failed listing all OpenStack instances") } instance := &operatorv1beta1.OpenStack{} - err = r.Client.Get(ctx, req.NamespacedName, instance) + err = r.Get(ctx, req.NamespacedName, instance) if err != nil { if apierrors.IsNotFound(err) { // Request object not found, could have been deleted after reconcile req. @@ -229,7 +230,7 @@ func (r *OpenStackReconciler) Reconcile(ctx context.Context, req ctrl.Request) ( } if instanceList.Items[0].Name != req.Name { Log.Info("Ignoring OpenStack.operator.openstack.org because one already exists and does not match existing name") - err = r.Client.Delete(ctx, instance, &client.DeleteOptions{}) + err = r.Delete(ctx, instance, &client.DeleteOptions{}) if err != nil { instance.Status.Conditions.Set(condition.FalseCondition( operatorv1beta1.OpenStackOperatorReadyCondition, @@ -363,7 +364,7 @@ func (r *OpenStackReconciler) reconcileDelete(ctx context.Context, instance *ope func (r *OpenStackReconciler) countDeployments(ctx context.Context, instance *operatorv1beta1.OpenStack) (int, []string, error) { deployments := &appsv1.DeploymentList{} pending := []string{} - err := r.Client.List(ctx, deployments, &client.ListOptions{Namespace: instance.Namespace}) + err := r.List(ctx, deployments, &client.ListOptions{Namespace: instance.Namespace}) if err != nil { return 0, pending, err } @@ -409,7 +410,7 @@ func (r *OpenStackReconciler) checkServiceEndpoints(ctx context.Context, instanc Log := r.GetLogger(ctx) endpointSliceList := &discoveryv1.EndpointSliceList{} - err := r.Client.List(ctx, endpointSliceList, &client.ListOptions{Namespace: instance.Namespace}) + err := r.List(ctx, endpointSliceList, &client.ListOptions{Namespace: instance.Namespace}) if err != nil { if apierrors.IsNotFound(err) { Log.Info("Webhook endpoint not found. Requeuing...") @@ -755,14 +756,14 @@ func (r *OpenStackReconciler) cleanupObsoleteResources(ctx context.Context, inst csvList := &uns.UnstructuredList{} csvList.SetGroupVersionKind(csvGVR.GroupVersion().WithKind("ClusterServiceVersion")) - err := r.Client.List(ctx, csvList, &client.ListOptions{Namespace: instance.Namespace}) + err := r.List(ctx, csvList, &client.ListOptions{Namespace: instance.Namespace}) if err != nil { return err } for _, csv := range csvList.Items { Log.Info("Found CSV", "name", csv.GetName()) if isServiceOperatorResource(csv.GetName()) { - err = r.Client.Delete(ctx, &csv) + err = r.Delete(ctx, &csv) if err != nil { if apierrors.IsNotFound(err) { Log.Info("CSV not found on delete. Continuing...", "name", csv.GetName()) @@ -776,14 +777,14 @@ func (r *OpenStackReconciler) cleanupObsoleteResources(ctx context.Context, inst subscriptionList := &uns.UnstructuredList{} subscriptionList.SetGroupVersionKind(subscriptionGVR.GroupVersion().WithKind("Subscription")) - err = r.Client.List(ctx, subscriptionList, &client.ListOptions{Namespace: instance.Namespace}) + err = r.List(ctx, subscriptionList, &client.ListOptions{Namespace: instance.Namespace}) if err != nil { return err } for _, subscription := range subscriptionList.Items { Log.Info("Found Subscription", "name", subscription.GetName()) if isServiceOperatorResource(subscription.GetName()) { - err = r.Client.Delete(ctx, &subscription) + err = r.Delete(ctx, &subscription) if err != nil { if apierrors.IsNotFound(err) { Log.Info("Subscription not found on delete. Continuing...", "name", subscription.GetName()) @@ -800,7 +801,7 @@ func (r *OpenStackReconciler) cleanupObsoleteResources(ctx context.Context, inst installPlanList := &uns.UnstructuredList{} installPlanList.SetGroupVersionKind(installPlanGVR.GroupVersion().WithKind("InstallPlan")) - err = r.Client.List(ctx, installPlanList, &client.ListOptions{Namespace: instance.Namespace}) + err = r.List(ctx, installPlanList, &client.ListOptions{Namespace: instance.Namespace}) if err != nil { return err } @@ -814,7 +815,7 @@ func (r *OpenStackReconciler) cleanupObsoleteResources(ctx context.Context, inst if found { // just checking for the first one should be sufficient if isServiceOperatorResource(csvNames[0].(string)) { - err = r.Client.Delete(ctx, &installPlan) + err = r.Delete(ctx, &installPlan) if err != nil { if apierrors.IsNotFound(err) { Log.Info("Installplane not found on delete. Continuing...", "name", installPlan.GetName()) @@ -848,7 +849,7 @@ func (r *OpenStackReconciler) postCleanupObsoleteResources(ctx context.Context, // 4) installPlan from old service operators removed operatorList := &uns.UnstructuredList{} operatorList.SetGroupVersionKind(operatorGVR.GroupVersion().WithKind("Operator")) - err := r.Client.List(ctx, operatorList, &client.ListOptions{Namespace: instance.Namespace}) + err := r.List(ctx, operatorList, &client.ListOptions{Namespace: instance.Namespace}) if err != nil { return err } @@ -894,7 +895,7 @@ func (r *OpenStackReconciler) postCleanupObsoleteResources(ctx context.Context, // references from CRD's should be removed before this function is called // but this is a safeguard as we do not want to delete them if refData["kind"].(string) != "CustomResourceDefinition" { - err = r.Client.Delete(ctx, &obj) + err = r.Delete(ctx, &obj) if err != nil { if apierrors.IsNotFound(err) { Log.Info("Object not found on delete. Continuing...", "name", obj.GetName()) @@ -908,7 +909,7 @@ func (r *OpenStackReconciler) postCleanupObsoleteResources(ctx context.Context, return fmt.Errorf("Requeuing/Found references for operator name: %s, refs: %v", operator.GetName(), refs) } // no refs found so we should be able to successfully delete the operator - err = r.Client.Delete(ctx, &operator) + err = r.Delete(ctx, &operator) if err != nil { return err } diff --git a/go.mod b/go.mod index 8334836a37..0594a9488f 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/openstack-k8s-operators/openstack-operator -go 1.21 +go 1.24 require ( github.com/cert-manager/cert-manager v1.14.7 diff --git a/main.go b/main.go index 2700fabbfe..6e2516c53b 100644 --- a/main.go +++ b/main.go @@ -14,6 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package main provides the entry point for the OpenStack operator package main import ( diff --git a/pkg/dataplane/baremetal.go b/pkg/dataplane/baremetal.go index 8ac5caacd0..70aa51bac7 100644 --- a/pkg/dataplane/baremetal.go +++ b/pkg/dataplane/baremetal.go @@ -14,6 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package deployment provides functionality for OpenStack dataplane baremetal deployment operations package deployment import ( @@ -29,13 +30,13 @@ import ( condition "github.com/openstack-k8s-operators/lib-common/modules/common/condition" "github.com/openstack-k8s-operators/lib-common/modules/common/helper" "github.com/openstack-k8s-operators/lib-common/modules/common/labels" - "github.com/openstack-k8s-operators/lib-common/modules/common/util" utils "github.com/openstack-k8s-operators/lib-common/modules/common/util" baremetalv1 "github.com/openstack-k8s-operators/openstack-baremetal-operator/api/v1beta1" openstackv1 "github.com/openstack-k8s-operators/openstack-operator/apis/core/v1beta1" dataplanev1 "github.com/openstack-k8s-operators/openstack-operator/apis/dataplane/v1beta1" ) +// ProvisionResult represents the result of a baremetal provisioning operation type ProvisionResult struct { IsProvisioned bool BmhRefHash string @@ -143,7 +144,7 @@ func DeployBaremetalSet( } func getBMHRefHash(bmSet *baremetalv1.OpenStackBaremetalSet) (string, error) { - bmhRefHash, err := util.ObjectHash(bmSet.Status.BaremetalHosts) + bmhRefHash, err := utils.ObjectHash(bmSet.Status.BaremetalHosts) if err != nil { return "", err } diff --git a/pkg/dataplane/deployment.go b/pkg/dataplane/deployment.go index bd11edcdd6..b4062c9118 100644 --- a/pkg/dataplane/deployment.go +++ b/pkg/dataplane/deployment.go @@ -207,7 +207,7 @@ func (d *Deployer) ConditionalDeploy( readyCondition, condition.RequestedReason, condition.SeverityInfo, - readyWaitingMessage)) + "%s", readyWaitingMessage)) } @@ -234,7 +234,7 @@ func (d *Deployer) ConditionalDeploy( log.Info(fmt.Sprintf("Condition %s ready", readyCondition)) nsConditions.Set(condition.TrueCondition( readyCondition, - readyMessage)) + "%s", readyMessage)) } else if ansibleJob.Status.Failed > *ansibleJob.Spec.BackoffLimit { errorMsg := fmt.Sprintf("execution.name %s execution.namespace %s failed pods: %d", ansibleJob.Name, ansibleJob.Namespace, ansibleJob.Status.Failed) for _, condition := range ansibleJob.Status.Conditions { @@ -246,7 +246,7 @@ func (d *Deployer) ConditionalDeploy( errorMsg = fmt.Sprintf("backoff limit reached for execution.name %s execution.namespace %s execution.condition.message: %s", ansibleJob.Name, ansibleJob.Namespace, ansibleCondition.Message) } log.Info(fmt.Sprintf("Condition %s error", readyCondition)) - err = fmt.Errorf(errorMsg) + err = fmt.Errorf("%s", errorMsg) nsConditions.Set(condition.FalseCondition( readyCondition, condition.Reason(ansibleCondition.Reason), @@ -259,7 +259,7 @@ func (d *Deployer) ConditionalDeploy( readyCondition, condition.RequestedReason, condition.SeverityInfo, - readyWaitingMessage)) + "%s", readyWaitingMessage)) } } d.Status.NodeSetConditions[d.NodeSet.Name] = nsConditions diff --git a/pkg/dataplane/inventory.go b/pkg/dataplane/inventory.go index e201a36e78..fd2f144420 100644 --- a/pkg/dataplane/inventory.go +++ b/pkg/dataplane/inventory.go @@ -223,7 +223,7 @@ func GenerateNodeSetInventory(ctx context.Context, helper *helper.Helper, "openstackdataplanenodeset": instance.Name, "inventory": "true", } - for key, val := range instance.ObjectMeta.Labels { + for key, val := range instance.Labels { labels[key] = val } template := []utils.Template{ diff --git a/pkg/dataplane/ipam.go b/pkg/dataplane/ipam.go index d8f4bf0fbf..43f64a575f 100644 --- a/pkg/dataplane/ipam.go +++ b/pkg/dataplane/ipam.go @@ -87,7 +87,7 @@ func checkDNSService(ctx context.Context, helper *helper.Helper, return nil } -// createNetServiceNetMap Creates a map of net and ServiceNet +// BuildNetServiceNetMap creates a map of net and ServiceNet func BuildNetServiceNetMap(netconfig infranetworkv1.NetConfig) map[string]string { serviceNetMap := make(map[string]string) for _, net := range netconfig.Spec.Networks { @@ -197,7 +197,7 @@ func EnsureDNSData(ctx context.Context, helper *helper.Helper, dataplanev1.NodeSetDNSDataReadyCondition, condition.ErrorReason, condition.SeverityError, - err.Error()) + "%s", err.Error()) return dnsDetails, err } if dnsDetails.ClusterAddresses == nil { diff --git a/pkg/dataplane/service.go b/pkg/dataplane/service.go index d7fc56d734..cb80cd6808 100644 --- a/pkg/dataplane/service.go +++ b/pkg/dataplane/service.go @@ -78,7 +78,9 @@ func EnsureServices(ctx context.Context, helper *helper.Helper, instance *datapl servicesPath, found := os.LookupEnv("OPERATOR_SERVICES") if !found { servicesPath = "config/services" - os.Setenv("OPERATOR_SERVICES", servicesPath) + if err := os.Setenv("OPERATOR_SERVICES", servicesPath); err != nil { + return fmt.Errorf("failed to set OPERATOR_SERVICES environment variable: %w", err) + } util.LogForObject( helper, "OPERATOR_SERVICES not set in env when reconciling ", instance, "defaulting to ", servicesPath) @@ -150,7 +152,7 @@ func EnsureServices(ctx context.Context, helper *helper.Helper, instance *datapl return nil } -// Dedupe services to deploy +// DedupeServices deduplicates services to deploy. // Multiple Services of same ServiceType/ServiceName in a nodeset // Global Services in multiple NodeSets for a deployment func DedupeServices(ctx context.Context, helper *helper.Helper, diff --git a/pkg/dataplane/util/ansible_execution.go b/pkg/dataplane/util/ansible_execution.go index f667deb1b4..ff74131041 100644 --- a/pkg/dataplane/util/ansible_execution.go +++ b/pkg/dataplane/util/ansible_execution.go @@ -14,7 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -package util +// Package util provides utility functions for OpenStack dataplane operations +package util //nolint:revive // util is an acceptable package name in this context import ( "context" @@ -198,6 +199,7 @@ func GetAnsibleExecutionNameAndLabels(service *dataplanev1.OpenStackDataPlaneSer return executionName, labels } +// BuildAeeJobSpec builds the job specification for Ansible Execution Environment func (a *EEJob) BuildAeeJobSpec( aeeSpec *dataplanev1.AnsibleEESpec, deployment *dataplanev1.OpenStackDataPlaneDeployment, @@ -228,6 +230,7 @@ func (a *EEJob) BuildAeeJobSpec( a.DetermineAeeImage(aeeSpec) } +// FormatAEECmdLineArguments formats command line arguments for Ansible Execution Environment func (a *EEJob) FormatAEECmdLineArguments(aeeSpec *dataplanev1.AnsibleEESpec) { var cmdLineArguments strings.Builder @@ -246,6 +249,7 @@ func (a *EEJob) FormatAEECmdLineArguments(aeeSpec *dataplanev1.AnsibleEESpec) { } } +// FormatAEEExtraVars formats extra variables for Ansible Execution Environment func (a *EEJob) FormatAEEExtraVars( aeeSpec *dataplanev1.AnsibleEESpec, service *dataplanev1.OpenStackDataPlaneService, @@ -278,6 +282,7 @@ func (a *EEJob) FormatAEEExtraVars( } } +// DetermineAeeImage determines the appropriate image for Ansible Execution Environment func (a *EEJob) DetermineAeeImage(aeeSpec *dataplanev1.AnsibleEESpec) { if len(aeeSpec.OpenStackAnsibleEERunnerImage) > 0 { a.Image = aeeSpec.OpenStackAnsibleEERunnerImage @@ -286,7 +291,8 @@ func (a *EEJob) DetermineAeeImage(aeeSpec *dataplanev1.AnsibleEESpec) { } } -// SetAeeSshMounts - Using the information provided from the NodeSet, Service and AnsibleEE Spec. We determine the required +// SetAeeSSHMounts determines the required SSH key mounts for the Ansible Execution Job. +// Using the information provided from the NodeSet, Service and AnsibleEE Spec, it determines the required // ssh key mounts that are required for the Ansible Execution Job. This function takes a pointer to the storage.VolMounts // struct and updates them as per the required ssh key related mounts. func SetAeeSSHMounts( @@ -328,6 +334,7 @@ func SetAeeSSHMounts( } } +// SetAeeInvMounts sets up inventory mounts for Ansible Execution Environment func SetAeeInvMounts( nodeSet client.Object, service *dataplanev1.OpenStackDataPlaneService, @@ -364,6 +371,7 @@ func SetAeeInvMounts( } } +// CreateVolume creates a volume configuration for Ansible Execution Environment mounts func CreateVolume(ansibleEEMounts *storage.VolMounts, volumeName string, volumeMountPath string, secretName string, keyToPathKey string) { volume := storage.Volume{ Name: volumeName, @@ -383,6 +391,7 @@ func CreateVolume(ansibleEEMounts *storage.VolMounts, volumeName string, volumeM ansibleEEMounts.Volumes = append(ansibleEEMounts.Volumes, volume) } +// CreateVolumeMount creates a volume mount configuration for Ansible Execution Environment func CreateVolumeMount(ansibleEEMounts *storage.VolMounts, volumeMountName string, volumeMountPath string, volumeMountSubPath string) { volumeMount := corev1.VolumeMount{ Name: volumeMountName, diff --git a/pkg/dataplane/util/ansibleee.go b/pkg/dataplane/util/ansibleee.go index acc1be9786..1cf79eb8e5 100644 --- a/pkg/dataplane/util/ansibleee.go +++ b/pkg/dataplane/util/ansibleee.go @@ -1,4 +1,4 @@ -package util +package util //nolint:revive // util is an acceptable package name in this context import ( "encoding/json" @@ -95,7 +95,7 @@ func (a *EEJob) JobForOpenStackAnsibleEE(h *helper.Helper) (*batchv1.Job, error) // ansible runner identifier // if the flag is set we use resource name as an argument // https://ansible-runner.readthedocs.io/en/stable/intro/#artifactdir - if !(util.StringInSlice("-i", args) || util.StringInSlice("--ident", args)) { + if !util.StringInSlice("-i", args) && !util.StringInSlice("--ident", args) { identifier := a.Name args = append(args, []string{"-i", identifier}...) } @@ -111,7 +111,7 @@ func (a *EEJob) JobForOpenStackAnsibleEE(h *helper.Helper) (*batchv1.Job, error) }}, } - if a.NodeSelector != nil && len(a.NodeSelector) > 0 { + if len(a.NodeSelector) > 0 { podSpec.NodeSelector = a.NodeSelector } diff --git a/pkg/dataplane/util/datasource.go b/pkg/dataplane/util/datasource.go index 402c0f31e2..3c8bdc263c 100644 --- a/pkg/dataplane/util/datasource.go +++ b/pkg/dataplane/util/datasource.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package util +package util //nolint:revive // util is an acceptable package name in this context import ( "context" @@ -27,7 +27,7 @@ import ( "k8s.io/apimachinery/pkg/types" ) -// GetDataSourceCmSecrets gets the ConfigMaps and Secrets from a DataSource +// GetDataSourceCmSecret gets the ConfigMaps and Secrets from a DataSource func GetDataSourceCmSecret(ctx context.Context, helper *helper.Helper, namespace string, dataSource dataplanev1.DataSource) (*v1.ConfigMap, *v1.Secret, error) { var configMap *v1.ConfigMap diff --git a/pkg/dataplane/util/image_registry.go b/pkg/dataplane/util/image_registry.go index 3413eff4c4..f22be79d02 100644 --- a/pkg/dataplane/util/image_registry.go +++ b/pkg/dataplane/util/image_registry.go @@ -1,4 +1,4 @@ -package util +package util //nolint:revive // util is an acceptable package name in this context import ( "context" diff --git a/pkg/dataplane/util/version.go b/pkg/dataplane/util/version.go index b02f72e0fe..0a4782faee 100644 --- a/pkg/dataplane/util/version.go +++ b/pkg/dataplane/util/version.go @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ -package util +package util //nolint:revive // util is an acceptable package name in this context import ( "context" diff --git a/pkg/lightspeed/funcs.go b/pkg/lightspeed/funcs.go index 66a1ce30ed..ccab886fda 100644 --- a/pkg/lightspeed/funcs.go +++ b/pkg/lightspeed/funcs.go @@ -14,6 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package lightspeed provides utilities and functions for OpenStack Lightspeed operations package lightspeed import ( @@ -34,7 +35,6 @@ import ( common_helper "github.com/openstack-k8s-operators/lib-common/modules/common/helper" lightspeedv1 "github.com/openstack-k8s-operators/openstack-operator/apis/lightspeed/v1beta1" - lightspeedv1beta1 "github.com/openstack-k8s-operators/openstack-operator/apis/lightspeed/v1beta1" corev1 "k8s.io/api/core/v1" k8s_errors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" @@ -115,7 +115,7 @@ func IsOLSOperatorInstalled(ctx context.Context, helper *common_helper.Helper) ( // PatchOLSConfig patches OLSConfig with information from OpenStackLightspeed instance. func PatchOLSConfig( helper *common_helper.Helper, - instance *lightspeedv1beta1.OpenStackLightspeed, + instance *lightspeedv1.OpenStackLightspeed, olsConfig *uns.Unstructured, indexID string, ) error { @@ -234,7 +234,7 @@ func IsOLSConfigReady(ctx context.Context, helper *common_helper.Helper) (bool, func ResolveIndexID( ctx context.Context, helper *common_helper.Helper, - instance *lightspeedv1beta1.OpenStackLightspeed, + instance *lightspeedv1.OpenStackLightspeed, ) (string, ctrl.Result, error) { result, err := createOLSJob(ctx, helper, instance) if err != nil { @@ -290,7 +290,7 @@ func extractEnvFromPodLogs(ctx context.Context, pod *corev1.Pod, envVarName stri if err != nil { return "", err } - defer podLogs.Close() + defer func() { _ = podLogs.Close() }() buf := new(strings.Builder) _, err = io.Copy(buf, podLogs) @@ -318,7 +318,7 @@ func extractEnvFromPodLogs(ctx context.Context, pod *corev1.Pod, envVarName stri func createOLSJob( ctx context.Context, helper *common_helper.Helper, - instance *lightspeedv1beta1.OpenStackLightspeed, + instance *lightspeedv1.OpenStackLightspeed, ) (ctrl.Result, error) { imageHash := sha256.Sum256([]byte(instance.Spec.RAGImage)) imageHashStr := fmt.Sprintf("%x", imageHash) @@ -371,7 +371,7 @@ func createOLSJob( return ctrl.Result{}, nil } -func requeueWaitingPod(helper *common_helper.Helper, instance *lightspeedv1beta1.OpenStackLightspeed) (string, ctrl.Result, error) { +func requeueWaitingPod(helper *common_helper.Helper, instance *lightspeedv1.OpenStackLightspeed) (string, ctrl.Result, error) { instance.Status.Conditions.Set(condition.FalseCondition( lightspeedv1.OpenStackLightspeedReadyCondition, condition.RequestedReason, diff --git a/pkg/openstack/barbican.go b/pkg/openstack/barbican.go index b845f5a19d..471990190c 100644 --- a/pkg/openstack/barbican.go +++ b/pkg/openstack/barbican.go @@ -1,3 +1,4 @@ +// Package openstack provides OpenStack service reconciliation and management functionality package openstack import ( diff --git a/pkg/openstack/ca.go b/pkg/openstack/ca.go index 7e193fc72c..7cbcd15c50 100644 --- a/pkg/openstack/ca.go +++ b/pkg/openstack/ca.go @@ -425,7 +425,8 @@ func ReconcileCAs(ctx context.Context, instance *corev1.OpenStackControlPlane, h corev1.OpenStackControlPlaneCAReadyCondition, condition.ErrorReason, condition.SeverityWarning, - fmt.Sprintf(condition.TLSInputReadyWaitingMessage, instance.Spec.TLS.CaBundleSecretName))) + condition.TLSInputReadyWaitingMessage, + instance.Spec.TLS.CaBundleSecretName)) timeout := time.Second * 10 Log.Info(fmt.Sprintf("Certificate %s not found, reconcile in %s", instance.Spec.TLS.CaBundleSecretName, timeout.String())) @@ -726,7 +727,7 @@ func getCAFromSecret( func getOperatorCABundle(caFile string) ([]byte, error) { contents, err := os.ReadFile(caFile) if err != nil { - return nil, fmt.Errorf("File reading error %w", err) + return nil, fmt.Errorf("file reading error %w", err) } return contents, nil diff --git a/pkg/openstack/common.go b/pkg/openstack/common.go index 82959d9d10..59b86a4598 100644 --- a/pkg/openstack/common.go +++ b/pkg/openstack/common.go @@ -38,7 +38,6 @@ import ( corev1 "github.com/openstack-k8s-operators/openstack-operator/apis/core/v1beta1" // corev1 "k8s.io/api/core/v1" - corev1beta1 "github.com/openstack-k8s-operators/openstack-operator/apis/core/v1beta1" ovnv1 "github.com/openstack-k8s-operators/ovn-operator/api/v1beta1" placementv1 "github.com/openstack-k8s-operators/placement-operator/api/v1beta1" swiftv1 "github.com/openstack-k8s-operators/swift-operator/api/v1beta1" @@ -114,7 +113,7 @@ func AddServiceOpenStackOperatorLabel(svcOverride service.RoutedOverrideSpec, va return svcOverride } -// Endpoints +// Endpoints represents service endpoint details and TLS CA configuration type Endpoints struct { EndpointDetails map[service.Endpoint]EndpointDetail tls.Ca @@ -180,7 +179,7 @@ func GetRoutesListWithLabel( } if err := h.GetClient().List(ctx, routeList, listOpts...); err != nil { - err = fmt.Errorf("Error listing routes for %s: %w", labelSelectorMap, err) + err = fmt.Errorf("error listing routes for %s: %w", labelSelectorMap, err) return nil, err } @@ -239,7 +238,7 @@ func EnsureEndpointConfig( switch ed.Type { case service.EndpointPublic: // If the service has the create ingress annotation and its a default ClusterIP service -> create route - ed.Route.Create = svc.ObjectMeta.Annotations[service.AnnotationIngressCreateKey] == "true" && + ed.Route.Create = svc.Annotations[service.AnnotationIngressCreateKey] == "true" && svc.Spec.Type == k8s_corev1.ServiceTypeClusterIP if ingressOverride.Route != nil { @@ -295,7 +294,7 @@ func EnsureEndpointConfig( // a LoadBalancer (MetalLB) for the public endpoints. if !ed.Route.Create && (tlsConfig.API.Public.SecretName != nil && *tlsConfig.API.Public.SecretName != "") { ed.Service.TLS.SecretName = tlsConfig.API.Public.SecretName - _, err := ed.Service.TLS.GenericService.ValidateCertSecret(ctx, helper, instance.GetNamespace()) + _, err := ed.Service.TLS.ValidateCertSecret(ctx, helper, instance.GetNamespace()) if err != nil { if k8s_errors.IsNotFound(err) { return endpoints, ctrl.Result{RequeueAfter: time.Duration(10) * time.Second}, nil @@ -453,7 +452,7 @@ func (ed *EndpointDetail) ensureRoute( owner := metav1.GetControllerOf(&r.ObjectMeta) // Delete the route if the service was changed not to expose a route - if svc.ObjectMeta.Annotations[service.AnnotationIngressCreateKey] == "false" && + if svc.Annotations[service.AnnotationIngressCreateKey] == "false" && r.Spec.To.Name == ed.Name && owner != nil && owner.UID == instance.GetUID() { // Delete any other owner refs from ref list to not block deletion until owners are gone @@ -463,7 +462,7 @@ func (ed *EndpointDetail) ensureRoute( if ed.Service.TLS.Enabled { err = DeleteCertificate(ctx, helper, instance.Namespace, ed.Route.TLS.CertName) if err != nil && !k8s_errors.IsNotFound(err) { - err = fmt.Errorf("Error deleting route certificate %s: %w", ed.Route.TLS.CertName, err) + err = fmt.Errorf("error deleting route certificate %s: %w", ed.Route.TLS.CertName, err) return ctrl.Result{}, err } } @@ -471,7 +470,7 @@ func (ed *EndpointDetail) ensureRoute( // Delete route err := helper.GetClient().Delete(ctx, &r) if err != nil && !k8s_errors.IsNotFound(err) { - err = fmt.Errorf("Error deleting route %s: %w", r.Name, err) + err = fmt.Errorf("error deleting route %s: %w", r.Name, err) return ctrl.Result{}, err } @@ -497,7 +496,7 @@ func (ed *EndpointDetail) ensureRoute( ed.Service.OverrideSpec.EmbeddedLabelsAnnotations = &service.EmbeddedLabelsAnnotations{} } - if labelVal, ok := ed.Service.OverrideSpec.EmbeddedLabelsAnnotations.Labels[ooAppSelector]; ok { + if labelVal, ok := ed.Service.OverrideSpec.Labels[ooAppSelector]; ok { ed.Labels = map[string]string{ooAppSelector: labelVal} } @@ -534,7 +533,7 @@ func (ed *EndpointDetail) CreateRoute( // initialize the route with any custom provided route override // per default use the service name as targetPortName if we don't have the annotation. targetPortName := ed.Service.Spec.Name - if name, ok := ed.Service.Spec.ObjectMeta.Annotations[service.AnnotationIngressTargetPortNameKey]; ok && name != "" { + if name, ok := ed.Service.Spec.Annotations[service.AnnotationIngressTargetPortNameKey]; ok && name != "" { targetPortName = name } enptRoute, err := route.NewRoute( @@ -719,7 +718,7 @@ func (e *Endpoints) GetEndptCertSecret(endpt service.Endpoint) *string { return endptTLSSecret } -// Set up any defaults used by service operator defaulting logic +// SetupServiceOperatorDefaults sets up any defaults used by service operator defaulting logic func SetupServiceOperatorDefaults() { // Acquire environmental defaults and initialize service operators that // require each respective default @@ -782,6 +781,7 @@ func SetupServiceOperatorDefaults() { barbicanv1.SetupDefaults() } +// GetIssuerCertSecret retrieves the certificate secret from the issuer func GetIssuerCertSecret( ctx context.Context, helper *helper.Helper, @@ -822,6 +822,7 @@ func serviceExists(route string, services *k8s_corev1.ServiceList) bool { return false } +// DeleteCertificate deletes a certificate from the specified namespace func DeleteCertificate( ctx context.Context, helper *helper.Helper, @@ -842,9 +843,10 @@ func DeleteCertificate( return cert.Delete(ctx, helper) } +// DeleteCertsAndRoutes deletes certificates and routes for the OpenStack control plane func DeleteCertsAndRoutes( ctx context.Context, - instance *corev1beta1.OpenStackControlPlane, + instance *corev1.OpenStackControlPlane, helper *helper.Helper, ) (ctrl.Result, error) { @@ -924,7 +926,7 @@ func DeleteCertsAndRoutes( // clarity in the case that the targetCondition ends up being the highest priority // condition in the OpenStackControlPlane (and thus appears in the // OpenStackControlPlane's "Ready" condition at the end of the reconciliation loop) -func MirrorSubResourceCondition(conditions condition.Conditions, targetCondition condition.Type, instance *corev1beta1.OpenStackControlPlane, subResource string) { +func MirrorSubResourceCondition(conditions condition.Conditions, targetCondition condition.Type, instance *corev1.OpenStackControlPlane, subResource string) { myCondition := conditions.Mirror(targetCondition) if subResource != "" { // Prepend the kind of the subResource to the message associated with the condition diff --git a/pkg/openstack/dataplane.go b/pkg/openstack/dataplane.go index c5ed1d9c81..9a195b11f5 100644 --- a/pkg/openstack/dataplane.go +++ b/pkg/openstack/dataplane.go @@ -24,6 +24,7 @@ func GetDataplaneNodesets(ctx context.Context, instance *corev1beta1.OpenStackCo return dataplaneNodesets, nil } +// DataplaneNodesetsDeployedVersionIsSet checks if deployed version is set for all dataplane nodesets func DataplaneNodesetsDeployedVersionIsSet(dataplaneNodesets *dataplanev1.OpenStackDataPlaneNodeSetList) bool { for _, nodeset := range dataplaneNodesets.Items { // FIXME: DeployedVersion on the DataplaneNodeset should be a string pointer to match how Controlplane implements this diff --git a/pkg/openstack/galera.go b/pkg/openstack/galera.go index a692d5ae30..a4e068e96b 100644 --- a/pkg/openstack/galera.go +++ b/pkg/openstack/galera.go @@ -152,7 +152,7 @@ func ReconcileGaleras( return ctrlResult, nil } - spec.TLS.Ca.CaBundleSecretName = instance.Status.TLS.CaBundleSecretName + spec.TLS.CaBundleSecretName = instance.Status.TLS.CaBundleSecretName spec.TLS.SecretName = ptr.To(certSecret.Name) status, galera, err := reconcileGalera(ctx, instance, version, helper, name, &spec) @@ -185,7 +185,7 @@ func ReconcileGaleras( corev1beta1.OpenStackControlPlaneMariaDBReadyErrorMessage, errors)) - return ctrl.Result{}, fmt.Errorf(errors) + return ctrl.Result{}, fmt.Errorf("%s", errors) } else if len(inprogress) > 0 { log.Info("Galera in progress") diff --git a/pkg/openstack/instanceha.go b/pkg/openstack/instanceha.go index 6ee3ab2f79..56027831ab 100644 --- a/pkg/openstack/instanceha.go +++ b/pkg/openstack/instanceha.go @@ -13,10 +13,13 @@ import ( ) const ( + // InstanceHaConfigMap is the name of the ConfigMap used for instance HA configuration InstanceHaConfigMap = "infra-instanceha-config" - InstanceHaImageKey = "instanceha-image" + // InstanceHaImageKey is the key used for the instance HA image in the ConfigMap + InstanceHaImageKey = "instanceha-image" ) +// ReconcileInstanceHa reconciles the instance HA configuration for the OpenStack control plane func ReconcileInstanceHa(ctx context.Context, instance *corev1beta1.OpenStackControlPlane, version *corev1beta1.OpenStackVersion, helper *helper.Helper) (ctrl.Result, error) { customData := map[string]string{ InstanceHaImageKey: *getImg(version.Status.ContainerImages.OpenstackClientImage, &missingImageDefault), diff --git a/pkg/openstack/ironic.go b/pkg/openstack/ironic.go index 96cf4d2a37..831bbf3645 100644 --- a/pkg/openstack/ironic.go +++ b/pkg/openstack/ironic.go @@ -235,7 +235,7 @@ func ReconcileIronic(ctx context.Context, instance *corev1beta1.OpenStackControl } -// IronicImagesCheck - return true if the ironic images match on the ControlPlane and Version, or if Ironic is not enabled +// IronicImageMatch returns true if the ironic images match on the ControlPlane and Version, or if Ironic is not enabled func IronicImageMatch(ctx context.Context, controlPlane *corev1beta1.OpenStackControlPlane, version *corev1beta1.OpenStackVersion) bool { Log := GetLogger(ctx) if controlPlane.Spec.Ironic.Enabled { diff --git a/pkg/openstack/memcached.go b/pkg/openstack/memcached.go index b16beb1ad6..064feaa27d 100644 --- a/pkg/openstack/memcached.go +++ b/pkg/openstack/memcached.go @@ -130,7 +130,7 @@ func ReconcileMemcacheds( corev1beta1.OpenStackControlPlaneMemcachedReadyErrorMessage, errors)) - return ctrlResult, fmt.Errorf(errors) + return ctrlResult, fmt.Errorf("%s", errors) } else if len(inprogress) > 0 { // We want to mirror the condition of the highest priority from the Memcached resources into the instance diff --git a/pkg/openstack/nova.go b/pkg/openstack/nova.go index c37eb4862a..cf287f1632 100644 --- a/pkg/openstack/nova.go +++ b/pkg/openstack/nova.go @@ -348,12 +348,12 @@ func ReconcileNova(ctx context.Context, instance *corev1beta1.OpenStackControlPl // RabbitMQCluster per nova cell. instance.Spec.Nova.Template.DeepCopyInto(&nova.Spec.NovaSpecCore) - nova.Spec.NovaImages.APIContainerImageURL = *version.Status.ContainerImages.NovaAPIImage - nova.Spec.NovaImages.NovaComputeContainerImageURL = *version.Status.ContainerImages.NovaComputeImage - nova.Spec.NovaImages.ConductorContainerImageURL = *version.Status.ContainerImages.NovaConductorImage - nova.Spec.NovaImages.MetadataContainerImageURL = *version.Status.ContainerImages.NovaAPIImage //metadata uses novaAPI image - nova.Spec.NovaImages.SchedulerContainerImageURL = *version.Status.ContainerImages.NovaSchedulerImage - nova.Spec.NovaImages.NoVNCContainerImageURL = *version.Status.ContainerImages.NovaNovncImage + nova.Spec.APIContainerImageURL = *version.Status.ContainerImages.NovaAPIImage + nova.Spec.NovaComputeContainerImageURL = *version.Status.ContainerImages.NovaComputeImage + nova.Spec.ConductorContainerImageURL = *version.Status.ContainerImages.NovaConductorImage + nova.Spec.MetadataContainerImageURL = *version.Status.ContainerImages.NovaAPIImage //metadata uses novaAPI image + nova.Spec.SchedulerContainerImageURL = *version.Status.ContainerImages.NovaSchedulerImage + nova.Spec.NoVNCContainerImageURL = *version.Status.ContainerImages.NovaNovncImage if nova.Spec.Secret == "" { nova.Spec.Secret = instance.Spec.Secret diff --git a/pkg/openstack/openstackclient.go b/pkg/openstack/openstackclient.go index 0128f89f6f..6d65270c56 100644 --- a/pkg/openstack/openstackclient.go +++ b/pkg/openstack/openstackclient.go @@ -58,7 +58,7 @@ func ReconcileOpenStackClient(ctx context.Context, instance *corev1.OpenStackCon openstackclient.Spec.ContainerImage = *version.Status.ContainerImages.OpenstackClientImage if instance.Spec.TLS.Ingress.Enabled || instance.Spec.TLS.PodLevel.Enabled { - openstackclient.Spec.Ca.CaBundleSecretName = tls.CABundleSecret + openstackclient.Spec.CaBundleSecretName = tls.CABundleSecret } err := controllerutil.SetControllerReference(helper.GetBeforeObject(), openstackclient, helper.GetScheme()) diff --git a/pkg/openstack/ovn.go b/pkg/openstack/ovn.go index e70394138c..29b03db460 100644 --- a/pkg/openstack/ovn.go +++ b/pkg/openstack/ovn.go @@ -119,6 +119,7 @@ func ReconcileOVN(ctx context.Context, instance *corev1beta1.OpenStackControlPla return ctrl.Result{}, nil } +// ReconcileOVNDbClusters reconciles the OVN database clusters for the OpenStack control plane func ReconcileOVNDbClusters(ctx context.Context, instance *corev1beta1.OpenStackControlPlane, version *corev1beta1.OpenStackVersion, helper *helper.Helper) (bool, condition.Conditions, error) { Log := GetLogger(ctx) dnsSuffix := clusterdns.GetDNSClusterDomain() @@ -215,9 +216,10 @@ func ReconcileOVNDbClusters(ctx context.Context, instance *corev1beta1.OpenStack dbcluster.DeepCopyInto(&OVNDBCluster.Spec.OVNDBClusterSpecCore) // we always set these to match OpenStackVersion - if dbcluster.DBType == ovnv1.NBDBType { + switch dbcluster.DBType { + case ovnv1.NBDBType: OVNDBCluster.Spec.ContainerImage = *version.Status.ContainerImages.OvnNbDbclusterImage - } else if dbcluster.DBType == ovnv1.SBDBType { + case ovnv1.SBDBType: OVNDBCluster.Spec.ContainerImage = *version.Status.ContainerImages.OvnSbDbclusterImage } @@ -252,6 +254,7 @@ func ReconcileOVNDbClusters(ctx context.Context, instance *corev1beta1.OpenStack } +// ReconcileOVNNorthd reconciles the OVN Northd service for the OpenStack control plane func ReconcileOVNNorthd(ctx context.Context, instance *corev1beta1.OpenStackControlPlane, version *corev1beta1.OpenStackVersion, helper *helper.Helper) (bool, condition.Conditions, error) { Log := GetLogger(ctx) conditions := condition.Conditions{} @@ -375,6 +378,7 @@ func ReconcileOVNNorthd(ctx context.Context, instance *corev1beta1.OpenStackCont } +// ReconcileOVNController reconciles the OVN Controller service for the OpenStack control plane func ReconcileOVNController(ctx context.Context, instance *corev1beta1.OpenStackControlPlane, version *corev1beta1.OpenStackVersion, helper *helper.Helper) (bool, condition.Conditions, error) { Log := GetLogger(ctx) conditions := condition.Conditions{} diff --git a/pkg/openstack/rabbitmq.go b/pkg/openstack/rabbitmq.go index d19715081d..895fab388e 100644 --- a/pkg/openstack/rabbitmq.go +++ b/pkg/openstack/rabbitmq.go @@ -128,7 +128,7 @@ func ReconcileRabbitMQs( corev1beta1.OpenStackControlPlaneRabbitMQReadyErrorMessage, errors)) - return ctrl.Result{}, fmt.Errorf(errors) + return ctrl.Result{}, fmt.Errorf("%s", errors) } else if len(inprogress) > 0 { instance.Status.Conditions.Set(condition.FalseCondition( @@ -259,7 +259,7 @@ func reconcileRabbitMQ( op, err := controllerutil.CreateOrPatch(ctx, helper.GetClient(), rabbitmq, func() error { spec.DeepCopyInto(&rabbitmq.Spec.RabbitMqSpecCore) if rabbitmq.Spec.Persistence.StorageClassName == nil { - log.Info(fmt.Sprintf("Setting StorageClassName: " + instance.Spec.StorageClass)) + log.Info(fmt.Sprintf("Setting StorageClassName: %s", instance.Spec.StorageClass)) rabbitmq.Spec.Persistence.StorageClassName = &instance.Spec.StorageClass } if tlsCert != "" { diff --git a/pkg/openstack/redis.go b/pkg/openstack/redis.go index 2c0972590f..377c6a6c2d 100644 --- a/pkg/openstack/redis.go +++ b/pkg/openstack/redis.go @@ -147,7 +147,7 @@ func ReconcileRedis( corev1beta1.OpenStackControlPlaneRedisReadyErrorMessage, errors)) - return ctrlResult, fmt.Errorf(errors) + return ctrlResult, fmt.Errorf("%s", errors) } else if len(inprogress) > 0 { // We want to mirror the condition of the highest priority from the Redis resources into the instance diff --git a/pkg/openstack/telemetry.go b/pkg/openstack/telemetry.go index a1e581028f..580244a73e 100644 --- a/pkg/openstack/telemetry.go +++ b/pkg/openstack/telemetry.go @@ -225,7 +225,7 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont Spec: &alertmanagerSvc, }, } - ed.Route.Create = alertmanagerSvc.ObjectMeta.Annotations[service.AnnotationIngressCreateKey] == "true" + ed.Route.Create = alertmanagerSvc.Annotations[service.AnnotationIngressCreateKey] == "true" ed.Route.TLS.Enabled = false if instance.Spec.Telemetry.AlertmanagerOverride.Route != nil { ed.Route.OverrideSpec = *instance.Spec.Telemetry.AlertmanagerOverride.Route @@ -332,10 +332,10 @@ func ReconcileTelemetry(ctx context.Context, instance *corev1beta1.OpenStackCont telemetry.Spec.Ceilometer.NotificationImage = *version.Status.ContainerImages.CeilometerNotificationImage telemetry.Spec.Ceilometer.SgCoreImage = *version.Status.ContainerImages.CeilometerSgcoreImage telemetry.Spec.Ceilometer.ProxyImage = *version.Status.ContainerImages.CeilometerProxyImage - telemetry.Spec.Autoscaling.AutoscalingSpec.Aodh.APIImage = *version.Status.ContainerImages.AodhAPIImage - telemetry.Spec.Autoscaling.AutoscalingSpec.Aodh.EvaluatorImage = *version.Status.ContainerImages.AodhEvaluatorImage - telemetry.Spec.Autoscaling.AutoscalingSpec.Aodh.NotifierImage = *version.Status.ContainerImages.AodhNotifierImage - telemetry.Spec.Autoscaling.AutoscalingSpec.Aodh.ListenerImage = *version.Status.ContainerImages.AodhListenerImage + telemetry.Spec.Autoscaling.Aodh.APIImage = *version.Status.ContainerImages.AodhAPIImage + telemetry.Spec.Autoscaling.Aodh.EvaluatorImage = *version.Status.ContainerImages.AodhEvaluatorImage + telemetry.Spec.Autoscaling.Aodh.NotifierImage = *version.Status.ContainerImages.AodhNotifierImage + telemetry.Spec.Autoscaling.Aodh.ListenerImage = *version.Status.ContainerImages.AodhListenerImage telemetry.Spec.Ceilometer.KSMImage = *getImg(version.Status.ContainerImages.KsmImage, &missingImageDefault) telemetry.Spec.Ceilometer.MysqldExporterImage = *getImg(version.Status.ContainerImages.CeilometerMysqldExporterImage, &missingImageDefault) diff --git a/pkg/openstack/test.go b/pkg/openstack/test.go index 3de495f96e..0ad750f0fd 100644 --- a/pkg/openstack/test.go +++ b/pkg/openstack/test.go @@ -13,17 +13,24 @@ import ( ) const ( - // config map generated by Keyston operator containing clouds.yaml - CloudsConfigMap = "openstack-config" + // CloudsConfigMap is the config map generated by Keystone operator containing clouds.yaml + CloudsConfigMap = "openstack-config" + // TestOperatorConfigMap is the name of the ConfigMap used for test operator configuration TestOperatorConfigMap = "test-operator-config" - TempestImageKey = "tempest-image" - TobikoImageKey = "tobiko-image" + // TempestImageKey is the key for Tempest image in the ConfigMap + TempestImageKey = "tempest-image" + // TobikoImageKey is the key for Tobiko image in the ConfigMap + TobikoImageKey = "tobiko-image" + // HorizontestImageKey is the key for Horizontest image in the ConfigMap HorizontestImageKey = "horizontest-image" + // AnsibletestImageKey is the key for Ansibletest image in the ConfigMap AnsibletestImageKey = "ansibletest-image" - CloudsKey = "clouds-secret-name" + // CloudsKey is the key for clouds secret name in the ConfigMap + CloudsKey = "clouds-secret-name" ) +// ReconcileTest reconciles test operator configuration for the OpenStack control plane func ReconcileTest(ctx context.Context, instance *corev1beta1.OpenStackControlPlane, version *corev1beta1.OpenStackVersion, helper *helper.Helper) (ctrl.Result, error) { customData := map[string]string{ TempestImageKey: *getImg(version.Status.ContainerImages.TestTempestImage, &missingImageDefault), diff --git a/pkg/openstack/version.go b/pkg/openstack/version.go index 4fa1d13ba6..d0a4e84eb5 100644 --- a/pkg/openstack/version.go +++ b/pkg/openstack/version.go @@ -42,7 +42,7 @@ func InitializeOpenStackVersionImageDefaults(ctx context.Context, envImages map[ fieldName += strings.ToLower(matches[i])[1:] } // format API so we adhere to go linting standards - fieldName = strings.Replace(fieldName, "Api", "API", -1) + fieldName = strings.ReplaceAll(fieldName, "Api", "API") } //Log.Info(fmt.Sprintf("Initialize Field name: %s", fieldName)) field := d.FieldByName(fieldName) @@ -214,7 +214,7 @@ func GetContainerImages(defaults *corev1beta1.ContainerDefaults, instance corev1 return containerImages } -// InitializeOpenStackVersionImageDefaults - initializes OpenStackVersion CR with default container images +// InitializeOpenStackVersionServiceDefaults initializes OpenStackVersion CR with default container images func InitializeOpenStackVersionServiceDefaults(ctx context.Context) *corev1beta1.ServiceDefaults { Log := GetLogger(ctx) Log.Info("Initialize OpenStackVersion Service Defaults") diff --git a/pkg/openstackclient/funcs.go b/pkg/openstackclient/funcs.go index 994b48221e..56ef418d48 100644 --- a/pkg/openstackclient/funcs.go +++ b/pkg/openstackclient/funcs.go @@ -10,6 +10,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package openstackclient provides functionality for managing OpenStack client resources package openstackclient import ( diff --git a/pkg/operator/bindata/apply.go b/pkg/operator/bindata/apply.go index 28c305c25d..7de97123af 100644 --- a/pkg/operator/bindata/apply.go +++ b/pkg/operator/bindata/apply.go @@ -1,3 +1,4 @@ +// Package bindata provides functionality for applying binary data and resources to Kubernetes package bindata import ( diff --git a/pkg/operator/bindata/render.go b/pkg/operator/bindata/render.go index 599f7dbd49..7ac398e1f7 100644 --- a/pkg/operator/bindata/render.go +++ b/pkg/operator/bindata/render.go @@ -44,7 +44,7 @@ func RenderDir(manifestDir string, d *RenderData) ([]*unstructured.Unstructured, } // Skip non-manifest files - if !(strings.HasSuffix(path, ".yml") || strings.HasSuffix(path, ".yaml") || strings.HasSuffix(path, ".json")) { + if !strings.HasSuffix(path, ".yml") && !strings.HasSuffix(path, ".yaml") && !strings.HasSuffix(path, ".json") { return nil } diff --git a/pkg/operator/override.go b/pkg/operator/override.go index d62653de49..6f39067b91 100644 --- a/pkg/operator/override.go +++ b/pkg/operator/override.go @@ -14,6 +14,7 @@ See the License for the specific language governing permissions and limitations under the License. */ +// Package operator provides functionality for managing operator overrides and configurations package operator import ( @@ -70,6 +71,7 @@ func memQuantity(mega int64) *resource.Quantity { return q } +// HasOverrides checks if the given operator name has overrides in the provided list func HasOverrides(operatorOverrides []operatorv1beta1.OperatorSpec, operatorName string) *operatorv1beta1.OperatorSpec { // validate of operatorName is in the list of operatorOverrides f := func(c operatorv1beta1.OperatorSpec) bool { @@ -83,6 +85,7 @@ func HasOverrides(operatorOverrides []operatorv1beta1.OperatorSpec, operatorName return nil } +// SetOverrides applies the provided operator overrides to the operator configuration func SetOverrides(opOvr operatorv1beta1.OperatorSpec, op *Operator) { if opOvr.Replicas != nil { op.Deployment.Replicas = opOvr.Replicas @@ -143,6 +146,7 @@ func mergeTolerations(defaults, custom []corev1.Toleration) []corev1.Toleration return merged } +// GetOperator finds and returns the operator with the given name from the list func GetOperator(operators []Operator, name string) (int, Operator) { f := func(c Operator) bool { return c.Name == name diff --git a/tests/functional/ctlplane/openstackoperator_controller_test.go b/tests/functional/ctlplane/openstackoperator_controller_test.go index 87a1321c5b..71d3db7f90 100644 --- a/tests/functional/ctlplane/openstackoperator_controller_test.go +++ b/tests/functional/ctlplane/openstackoperator_controller_test.go @@ -2368,7 +2368,7 @@ var _ = Describe("OpenStackOperator controller", func() { Expect(err).ShouldNot(HaveOccurred()) openStackControlPlane := &corev1.OpenStackControlPlane{} - openStackControlPlane.ObjectMeta.Namespace = names.Namespace + openStackControlPlane.Namespace = names.Namespace openStackControlPlane.Name = names.OpenStackVersionName2.Name err = k8sClient.Delete(ctx, openStackControlPlane) Expect(err).ShouldNot(HaveOccurred()) diff --git a/tests/functional/ctlplane/openstackversion_controller_test.go b/tests/functional/ctlplane/openstackversion_controller_test.go index b55a8be27b..f2bd1c9b30 100644 --- a/tests/functional/ctlplane/openstackversion_controller_test.go +++ b/tests/functional/ctlplane/openstackversion_controller_test.go @@ -75,7 +75,7 @@ var _ = Describe("OpenStackOperator controller", func() { It("should fail to create more than one OpenStackVersion", func() { instance := &corev1.OpenStackVersion{} - instance.ObjectMeta.Namespace = names.Namespace + instance.Namespace = names.Namespace instance.Name = "foo" err := k8sClient.Create(ctx, instance) diff --git a/tests/functional/ctlplane/suite_test.go b/tests/functional/ctlplane/suite_test.go index 333123a44b..a4399871b1 100644 --- a/tests/functional/ctlplane/suite_test.go +++ b/tests/functional/ctlplane/suite_test.go @@ -390,7 +390,9 @@ var _ = BeforeSuite(func() { if err != nil { return err } - conn.Close() + if err := conn.Close(); err != nil { + return fmt.Errorf("failed to close connection: %w", err) + } return nil }).Should(Succeed()) }) diff --git a/tests/functional/dataplane/openstackdataplanenodeset_controller_test.go b/tests/functional/dataplane/openstackdataplanenodeset_controller_test.go index 098d2dd257..5500321e68 100644 --- a/tests/functional/dataplane/openstackdataplanenodeset_controller_test.go +++ b/tests/functional/dataplane/openstackdataplanenodeset_controller_test.go @@ -1380,8 +1380,8 @@ var _ = Describe("Dataplane NodeSet Test", func() { const bootstrapName string = "bootstrap" // Make an AnsibleEE name for each service ansibleeeName := types.NamespacedName{ - Name: fmt.Sprintf( - bootstrapName + "-" + dataplaneDeploymentName.Name + "-" + dataplaneNodeSetName.Name), + Name: fmt.Sprintf("%s-%s-%s", + bootstrapName, dataplaneDeploymentName.Name, dataplaneNodeSetName.Name), Namespace: namespace, } ansibleEE := GetAnsibleee(ansibleeeName) @@ -1447,8 +1447,8 @@ var _ = Describe("Dataplane NodeSet Test", func() { const bootstrapName string = "bootstrap" // Make an AnsibleEE name for each service ansibleeeName := types.NamespacedName{ - Name: fmt.Sprintf( - bootstrapName + "-" + dataplaneDeploymentName.Name + "-" + dataplaneNodeSetName.Name), + Name: fmt.Sprintf("%s-%s-%s", + bootstrapName, dataplaneDeploymentName.Name, dataplaneNodeSetName.Name), Namespace: namespace, } ansibleEE := GetAnsibleee(ansibleeeName) diff --git a/tests/functional/dataplane/openstackdataplaneservice_controller_test.go b/tests/functional/dataplane/openstackdataplaneservice_controller_test.go index 38eba22232..3056687617 100644 --- a/tests/functional/dataplane/openstackdataplaneservice_controller_test.go +++ b/tests/functional/dataplane/openstackdataplaneservice_controller_test.go @@ -34,7 +34,7 @@ var _ = Describe("OpenstackDataplaneService Test", func() { When("A defined service resource is created", func() { BeforeEach(func() { - os.Unsetenv("OPERATOR_SERVICES") + _ = os.Unsetenv("OPERATOR_SERVICES") CreateDataplaneService(dataplaneServiceName, false) DeferCleanup(th.DeleteService, dataplaneServiceName) }) @@ -50,7 +50,7 @@ var _ = Describe("OpenstackDataplaneService Test", func() { When("A defined service resource for all nodes is created", func() { BeforeEach(func() { - os.Unsetenv("OPERATOR_SERVICES") + _ = os.Unsetenv("OPERATOR_SERVICES") CreateDataplaneService(dataplaneServiceName, true) DeferCleanup(th.DeleteService, dataplaneServiceName) }) diff --git a/zuul.d/jobs.yaml b/zuul.d/jobs.yaml index 8d31ace4cb..2dc4295461 100644 --- a/zuul.d/jobs.yaml +++ b/zuul.d/jobs.yaml @@ -32,8 +32,8 @@ parent: podified-multinode-edpm-deployment-crc-3comp dependencies: ["openstack-k8s-operators-content-provider"] vars: - cifmw_operator_build_golang_ct: "docker.io/library/golang:1.21" - cifmw_operator_build_golang_alt_ct: "quay.rdoproject.org/openstack-k8s-operators/golang:1.21" + cifmw_operator_build_golang_ct: "docker.io/library/golang:1.24" + cifmw_operator_build_golang_alt_ct: "quay.rdoproject.org/openstack-k8s-operators/golang:1.24" cifmw_tempest_tempestconf_config: # NOTE(alee) these tests will fail with barbican in the mix # while cinder/nova is not configured to talk to barbican From f804ccba7308a6c9e4f7ae56b4af2bdd47e6001c Mon Sep 17 00:00:00 2001 From: Martin Schuppert Date: Wed, 23 Apr 2025 12:17:30 +0200 Subject: [PATCH 2/5] [golang] replace "golang.org/x/exp/slices" with stdlib one Signed-off-by: Martin Schuppert --- apis/core/v1beta1/openstackcontrolplane_webhook.go | 2 +- apis/dataplane/v1beta1/openstackdataplanenodeset_types.go | 2 +- controllers/dataplane/openstackdataplanenodeset_controller.go | 2 +- go.mod | 2 +- pkg/dataplane/cert.go | 3 +-- pkg/dataplane/deployment.go | 2 +- pkg/dataplane/service.go | 2 +- pkg/openstack/ca.go | 2 +- 8 files changed, 8 insertions(+), 9 deletions(-) diff --git a/apis/core/v1beta1/openstackcontrolplane_webhook.go b/apis/core/v1beta1/openstackcontrolplane_webhook.go index ec36700441..a99fa3de93 100644 --- a/apis/core/v1beta1/openstackcontrolplane_webhook.go +++ b/apis/core/v1beta1/openstackcontrolplane_webhook.go @@ -19,6 +19,7 @@ package v1beta1 import ( "context" "fmt" + "slices" "strings" keystonev1 "github.com/openstack-k8s-operators/keystone-operator/api/v1beta1" @@ -28,7 +29,6 @@ import ( placementv1 "github.com/openstack-k8s-operators/placement-operator/api/v1beta1" watcherv1 "github.com/openstack-k8s-operators/watcher-operator/api/v1beta1" "golang.org/x/exp/maps" - "golang.org/x/exp/slices" apierrors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/runtime" "k8s.io/apimachinery/pkg/runtime/schema" diff --git a/apis/dataplane/v1beta1/openstackdataplanenodeset_types.go b/apis/dataplane/v1beta1/openstackdataplanenodeset_types.go index 2462974e32..6102d39f10 100644 --- a/apis/dataplane/v1beta1/openstackdataplanenodeset_types.go +++ b/apis/dataplane/v1beta1/openstackdataplanenodeset_types.go @@ -19,8 +19,8 @@ package v1beta1 import ( "context" "fmt" + "slices" - "golang.org/x/exp/slices" "sigs.k8s.io/controller-runtime/pkg/client" infranetworkv1 "github.com/openstack-k8s-operators/infra-operator/apis/network/v1beta1" diff --git a/controllers/dataplane/openstackdataplanenodeset_controller.go b/controllers/dataplane/openstackdataplanenodeset_controller.go index 1f6f7c541b..8232323082 100644 --- a/controllers/dataplane/openstackdataplanenodeset_controller.go +++ b/controllers/dataplane/openstackdataplanenodeset_controller.go @@ -19,11 +19,11 @@ package dataplane import ( "context" "fmt" + "slices" "strings" "time" "github.com/go-playground/validator/v10" - "golang.org/x/exp/slices" batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" rbacv1 "k8s.io/api/rbac/v1" diff --git a/go.mod b/go.mod index 0594a9488f..8ede8fbc86 100644 --- a/go.mod +++ b/go.mod @@ -43,7 +43,6 @@ require ( github.com/rabbitmq/cluster-operator/v2 v2.9.0 github.com/stretchr/testify v1.11.1 go.uber.org/zap v1.27.0 - golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 gopkg.in/yaml.v3 v3.0.1 k8s.io/api v0.29.15 k8s.io/apimachinery v0.29.15 @@ -97,6 +96,7 @@ require ( github.com/spf13/pflag v1.0.6 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.33.0 // indirect + golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect golang.org/x/mod v0.20.0 // indirect golang.org/x/net v0.34.0 // indirect golang.org/x/oauth2 v0.18.0 // indirect diff --git a/pkg/dataplane/cert.go b/pkg/dataplane/cert.go index 2e3fe346b3..c90fb124f8 100644 --- a/pkg/dataplane/cert.go +++ b/pkg/dataplane/cert.go @@ -21,13 +21,12 @@ import ( "crypto/sha256" "encoding/hex" "fmt" + "slices" "sort" "strconv" "strings" "time" - "golang.org/x/exp/slices" - corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" apimachineryvalidation "k8s.io/apimachinery/pkg/util/validation" diff --git a/pkg/dataplane/deployment.go b/pkg/dataplane/deployment.go index b4062c9118..1553eabb24 100644 --- a/pkg/dataplane/deployment.go +++ b/pkg/dataplane/deployment.go @@ -23,13 +23,13 @@ import ( "fmt" "path" "reflect" + "slices" "sort" "strconv" batchv1 "k8s.io/api/batch/v1" corev1 "k8s.io/api/core/v1" - slices "golang.org/x/exp/slices" k8s_errors "k8s.io/apimachinery/pkg/api/errors" "k8s.io/apimachinery/pkg/types" apimachineryvalidation "k8s.io/apimachinery/pkg/util/validation" diff --git a/pkg/dataplane/service.go b/pkg/dataplane/service.go index cb80cd6808..0f082c746d 100644 --- a/pkg/dataplane/service.go +++ b/pkg/dataplane/service.go @@ -21,9 +21,9 @@ import ( "fmt" "os" "path" + "slices" "strings" - "golang.org/x/exp/slices" yaml "gopkg.in/yaml.v3" k8s_errors "k8s.io/apimachinery/pkg/api/errors" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" diff --git a/pkg/openstack/ca.go b/pkg/openstack/ca.go index 7cbcd15c50..0bfba7e242 100644 --- a/pkg/openstack/ca.go +++ b/pkg/openstack/ca.go @@ -9,6 +9,7 @@ import ( "fmt" "math" "os" + "slices" "strings" "time" @@ -20,7 +21,6 @@ import ( "github.com/openstack-k8s-operators/lib-common/modules/common/secret" "github.com/openstack-k8s-operators/lib-common/modules/common/tls" "github.com/openstack-k8s-operators/lib-common/modules/common/util" - "golang.org/x/exp/slices" k8s_errors "k8s.io/apimachinery/pkg/api/errors" corev1 "github.com/openstack-k8s-operators/openstack-operator/apis/core/v1beta1" From 6292ce5d9b5f917cb1d78b8c0d9766d2f48d867b Mon Sep 17 00:00:00 2001 From: Martin Schuppert Date: Thu, 21 Aug 2025 16:14:55 +0200 Subject: [PATCH 3/5] Bump dependencies for OpenShift 4.18 compatibility MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Update controller-runtime, Kubernetes dependencies, and testing tools to support OpenShift Container Platform 4.18 (Kubernetes 1.31). Changes: - controller-runtime: v0.17.6 → v0.19.7 - Kubernetes core dependencies: v0.29.15 → v0.31.12 * k8s.io/api: v0.31.12 * k8s.io/apimachinery: v0.31.12 * k8s.io/client-go: v0.31.12 * k8s.io/apiextensions-apiserver: v0.31.12 - k8s.io/utils: v0.0.0-20240711033017 → v0.0.0-20250820121507 - controller-gen: v0.14.0 → v0.18.0 - envtest: 1.29 → 1.31, setup-envtest@latest Depends-On: https://github.com/openstack-k8s-operators/infra-operator/pull/432 Signed-off-by: Martin Schuppert --- Makefile | 6 +- ...client.openstack.org_openstackclients.yaml | 4 +- ....openstack.org_openstackcontrolplanes.yaml | 385 +++++++++++++++- .../core.openstack.org_openstackversions.yaml | 2 +- ...ack.org_openstackdataplanedeployments.yaml | 2 +- ...nstack.org_openstackdataplanenodesets.yaml | 30 +- ...nstack.org_openstackdataplaneservices.yaml | 2 +- ...ed.openstack.org_openstacklightspeeds.yaml | 2 +- .../operator.openstack.org_openstacks.yaml | 4 +- apis/go.mod | 36 +- apis/go.sum | 87 ++-- bindata/crds/crds.yaml | 427 +++++++++++++++++- bindata/rbac/rbac.yaml | 275 +---------- ...client.openstack.org_openstackclients.yaml | 4 +- ....openstack.org_openstackcontrolplanes.yaml | 385 +++++++++++++++- .../core.openstack.org_openstackversions.yaml | 2 +- ...ack.org_openstackdataplanedeployments.yaml | 2 +- ...nstack.org_openstackdataplanenodesets.yaml | 30 +- ...nstack.org_openstackdataplaneservices.yaml | 2 +- ...ed.openstack.org_openstacklightspeeds.yaml | 2 +- .../operator.openstack.org_openstacks.yaml | 4 +- config/operator/rbac/role.yaml | 18 +- config/rbac/role.yaml | 275 +---------- .../core_v1beta1_openstackcontrolplane.yaml | 1 + ..._v1beta1_openstackcontrolplane_galera.yaml | 1 + ...penstackcontrolplane_galera_3replicas.yaml | 1 + ...controlplane_galera_network_isolation.yaml | 1 + ...ne_galera_network_isolation_3replicas.yaml | 1 + ...enstackcontrolplane_network_isolation.yaml | 1 + ...ckcontrolplane_network_isolation_ceph.yaml | 1 + ...network_isolation_tls_public_endpoint.yaml | 1 + go.mod | 36 +- go.sum | 87 ++-- tests/functional/ctlplane/base_test.go | 1 + 34 files changed, 1425 insertions(+), 693 deletions(-) diff --git a/Makefile b/Makefile index a4a9563762..8f8ed29560 100644 --- a/Makefile +++ b/Makefile @@ -56,7 +56,7 @@ OPERATOR_SDK_VERSION ?= v1.31.0 DEFAULT_IMG ?= quay.io/openstack-k8s-operators/openstack-operator:latest IMG ?= $(DEFAULT_IMG) # ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary. -ENVTEST_K8S_VERSION = 1.29 +ENVTEST_K8S_VERSION = 1.31 CRDDESC_OVERRIDE ?= :maxDescLen=0 @@ -310,7 +310,7 @@ KUTTL ?= $(LOCALBIN)/kubectl-kuttl ## Tool Versions KUSTOMIZE_VERSION ?= v5.5.0 #(dprince: bumped to aquire new features like --load-restrictor) -CONTROLLER_TOOLS_VERSION ?= v0.14.0 +CONTROLLER_TOOLS_VERSION ?= v0.18.0 CRD_MARKDOWN_VERSION ?= v0.0.3 KUTTL_VERSION ?= 0.17.0 GOTOOLCHAIN_VERSION ?= go1.24.0 @@ -340,7 +340,7 @@ $(CRD_MARKDOWN): $(LOCALBIN) .PHONY: envtest envtest: $(ENVTEST) ## Download envtest-setup locally if necessary. $(ENVTEST): $(LOCALBIN) - test -s $(LOCALBIN)/setup-envtest || GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-runtime/tools/setup-envtest@c7e1dc9b + test -s $(LOCALBIN)/setup-envtest || GOBIN=$(LOCALBIN) go install sigs.k8s.io/controller-runtime/tools/setup-envtest@latest .PHONY: ginkgo ginkgo: $(GINKGO) ## Download ginkgo locally if necessary. diff --git a/apis/bases/client.openstack.org_openstackclients.yaml b/apis/bases/client.openstack.org_openstackclients.yaml index d0762b0234..865b5c5cc7 100644 --- a/apis/bases/client.openstack.org_openstackclients.yaml +++ b/apis/bases/client.openstack.org_openstackclients.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackclients.client.openstack.org spec: group: client.openstack.org @@ -56,6 +56,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -94,6 +95,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean diff --git a/apis/bases/core.openstack.org_openstackcontrolplanes.yaml b/apis/bases/core.openstack.org_openstackcontrolplanes.yaml index c794155b13..7ce3ce80b8 100644 --- a/apis/bases/core.openstack.org_openstackcontrolplanes.yaml +++ b/apis/bases/core.openstack.org_openstackcontrolplanes.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackcontrolplanes.core.openstack.org spec: group: core.openstack.org @@ -265,6 +265,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -348,6 +350,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -413,6 +417,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -757,6 +763,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -835,6 +843,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -895,6 +905,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -957,6 +969,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -1026,6 +1040,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -1048,6 +1064,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -1057,6 +1074,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -1085,7 +1103,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -1100,6 +1120,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -1155,6 +1176,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -1180,10 +1202,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -1207,6 +1231,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -1215,11 +1240,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -1276,11 +1303,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1315,7 +1344,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -1361,6 +1392,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -1379,7 +1411,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -1399,10 +1433,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -1413,12 +1449,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -1451,6 +1489,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -1465,6 +1504,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -1795,6 +1835,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -1966,6 +2008,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2068,6 +2112,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2222,6 +2268,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2328,6 +2376,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2458,6 +2508,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2558,6 +2610,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2647,6 +2701,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2819,6 +2875,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -2841,6 +2899,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -2850,6 +2909,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -2878,7 +2938,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -2893,6 +2955,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -2948,6 +3011,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -2973,10 +3037,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -3000,6 +3066,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -3008,11 +3075,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3069,11 +3138,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -3108,7 +3179,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -3154,6 +3227,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -3172,7 +3246,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -3192,10 +3268,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -3206,12 +3284,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -3244,6 +3324,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -3258,6 +3339,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3314,6 +3396,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -3543,6 +3627,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -3565,6 +3651,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -3574,6 +3661,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3602,7 +3690,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -3617,6 +3707,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3672,6 +3763,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -3697,10 +3789,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -3724,6 +3818,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -3732,11 +3827,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3793,11 +3890,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -3832,7 +3931,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -3878,6 +3979,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -3896,7 +3998,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -3916,10 +4020,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -3930,12 +4036,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -3968,6 +4076,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -3982,6 +4091,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -4108,6 +4218,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -4562,6 +4674,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -4584,6 +4698,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -4593,6 +4708,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -4621,7 +4737,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -4636,6 +4754,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -4691,6 +4810,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -4716,10 +4836,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -4743,6 +4865,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -4751,11 +4874,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -4812,11 +4937,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -4851,7 +4978,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -4897,6 +5026,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -4915,7 +5045,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -4935,10 +5067,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -4949,12 +5083,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -4987,6 +5123,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -5001,6 +5138,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -5107,6 +5245,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -5238,6 +5378,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -5317,6 +5459,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -5557,6 +5701,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -5579,6 +5725,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -5588,6 +5735,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -5616,7 +5764,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -5631,6 +5781,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -5686,6 +5837,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -5711,10 +5863,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -5738,6 +5892,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -5746,11 +5901,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -5807,11 +5964,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -5846,7 +6005,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -5892,6 +6053,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -5910,7 +6072,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -5930,10 +6094,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -5944,12 +6110,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -5982,6 +6150,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -5996,6 +6165,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -6098,6 +6268,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -6496,6 +6668,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -6604,6 +6778,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -6766,6 +6942,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -6850,6 +7028,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -7104,6 +7284,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -7126,6 +7308,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -7135,6 +7318,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -7163,7 +7347,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -7178,6 +7364,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -7233,6 +7420,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -7258,10 +7446,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -7285,6 +7475,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -7293,11 +7484,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -7354,11 +7547,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -7393,7 +7588,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -7439,6 +7636,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -7457,7 +7655,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -7477,10 +7677,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -7491,12 +7693,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -7529,6 +7733,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -7543,6 +7748,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -7685,6 +7891,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -7930,6 +8138,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -7952,6 +8162,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -7961,6 +8172,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -7989,7 +8201,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -8004,6 +8218,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -8059,6 +8274,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -8084,10 +8300,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -8111,6 +8329,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -8119,11 +8338,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -8180,11 +8401,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -8219,7 +8442,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -8265,6 +8490,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -8283,7 +8509,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -8303,10 +8531,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -8317,12 +8547,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -8355,6 +8587,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -8369,6 +8602,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -8476,6 +8710,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -8556,6 +8792,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -8619,6 +8857,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -8728,6 +8968,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -8953,6 +9195,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -8975,6 +9219,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -8984,6 +9229,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -9012,7 +9258,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -9027,6 +9275,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -9082,6 +9331,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -9107,10 +9357,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -9134,6 +9386,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -9142,11 +9395,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -9203,11 +9458,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -9242,7 +9499,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -9288,6 +9547,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -9306,7 +9566,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -9326,10 +9588,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -9340,12 +9604,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -9378,6 +9644,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -9392,6 +9659,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -9515,6 +9783,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -9938,6 +10208,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10028,6 +10300,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10157,6 +10431,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10273,6 +10549,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10359,6 +10637,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10502,6 +10782,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10591,6 +10873,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10946,6 +11230,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11111,6 +11397,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11261,6 +11549,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11370,6 +11660,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11515,6 +11807,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11604,6 +11898,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11681,6 +11977,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -11719,6 +12016,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -11802,6 +12100,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11933,6 +12233,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -12009,6 +12311,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -12280,6 +12584,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -12367,11 +12673,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: items: properties: @@ -12383,11 +12691,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic weight: @@ -12398,6 +12708,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: properties: nodeSelectorTerms: @@ -12414,11 +12725,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: items: properties: @@ -12430,14 +12743,17 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic type: array + x-kubernetes-list-type: atomic required: - nodeSelectorTerms type: object @@ -12463,11 +12779,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12497,11 +12815,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12512,6 +12832,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: @@ -12525,6 +12846,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -12541,11 +12863,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12575,11 +12899,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12590,12 +12916,14 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object podAntiAffinity: properties: @@ -12617,11 +12945,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12651,11 +12981,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12666,6 +12998,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: @@ -12679,6 +13012,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -12695,11 +13029,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12729,11 +13065,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12744,12 +13082,14 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object type: object delayStartSeconds: @@ -12791,6 +13131,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic externalName: type: string externalTrafficPolicy: @@ -12815,6 +13156,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic ports: items: properties: @@ -12862,6 +13204,8 @@ spec: type: integer type: object type: object + trafficDistribution: + type: string type: type: string type: object @@ -12932,6 +13276,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -12961,6 +13307,7 @@ spec: externalSecret: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -13076,6 +13423,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -13107,6 +13456,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -14093,6 +14444,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14257,11 +14609,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -14286,6 +14640,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic dataSource: properties: apiGroup: @@ -14345,11 +14700,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -14375,6 +14732,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14412,6 +14770,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14436,6 +14795,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14448,6 +14808,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14485,6 +14846,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14497,6 +14859,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14510,6 +14873,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14570,6 +14934,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14588,6 +14953,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14605,6 +14971,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14617,6 +14984,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14634,6 +15002,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14646,6 +15015,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14665,6 +15035,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14751,11 +15122,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -14776,6 +15149,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -14851,11 +15226,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -15289,6 +15666,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -15366,6 +15745,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -15438,6 +15819,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object diff --git a/apis/bases/core.openstack.org_openstackversions.yaml b/apis/bases/core.openstack.org_openstackversions.yaml index 3020e010e1..6bf3cb473f 100644 --- a/apis/bases/core.openstack.org_openstackversions.yaml +++ b/apis/bases/core.openstack.org_openstackversions.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackversions.core.openstack.org spec: group: core.openstack.org diff --git a/apis/bases/dataplane.openstack.org_openstackdataplanedeployments.yaml b/apis/bases/dataplane.openstack.org_openstackdataplanedeployments.yaml index fa892132ef..6dc49de215 100644 --- a/apis/bases/dataplane.openstack.org_openstackdataplanedeployments.yaml +++ b/apis/bases/dataplane.openstack.org_openstackdataplanedeployments.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackdataplanedeployments.dataplane.openstack.org spec: group: dataplane.openstack.org diff --git a/apis/bases/dataplane.openstack.org_openstackdataplanenodesets.yaml b/apis/bases/dataplane.openstack.org_openstackdataplanenodesets.yaml index c04ff979c4..f8e3eb9393 100644 --- a/apis/bases/dataplane.openstack.org_openstackdataplanenodesets.yaml +++ b/apis/bases/dataplane.openstack.org_openstackdataplanenodesets.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackdataplanenodesets.dataplane.openstack.org spec: group: dataplane.openstack.org @@ -163,6 +163,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -201,6 +202,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -274,6 +276,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -296,6 +300,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -305,6 +310,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -333,7 +339,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -348,6 +356,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -403,6 +412,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -428,10 +438,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -455,6 +467,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -463,11 +476,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -524,11 +539,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -563,7 +580,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -609,6 +628,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -627,7 +647,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -647,10 +669,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -661,12 +685,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -699,6 +725,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -713,6 +740,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic diff --git a/apis/bases/dataplane.openstack.org_openstackdataplaneservices.yaml b/apis/bases/dataplane.openstack.org_openstackdataplaneservices.yaml index d61c829679..3892f7142d 100644 --- a/apis/bases/dataplane.openstack.org_openstackdataplaneservices.yaml +++ b/apis/bases/dataplane.openstack.org_openstackdataplaneservices.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackdataplaneservices.dataplane.openstack.org spec: group: dataplane.openstack.org diff --git a/apis/bases/lightspeed.openstack.org_openstacklightspeeds.yaml b/apis/bases/lightspeed.openstack.org_openstacklightspeeds.yaml index 0806fd2857..104850713a 100644 --- a/apis/bases/lightspeed.openstack.org_openstacklightspeeds.yaml +++ b/apis/bases/lightspeed.openstack.org_openstacklightspeeds.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstacklightspeeds.lightspeed.openstack.org spec: group: lightspeed.openstack.org diff --git a/apis/bases/operator.openstack.org_openstacks.yaml b/apis/bases/operator.openstack.org_openstacks.yaml index aeaeeef1f1..2009dd660b 100644 --- a/apis/bases/operator.openstack.org_openstacks.yaml +++ b/apis/bases/operator.openstack.org_openstacks.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstacks.operator.openstack.org spec: group: operator.openstack.org @@ -46,6 +46,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object diff --git a/apis/go.mod b/apis/go.mod index e67ebe7950..c40e80d21a 100644 --- a/apis/go.mod +++ b/apis/go.mod @@ -35,20 +35,21 @@ require ( go.uber.org/zap v1.27.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 golang.org/x/tools v0.24.0 // indirect - k8s.io/api v0.29.15 - k8s.io/apimachinery v0.29.15 - k8s.io/client-go v0.29.15 - k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 - sigs.k8s.io/controller-runtime v0.17.6 + k8s.io/api v0.31.12 + k8s.io/apimachinery v0.31.12 + k8s.io/client-go v0.31.12 + k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d + sigs.k8s.io/controller-runtime v0.19.7 ) require ( github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/emicklei/go-restful/v3 v3.12.0 // indirect github.com/evanphx/json-patch/v5 v5.9.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.8 // indirect github.com/go-logr/logr v1.4.3 // indirect github.com/go-logr/zapr v1.3.0 // indirect @@ -80,30 +81,29 @@ require ( github.com/openshift/api v3.9.0+incompatible // indirect github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20250823121217-7e1cd2e3dd03 // indirect github.com/pkg/errors v0.9.1 // indirect - github.com/prometheus/client_golang v1.19.0 // indirect - github.com/prometheus/client_model v0.6.0 // indirect - github.com/prometheus/common v0.53.0 // indirect - github.com/prometheus/procfs v0.13.0 // indirect + github.com/prometheus/client_golang v1.19.1 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect github.com/rabbitmq/cluster-operator/v2 v2.9.0 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect github.com/spf13/pflag v1.0.6 // indirect github.com/stretchr/testify v1.11.1 // indirect + github.com/x448/float16 v0.8.4 // indirect golang.org/x/crypto v0.33.0 // indirect golang.org/x/net v0.34.0 // indirect - golang.org/x/oauth2 v0.18.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sys v0.30.0 // indirect golang.org/x/term v0.29.0 // indirect golang.org/x/text v0.22.0 // indirect golang.org/x/time v0.5.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/appengine v1.6.8 // indirect - google.golang.org/protobuf v1.34.1 // indirect + google.golang.org/protobuf v1.34.2 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect gopkg.in/yaml.v3 v3.0.1 // indirect - k8s.io/apiextensions-apiserver v0.29.15 // indirect - k8s.io/component-base v0.29.15 // indirect - k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/apiextensions-apiserver v0.31.12 // indirect + k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20240322212309-b815d8309940 // indirect sigs.k8s.io/gateway-api v1.0.0 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect @@ -111,9 +111,9 @@ require ( sigs.k8s.io/yaml v1.4.0 // indirect ) -// mschuppert: map to latest commit from release-4.16 tag +// mschuppert: map to latest commit from release-4.18 tag // must consistent within modules and service operators -replace github.com/openshift/api => github.com/openshift/api v0.0.0-20240830023148-b7d0481c9094 //allow-merging +replace github.com/openshift/api => github.com/openshift/api v0.0.0-20250711200046-c86d80652a9e //allow-merging // custom RabbitmqClusterSpecCore for OpenStackControlplane (v2.9.0_patches_tag_n) replace github.com/rabbitmq/cluster-operator/v2 => github.com/openstack-k8s-operators/rabbitmq-cluster-operator/v2 v2.6.1-0.20250717122149-12f70b7f3d8d //allow-merging diff --git a/apis/go.sum b/apis/go.sum index 2edede8409..ba1e64992a 100644 --- a/apis/go.sum +++ b/apis/go.sum @@ -2,8 +2,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cert-manager/cert-manager v1.14.7 h1:C2L59sMGMdSpd8SPx5qfPAL7ejZaNxJBRd24S7Ws5Ek= github.com/cert-manager/cert-manager v1.14.7/go.mod h1:0QE/Hzfs2SxNrFFYgFh/d0c0cDfNv9qSrAev2LFt5nM= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -16,6 +16,8 @@ github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0 github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= @@ -42,13 +44,10 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 h1:0VpGH+cDhbDtdcweoyCVsF3fhN8kejK6rFe/2FFX2nU= github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49/go.mod h1:BkkQ4L1KS1xMt2aWSPStnn55ChGC0DPOn2FQYj+f25M= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= @@ -92,8 +91,8 @@ github.com/onsi/ginkgo/v2 v2.20.1 h1:YlVIbqct+ZmnEph770q9Q7NVAz4wwIiVNahee6JyUzo github.com/onsi/ginkgo/v2 v2.20.1/go.mod h1:lG9ey2Z29hR41WMVthyJBGUBcBhGOtoPF2VFMvBXFCI= github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= -github.com/openshift/api v0.0.0-20240830023148-b7d0481c9094 h1:J1wuGhVxpsHykZBa6Beb1gQ96Ptej9AE/BvwCBiRj1E= -github.com/openshift/api v0.0.0-20240830023148-b7d0481c9094/go.mod h1:CxgbWAlvu2iQB0UmKTtRu1YfepRg1/vJ64n2DlIEVz4= +github.com/openshift/api v0.0.0-20250711200046-c86d80652a9e h1:E1OdwSpqWuDPCedyUt0GEdoAE+r5TXy7YS21yNEo+2U= +github.com/openshift/api v0.0.0-20250711200046-c86d80652a9e/go.mod h1:Shkl4HanLwDiiBzakv+con/aMGnVE2MAGvoKp5oyYUo= github.com/openstack-k8s-operators/barbican-operator/api v0.6.1-0.20250916162815-94a54170a2be h1:tX0xh1l8nKSlzf29qZ5dd7BrDl1TMFaqo4X7jrMpQrk= github.com/openstack-k8s-operators/barbican-operator/api v0.6.1-0.20250916162815-94a54170a2be/go.mod h1:t1OgOfbkr5e0GnYb/8DVF7ipTBvnkTiaajshsX/lEGc= github.com/openstack-k8s-operators/cinder-operator/api v0.6.1-0.20250916151837-4aab51f61506 h1:VM1A3GoWpaWut/pJ8ahyqIIrcorA5ifB9LCiJvjmaSU= @@ -147,14 +146,14 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= -github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= -github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= -github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= -github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= -github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= +github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= +github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= +github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/rhobs/obo-prometheus-operator/pkg/apis/monitoring v0.71.0-rhobs1 h1:NBdZFQUVKllUnmh6suuH02+K8VS8ibErnOhxNiH+aio= github.com/rhobs/obo-prometheus-operator/pkg/apis/monitoring v0.71.0-rhobs1/go.mod h1:oDJbA/Byh5LNU7zBgBZYRM5263mgL16NtysHl/uVtGY= github.com/rhobs/observability-operator v0.3.1 h1:vVGCt/a7Ds5VeqikaKZJz18oOPV9p4YUaezlVlwdpIM= @@ -169,9 +168,10 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -181,7 +181,6 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= @@ -189,41 +188,32 @@ golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0 golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= -golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= -golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= @@ -232,7 +222,6 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -241,15 +230,13 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= +gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -257,24 +244,22 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.29.15 h1:QxPcAheYujeBwkdiE0vMyKkAtqUq5YNyXVqimT+me44= -k8s.io/api v0.29.15/go.mod h1:16duIp2ez6GiLPq1g8XtZNIkw6hJpIitpxZSvv0dZ6E= -k8s.io/apiextensions-apiserver v0.29.15 h1:XI5axgsWqMlIIgpHbcz5vPjk06i3ibHv5FUdSfdtQLU= -k8s.io/apiextensions-apiserver v0.29.15/go.mod h1:6ZU61z32I8WUwbBTPIANUesTj5G40sZek0ojmeoMJI8= -k8s.io/apimachinery v0.29.15 h1:aLc0wghElkdnTO7TMVTxTrifoXah1lqRL8s6szDHGbg= -k8s.io/apimachinery v0.29.15/go.mod h1:i3FJVwhvSp/6n8Fl4K97PJEP8C+MM+aoDq4+ZJBf70Y= -k8s.io/client-go v0.29.15 h1:zCBOXKCtz9Hl8boKUGs8zbtZEP6pc7O8Ov3ma+gnS6o= -k8s.io/client-go v0.29.15/go.mod h1:xPy0D3p4sonPhZhI3QoYo4m7oLKoPjFf4vYF9oxoxNM= -k8s.io/component-base v0.29.15 h1:CvmXXTDyk43FDaiJ/Rp+yWFjw6hkUI2t7mIJUrK5j00= -k8s.io/component-base v0.29.15/go.mod h1:jH/sbuvmXew2Fz2iIKNMeNw8o/d1KR9tAg6uekQKnVk= -k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= -k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/api v0.31.12 h1:yysm83xHIoKAwfm2w0dT6Yz7vfWzl841AEMI7Y8wDa8= +k8s.io/api v0.31.12/go.mod h1:f/srhhI7aDs9K4s0W1GX4/zb+cIf5uWrBjGyoO/XgJc= +k8s.io/apiextensions-apiserver v0.31.12 h1:d32I3VReAly5Qoc9ZXhO4/iObYmm7Jk6VvAeRAbg/MA= +k8s.io/apiextensions-apiserver v0.31.12/go.mod h1:KcBI/Z/WQmbffBwfqQmqHhALhvun5JNJJh8Y29CJwUo= +k8s.io/apimachinery v0.31.12 h1:y34W8rNKc+jDxUvEXarjahqM6vOV5iqgZPuRqRuyEh8= +k8s.io/apimachinery v0.31.12/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/client-go v0.31.12 h1:JJhouOoU1bKdPWplkZ2CpYA74+lxj3Zsn15aoGLX6Hk= +k8s.io/client-go v0.31.12/go.mod h1:kjQ5WSec9ShP3T1auTDFW4bTqgmJdBuZPsjq5FqeuYE= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20240322212309-b815d8309940 h1:qVoMaQV5t62UUvHe16Q3eb2c5HPzLHYzsi0Tu/xLndo= k8s.io/kube-openapi v0.0.0-20240322212309-b815d8309940/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= -k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= -k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/controller-runtime v0.17.6 h1:12IXsozEsIXWAMRpgRlYS1jjAHQXHtWEOMdULh3DbEw= -sigs.k8s.io/controller-runtime v0.17.6/go.mod h1:N0jpP5Lo7lMTF9aL56Z/B2oWBJjey6StQM0jRbKQXtY= +k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d h1:wAhiDyZ4Tdtt7e46e9M5ZSAJ/MnPGPs+Ki1gHw4w1R0= +k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/controller-runtime v0.19.7 h1:DLABZfMr20A+AwCZOHhcbcu+TqBXnJZaVBri9K3EO48= +sigs.k8s.io/controller-runtime v0.19.7/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4= sigs.k8s.io/gateway-api v1.0.0 h1:iPTStSv41+d9p0xFydll6d7f7MOBGuqXM6p2/zVYMAs= sigs.k8s.io/gateway-api v1.0.0/go.mod h1:4cUgr0Lnp5FZ0Cdq8FdRwCvpiWws7LVhLHGIudLlf4c= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= diff --git a/bindata/crds/crds.yaml b/bindata/crds/crds.yaml index c7d6a9230f..4edcfe9d2a 100644 --- a/bindata/crds/crds.yaml +++ b/bindata/crds/crds.yaml @@ -2,7 +2,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackclients.client.openstack.org spec: group: client.openstack.org @@ -55,6 +55,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -93,6 +94,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -167,7 +169,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackcontrolplanes.core.openstack.org spec: group: core.openstack.org @@ -429,6 +431,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -512,6 +516,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -577,6 +583,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -921,6 +929,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -999,6 +1009,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -1059,6 +1071,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -1121,6 +1135,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -1190,6 +1206,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -1212,6 +1230,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -1221,6 +1240,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -1249,7 +1269,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -1264,6 +1286,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -1319,6 +1342,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -1344,10 +1368,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -1371,6 +1397,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -1379,11 +1406,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -1440,11 +1469,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1479,7 +1510,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -1525,6 +1558,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -1543,7 +1577,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -1563,10 +1599,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -1577,12 +1615,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -1615,6 +1655,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -1629,6 +1670,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -1959,6 +2001,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2130,6 +2174,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2232,6 +2278,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2386,6 +2434,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2492,6 +2542,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2622,6 +2674,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2722,6 +2776,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2811,6 +2867,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2983,6 +3041,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -3005,6 +3065,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -3014,6 +3075,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3042,7 +3104,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -3057,6 +3121,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3112,6 +3177,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -3137,10 +3203,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -3164,6 +3232,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -3172,11 +3241,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3233,11 +3304,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -3272,7 +3345,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -3318,6 +3393,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -3336,7 +3412,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -3356,10 +3434,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -3370,12 +3450,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -3408,6 +3490,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -3422,6 +3505,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3478,6 +3562,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -3707,6 +3793,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -3729,6 +3817,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -3738,6 +3827,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3766,7 +3856,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -3781,6 +3873,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3836,6 +3929,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -3861,10 +3955,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -3888,6 +3984,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -3896,11 +3993,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3957,11 +4056,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -3996,7 +4097,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -4042,6 +4145,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -4060,7 +4164,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -4080,10 +4186,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -4094,12 +4202,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -4132,6 +4242,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -4146,6 +4257,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -4272,6 +4384,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -4726,6 +4840,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -4748,6 +4864,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -4757,6 +4874,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -4785,7 +4903,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -4800,6 +4920,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -4855,6 +4976,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -4880,10 +5002,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -4907,6 +5031,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -4915,11 +5040,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -4976,11 +5103,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -5015,7 +5144,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -5061,6 +5192,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -5079,7 +5211,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -5099,10 +5233,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -5113,12 +5249,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -5151,6 +5289,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -5165,6 +5304,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -5271,6 +5411,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -5402,6 +5544,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -5481,6 +5625,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -5721,6 +5867,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -5743,6 +5891,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -5752,6 +5901,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -5780,7 +5930,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -5795,6 +5947,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -5850,6 +6003,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -5875,10 +6029,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -5902,6 +6058,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -5910,11 +6067,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -5971,11 +6130,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -6010,7 +6171,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -6056,6 +6219,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -6074,7 +6238,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -6094,10 +6260,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -6108,12 +6276,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -6146,6 +6316,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -6160,6 +6331,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -6262,6 +6434,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -6660,6 +6834,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -6768,6 +6944,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -6930,6 +7108,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -7014,6 +7194,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -7268,6 +7450,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -7290,6 +7474,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -7299,6 +7484,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -7327,7 +7513,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -7342,6 +7530,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -7397,6 +7586,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -7422,10 +7612,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -7449,6 +7641,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -7457,11 +7650,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -7518,11 +7713,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -7557,7 +7754,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -7603,6 +7802,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -7621,7 +7821,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -7641,10 +7843,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -7655,12 +7859,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -7693,6 +7899,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -7707,6 +7914,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -7849,6 +8057,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -8094,6 +8304,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -8116,6 +8328,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -8125,6 +8338,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -8153,7 +8367,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -8168,6 +8384,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -8223,6 +8440,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -8248,10 +8466,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -8275,6 +8495,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -8283,11 +8504,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -8344,11 +8567,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -8383,7 +8608,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -8429,6 +8656,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -8447,7 +8675,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -8467,10 +8697,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -8481,12 +8713,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -8519,6 +8753,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -8533,6 +8768,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -8640,6 +8876,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -8720,6 +8958,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -8783,6 +9023,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -8892,6 +9134,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -9117,6 +9361,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -9139,6 +9385,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -9148,6 +9395,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -9176,7 +9424,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -9191,6 +9441,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -9246,6 +9497,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -9271,10 +9523,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -9298,6 +9552,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -9306,11 +9561,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -9367,11 +9624,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -9406,7 +9665,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -9452,6 +9713,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -9470,7 +9732,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -9490,10 +9754,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -9504,12 +9770,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -9542,6 +9810,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -9556,6 +9825,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -9679,6 +9949,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10102,6 +10374,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10192,6 +10466,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10321,6 +10597,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10437,6 +10715,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10523,6 +10803,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10666,6 +10948,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10755,6 +11039,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11110,6 +11396,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11275,6 +11563,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11425,6 +11715,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11534,6 +11826,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11679,6 +11973,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11768,6 +12064,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11845,6 +12143,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -11883,6 +12182,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -11966,6 +12266,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -12097,6 +12399,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -12173,6 +12477,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -12444,6 +12750,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -12531,11 +12839,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: items: properties: @@ -12547,11 +12857,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic weight: @@ -12562,6 +12874,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: properties: nodeSelectorTerms: @@ -12578,11 +12891,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: items: properties: @@ -12594,14 +12909,17 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic type: array + x-kubernetes-list-type: atomic required: - nodeSelectorTerms type: object @@ -12627,11 +12945,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12661,11 +12981,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12676,6 +12998,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: @@ -12689,6 +13012,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -12705,11 +13029,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12739,11 +13065,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12754,12 +13082,14 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object podAntiAffinity: properties: @@ -12781,11 +13111,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12815,11 +13147,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12830,6 +13164,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: @@ -12843,6 +13178,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -12859,11 +13195,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12893,11 +13231,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12908,12 +13248,14 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object type: object delayStartSeconds: @@ -12955,6 +13297,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic externalName: type: string externalTrafficPolicy: @@ -12979,6 +13322,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic ports: items: properties: @@ -13026,6 +13370,8 @@ spec: type: integer type: object type: object + trafficDistribution: + type: string type: type: string type: object @@ -13096,6 +13442,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -13125,6 +13473,7 @@ spec: externalSecret: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -13240,6 +13589,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -13271,6 +13622,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -14257,6 +14610,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14421,11 +14775,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -14450,6 +14806,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic dataSource: properties: apiGroup: @@ -14509,11 +14866,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -14539,6 +14898,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14576,6 +14936,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14600,6 +14961,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14612,6 +14974,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14649,6 +15012,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14661,6 +15025,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14674,6 +15039,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14734,6 +15100,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14752,6 +15119,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14769,6 +15137,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14781,6 +15150,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14798,6 +15168,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14810,6 +15181,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14829,6 +15201,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14915,11 +15288,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -14940,6 +15315,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -15015,11 +15392,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -15453,6 +15832,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -15530,6 +15911,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -15602,6 +15985,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -15943,7 +16328,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackdataplanedeployments.dataplane.openstack.org spec: group: dataplane.openstack.org @@ -16115,7 +16500,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackdataplanenodesets.dataplane.openstack.org spec: group: dataplane.openstack.org @@ -16275,6 +16660,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -16313,6 +16699,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -16386,6 +16773,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -16408,6 +16797,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -16417,6 +16807,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -16445,7 +16836,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -16460,6 +16853,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -16515,6 +16909,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -16540,10 +16935,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -16567,6 +16964,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -16575,11 +16973,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -16636,11 +17036,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -16675,7 +17077,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -16721,6 +17125,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -16739,7 +17144,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -16759,10 +17166,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -16773,12 +17182,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -16811,6 +17222,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -16825,6 +17237,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -17108,7 +17521,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackdataplaneservices.dataplane.openstack.org spec: group: dataplane.openstack.org @@ -17270,7 +17683,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstacklightspeeds.lightspeed.openstack.org spec: group: lightspeed.openstack.org @@ -17366,7 +17779,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackversions.core.openstack.org spec: group: core.openstack.org diff --git a/bindata/rbac/rbac.yaml b/bindata/rbac/rbac.yaml index 476b1b2e51..17b067e053 100644 --- a/bindata/rbac/rbac.yaml +++ b/bindata/rbac/rbac.yaml @@ -50,46 +50,26 @@ rules: - apiGroups: - "" resources: - - imagestreamimages + - configmaps + - pods + - secrets + - services verbs: + - create + - delete - get - list + - patch + - update - watch - apiGroups: - "" resources: + - imagestreamimages - imagestreammappings - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - imagestreams - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - imagestreams/layers - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - imagestreamtags - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - imagetags verbs: - get @@ -99,29 +79,7 @@ rules: - "" resources: - namespaces - verbs: - - get -- apiGroups: - - "" - resources: - - pods - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - pods/log - verbs: - - get -- apiGroups: - - "" - resources: - projects verbs: - get @@ -189,17 +147,6 @@ rules: - cert-manager.io resources: - certificates - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - cert-manager.io - resources: - issuers verbs: - create @@ -251,84 +198,15 @@ rules: - config.openshift.io resources: - imagedigestmirrorsets - verbs: - - get - - list - - watch -- apiGroups: - - config.openshift.io - resources: - networks verbs: - get - list - watch -- apiGroups: - - "" - resources: - - configmaps - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - - secrets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - - services - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - apiGroups: - core.openstack.org resources: - openstackcontrolplanes - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - core.openstack.org - resources: - - openstackcontrolplanes/finalizers - verbs: - - patch - - update -- apiGroups: - - core.openstack.org - resources: - - openstackcontrolplanes/status - verbs: - - get - - patch - - update -- apiGroups: - - core.openstack.org - resources: - openstackversions verbs: - create @@ -341,6 +219,7 @@ rules: - apiGroups: - core.openstack.org resources: + - openstackcontrolplanes/finalizers - openstackversions/finalizers verbs: - patch @@ -348,6 +227,7 @@ rules: - apiGroups: - core.openstack.org resources: + - openstackcontrolplanes/status - openstackversions/status verbs: - get @@ -367,6 +247,8 @@ rules: - dataplane.openstack.org resources: - openstackdataplanedeployments/finalizers + - openstackdataplanenodesets/finalizers + - openstackdataplaneservices/finalizers verbs: - patch - update @@ -374,6 +256,7 @@ rules: - dataplane.openstack.org resources: - openstackdataplanedeployments/status + - openstackdataplanenodesets/status verbs: - get - patch @@ -390,21 +273,6 @@ rules: - patch - update - watch -- apiGroups: - - dataplane.openstack.org - resources: - - openstackdataplanenodesets/finalizers - verbs: - - patch - - update -- apiGroups: - - dataplane.openstack.org - resources: - - openstackdataplanenodesets/status - verbs: - - get - - patch - - update - apiGroups: - dataplane.openstack.org resources: @@ -416,13 +284,6 @@ rules: - patch - update - watch -- apiGroups: - - dataplane.openstack.org - resources: - - openstackdataplaneservices/finalizers - verbs: - - patch - - update - apiGroups: - designate.openstack.org resources: @@ -487,36 +348,10 @@ rules: - image.openshift.io resources: - imagestreamimages - verbs: - - get - - list - - watch -- apiGroups: - - image.openshift.io - resources: - imagestreammappings - verbs: - - get - - list - - watch -- apiGroups: - - image.openshift.io - resources: - imagestreams - verbs: - - get - - list - - watch -- apiGroups: - - image.openshift.io - resources: - - imagestreams/layers - verbs: - - get -- apiGroups: - - image.openshift.io - resources: - imagestreamtags + - imagetags verbs: - get - list @@ -524,11 +359,9 @@ rules: - apiGroups: - image.openshift.io resources: - - imagetags + - imagestreams/layers verbs: - get - - list - - watch - apiGroups: - ironic.openstack.org resources: @@ -635,48 +468,7 @@ rules: - network.openstack.org resources: - dnsdata - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - network.openstack.org - resources: - - dnsdata/finalizers - verbs: - - patch - - update -- apiGroups: - - network.openstack.org - resources: - - dnsdata/status - verbs: - - get -- apiGroups: - - network.openstack.org - resources: - dnsmasqs - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - network.openstack.org - resources: - - dnsmasqs/status - verbs: - - get -- apiGroups: - - network.openstack.org - resources: - ipsets verbs: - create @@ -689,6 +481,7 @@ rules: - apiGroups: - network.openstack.org resources: + - dnsdata/finalizers - ipsets/finalizers verbs: - patch @@ -696,6 +489,8 @@ rules: - apiGroups: - network.openstack.org resources: + - dnsdata/status + - dnsmasqs/status - ipsets/status verbs: - get @@ -788,29 +583,7 @@ rules: - ovn.openstack.org resources: - ovncontrollers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - ovn.openstack.org - resources: - ovndbclusters - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - ovn.openstack.org - resources: - ovnnorthds verbs: - create @@ -866,16 +639,6 @@ rules: - rbac.authorization.k8s.io resources: - rolebindings - verbs: - - create - - get - - list - - patch - - update - - watch -- apiGroups: - - rbac.authorization.k8s.io - resources: - roles verbs: - create diff --git a/config/crd/bases/client.openstack.org_openstackclients.yaml b/config/crd/bases/client.openstack.org_openstackclients.yaml index d0762b0234..865b5c5cc7 100644 --- a/config/crd/bases/client.openstack.org_openstackclients.yaml +++ b/config/crd/bases/client.openstack.org_openstackclients.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackclients.client.openstack.org spec: group: client.openstack.org @@ -56,6 +56,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -94,6 +95,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean diff --git a/config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml b/config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml index c794155b13..7ce3ce80b8 100644 --- a/config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml +++ b/config/crd/bases/core.openstack.org_openstackcontrolplanes.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackcontrolplanes.core.openstack.org spec: group: core.openstack.org @@ -265,6 +265,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -348,6 +350,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -413,6 +417,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -757,6 +763,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -835,6 +843,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -895,6 +905,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -957,6 +969,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -1026,6 +1040,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -1048,6 +1064,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -1057,6 +1074,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -1085,7 +1103,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -1100,6 +1120,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -1155,6 +1176,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -1180,10 +1202,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -1207,6 +1231,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -1215,11 +1240,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -1276,11 +1303,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -1315,7 +1344,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -1361,6 +1392,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -1379,7 +1411,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -1399,10 +1433,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -1413,12 +1449,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -1451,6 +1489,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -1465,6 +1504,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -1795,6 +1835,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -1966,6 +2008,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2068,6 +2112,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2222,6 +2268,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2328,6 +2376,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2458,6 +2508,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2558,6 +2610,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2647,6 +2701,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -2819,6 +2875,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -2841,6 +2899,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -2850,6 +2909,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -2878,7 +2938,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -2893,6 +2955,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -2948,6 +3011,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -2973,10 +3037,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -3000,6 +3066,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -3008,11 +3075,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3069,11 +3138,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -3108,7 +3179,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -3154,6 +3227,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -3172,7 +3246,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -3192,10 +3268,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -3206,12 +3284,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -3244,6 +3324,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -3258,6 +3339,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3314,6 +3396,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -3543,6 +3627,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -3565,6 +3651,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -3574,6 +3661,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3602,7 +3690,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -3617,6 +3707,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3672,6 +3763,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -3697,10 +3789,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -3724,6 +3818,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -3732,11 +3827,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -3793,11 +3890,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -3832,7 +3931,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -3878,6 +3979,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -3896,7 +3998,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -3916,10 +4020,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -3930,12 +4036,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -3968,6 +4076,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -3982,6 +4091,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -4108,6 +4218,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -4562,6 +4674,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -4584,6 +4698,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -4593,6 +4708,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -4621,7 +4737,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -4636,6 +4754,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -4691,6 +4810,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -4716,10 +4836,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -4743,6 +4865,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -4751,11 +4874,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -4812,11 +4937,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -4851,7 +4978,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -4897,6 +5026,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -4915,7 +5045,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -4935,10 +5067,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -4949,12 +5083,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -4987,6 +5123,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -5001,6 +5138,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -5107,6 +5245,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -5238,6 +5378,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -5317,6 +5459,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -5557,6 +5701,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -5579,6 +5725,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -5588,6 +5735,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -5616,7 +5764,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -5631,6 +5781,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -5686,6 +5837,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -5711,10 +5863,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -5738,6 +5892,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -5746,11 +5901,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -5807,11 +5964,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -5846,7 +6005,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -5892,6 +6053,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -5910,7 +6072,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -5930,10 +6094,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -5944,12 +6110,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -5982,6 +6150,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -5996,6 +6165,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -6098,6 +6268,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -6496,6 +6668,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -6604,6 +6778,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -6766,6 +6942,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -6850,6 +7028,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -7104,6 +7284,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -7126,6 +7308,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -7135,6 +7318,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -7163,7 +7347,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -7178,6 +7364,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -7233,6 +7420,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -7258,10 +7446,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -7285,6 +7475,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -7293,11 +7484,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -7354,11 +7547,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -7393,7 +7588,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -7439,6 +7636,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -7457,7 +7655,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -7477,10 +7677,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -7491,12 +7693,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -7529,6 +7733,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -7543,6 +7748,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -7685,6 +7891,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -7930,6 +8138,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -7952,6 +8162,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -7961,6 +8172,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -7989,7 +8201,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -8004,6 +8218,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -8059,6 +8274,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -8084,10 +8300,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -8111,6 +8329,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -8119,11 +8338,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -8180,11 +8401,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -8219,7 +8442,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -8265,6 +8490,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -8283,7 +8509,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -8303,10 +8531,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -8317,12 +8547,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -8355,6 +8587,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -8369,6 +8602,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -8476,6 +8710,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -8556,6 +8792,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -8619,6 +8857,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -8728,6 +8968,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -8953,6 +9195,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -8975,6 +9219,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -8984,6 +9229,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -9012,7 +9258,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -9027,6 +9275,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -9082,6 +9331,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -9107,10 +9357,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -9134,6 +9386,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -9142,11 +9395,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -9203,11 +9458,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -9242,7 +9499,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -9288,6 +9547,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -9306,7 +9566,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -9326,10 +9588,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -9340,12 +9604,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -9378,6 +9644,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -9392,6 +9659,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -9515,6 +9783,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -9938,6 +10208,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10028,6 +10300,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10157,6 +10431,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10273,6 +10549,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10359,6 +10637,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10502,6 +10782,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10591,6 +10873,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -10946,6 +11230,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11111,6 +11397,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11261,6 +11549,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11370,6 +11660,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11515,6 +11807,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11604,6 +11898,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11681,6 +11977,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -11719,6 +12016,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -11802,6 +12100,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -11933,6 +12233,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -12009,6 +12311,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -12280,6 +12584,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -12367,11 +12673,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: items: properties: @@ -12383,11 +12691,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic weight: @@ -12398,6 +12708,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: properties: nodeSelectorTerms: @@ -12414,11 +12725,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchFields: items: properties: @@ -12430,14 +12743,17 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic type: object x-kubernetes-map-type: atomic type: array + x-kubernetes-list-type: atomic required: - nodeSelectorTerms type: object @@ -12463,11 +12779,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12497,11 +12815,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12512,6 +12832,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: @@ -12525,6 +12846,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -12541,11 +12863,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12575,11 +12899,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12590,12 +12916,14 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object podAntiAffinity: properties: @@ -12617,11 +12945,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12651,11 +12981,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12666,6 +12998,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: @@ -12679,6 +13012,7 @@ spec: - weight type: object type: array + x-kubernetes-list-type: atomic requiredDuringSchedulingIgnoredDuringExecution: items: properties: @@ -12695,11 +13029,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12729,11 +13065,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -12744,12 +13082,14 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic topologyKey: type: string required: - topologyKey type: object type: array + x-kubernetes-list-type: atomic type: object type: object delayStartSeconds: @@ -12791,6 +13131,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic externalName: type: string externalTrafficPolicy: @@ -12815,6 +13156,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic ports: items: properties: @@ -12862,6 +13204,8 @@ spec: type: integer type: object type: object + trafficDistribution: + type: string type: type: string type: object @@ -12932,6 +13276,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -12961,6 +13307,7 @@ spec: externalSecret: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -13076,6 +13423,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -13107,6 +13456,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -14093,6 +14444,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14257,11 +14609,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -14286,6 +14640,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic dataSource: properties: apiGroup: @@ -14345,11 +14700,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -14375,6 +14732,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14412,6 +14770,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14436,6 +14795,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14448,6 +14808,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14485,6 +14846,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14497,6 +14859,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14510,6 +14873,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14570,6 +14934,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14588,6 +14953,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14605,6 +14971,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14617,6 +14984,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14634,6 +15002,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14646,6 +15015,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14665,6 +15035,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -14751,11 +15122,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -14776,6 +15149,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -14851,11 +15226,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -15289,6 +15666,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -15366,6 +15745,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object @@ -15438,6 +15819,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object diff --git a/config/crd/bases/core.openstack.org_openstackversions.yaml b/config/crd/bases/core.openstack.org_openstackversions.yaml index 3020e010e1..6bf3cb473f 100644 --- a/config/crd/bases/core.openstack.org_openstackversions.yaml +++ b/config/crd/bases/core.openstack.org_openstackversions.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackversions.core.openstack.org spec: group: core.openstack.org diff --git a/config/crd/bases/dataplane.openstack.org_openstackdataplanedeployments.yaml b/config/crd/bases/dataplane.openstack.org_openstackdataplanedeployments.yaml index fa892132ef..6dc49de215 100644 --- a/config/crd/bases/dataplane.openstack.org_openstackdataplanedeployments.yaml +++ b/config/crd/bases/dataplane.openstack.org_openstackdataplanedeployments.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackdataplanedeployments.dataplane.openstack.org spec: group: dataplane.openstack.org diff --git a/config/crd/bases/dataplane.openstack.org_openstackdataplanenodesets.yaml b/config/crd/bases/dataplane.openstack.org_openstackdataplanenodesets.yaml index c04ff979c4..f8e3eb9393 100644 --- a/config/crd/bases/dataplane.openstack.org_openstackdataplanenodesets.yaml +++ b/config/crd/bases/dataplane.openstack.org_openstackdataplanenodesets.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackdataplanenodesets.dataplane.openstack.org spec: group: dataplane.openstack.org @@ -163,6 +163,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -201,6 +202,7 @@ spec: key: type: string name: + default: "" type: string optional: type: boolean @@ -274,6 +276,8 @@ spec: type: string readOnly: type: boolean + recursiveReadOnly: + type: string subPath: type: string subPathExpr: @@ -296,6 +300,7 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic path: type: string readOnly: @@ -305,6 +310,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -333,7 +339,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -348,6 +356,7 @@ spec: nodePublishSecretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -403,6 +412,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object emptyDir: properties: @@ -428,10 +438,12 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic wwids: items: type: string type: array + x-kubernetes-list-type: atomic type: object hostPath: properties: @@ -455,6 +467,7 @@ spec: iqn: type: string iscsiInterface: + default: default type: string lun: format: int32 @@ -463,11 +476,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic readOnly: type: boolean secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic @@ -524,11 +539,13 @@ spec: items: type: string type: array + x-kubernetes-list-type: atomic required: - key - operator type: object type: array + x-kubernetes-list-type: atomic matchLabels: additionalProperties: type: string @@ -563,7 +580,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -609,6 +628,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic type: object secret: properties: @@ -627,7 +647,9 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic name: + default: "" type: string optional: type: boolean @@ -647,10 +669,12 @@ spec: type: object type: object type: array + x-kubernetes-list-type: atomic type: object scaleIO: properties: fsType: + default: xfs type: string gateway: type: string @@ -661,12 +685,14 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic sslEnabled: type: boolean storageMode: + default: ThinProvisioned type: string storagePool: type: string @@ -699,6 +725,7 @@ spec: - path type: object type: array + x-kubernetes-list-type: atomic optional: type: boolean secretName: @@ -713,6 +740,7 @@ spec: secretRef: properties: name: + default: "" type: string type: object x-kubernetes-map-type: atomic diff --git a/config/crd/bases/dataplane.openstack.org_openstackdataplaneservices.yaml b/config/crd/bases/dataplane.openstack.org_openstackdataplaneservices.yaml index d61c829679..3892f7142d 100644 --- a/config/crd/bases/dataplane.openstack.org_openstackdataplaneservices.yaml +++ b/config/crd/bases/dataplane.openstack.org_openstackdataplaneservices.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstackdataplaneservices.dataplane.openstack.org spec: group: dataplane.openstack.org diff --git a/config/crd/bases/lightspeed.openstack.org_openstacklightspeeds.yaml b/config/crd/bases/lightspeed.openstack.org_openstacklightspeeds.yaml index 0806fd2857..104850713a 100644 --- a/config/crd/bases/lightspeed.openstack.org_openstacklightspeeds.yaml +++ b/config/crd/bases/lightspeed.openstack.org_openstacklightspeeds.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstacklightspeeds.lightspeed.openstack.org spec: group: lightspeed.openstack.org diff --git a/config/crd/bases/operator.openstack.org_openstacks.yaml b/config/crd/bases/operator.openstack.org_openstacks.yaml index aeaeeef1f1..2009dd660b 100644 --- a/config/crd/bases/operator.openstack.org_openstacks.yaml +++ b/config/crd/bases/operator.openstack.org_openstacks.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.14.0 + controller-gen.kubebuilder.io/version: v0.18.0 name: openstacks.operator.openstack.org spec: group: operator.openstack.org @@ -46,6 +46,8 @@ spec: properties: name: type: string + request: + type: string required: - name type: object diff --git a/config/operator/rbac/role.yaml b/config/operator/rbac/role.yaml index 7a2f147b00..094127a16c 100644 --- a/config/operator/rbac/role.yaml +++ b/config/operator/rbac/role.yaml @@ -10,6 +10,7 @@ rules: - configmaps - namespaces - serviceaccounts + - services verbs: - '*' - apiGroups: @@ -41,17 +42,6 @@ rules: - cert-manager.io resources: - certificates - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - cert-manager.io - resources: - issuers verbs: - create @@ -61,12 +51,6 @@ rules: - patch - update - watch -- apiGroups: - - "" - resources: - - services - verbs: - - '*' - apiGroups: - discovery.k8s.io resources: diff --git a/config/rbac/role.yaml b/config/rbac/role.yaml index f58f1553df..d970de4fc2 100644 --- a/config/rbac/role.yaml +++ b/config/rbac/role.yaml @@ -7,46 +7,26 @@ rules: - apiGroups: - "" resources: - - imagestreamimages + - configmaps + - pods + - secrets + - services verbs: + - create + - delete - get - list + - patch + - update - watch - apiGroups: - "" resources: + - imagestreamimages - imagestreammappings - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - imagestreams - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - imagestreams/layers - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - imagestreamtags - verbs: - - get - - list - - watch -- apiGroups: - - "" - resources: - imagetags verbs: - get @@ -56,29 +36,7 @@ rules: - "" resources: - namespaces - verbs: - - get -- apiGroups: - - "" - resources: - - pods - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - pods/log - verbs: - - get -- apiGroups: - - "" - resources: - projects verbs: - get @@ -146,17 +104,6 @@ rules: - cert-manager.io resources: - certificates - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - cert-manager.io - resources: - issuers verbs: - create @@ -208,84 +155,15 @@ rules: - config.openshift.io resources: - imagedigestmirrorsets - verbs: - - get - - list - - watch -- apiGroups: - - config.openshift.io - resources: - networks verbs: - get - list - watch -- apiGroups: - - "" - resources: - - configmaps - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - - secrets - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - "" - resources: - - services - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - apiGroups: - core.openstack.org resources: - openstackcontrolplanes - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - core.openstack.org - resources: - - openstackcontrolplanes/finalizers - verbs: - - patch - - update -- apiGroups: - - core.openstack.org - resources: - - openstackcontrolplanes/status - verbs: - - get - - patch - - update -- apiGroups: - - core.openstack.org - resources: - openstackversions verbs: - create @@ -298,6 +176,7 @@ rules: - apiGroups: - core.openstack.org resources: + - openstackcontrolplanes/finalizers - openstackversions/finalizers verbs: - patch @@ -305,6 +184,7 @@ rules: - apiGroups: - core.openstack.org resources: + - openstackcontrolplanes/status - openstackversions/status verbs: - get @@ -324,6 +204,8 @@ rules: - dataplane.openstack.org resources: - openstackdataplanedeployments/finalizers + - openstackdataplanenodesets/finalizers + - openstackdataplaneservices/finalizers verbs: - patch - update @@ -331,6 +213,7 @@ rules: - dataplane.openstack.org resources: - openstackdataplanedeployments/status + - openstackdataplanenodesets/status verbs: - get - patch @@ -347,21 +230,6 @@ rules: - patch - update - watch -- apiGroups: - - dataplane.openstack.org - resources: - - openstackdataplanenodesets/finalizers - verbs: - - patch - - update -- apiGroups: - - dataplane.openstack.org - resources: - - openstackdataplanenodesets/status - verbs: - - get - - patch - - update - apiGroups: - dataplane.openstack.org resources: @@ -373,13 +241,6 @@ rules: - patch - update - watch -- apiGroups: - - dataplane.openstack.org - resources: - - openstackdataplaneservices/finalizers - verbs: - - patch - - update - apiGroups: - designate.openstack.org resources: @@ -444,36 +305,10 @@ rules: - image.openshift.io resources: - imagestreamimages - verbs: - - get - - list - - watch -- apiGroups: - - image.openshift.io - resources: - imagestreammappings - verbs: - - get - - list - - watch -- apiGroups: - - image.openshift.io - resources: - imagestreams - verbs: - - get - - list - - watch -- apiGroups: - - image.openshift.io - resources: - - imagestreams/layers - verbs: - - get -- apiGroups: - - image.openshift.io - resources: - imagestreamtags + - imagetags verbs: - get - list @@ -481,11 +316,9 @@ rules: - apiGroups: - image.openshift.io resources: - - imagetags + - imagestreams/layers verbs: - get - - list - - watch - apiGroups: - ironic.openstack.org resources: @@ -592,48 +425,7 @@ rules: - network.openstack.org resources: - dnsdata - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - network.openstack.org - resources: - - dnsdata/finalizers - verbs: - - patch - - update -- apiGroups: - - network.openstack.org - resources: - - dnsdata/status - verbs: - - get -- apiGroups: - - network.openstack.org - resources: - dnsmasqs - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - network.openstack.org - resources: - - dnsmasqs/status - verbs: - - get -- apiGroups: - - network.openstack.org - resources: - ipsets verbs: - create @@ -646,6 +438,7 @@ rules: - apiGroups: - network.openstack.org resources: + - dnsdata/finalizers - ipsets/finalizers verbs: - patch @@ -653,6 +446,8 @@ rules: - apiGroups: - network.openstack.org resources: + - dnsdata/status + - dnsmasqs/status - ipsets/status verbs: - get @@ -745,29 +540,7 @@ rules: - ovn.openstack.org resources: - ovncontrollers - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - ovn.openstack.org - resources: - ovndbclusters - verbs: - - create - - delete - - get - - list - - patch - - update - - watch -- apiGroups: - - ovn.openstack.org - resources: - ovnnorthds verbs: - create @@ -823,16 +596,6 @@ rules: - rbac.authorization.k8s.io resources: - rolebindings - verbs: - - create - - get - - list - - patch - - update - - watch -- apiGroups: - - rbac.authorization.k8s.io - resources: - roles verbs: - create diff --git a/config/samples/base/openstackcontrolplane/core_v1beta1_openstackcontrolplane.yaml b/config/samples/base/openstackcontrolplane/core_v1beta1_openstackcontrolplane.yaml index cc05eec5fa..d6b1f5493e 100644 --- a/config/samples/base/openstackcontrolplane/core_v1beta1_openstackcontrolplane.yaml +++ b/config/samples/base/openstackcontrolplane/core_v1beta1_openstackcontrolplane.yaml @@ -90,6 +90,7 @@ spec: replicas: 0 # backend needs to be configured manila: template: + databaseInstance: openstack manilaAPI: replicas: 1 manilaScheduler: diff --git a/config/samples/core_v1beta1_openstackcontrolplane_galera.yaml b/config/samples/core_v1beta1_openstackcontrolplane_galera.yaml index 46af8b5483..4995aceadf 100644 --- a/config/samples/core_v1beta1_openstackcontrolplane_galera.yaml +++ b/config/samples/core_v1beta1_openstackcontrolplane_galera.yaml @@ -88,6 +88,7 @@ spec: replicas: 0 # backend needs to be configured manila: template: + databaseInstance: openstack manilaAPI: replicas: 1 manilaScheduler: diff --git a/config/samples/core_v1beta1_openstackcontrolplane_galera_3replicas.yaml b/config/samples/core_v1beta1_openstackcontrolplane_galera_3replicas.yaml index 9416617b43..e25d36fb23 100644 --- a/config/samples/core_v1beta1_openstackcontrolplane_galera_3replicas.yaml +++ b/config/samples/core_v1beta1_openstackcontrolplane_galera_3replicas.yaml @@ -88,6 +88,7 @@ spec: replicas: 0 # backend needs to be configured manila: template: + databaseInstance: openstack manilaAPI: replicas: 1 manilaScheduler: diff --git a/config/samples/core_v1beta1_openstackcontrolplane_galera_network_isolation.yaml b/config/samples/core_v1beta1_openstackcontrolplane_galera_network_isolation.yaml index 05c5a6dace..87b84b74b4 100644 --- a/config/samples/core_v1beta1_openstackcontrolplane_galera_network_isolation.yaml +++ b/config/samples/core_v1beta1_openstackcontrolplane_galera_network_isolation.yaml @@ -208,6 +208,7 @@ spec: apiOverride: route: {} template: + databaseInstance: openstack manilaAPI: replicas: 1 networkAttachments: diff --git a/config/samples/core_v1beta1_openstackcontrolplane_galera_network_isolation_3replicas.yaml b/config/samples/core_v1beta1_openstackcontrolplane_galera_network_isolation_3replicas.yaml index e05039f679..3389549d5d 100644 --- a/config/samples/core_v1beta1_openstackcontrolplane_galera_network_isolation_3replicas.yaml +++ b/config/samples/core_v1beta1_openstackcontrolplane_galera_network_isolation_3replicas.yaml @@ -208,6 +208,7 @@ spec: apiOverride: route: {} template: + databaseInstance: openstack manilaAPI: replicas: 1 networkAttachments: diff --git a/config/samples/core_v1beta1_openstackcontrolplane_network_isolation.yaml b/config/samples/core_v1beta1_openstackcontrolplane_network_isolation.yaml index f8a5d42360..703269fc56 100644 --- a/config/samples/core_v1beta1_openstackcontrolplane_network_isolation.yaml +++ b/config/samples/core_v1beta1_openstackcontrolplane_network_isolation.yaml @@ -204,6 +204,7 @@ spec: apiOverride: route: {} template: + databaseInstance: openstack manilaAPI: replicas: 1 networkAttachments: diff --git a/config/samples/core_v1beta1_openstackcontrolplane_network_isolation_ceph.yaml b/config/samples/core_v1beta1_openstackcontrolplane_network_isolation_ceph.yaml index ca138c63db..012ad7bc7e 100644 --- a/config/samples/core_v1beta1_openstackcontrolplane_network_isolation_ceph.yaml +++ b/config/samples/core_v1beta1_openstackcontrolplane_network_isolation_ceph.yaml @@ -238,6 +238,7 @@ spec: apiOverride: route: {} template: + databaseInstance: openstack manilaAPI: customServiceConfig: | [DEFAULT] diff --git a/config/samples/core_v1beta1_openstackcontrolplane_network_isolation_tls_public_endpoint.yaml b/config/samples/core_v1beta1_openstackcontrolplane_network_isolation_tls_public_endpoint.yaml index 5e7768f4b0..838bf887ba 100644 --- a/config/samples/core_v1beta1_openstackcontrolplane_network_isolation_tls_public_endpoint.yaml +++ b/config/samples/core_v1beta1_openstackcontrolplane_network_isolation_tls_public_endpoint.yaml @@ -207,6 +207,7 @@ spec: apiOverride: route: {} template: + databaseInstance: openstack manilaAPI: replicas: 1 networkAttachments: diff --git a/go.mod b/go.mod index 8ede8fbc86..fb8b7a822b 100644 --- a/go.mod +++ b/go.mod @@ -44,20 +44,21 @@ require ( github.com/stretchr/testify v1.11.1 go.uber.org/zap v1.27.0 gopkg.in/yaml.v3 v3.0.1 - k8s.io/api v0.29.15 - k8s.io/apimachinery v0.29.15 - k8s.io/client-go v0.29.15 - k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 - sigs.k8s.io/controller-runtime v0.17.6 + k8s.io/api v0.31.12 + k8s.io/apimachinery v0.31.12 + k8s.io/client-go v0.31.12 + k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d + sigs.k8s.io/controller-runtime v0.19.7 ) require ( github.com/beorn7/perks v1.0.1 // indirect - github.com/cespare/xxhash/v2 v2.2.0 // indirect + github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect github.com/emicklei/go-restful/v3 v3.12.0 // indirect github.com/evanphx/json-patch/v5 v5.9.0 // indirect github.com/fsnotify/fsnotify v1.7.0 // indirect + github.com/fxamacker/cbor/v2 v2.7.0 // indirect github.com/gabriel-vasile/mimetype v1.4.8 // indirect github.com/go-logr/zapr v1.3.0 // indirect github.com/go-openapi/jsonpointer v0.21.0 // indirect @@ -86,33 +87,32 @@ require ( github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20250823121217-7e1cd2e3dd03 // indirect github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 // indirect - github.com/prometheus/client_golang v1.19.0 // indirect - github.com/prometheus/client_model v0.6.0 // indirect - github.com/prometheus/common v0.53.0 // indirect - github.com/prometheus/procfs v0.13.0 // indirect + github.com/prometheus/client_golang v1.19.1 // indirect + github.com/prometheus/client_model v0.6.1 // indirect + github.com/prometheus/common v0.55.0 // indirect + github.com/prometheus/procfs v0.15.1 // indirect github.com/rhobs/obo-prometheus-operator/pkg/apis/monitoring v0.71.0-rhobs1 // indirect github.com/rhobs/observability-operator v0.3.1 // indirect github.com/robfig/cron/v3 v3.0.1 // indirect github.com/spf13/pflag v1.0.6 // indirect + github.com/x448/float16 v0.8.4 // indirect go.uber.org/multierr v1.11.0 // indirect golang.org/x/crypto v0.33.0 // indirect golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect golang.org/x/mod v0.20.0 // indirect golang.org/x/net v0.34.0 // indirect - golang.org/x/oauth2 v0.18.0 // indirect + golang.org/x/oauth2 v0.21.0 // indirect golang.org/x/sys v0.30.0 // indirect golang.org/x/term v0.29.0 // indirect golang.org/x/text v0.22.0 // indirect golang.org/x/time v0.5.0 // indirect golang.org/x/tools v0.24.0 // indirect gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect - google.golang.org/appengine v1.6.8 // indirect - google.golang.org/protobuf v1.34.1 // indirect + google.golang.org/protobuf v1.34.2 // indirect gopkg.in/inf.v0 v0.9.1 // indirect gopkg.in/yaml.v2 v2.4.0 // indirect - k8s.io/apiextensions-apiserver v0.29.15 // indirect - k8s.io/component-base v0.29.15 // indirect - k8s.io/klog/v2 v2.120.1 // indirect + k8s.io/apiextensions-apiserver v0.31.12 // indirect + k8s.io/klog/v2 v2.130.1 // indirect k8s.io/kube-openapi v0.0.0-20240322212309-b815d8309940 // indirect sigs.k8s.io/gateway-api v1.0.0 // indirect sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect @@ -122,9 +122,9 @@ require ( replace github.com/openstack-k8s-operators/openstack-operator/apis => ./apis -// mschuppert: map to latest commit from release-4.16 tag +// mschuppert: map to latest commit from release-4.18 tag // must consistent within modules and service operators -replace github.com/openshift/api => github.com/openshift/api v0.0.0-20240830023148-b7d0481c9094 //allow-merging +replace github.com/openshift/api => github.com/openshift/api v0.0.0-20250711200046-c86d80652a9e //allow-merging // custom RabbitmqClusterSpecCore for OpenStackControlplane (v2.9.0_patches_tag_n) replace github.com/rabbitmq/cluster-operator/v2 => github.com/openstack-k8s-operators/rabbitmq-cluster-operator/v2 v2.6.1-0.20250717122149-12f70b7f3d8d //allow-merging diff --git a/go.sum b/go.sum index 0a767d48b9..9bf21b1399 100644 --- a/go.sum +++ b/go.sum @@ -2,8 +2,8 @@ github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= github.com/cert-manager/cert-manager v1.14.7 h1:C2L59sMGMdSpd8SPx5qfPAL7ejZaNxJBRd24S7Ws5Ek= github.com/cert-manager/cert-manager v1.14.7/go.mod h1:0QE/Hzfs2SxNrFFYgFh/d0c0cDfNv9qSrAev2LFt5nM= -github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44= -github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= +github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs= +github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM= @@ -16,6 +16,8 @@ github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0 github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ= github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA= github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM= +github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E= +github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ= github.com/gabriel-vasile/mimetype v1.4.8 h1:FfZ3gj38NjllZIeJAmMhr+qKL8Wu+nOoI3GqacKw1NM= github.com/gabriel-vasile/mimetype v1.4.8/go.mod h1:ByKUIKGjh1ODkGM1asKUbQZOLGrPjydw3hYPU2YU9t8= github.com/go-logr/logr v1.4.3 h1:CjnDlHq8ikf6E492q6eKboGOC0T8CDaOvkHCIg8idEI= @@ -42,13 +44,10 @@ github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE= github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek= github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps= github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49 h1:0VpGH+cDhbDtdcweoyCVsF3fhN8kejK6rFe/2FFX2nU= github.com/google/gnostic-models v0.6.9-0.20230804172637-c7be7c783f49/go.mod h1:BkkQ4L1KS1xMt2aWSPStnn55ChGC0DPOn2FQYj+f25M= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY= github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8= github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU= @@ -96,8 +95,8 @@ github.com/onsi/ginkgo/v2 v2.20.1 h1:YlVIbqct+ZmnEph770q9Q7NVAz4wwIiVNahee6JyUzo github.com/onsi/ginkgo/v2 v2.20.1/go.mod h1:lG9ey2Z29hR41WMVthyJBGUBcBhGOtoPF2VFMvBXFCI= github.com/onsi/gomega v1.34.1 h1:EUMJIKUjM8sKjYbtxQI9A4z2o+rruxnzNvpknOXie6k= github.com/onsi/gomega v1.34.1/go.mod h1:kU1QgUvBDLXBJq618Xvm2LUX6rSAfRaFRTcdOeDLwwY= -github.com/openshift/api v0.0.0-20240830023148-b7d0481c9094 h1:J1wuGhVxpsHykZBa6Beb1gQ96Ptej9AE/BvwCBiRj1E= -github.com/openshift/api v0.0.0-20240830023148-b7d0481c9094/go.mod h1:CxgbWAlvu2iQB0UmKTtRu1YfepRg1/vJ64n2DlIEVz4= +github.com/openshift/api v0.0.0-20250711200046-c86d80652a9e h1:E1OdwSpqWuDPCedyUt0GEdoAE+r5TXy7YS21yNEo+2U= +github.com/openshift/api v0.0.0-20250711200046-c86d80652a9e/go.mod h1:Shkl4HanLwDiiBzakv+con/aMGnVE2MAGvoKp5oyYUo= github.com/openstack-k8s-operators/barbican-operator/api v0.6.1-0.20250916162815-94a54170a2be h1:tX0xh1l8nKSlzf29qZ5dd7BrDl1TMFaqo4X7jrMpQrk= github.com/openstack-k8s-operators/barbican-operator/api v0.6.1-0.20250916162815-94a54170a2be/go.mod h1:t1OgOfbkr5e0GnYb/8DVF7ipTBvnkTiaajshsX/lEGc= github.com/openstack-k8s-operators/cinder-operator/api v0.6.1-0.20250916151837-4aab51f61506 h1:VM1A3GoWpaWut/pJ8ahyqIIrcorA5ifB9LCiJvjmaSU= @@ -159,14 +158,14 @@ github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINE github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2 h1:Jamvg5psRIccs7FGNTlIRMkT8wgtp5eCXdBlqhYGL6U= github.com/pmezard/go-difflib v1.0.1-0.20181226105442-5d4384ee4fb2/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/prometheus/client_golang v1.19.0 h1:ygXvpU1AoN1MhdzckN+PyD9QJOSD4x7kmXYlnfbA6JU= -github.com/prometheus/client_golang v1.19.0/go.mod h1:ZRM9uEAypZakd+q/x7+gmsvXdURP+DABIEIjnmDdp+k= -github.com/prometheus/client_model v0.6.0 h1:k1v3CzpSRUTrKMppY35TLwPvxHqBu0bYgxZzqGIgaos= -github.com/prometheus/client_model v0.6.0/go.mod h1:NTQHnmxFpouOD0DpvP4XujX3CdOAGQPoaGhyTchlyt8= -github.com/prometheus/common v0.53.0 h1:U2pL9w9nmJwJDa4qqLQ3ZaePJ6ZTwt7cMD3AG3+aLCE= -github.com/prometheus/common v0.53.0/go.mod h1:BrxBKv3FWBIGXw89Mg1AeBq7FSyRzXWI3l3e7W3RN5U= -github.com/prometheus/procfs v0.13.0 h1:GqzLlQyfsPbaEHaQkO7tbDlriv/4o5Hudv6OXHGKX7o= -github.com/prometheus/procfs v0.13.0/go.mod h1:cd4PFCR54QLnGKPaKGA6l+cfuNXtht43ZKY6tow0Y1g= +github.com/prometheus/client_golang v1.19.1 h1:wZWJDwK+NameRJuPGDhlnFgx8e8HN3XHQeLaYJFJBOE= +github.com/prometheus/client_golang v1.19.1/go.mod h1:mP78NwGzrVks5S2H6ab8+ZZGJLZUq1hoULYBAYBw1Ho= +github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E= +github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY= +github.com/prometheus/common v0.55.0 h1:KEi6DK7lXW/m7Ig5i47x0vRzuBsHuvJdi5ee6Y3G1dc= +github.com/prometheus/common v0.55.0/go.mod h1:2SECS4xJG1kd8XF9IcM1gMX6510RAEL65zxzNImwdc8= +github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc= +github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk= github.com/rhobs/obo-prometheus-operator/pkg/apis/monitoring v0.71.0-rhobs1 h1:NBdZFQUVKllUnmh6suuH02+K8VS8ibErnOhxNiH+aio= github.com/rhobs/obo-prometheus-operator/pkg/apis/monitoring v0.71.0-rhobs1/go.mod h1:oDJbA/Byh5LNU7zBgBZYRM5263mgL16NtysHl/uVtGY= github.com/rhobs/observability-operator v0.3.1 h1:vVGCt/a7Ds5VeqikaKZJz18oOPV9p4YUaezlVlwdpIM= @@ -181,9 +180,10 @@ github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+ github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= +github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM= +github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.4.13/go.mod h1:6yULJ656Px+3vBD8DxQVa3kxgyrAnzto9xy5taEt/CY= go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto= go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE= go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0= @@ -193,7 +193,6 @@ go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20210921155107-089bfa567519/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/crypto v0.0.0-20220829220503-c86fa9a7ed90/go.mod h1:IxCIyHEi3zRg3s0A5j5BB6A9Jmi73HwBIUl50j+osU4= golang.org/x/crypto v0.33.0 h1:IOBPskki6Lysi0lo9qQvbxiQ+FvsCC/YWOecCHAixus= golang.org/x/crypto v0.33.0/go.mod h1:bVdXmD7IV/4GdElGPozy6U7lWdRXA4qyRVGJV57uQ5M= @@ -201,43 +200,34 @@ golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0 golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.6.0-dev.0.20220419223038-86c51ed26bb4/go.mod h1:jJ57K6gSWd91VN4djpZkiMVwK6gcyfeH4XE8wZrZaV4= golang.org/x/mod v0.20.0 h1:utOm6MM3R3dnawAiJgn0y+xvuYRsm1RKM/4giyfDgV0= golang.org/x/mod v0.20.0/go.mod h1:hTbmBsO62+eylJbnUtE2MGJUyE7QWk4xUqPFrRgJ+7c= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20211112202133-69e39bad7dc2/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= -golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.34.0 h1:Mb7Mrk043xzHgnRM88suvJFwzVrRfHEHJEl5/71CKw0= golang.org/x/net v0.34.0/go.mod h1:di0qlW3YNM5oh6GqDGQr92MyTozJPmybPK4Ev/Gm31k= -golang.org/x/oauth2 v0.18.0 h1:09qnuIAgzdx1XplqJvW6CQqMCtGZykZWcXzPMPUusvI= -golang.org/x/oauth2 v0.18.0/go.mod h1:Wf7knwG0MPoWIMMBgFlEaSUDaKskp0dCfrlJRJXbBi8= +golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs= +golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20220722155255-886fb9371eb4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220520151302-bc2c85ada10a/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20220722155257-8c9f86f7a55f/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.30.0 h1:QjkSwP/36a20jFYWkSue1YwXzLmsV5Gfq7Eiy72C1uc= golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.29.0 h1:L6pJp37ocefwRRtYPKSWOWzOtWSxVajvz2ldH/xi3iU= golang.org/x/term v0.29.0/go.mod h1:6bl4lRlvVuDgSf3179VpIxBF0o10JUpXWOnI7nErv7s= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.7/go.mod h1:u+2+/6zg+i71rQMx5EYifcz6MCKuco9NR6JIITiCfzQ= -golang.org/x/text v0.3.8/go.mod h1:E6s5w1FMmriuDzIBO73fBruAKo1PCIq6d2Q6DHfQ8WQ= golang.org/x/text v0.22.0 h1:bofq7m3/HAFvbF51jz3Q9wLg3jkvSPuiZu/pD1XwgtM= golang.org/x/text v0.22.0/go.mod h1:YRoo4H8PVmsu+E3Ou7cqLVH8oXWIHVoX0jqUWALQhfY= golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk= @@ -246,7 +236,6 @@ golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.12/go.mod h1:hNGJHUnrk76NpqgfD5Aqm5Crs+Hm0VOH/i9J2+nxYbc= golang.org/x/tools v0.24.0 h1:J1shsA93PJUEVaUSaay7UXAyE8aimq3GW0pjlolpa24= golang.org/x/tools v0.24.0/go.mod h1:YhNqVBIfWHdzvTLs0d8LCuMhkKUgSUKldakyV7W/WDQ= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -255,15 +244,13 @@ golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8T golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw= gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY= -google.golang.org/appengine v1.6.8 h1:IhEN5q69dyKagZPYMSdIjS2HqprW324FRQZJcGqPAsM= -google.golang.org/appengine v1.6.8/go.mod h1:1jJ3jBArFh5pcgW8gCtRJnepW8FzD1V44FJffLiz/Ds= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -google.golang.org/protobuf v1.34.1 h1:9ddQBjfCyZPOHPUiPxpYESBLc+T8P3E+Vo4IbKZgFWg= -google.golang.org/protobuf v1.34.1/go.mod h1:c6P6GXX6sHbq/GpV6MGZEdwhWPcYBgnhAHhKbcUYpos= +google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg= +google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk= gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q= +gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4= +gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M= gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc= gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= @@ -271,24 +258,22 @@ gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA= gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -k8s.io/api v0.29.15 h1:QxPcAheYujeBwkdiE0vMyKkAtqUq5YNyXVqimT+me44= -k8s.io/api v0.29.15/go.mod h1:16duIp2ez6GiLPq1g8XtZNIkw6hJpIitpxZSvv0dZ6E= -k8s.io/apiextensions-apiserver v0.29.15 h1:XI5axgsWqMlIIgpHbcz5vPjk06i3ibHv5FUdSfdtQLU= -k8s.io/apiextensions-apiserver v0.29.15/go.mod h1:6ZU61z32I8WUwbBTPIANUesTj5G40sZek0ojmeoMJI8= -k8s.io/apimachinery v0.29.15 h1:aLc0wghElkdnTO7TMVTxTrifoXah1lqRL8s6szDHGbg= -k8s.io/apimachinery v0.29.15/go.mod h1:i3FJVwhvSp/6n8Fl4K97PJEP8C+MM+aoDq4+ZJBf70Y= -k8s.io/client-go v0.29.15 h1:zCBOXKCtz9Hl8boKUGs8zbtZEP6pc7O8Ov3ma+gnS6o= -k8s.io/client-go v0.29.15/go.mod h1:xPy0D3p4sonPhZhI3QoYo4m7oLKoPjFf4vYF9oxoxNM= -k8s.io/component-base v0.29.15 h1:CvmXXTDyk43FDaiJ/Rp+yWFjw6hkUI2t7mIJUrK5j00= -k8s.io/component-base v0.29.15/go.mod h1:jH/sbuvmXew2Fz2iIKNMeNw8o/d1KR9tAg6uekQKnVk= -k8s.io/klog/v2 v2.120.1 h1:QXU6cPEOIslTGvZaXvFWiP9VKyeet3sawzTOvdXb4Vw= -k8s.io/klog/v2 v2.120.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= +k8s.io/api v0.31.12 h1:yysm83xHIoKAwfm2w0dT6Yz7vfWzl841AEMI7Y8wDa8= +k8s.io/api v0.31.12/go.mod h1:f/srhhI7aDs9K4s0W1GX4/zb+cIf5uWrBjGyoO/XgJc= +k8s.io/apiextensions-apiserver v0.31.12 h1:d32I3VReAly5Qoc9ZXhO4/iObYmm7Jk6VvAeRAbg/MA= +k8s.io/apiextensions-apiserver v0.31.12/go.mod h1:KcBI/Z/WQmbffBwfqQmqHhALhvun5JNJJh8Y29CJwUo= +k8s.io/apimachinery v0.31.12 h1:y34W8rNKc+jDxUvEXarjahqM6vOV5iqgZPuRqRuyEh8= +k8s.io/apimachinery v0.31.12/go.mod h1:rsPdaZJfTfLsNJSQzNHQvYoTmxhoOEofxtOsF3rtsMo= +k8s.io/client-go v0.31.12 h1:JJhouOoU1bKdPWplkZ2CpYA74+lxj3Zsn15aoGLX6Hk= +k8s.io/client-go v0.31.12/go.mod h1:kjQ5WSec9ShP3T1auTDFW4bTqgmJdBuZPsjq5FqeuYE= +k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk= +k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE= k8s.io/kube-openapi v0.0.0-20240322212309-b815d8309940 h1:qVoMaQV5t62UUvHe16Q3eb2c5HPzLHYzsi0Tu/xLndo= k8s.io/kube-openapi v0.0.0-20240322212309-b815d8309940/go.mod h1:yD4MZYeKMBwQKVht279WycxKyM84kkAx2DPrTXaeb98= -k8s.io/utils v0.0.0-20240711033017-18e509b52bc8 h1:pUdcCO1Lk/tbT5ztQWOBi5HBgbBP1J8+AsQnQCKsi8A= -k8s.io/utils v0.0.0-20240711033017-18e509b52bc8/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= -sigs.k8s.io/controller-runtime v0.17.6 h1:12IXsozEsIXWAMRpgRlYS1jjAHQXHtWEOMdULh3DbEw= -sigs.k8s.io/controller-runtime v0.17.6/go.mod h1:N0jpP5Lo7lMTF9aL56Z/B2oWBJjey6StQM0jRbKQXtY= +k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d h1:wAhiDyZ4Tdtt7e46e9M5ZSAJ/MnPGPs+Ki1gHw4w1R0= +k8s.io/utils v0.0.0-20250820121507-0af2bda4dd1d/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0= +sigs.k8s.io/controller-runtime v0.19.7 h1:DLABZfMr20A+AwCZOHhcbcu+TqBXnJZaVBri9K3EO48= +sigs.k8s.io/controller-runtime v0.19.7/go.mod h1:iRmWllt8IlaLjvTTDLhRBXIEtkCK6hwVBJJsYS9Ajf4= sigs.k8s.io/gateway-api v1.0.0 h1:iPTStSv41+d9p0xFydll6d7f7MOBGuqXM6p2/zVYMAs= sigs.k8s.io/gateway-api v1.0.0/go.mod h1:4cUgr0Lnp5FZ0Cdq8FdRwCvpiWws7LVhLHGIudLlf4c= sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo= diff --git a/tests/functional/ctlplane/base_test.go b/tests/functional/ctlplane/base_test.go index b3792b4c58..f0c7bac6f4 100644 --- a/tests/functional/ctlplane/base_test.go +++ b/tests/functional/ctlplane/base_test.go @@ -573,6 +573,7 @@ func GetDefaultOpenStackControlPlaneSpec() map[string]interface{} { }, } manilaTemplate := map[string]interface{}{ + "databaseInstance": "openstack", "rabbitMqClusterName": "rabbitmq", "memcachedInstance": "memcached", "databaseAccount": "account", From 732e37dca9570c983ee6549d4708d30be8667346 Mon Sep 17 00:00:00 2001 From: Martin Schuppert Date: Mon, 15 Sep 2025 16:32:33 +0200 Subject: [PATCH 4/5] [test] validate Spec.TLS is not nil before assert Signed-off-by: Martin Schuppert --- tests/functional/ctlplane/openstackoperator_controller_test.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/functional/ctlplane/openstackoperator_controller_test.go b/tests/functional/ctlplane/openstackoperator_controller_test.go index 71d3db7f90..dbe9a8e4a6 100644 --- a/tests/functional/ctlplane/openstackoperator_controller_test.go +++ b/tests/functional/ctlplane/openstackoperator_controller_test.go @@ -1469,6 +1469,7 @@ var _ = Describe("OpenStackOperator controller", func() { keystoneRoute := &routev1.Route{} g.Expect(th.K8sClient.Get(th.Ctx, keystoneRouteName, keystoneRoute)).Should(Succeed()) + g.Expect(keystoneRoute.Spec.TLS).Should(Not(BeNil())) g.Expect(keystoneRoute.Spec.TLS.Certificate).Should(Not(BeEmpty())) g.Expect(keystoneRoute.Spec.TLS.Key).Should(Not(BeEmpty())) g.Expect(keystoneRoute.Spec.TLS.CACertificate).Should(Not(BeEmpty())) @@ -2087,6 +2088,7 @@ var _ = Describe("OpenStackOperator controller", func() { watcherRoute := &routev1.Route{} g.Expect(th.K8sClient.Get(th.Ctx, watcherRouteName, watcherRoute)).Should(Succeed()) + g.Expect(watcherRoute.Spec.TLS).Should(Not(BeNil())) g.Expect(watcherRoute.Spec.TLS.Certificate).Should(Not(BeEmpty())) g.Expect(watcherRoute.Spec.TLS.Key).Should(Not(BeEmpty())) g.Expect(watcherRoute.Spec.TLS.CACertificate).Should(Not(BeEmpty())) @@ -3787,6 +3789,7 @@ var _ = Describe("OpenStackOperator controller nova cell deletion", func() { novncproxyRoute := &routev1.Route{} g.Expect(th.K8sClient.Get(th.Ctx, novncproxyRouteName, novncproxyRoute)).Should(Succeed()) + g.Expect(novncproxyRoute.Spec.TLS).Should(Not(BeNil())) g.Expect(novncproxyRoute.Spec.TLS.Certificate).Should(Not(BeEmpty())) g.Expect(novncproxyRoute.Spec.TLS.Key).Should(Not(BeEmpty())) g.Expect(novncproxyRoute.Spec.TLS.CACertificate).Should(Not(BeEmpty())) From 69c37f91c3f04bd5e4bd61107a4982efc2256c73 Mon Sep 17 00:00:00 2001 From: Martin Schuppert Date: Tue, 16 Sep 2025 17:24:04 +0200 Subject: [PATCH 5/5] bump lib-common Signed-off-by: Martin Schuppert --- apis/go.mod | 4 ++-- apis/go.sum | 8 ++++---- go.mod | 10 +++++----- go.sum | 20 +++++++++---------- .../openstackoperator_controller_test.go | 2 +- 5 files changed, 22 insertions(+), 22 deletions(-) diff --git a/apis/go.mod b/apis/go.mod index c40e80d21a..81a2198c38 100644 --- a/apis/go.mod +++ b/apis/go.mod @@ -16,8 +16,8 @@ require ( github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20250919143843-b81500a16049 github.com/openstack-k8s-operators/ironic-operator/api v0.6.1-0.20250915220807-7ac28d765257 github.com/openstack-k8s-operators/keystone-operator/api v0.6.1-0.20250916093250-82a76386143d - github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20250916144944-295824b4a7ce - github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20250916144944-295824b4a7ce + github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20250922082314-c83d83092a04 + github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20250922082314-c83d83092a04 github.com/openstack-k8s-operators/manila-operator/api v0.6.1-0.20250919144954-99877452c35b github.com/openstack-k8s-operators/mariadb-operator/api v0.6.1-0.20250919091623-97dfb39624e3 github.com/openstack-k8s-operators/neutron-operator/api v0.6.1-0.20250916093251-7cfe04efd126 diff --git a/apis/go.sum b/apis/go.sum index ba1e64992a..8069253426 100644 --- a/apis/go.sum +++ b/apis/go.sum @@ -111,12 +111,12 @@ github.com/openstack-k8s-operators/ironic-operator/api v0.6.1-0.20250915220807-7 github.com/openstack-k8s-operators/ironic-operator/api v0.6.1-0.20250915220807-7ac28d765257/go.mod h1:pnJ/UY5Qvr565W2wKQU8WRyR936VVCkjcieuTXKDHfo= github.com/openstack-k8s-operators/keystone-operator/api v0.6.1-0.20250916093250-82a76386143d h1:lSRMftk/MbN4qd8ihHh9ucdX4sfR/HUudEcy2h/BNhQ= github.com/openstack-k8s-operators/keystone-operator/api v0.6.1-0.20250916093250-82a76386143d/go.mod h1:7ZuNZNtwRYklS2H5E5YSjsHOI2sYbAl1AD+N0W/G+8A= -github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20250916144944-295824b4a7ce h1:OH2da0ZrtRcRV+EU8G/P6IlYRIVjSOlq2iutGTNgzbQ= -github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20250916144944-295824b4a7ce/go.mod h1:Z+rmtn3qhuPZfx2EDVmloUh2MkYbvDMgcpJneRYerS0= +github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20250922082314-c83d83092a04 h1:JqJd39rF8rD9KIHmOEFbHP8UyYgttfuouj+kAFNtymU= +github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20250922082314-c83d83092a04/go.mod h1:SmKRclrynSSRCXSLOoWlETalJPvt62ObHsfW8iPvtDA= github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20250823121217-7e1cd2e3dd03 h1:tSMLVApQ4j4YJ56TGIYzaNo2Zh/ruDAY0wCcOEVKoIQ= github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20250823121217-7e1cd2e3dd03/go.mod h1:nachFP0Yicw/e8ZlqZzvnBN6w9kjMcnqrhaDw36PGjw= -github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20250916144944-295824b4a7ce h1:WbdAdRxhSq4tjW6Pqlmy4HXU88dbPgfKX3oDn2Qa8y8= -github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20250916144944-295824b4a7ce/go.mod h1:U3LQ4Nz2+syTPfW66bSLv6OzefLpsqxWLdX9AFotRPA= +github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20250922082314-c83d83092a04 h1:j5P/ehO4bQ+VqNvqNiX7N/R8wnBweFy7MX685nh4mmY= +github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20250922082314-c83d83092a04/go.mod h1:WbDAhyvX2UTyK9LzYZKjRvEGdn2fsQJHUo5l2J5q/vg= github.com/openstack-k8s-operators/manila-operator/api v0.6.1-0.20250919144954-99877452c35b h1:CsmxE47qBRAFve2mCe/SodjO/VrAGbYJ6UPQkcfa1XQ= github.com/openstack-k8s-operators/manila-operator/api v0.6.1-0.20250919144954-99877452c35b/go.mod h1:YKBaz8jLEGmgUy6FLTm3aCRzlL1wTvdYQiOELvXrtbI= github.com/openstack-k8s-operators/mariadb-operator/api v0.6.1-0.20250919091623-97dfb39624e3 h1:jLLHwgEbfglcSfJbqWP4vEqMs0xzu5QoubSpYDKOTIk= diff --git a/go.mod b/go.mod index fb8b7a822b..56c79335fa 100644 --- a/go.mod +++ b/go.mod @@ -21,11 +21,11 @@ require ( github.com/openstack-k8s-operators/infra-operator/apis v0.6.1-0.20250919143843-b81500a16049 github.com/openstack-k8s-operators/ironic-operator/api v0.6.1-0.20250915220807-7ac28d765257 github.com/openstack-k8s-operators/keystone-operator/api v0.6.1-0.20250916093250-82a76386143d - github.com/openstack-k8s-operators/lib-common/modules/ansible v0.6.1-0.20250916144944-295824b4a7ce - github.com/openstack-k8s-operators/lib-common/modules/certmanager v0.6.1-0.20250916144944-295824b4a7ce - github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20250916144944-295824b4a7ce - github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20250916144944-295824b4a7ce - github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20250916144944-295824b4a7ce + github.com/openstack-k8s-operators/lib-common/modules/ansible v0.6.1-0.20250922082314-c83d83092a04 + github.com/openstack-k8s-operators/lib-common/modules/certmanager v0.6.1-0.20250922082314-c83d83092a04 + github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20250922082314-c83d83092a04 + github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20250922082314-c83d83092a04 + github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20250922082314-c83d83092a04 github.com/openstack-k8s-operators/manila-operator/api v0.6.1-0.20250919144954-99877452c35b github.com/openstack-k8s-operators/mariadb-operator/api v0.6.1-0.20250919091623-97dfb39624e3 github.com/openstack-k8s-operators/neutron-operator/api v0.6.1-0.20250916093251-7cfe04efd126 diff --git a/go.sum b/go.sum index 9bf21b1399..e43122c696 100644 --- a/go.sum +++ b/go.sum @@ -115,18 +115,18 @@ github.com/openstack-k8s-operators/ironic-operator/api v0.6.1-0.20250915220807-7 github.com/openstack-k8s-operators/ironic-operator/api v0.6.1-0.20250915220807-7ac28d765257/go.mod h1:pnJ/UY5Qvr565W2wKQU8WRyR936VVCkjcieuTXKDHfo= github.com/openstack-k8s-operators/keystone-operator/api v0.6.1-0.20250916093250-82a76386143d h1:lSRMftk/MbN4qd8ihHh9ucdX4sfR/HUudEcy2h/BNhQ= github.com/openstack-k8s-operators/keystone-operator/api v0.6.1-0.20250916093250-82a76386143d/go.mod h1:7ZuNZNtwRYklS2H5E5YSjsHOI2sYbAl1AD+N0W/G+8A= -github.com/openstack-k8s-operators/lib-common/modules/ansible v0.6.1-0.20250916144944-295824b4a7ce h1:JhiMssiIQWs/frVxqioEjQS/Aj3nRT1GrWdnOLGAZgI= -github.com/openstack-k8s-operators/lib-common/modules/ansible v0.6.1-0.20250916144944-295824b4a7ce/go.mod h1:0bajRHochTUT6Ecfriw27l3vL0yezVrnUmt3bcIpu4w= -github.com/openstack-k8s-operators/lib-common/modules/certmanager v0.6.1-0.20250916144944-295824b4a7ce h1:1tYmgDyphbyLzCUQmXEwnC5EvLt9ylbFTEauH0lTqTw= -github.com/openstack-k8s-operators/lib-common/modules/certmanager v0.6.1-0.20250916144944-295824b4a7ce/go.mod h1:zrT6A4LqjU+kNi4r9Z1Nb6dKn4fj2VnDM2ZMaO5/MUA= -github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20250916144944-295824b4a7ce h1:OH2da0ZrtRcRV+EU8G/P6IlYRIVjSOlq2iutGTNgzbQ= -github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20250916144944-295824b4a7ce/go.mod h1:Z+rmtn3qhuPZfx2EDVmloUh2MkYbvDMgcpJneRYerS0= +github.com/openstack-k8s-operators/lib-common/modules/ansible v0.6.1-0.20250922082314-c83d83092a04 h1:LJ8HkJVBvsO5sQSN+2u12wVE97KSrRpdVwc35LHGWJg= +github.com/openstack-k8s-operators/lib-common/modules/ansible v0.6.1-0.20250922082314-c83d83092a04/go.mod h1:/t8UOevAIOdAu7SAkfwfyZj6p2pkuupl3mZJPMNqNOo= +github.com/openstack-k8s-operators/lib-common/modules/certmanager v0.6.1-0.20250922082314-c83d83092a04 h1:EoEo5NzPfaT53cHGm5FvWGk1sml3DW4iJ7cwnMNitYE= +github.com/openstack-k8s-operators/lib-common/modules/certmanager v0.6.1-0.20250922082314-c83d83092a04/go.mod h1:AlyowFlFjybCGaCFSHCA8NHMGxb2ndSejYFJg5l0lXg= +github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20250922082314-c83d83092a04 h1:JqJd39rF8rD9KIHmOEFbHP8UyYgttfuouj+kAFNtymU= +github.com/openstack-k8s-operators/lib-common/modules/common v0.6.1-0.20250922082314-c83d83092a04/go.mod h1:SmKRclrynSSRCXSLOoWlETalJPvt62ObHsfW8iPvtDA= github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20250823121217-7e1cd2e3dd03 h1:tSMLVApQ4j4YJ56TGIYzaNo2Zh/ruDAY0wCcOEVKoIQ= github.com/openstack-k8s-operators/lib-common/modules/openstack v0.6.1-0.20250823121217-7e1cd2e3dd03/go.mod h1:nachFP0Yicw/e8ZlqZzvnBN6w9kjMcnqrhaDw36PGjw= -github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20250916144944-295824b4a7ce h1:WbdAdRxhSq4tjW6Pqlmy4HXU88dbPgfKX3oDn2Qa8y8= -github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20250916144944-295824b4a7ce/go.mod h1:U3LQ4Nz2+syTPfW66bSLv6OzefLpsqxWLdX9AFotRPA= -github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20250916144944-295824b4a7ce h1:RpQAmpFCIBI65OqEsZTW18CXCXfTY/pA8OzScrVKPYo= -github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20250916144944-295824b4a7ce/go.mod h1:L3t8ty8BYur+yQC4EbxolVOU85A62oxODM5rMApOwfc= +github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20250922082314-c83d83092a04 h1:j5P/ehO4bQ+VqNvqNiX7N/R8wnBweFy7MX685nh4mmY= +github.com/openstack-k8s-operators/lib-common/modules/storage v0.6.1-0.20250922082314-c83d83092a04/go.mod h1:WbDAhyvX2UTyK9LzYZKjRvEGdn2fsQJHUo5l2J5q/vg= +github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20250922082314-c83d83092a04 h1:kz0qnjGhe72z0nzqD+WEm0TBOUdoKFaJmXJNZ5zxRRk= +github.com/openstack-k8s-operators/lib-common/modules/test v0.6.1-0.20250922082314-c83d83092a04/go.mod h1:rYrAP48GcxkxIN0lZ3AuocBFTE8TRmh6bqvg7B9pGRU= github.com/openstack-k8s-operators/manila-operator/api v0.6.1-0.20250919144954-99877452c35b h1:CsmxE47qBRAFve2mCe/SodjO/VrAGbYJ6UPQkcfa1XQ= github.com/openstack-k8s-operators/manila-operator/api v0.6.1-0.20250919144954-99877452c35b/go.mod h1:YKBaz8jLEGmgUy6FLTm3aCRzlL1wTvdYQiOELvXrtbI= github.com/openstack-k8s-operators/mariadb-operator/api v0.6.1-0.20250919091623-97dfb39624e3 h1:jLLHwgEbfglcSfJbqWP4vEqMs0xzu5QoubSpYDKOTIk= diff --git a/tests/functional/ctlplane/openstackoperator_controller_test.go b/tests/functional/ctlplane/openstackoperator_controller_test.go index dbe9a8e4a6..d29fb8c160 100644 --- a/tests/functional/ctlplane/openstackoperator_controller_test.go +++ b/tests/functional/ctlplane/openstackoperator_controller_test.go @@ -1208,7 +1208,7 @@ var _ = Describe("OpenStackOperator controller", func() { corev1.OpenStackControlPlaneCAReadyCondition, k8s_corev1.ConditionFalse, condition.ErrorReason, - "OpenStackControlPlane CAs issuer custom-issuer error occured Error getting issuer : Issuer.cert-manager.io \"custom-issuer\" not found", + "OpenStackControlPlane CAs issuer custom-issuer error occured error getting issuer : Issuer.cert-manager.io \"custom-issuer\" not found", ) })