Skip to content

Commit 7c4b250

Browse files
api: Add NetworkFenceClassName to NetworkFence spec
This patch adds NetworkFenceClassName to NetworkFence spec and deprecates specifying driver, secrets and parameters inside NetworkFence spec. When this value is present; the driver, secrets and parameters are read from the specified networkfence class. Signed-off-by: Niraj Yadav <niryadav@redhat.com>
1 parent e09bd2b commit 7c4b250

1 file changed

Lines changed: 11 additions & 2 deletions

File tree

api/csiaddons/v1alpha1/networkfence_types.go

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -66,9 +66,16 @@ type SecretSpec struct {
6666
// NetworkFenceSpec defines the desired state of NetworkFence
6767
// +kubebuilder:validation:XValidation:rule="has(self.parameters) == has(oldSelf.parameters)",message="parameters are immutable"
6868
// +kubebuilder:validation:XValidation:rule="has(self.secret) == has(oldSelf.secret)",message="secret is immutable"
69+
// +kubebuilder:validation:XValidation:rule="has(self.driver) || has(self.networkFenceClassName)",message="one of driver or networkFenceClassName must be present"
6970
type NetworkFenceSpec struct {
70-
// Driver contains the name of CSI driver.
71-
// +kubebuilder:validation:Required
71+
// NetworkFenceClassName contains the name of the NetworkFenceClass
72+
// +kubebuilder:validation:Optional
73+
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="networkFenceClassName is immutable"
74+
NetworkFenceClassName string `json:"networkFenceClassName"`
75+
76+
// Driver contains the name of CSI driver, required if NetworkFenceClassName is absent
77+
// +kubebuilder:deprecatedversion:warning="specifying driver in networkfence is deprecated, please use networkFenceClassName instead"
78+
// +kubebuilder:validation:Optional
7279
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="driver is immutable"
7380
Driver string `json:"driver"`
7481

@@ -84,9 +91,11 @@ type NetworkFenceSpec struct {
8491
Cidrs []string `json:"cidrs"`
8592

8693
// Secret is a kubernetes secret, which is required to perform the fence/unfence operation.
94+
// +kubebuilder:deprecatedversion:warning="specifying secrets in networkfence is deprecated, please use networkFenceClassName instead"
8795
Secret SecretSpec `json:"secret,omitempty"`
8896

8997
// Parameters is used to pass additional parameters to the CSI driver.
98+
// +kubebuilder:deprecatedversion:warning="specifying parameters in networkfence is deprecated, please use networkFenceClassName instead"
9099
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="parameters are immutable"
91100
Parameters map[string]string `json:"parameters,omitempty"`
92101
}

0 commit comments

Comments
 (0)