Skip to content

Commit 34ba710

Browse files
authored
Merge pull request #165 from iPraveenParihar/api/cephfs-radosnamespace
api: add radosNamespace field to CephFsConfigSpec
2 parents 86418b7 + 868472c commit 34ba710

File tree

10 files changed

+56
-0
lines changed

10 files changed

+56
-0
lines changed

api/v1alpha1/clientprofile_types.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,10 +31,15 @@ type CephFsConfigSpec struct {
3131

3232
//+kubebuilder:validation:Optional
3333
FuseMountOptions map[string]string `json:"fuseMountOptions,omitempty"`
34+
35+
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="field is immutable"
36+
//+kubebuilder:validation:Optional
37+
RadosNamespace *string `json:"radosNamespace,omitempty"`
3438
}
3539

3640
// RbdConfigSpec defines the desired RBD configuration
3741
type RbdConfigSpec struct {
42+
//+kubebuilder:validation:XValidation:rule="self == oldSelf",message="field is immutable"
3843
//+kubebuilder:validation:Optional
3944
RadosNamespace string `json:"radosNamespace,omitempty"`
4045
}

api/v1alpha1/zz_generated.deepcopy.go

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

config/crd/bases/csi.ceph.io_clientprofiles.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,11 @@ spec:
7474
additionalProperties:
7575
type: string
7676
type: object
77+
radosNamespace:
78+
type: string
79+
x-kubernetes-validations:
80+
- message: field is immutable
81+
rule: self == oldSelf
7782
subVolumeGroup:
7883
type: string
7984
type: object
@@ -85,6 +90,9 @@ spec:
8590
properties:
8691
radosNamespace:
8792
type: string
93+
x-kubernetes-validations:
94+
- message: field is immutable
95+
rule: self == oldSelf
8896
type: object
8997
required:
9098
- cephConnectionRef

deploy/all-in-one/install.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -222,6 +222,11 @@ spec:
222222
additionalProperties:
223223
type: string
224224
type: object
225+
radosNamespace:
226+
type: string
227+
x-kubernetes-validations:
228+
- message: field is immutable
229+
rule: self == oldSelf
225230
subVolumeGroup:
226231
type: string
227232
type: object
@@ -233,6 +238,9 @@ spec:
233238
properties:
234239
radosNamespace:
235240
type: string
241+
x-kubernetes-validations:
242+
- message: field is immutable
243+
rule: self == oldSelf
236244
type: object
237245
required:
238246
- cephConnectionRef

deploy/charts/ceph-csi-operator/templates/clientprofile-crd.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,11 @@ spec:
7575
additionalProperties:
7676
type: string
7777
type: object
78+
radosNamespace:
79+
type: string
80+
x-kubernetes-validations:
81+
- message: field is immutable
82+
rule: self == oldSelf
7883
subVolumeGroup:
7984
type: string
8085
type: object
@@ -86,6 +91,9 @@ spec:
8691
properties:
8792
radosNamespace:
8893
type: string
94+
x-kubernetes-validations:
95+
- message: field is immutable
96+
rule: self == oldSelf
8997
type: object
9098
required:
9199
- cephConnectionRef

deploy/multifile/crd.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -213,6 +213,11 @@ spec:
213213
additionalProperties:
214214
type: string
215215
type: object
216+
radosNamespace:
217+
type: string
218+
x-kubernetes-validations:
219+
- message: field is immutable
220+
rule: self == oldSelf
216221
subVolumeGroup:
217222
type: string
218223
type: object
@@ -224,6 +229,9 @@ spec:
224229
properties:
225230
radosNamespace:
226231
type: string
232+
x-kubernetes-validations:
233+
- message: field is immutable
234+
rule: self == oldSelf
227235
type: object
228236
required:
229237
- cephConnectionRef

docs/design/operator.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -349,6 +349,7 @@ spec:
349349
subvolumeGroup: csi
350350
kernelMountOptions: readdir_max_bytes=1048576,norbytes
351351
fuseMountOptions: debug
352+
radosNamespace: rados-test-cephfs
352353
rbd:
353354
radosNamespace: rados-test
354355
status: {}

internal/controller/clientprofile_controller.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/go-logr/logr"
2727
corev1 "k8s.io/api/core/v1"
2828
"k8s.io/apimachinery/pkg/runtime"
29+
"k8s.io/utils/ptr"
2930
ctrl "sigs.k8s.io/controller-runtime"
3031
"sigs.k8s.io/controller-runtime/pkg/builder"
3132
"sigs.k8s.io/controller-runtime/pkg/client"
@@ -69,6 +70,7 @@ type csiClusterInfoRecord struct {
6970
SubvolumeGroup string `json:"subvolumeGroup,omitempty"`
7071
KernelMountOptions string `json:"kernelMountOptions"`
7172
FuseMountOptions string `json:"fuseMountOptions"`
73+
RadosNamespace string `json:"radosNamespace,omitempty"`
7274
} `json:"cephFS,omitempty"`
7375
Rbd struct {
7476
RadosNamespace string `json:"radosNamespace,omitempty"`
@@ -313,6 +315,7 @@ func composeCsiClusterInfoRecord(clientProfile *csiv1a1.ClientProfile, cephConn
313315
record.Monitors = cephConn.Spec.Monitors
314316
if cephFs := clientProfile.Spec.CephFs; cephFs != nil {
315317
record.CephFs.SubvolumeGroup = cephFs.SubVolumeGroup
318+
record.CephFs.RadosNamespace = ptr.Deref(cephFs.RadosNamespace, "")
316319
if mountOpt := cephFs.KernelMountOptions; mountOpt != nil {
317320
record.CephFs.KernelMountOptions = utils.MapToString(mountOpt, "=", ",")
318321
}

vendor/github.com/ceph/ceph-csi-operator/api/v1alpha1/clientprofile_types.go

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

vendor/github.com/ceph/ceph-csi-operator/api/v1alpha1/zz_generated.deepcopy.go

Lines changed: 5 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)