Skip to content

Commit 8923c5f

Browse files
committed
subnetpool: make shared immutable and fix apivalidation
1 parent c38fba9 commit 8923c5f

13 files changed

Lines changed: 117 additions & 9 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.

config/manifests/bases/orc.clusterserviceversion.yaml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,11 @@ spec:
124124
kind: ShareNetwork
125125
name: sharenetworks.openstack.k-orc.cloud
126126
version: v1alpha1
127+
- description: SubnetPool is the Schema for an ORC resource.
128+
displayName: Subnet Pool
129+
kind: SubnetPool
130+
name: subnetpools.openstack.k-orc.cloud
131+
version: v1alpha1
127132
- description: Subnet is the Schema for an ORC resource.
128133
displayName: Subnet
129134
kind: Subnet

internal/controllers/subnetpool/controller.go

Lines changed: 9 additions & 3 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"
@@ -40,17 +41,22 @@ const controllerName = "subnetpool"
4041
// +kubebuilder:rbac:groups=openstack.k-orc.cloud,resources=subnetpools/status,verbs=get;update;patch
4142

4243
type subnetpoolReconcilerConstructor struct {
43-
scopeFactory scope.Factory
44+
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+
5460
var projectDependency = dependency.NewDeletionGuardDependency[*orcv1alpha1.SubnetPoolList, *orcv1alpha1.Project](
5561
"spec.resource.projectRef",
5662
func(subnetpool *orcv1alpha1.SubnetPool) []string {
@@ -151,6 +157,6 @@ func (c subnetpoolReconcilerConstructor) SetupWithManager(ctx context.Context, m
151157
return err
152158
}
153159

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

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.

0 commit comments

Comments
 (0)