Skip to content

Commit 64d0da4

Browse files
committed
subnetpool: make shared immutable and fix apivalidation
1 parent c38fba9 commit 64d0da4

12 files changed

Lines changed: 112 additions & 8 deletions

File tree

api/v1alpha1/subnetpool_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,7 @@ type SubnetPoolResourceSpec struct {
7575
// By default, it is false, and only administrative users can
7676
// change this value.
7777
// +optional
78+
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="shared is immutable"
7879
Shared *bool `json:"shared,omitempty"`
7980

8081
// defaultPrefixLength is the size of the prefix to allocate when

api/v1alpha1/zz_generated.deepcopy.go

Lines changed: 9 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/v1alpha1/zz_generated.subnetpool-resource.go

Lines changed: 15 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

cmd/models-schema/zz_generated.openapi.go

Lines changed: 14 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

config/crd/bases/openstack.k-orc.cloud_subnetpools.yaml

Lines changed: 19 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

internal/controllers/subnetpool/controller.go

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ package subnetpool
1919
import (
2020
"context"
2121
"errors"
22+
"time"
2223

2324
ctrl "sigs.k8s.io/controller-runtime"
2425
"sigs.k8s.io/controller-runtime/pkg/builder"
@@ -41,16 +42,22 @@ const controllerName = "subnetpool"
4142

4243
type subnetpoolReconcilerConstructor struct {
4344
scopeFactory scope.Factory
45+
defaultResyncPeriod time.Duration
4446
}
4547

4648
func New(scopeFactory scope.Factory) interfaces.Controller {
47-
return subnetpoolReconcilerConstructor{scopeFactory: scopeFactory}
49+
return &subnetpoolReconcilerConstructor{scopeFactory: scopeFactory}
4850
}
4951

5052
func (subnetpoolReconcilerConstructor) GetName() string {
5153
return controllerName
5254
}
5355

56+
func (c *subnetpoolReconcilerConstructor) SetDefaultResyncPeriod(d time.Duration) {
57+
c.defaultResyncPeriod = d
58+
}
59+
60+
5461
var projectDependency = dependency.NewDeletionGuardDependency[*orcv1alpha1.SubnetPoolList, *orcv1alpha1.Project](
5562
"spec.resource.projectRef",
5663
func(subnetpool *orcv1alpha1.SubnetPool) []string {
@@ -151,6 +158,6 @@ func (c subnetpoolReconcilerConstructor) SetupWithManager(ctx context.Context, m
151158
return err
152159
}
153160

154-
r := reconciler.NewController(controllerName, mgr.GetClient(), c.scopeFactory, subnetpoolHelperFactory{}, subnetpoolStatusWriter{})
161+
r := reconciler.NewController(controllerName, mgr.GetClient(), c.scopeFactory, subnetpoolHelperFactory{}, subnetpoolStatusWriter{}, c.defaultResyncPeriod)
155162
return builder.Complete(&r)
156163
}

internal/controllers/subnetpool/zz_generated.adapter.go

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/clients/applyconfiguration/api/v1alpha1/subnetpoolspec.go

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/clients/applyconfiguration/api/v1alpha1/subnetpoolstatus.go

Lines changed: 13 additions & 3 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

pkg/clients/applyconfiguration/internal/internal.go

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)