Skip to content

Commit 1b65587

Browse files
committed
feat: make extensionIPRange field immutable
1 parent 97bcdb5 commit 1b65587

File tree

2 files changed

+14
-2
lines changed

2 files changed

+14
-2
lines changed

crd/overlayextensionconfig/api/v1alpha1/overlayextensionconfig_types.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,9 +31,13 @@ type OverlayExtensionConfigList struct {
3131
}
3232

3333
// OverlayExtensionConfigSpec defines the desired state of OverlayExtensionConfig.
34+
// +kubebuilder:validation:XValidation:rule="!has(oldSelf.extensionIPRange) || has(self.extensionIPRange)", message="ExtensionIPRange is required once set"
3435
type OverlayExtensionConfigSpec struct {
3536
// ExtensionIPRange field defines a CIDR that should be able to reach routing domain ip addresses.
3637
// +kubebuilder:validation:Optional
38+
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="Value is immutable"
39+
// +kubebuilder:validation:MaxLength=43
40+
// 43 is max length of IPv6 CIDR string
3741
ExtensionIPRange string `json:"extensionIPRange,omitempty"`
3842
}
3943

crd/overlayextensionconfig/manifests/acn.azure.com_overlayextensionconfigs.yaml

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,10 +48,18 @@ spec:
4848
description: OverlayExtensionConfigSpec defines the desired state of OverlayExtensionConfig.
4949
properties:
5050
extensionIPRange:
51-
description: ExtensionIPRange field defines a CIDR that should be
52-
able to reach routing domain ip addresses.
51+
description: |-
52+
ExtensionIPRange field defines a CIDR that should be able to reach routing domain ip addresses.
53+
43 is max length of IPv6 CIDR string
54+
maxLength: 43
5355
type: string
56+
x-kubernetes-validations:
57+
- message: Value is immutable
58+
rule: self == oldSelf
5459
type: object
60+
x-kubernetes-validations:
61+
- message: ExtensionIPRange is required once set
62+
rule: '!has(oldSelf.extensionIPRange) || has(self.extensionIPRange)'
5563
status:
5664
description: OverlayExtensionConfigStatus defines the observed state of
5765
OverlayExtensionConfig

0 commit comments

Comments
 (0)