mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-11-22 14:20:19 +00:00
deploy: API for CSI Config Struct
This commit exposes CSI ConfigMap over an API. This will allow projects like Rook to consume CSI configMap directly from Ceph-CSI. Signed-off-by: Praveen M <m.praveen@ibm.com>
This commit is contained in:
parent
7e262515a8
commit
878eef803e
@ -22,6 +22,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
|
"github.com/ceph/ceph-csi/api/deploy/kubernetes"
|
||||||
"github.com/ghodss/yaml"
|
"github.com/ghodss/yaml"
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
)
|
)
|
||||||
@ -30,11 +31,13 @@ import (
|
|||||||
var csiConfigMap string
|
var csiConfigMap string
|
||||||
|
|
||||||
type CSIConfigMapValues struct {
|
type CSIConfigMapValues struct {
|
||||||
Name string
|
Name string
|
||||||
|
ClusterInfo []kubernetes.ClusterInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
var CSIConfigMapDefaults = CSIConfigMapValues{
|
var CSIConfigMapDefaults = CSIConfigMapValues{
|
||||||
Name: "ceph-csi-config",
|
Name: "ceph-csi-config",
|
||||||
|
ClusterInfo: []kubernetes.ClusterInfo{},
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCSIConfigMap takes a name from the CSIConfigMapValues struct and relaces
|
// NewCSIConfigMap takes a name from the CSIConfigMapValues struct and relaces
|
||||||
|
@ -5,4 +5,4 @@ metadata:
|
|||||||
name: "{{ .Name }}"
|
name: "{{ .Name }}"
|
||||||
data:
|
data:
|
||||||
config.json: |-
|
config.json: |-
|
||||||
[]
|
{{ .ClusterInfo }}
|
||||||
|
@ -7,3 +7,4 @@ spec:
|
|||||||
attachRequired: false
|
attachRequired: false
|
||||||
podInfoOnMount: false
|
podInfoOnMount: false
|
||||||
fsGroupPolicy: File
|
fsGroupPolicy: File
|
||||||
|
seLinuxMount: true
|
||||||
|
59
api/deploy/kubernetes/csi-config-map.go
Normal file
59
api/deploy/kubernetes/csi-config-map.go
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2023 The Ceph-CSI Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kubernetes
|
||||||
|
|
||||||
|
type ClusterInfo struct {
|
||||||
|
// ClusterID is used for unique identification
|
||||||
|
ClusterID string
|
||||||
|
// Monitors is monitor list for corresponding cluster ID
|
||||||
|
Monitors []string
|
||||||
|
// CephFS contains CephFS specific options
|
||||||
|
CephFS CephFS
|
||||||
|
// RBD Contains RBD specific options
|
||||||
|
RBD RBD
|
||||||
|
// NFS contains NFS specific options
|
||||||
|
NFS NFS
|
||||||
|
// Read affinity map options
|
||||||
|
ReadAffinity ReadAffinity
|
||||||
|
}
|
||||||
|
|
||||||
|
type CephFS struct {
|
||||||
|
// symlink filepath for the network namespace where we need to execute commands.
|
||||||
|
NetNamespaceFilePath string
|
||||||
|
// SubvolumeGroup contains the name of the SubvolumeGroup for CSI volumes
|
||||||
|
SubvolumeGroup string
|
||||||
|
// KernelMountOptions contains the kernel mount options for CephFS volumes
|
||||||
|
KernelMountOptions string
|
||||||
|
// FuseMountOptions contains the fuse mount options for CephFS volumes
|
||||||
|
FuseMountOptions string
|
||||||
|
}
|
||||||
|
type RBD struct {
|
||||||
|
// symlink filepath for the network namespace where we need to execute commands.
|
||||||
|
NetNamespaceFilePath string
|
||||||
|
// RadosNamespace is a rados namespace in the pool
|
||||||
|
RadosNamespace string
|
||||||
|
}
|
||||||
|
|
||||||
|
type NFS struct {
|
||||||
|
// symlink filepath for the network namespace where we need to execute commands.
|
||||||
|
NetNamespaceFilePath string
|
||||||
|
}
|
||||||
|
|
||||||
|
type ReadAffinity struct {
|
||||||
|
Enabled bool
|
||||||
|
CrushLocationLabels []string
|
||||||
|
}
|
@ -22,6 +22,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
|
"github.com/ceph/ceph-csi/api/deploy/kubernetes"
|
||||||
"github.com/ghodss/yaml"
|
"github.com/ghodss/yaml"
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
)
|
)
|
||||||
@ -30,11 +31,13 @@ import (
|
|||||||
var csiConfigMap string
|
var csiConfigMap string
|
||||||
|
|
||||||
type CSIConfigMapValues struct {
|
type CSIConfigMapValues struct {
|
||||||
Name string
|
Name string
|
||||||
|
ClusterInfo []kubernetes.ClusterInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
var CSIConfigMapDefaults = CSIConfigMapValues{
|
var CSIConfigMapDefaults = CSIConfigMapValues{
|
||||||
Name: "ceph-csi-config",
|
Name: "ceph-csi-config",
|
||||||
|
ClusterInfo: []kubernetes.ClusterInfo{},
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCSIConfigMap takes a name from the CSIConfigMapValues struct and relaces
|
// NewCSIConfigMap takes a name from the CSIConfigMapValues struct and relaces
|
||||||
|
@ -5,4 +5,4 @@ metadata:
|
|||||||
name: "{{ .Name }}"
|
name: "{{ .Name }}"
|
||||||
data:
|
data:
|
||||||
config.json: |-
|
config.json: |-
|
||||||
[]
|
{{ .ClusterInfo }}
|
||||||
|
@ -6,5 +6,6 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
attachRequired: false
|
attachRequired: false
|
||||||
fsGroupPolicy: File
|
fsGroupPolicy: File
|
||||||
|
seLinuxMount: true
|
||||||
volumeLifecycleModes:
|
volumeLifecycleModes:
|
||||||
- Persistent
|
- Persistent
|
||||||
|
@ -22,6 +22,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
|
"github.com/ceph/ceph-csi/api/deploy/kubernetes"
|
||||||
"github.com/ghodss/yaml"
|
"github.com/ghodss/yaml"
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
)
|
)
|
||||||
@ -30,11 +31,13 @@ import (
|
|||||||
var csiConfigMap string
|
var csiConfigMap string
|
||||||
|
|
||||||
type CSIConfigMapValues struct {
|
type CSIConfigMapValues struct {
|
||||||
Name string
|
Name string
|
||||||
|
ClusterInfo []kubernetes.ClusterInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
var CSIConfigMapDefaults = CSIConfigMapValues{
|
var CSIConfigMapDefaults = CSIConfigMapValues{
|
||||||
Name: "ceph-csi-config",
|
Name: "ceph-csi-config",
|
||||||
|
ClusterInfo: []kubernetes.ClusterInfo{},
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCSIConfigMap takes a name from the CSIConfigMapValues struct and relaces
|
// NewCSIConfigMap takes a name from the CSIConfigMapValues struct and relaces
|
||||||
|
@ -5,4 +5,4 @@ metadata:
|
|||||||
name: "{{ .Name }}"
|
name: "{{ .Name }}"
|
||||||
data:
|
data:
|
||||||
config.json: |-
|
config.json: |-
|
||||||
[]
|
{{ .ClusterInfo }}
|
||||||
|
@ -6,4 +6,5 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
attachRequired: true
|
attachRequired: true
|
||||||
podInfoOnMount: false
|
podInfoOnMount: false
|
||||||
|
seLinuxMount: true
|
||||||
fsGroupPolicy: File
|
fsGroupPolicy: File
|
||||||
|
7
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/cephfs/csi-config-map.go
generated
vendored
7
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/cephfs/csi-config-map.go
generated
vendored
@ -22,6 +22,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
|
"github.com/ceph/ceph-csi/api/deploy/kubernetes"
|
||||||
"github.com/ghodss/yaml"
|
"github.com/ghodss/yaml"
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
)
|
)
|
||||||
@ -30,11 +31,13 @@ import (
|
|||||||
var csiConfigMap string
|
var csiConfigMap string
|
||||||
|
|
||||||
type CSIConfigMapValues struct {
|
type CSIConfigMapValues struct {
|
||||||
Name string
|
Name string
|
||||||
|
ClusterInfo []kubernetes.ClusterInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
var CSIConfigMapDefaults = CSIConfigMapValues{
|
var CSIConfigMapDefaults = CSIConfigMapValues{
|
||||||
Name: "ceph-csi-config",
|
Name: "ceph-csi-config",
|
||||||
|
ClusterInfo: []kubernetes.ClusterInfo{},
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCSIConfigMap takes a name from the CSIConfigMapValues struct and relaces
|
// NewCSIConfigMap takes a name from the CSIConfigMapValues struct and relaces
|
||||||
|
2
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/cephfs/csi-config-map.yaml
generated
vendored
2
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/cephfs/csi-config-map.yaml
generated
vendored
@ -5,4 +5,4 @@ metadata:
|
|||||||
name: "{{ .Name }}"
|
name: "{{ .Name }}"
|
||||||
data:
|
data:
|
||||||
config.json: |-
|
config.json: |-
|
||||||
[]
|
{{ .ClusterInfo }}
|
||||||
|
1
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/cephfs/csidriver.yaml
generated
vendored
1
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/cephfs/csidriver.yaml
generated
vendored
@ -7,3 +7,4 @@ spec:
|
|||||||
attachRequired: false
|
attachRequired: false
|
||||||
podInfoOnMount: false
|
podInfoOnMount: false
|
||||||
fsGroupPolicy: File
|
fsGroupPolicy: File
|
||||||
|
seLinuxMount: true
|
||||||
|
59
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/csi-config-map.go
generated
vendored
Normal file
59
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/csi-config-map.go
generated
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2023 The Ceph-CSI Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package kubernetes
|
||||||
|
|
||||||
|
type ClusterInfo struct {
|
||||||
|
// ClusterID is used for unique identification
|
||||||
|
ClusterID string
|
||||||
|
// Monitors is monitor list for corresponding cluster ID
|
||||||
|
Monitors []string
|
||||||
|
// CephFS contains CephFS specific options
|
||||||
|
CephFS CephFS
|
||||||
|
// RBD Contains RBD specific options
|
||||||
|
RBD RBD
|
||||||
|
// NFS contains NFS specific options
|
||||||
|
NFS NFS
|
||||||
|
// Read affinity map options
|
||||||
|
ReadAffinity ReadAffinity
|
||||||
|
}
|
||||||
|
|
||||||
|
type CephFS struct {
|
||||||
|
// symlink filepath for the network namespace where we need to execute commands.
|
||||||
|
NetNamespaceFilePath string
|
||||||
|
// SubvolumeGroup contains the name of the SubvolumeGroup for CSI volumes
|
||||||
|
SubvolumeGroup string
|
||||||
|
// KernelMountOptions contains the kernel mount options for CephFS volumes
|
||||||
|
KernelMountOptions string
|
||||||
|
// FuseMountOptions contains the fuse mount options for CephFS volumes
|
||||||
|
FuseMountOptions string
|
||||||
|
}
|
||||||
|
type RBD struct {
|
||||||
|
// symlink filepath for the network namespace where we need to execute commands.
|
||||||
|
NetNamespaceFilePath string
|
||||||
|
// RadosNamespace is a rados namespace in the pool
|
||||||
|
RadosNamespace string
|
||||||
|
}
|
||||||
|
|
||||||
|
type NFS struct {
|
||||||
|
// symlink filepath for the network namespace where we need to execute commands.
|
||||||
|
NetNamespaceFilePath string
|
||||||
|
}
|
||||||
|
|
||||||
|
type ReadAffinity struct {
|
||||||
|
Enabled bool
|
||||||
|
CrushLocationLabels []string
|
||||||
|
}
|
20
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/doc.go
generated
vendored
Normal file
20
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/doc.go
generated
vendored
Normal file
@ -0,0 +1,20 @@
|
|||||||
|
/*
|
||||||
|
Copyright 2021 The Ceph-CSI Authors.
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Package kubernetes contains functions to obtain standard and recommended
|
||||||
|
// deployment artifacts for Kubernetes. These artifacts can be used by
|
||||||
|
// automation tools that want to deploy Ceph-CSI.
|
||||||
|
package kubernetes
|
7
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/nfs/csi-config-map.go
generated
vendored
7
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/nfs/csi-config-map.go
generated
vendored
@ -22,6 +22,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
|
"github.com/ceph/ceph-csi/api/deploy/kubernetes"
|
||||||
"github.com/ghodss/yaml"
|
"github.com/ghodss/yaml"
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
)
|
)
|
||||||
@ -30,11 +31,13 @@ import (
|
|||||||
var csiConfigMap string
|
var csiConfigMap string
|
||||||
|
|
||||||
type CSIConfigMapValues struct {
|
type CSIConfigMapValues struct {
|
||||||
Name string
|
Name string
|
||||||
|
ClusterInfo []kubernetes.ClusterInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
var CSIConfigMapDefaults = CSIConfigMapValues{
|
var CSIConfigMapDefaults = CSIConfigMapValues{
|
||||||
Name: "ceph-csi-config",
|
Name: "ceph-csi-config",
|
||||||
|
ClusterInfo: []kubernetes.ClusterInfo{},
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCSIConfigMap takes a name from the CSIConfigMapValues struct and relaces
|
// NewCSIConfigMap takes a name from the CSIConfigMapValues struct and relaces
|
||||||
|
2
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/nfs/csi-config-map.yaml
generated
vendored
2
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/nfs/csi-config-map.yaml
generated
vendored
@ -5,4 +5,4 @@ metadata:
|
|||||||
name: "{{ .Name }}"
|
name: "{{ .Name }}"
|
||||||
data:
|
data:
|
||||||
config.json: |-
|
config.json: |-
|
||||||
[]
|
{{ .ClusterInfo }}
|
||||||
|
1
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/nfs/csidriver.yaml
generated
vendored
1
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/nfs/csidriver.yaml
generated
vendored
@ -6,5 +6,6 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
attachRequired: false
|
attachRequired: false
|
||||||
fsGroupPolicy: File
|
fsGroupPolicy: File
|
||||||
|
seLinuxMount: true
|
||||||
volumeLifecycleModes:
|
volumeLifecycleModes:
|
||||||
- Persistent
|
- Persistent
|
||||||
|
7
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/rbd/csi-config-map.go
generated
vendored
7
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/rbd/csi-config-map.go
generated
vendored
@ -22,6 +22,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
|
"github.com/ceph/ceph-csi/api/deploy/kubernetes"
|
||||||
"github.com/ghodss/yaml"
|
"github.com/ghodss/yaml"
|
||||||
v1 "k8s.io/api/core/v1"
|
v1 "k8s.io/api/core/v1"
|
||||||
)
|
)
|
||||||
@ -30,11 +31,13 @@ import (
|
|||||||
var csiConfigMap string
|
var csiConfigMap string
|
||||||
|
|
||||||
type CSIConfigMapValues struct {
|
type CSIConfigMapValues struct {
|
||||||
Name string
|
Name string
|
||||||
|
ClusterInfo []kubernetes.ClusterInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
var CSIConfigMapDefaults = CSIConfigMapValues{
|
var CSIConfigMapDefaults = CSIConfigMapValues{
|
||||||
Name: "ceph-csi-config",
|
Name: "ceph-csi-config",
|
||||||
|
ClusterInfo: []kubernetes.ClusterInfo{},
|
||||||
}
|
}
|
||||||
|
|
||||||
// NewCSIConfigMap takes a name from the CSIConfigMapValues struct and relaces
|
// NewCSIConfigMap takes a name from the CSIConfigMapValues struct and relaces
|
||||||
|
2
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/rbd/csi-config-map.yaml
generated
vendored
2
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/rbd/csi-config-map.yaml
generated
vendored
@ -5,4 +5,4 @@ metadata:
|
|||||||
name: "{{ .Name }}"
|
name: "{{ .Name }}"
|
||||||
data:
|
data:
|
||||||
config.json: |-
|
config.json: |-
|
||||||
[]
|
{{ .ClusterInfo }}
|
||||||
|
1
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/rbd/csidriver.yaml
generated
vendored
1
vendor/github.com/ceph/ceph-csi/api/deploy/kubernetes/rbd/csidriver.yaml
generated
vendored
@ -6,4 +6,5 @@ metadata:
|
|||||||
spec:
|
spec:
|
||||||
attachRequired: true
|
attachRequired: true
|
||||||
podInfoOnMount: false
|
podInfoOnMount: false
|
||||||
|
seLinuxMount: true
|
||||||
fsGroupPolicy: File
|
fsGroupPolicy: File
|
||||||
|
1
vendor/modules.txt
vendored
1
vendor/modules.txt
vendored
@ -134,6 +134,7 @@ github.com/cenkalti/backoff/v3
|
|||||||
github.com/cenkalti/backoff/v4
|
github.com/cenkalti/backoff/v4
|
||||||
# github.com/ceph/ceph-csi/api v0.0.0-00010101000000-000000000000 => ./api
|
# github.com/ceph/ceph-csi/api v0.0.0-00010101000000-000000000000 => ./api
|
||||||
## explicit; go 1.18
|
## explicit; go 1.18
|
||||||
|
github.com/ceph/ceph-csi/api/deploy/kubernetes
|
||||||
github.com/ceph/ceph-csi/api/deploy/kubernetes/cephfs
|
github.com/ceph/ceph-csi/api/deploy/kubernetes/cephfs
|
||||||
github.com/ceph/ceph-csi/api/deploy/kubernetes/nfs
|
github.com/ceph/ceph-csi/api/deploy/kubernetes/nfs
|
||||||
github.com/ceph/ceph-csi/api/deploy/kubernetes/rbd
|
github.com/ceph/ceph-csi/api/deploy/kubernetes/rbd
|
||||||
|
Loading…
Reference in New Issue
Block a user