mirror of
https://github.com/ceph/ceph-csi.git
synced 2024-12-18 02:50:30 +00:00
deploy: add csidriver object for cephfs and rbd
csidriver object can be created on the kubernetes for below reason. If a CSI driver creates a CSIDriver object, Kubernetes users can easily discover the CSI Drivers installed on their cluster (simply by issuing kubectl get CSIDriver) Ref: https://kubernetes-csi.github.io/docs/csi-driver-object.html#what-is-the-csidriver-object attachRequired is always required to be set to true to avoid issue on RWO PVC. more details about it at https://github.com/rook/rook/pull/4332 Signed-off-by: Madhu Rajanna <madhupr007@gmail.com>
This commit is contained in:
parent
d80b8d7fc5
commit
fba6a2d0c3
@ -1,10 +1,11 @@
|
|||||||
{{- if not .Values.provisioner.attacher.enabled -}}
|
{{ if semverCompare ">=1.18" .Capabilities.KubeVersion.GitVersion }}
|
||||||
apiVersion: storage.k8s.io/v1beta1
|
apiVersion: storage.k8s.io/v1
|
||||||
|
{{ else }}
|
||||||
|
apiVersion: storage.k8s.io/v1betav1
|
||||||
|
{{ end }}
|
||||||
kind: CSIDriver
|
kind: CSIDriver
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ .Values.driverName }}
|
name: {{ .Values.driverName }}
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
spec:
|
spec:
|
||||||
attachRequired: false
|
attachRequired: true
|
||||||
podInfoOnMount: false
|
podInfoOnMount: false
|
||||||
{{- end -}}
|
|
||||||
|
@ -1,10 +1,11 @@
|
|||||||
{{- if not .Values.provisioner.attacher.enabled -}}
|
{{ if semverCompare ">=1.18" .Capabilities.KubeVersion.GitVersion }}
|
||||||
apiVersion: storage.k8s.io/v1beta1
|
apiVersion: storage.k8s.io/v1
|
||||||
|
{{ else }}
|
||||||
|
apiVersion: storage.k8s.io/betav1
|
||||||
|
{{ end }}
|
||||||
kind: CSIDriver
|
kind: CSIDriver
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ .Values.driverName }}
|
name: {{ .Values.driverName }}
|
||||||
namespace: {{ .Release.Namespace }}
|
|
||||||
spec:
|
spec:
|
||||||
attachRequired: false
|
attachRequired: true
|
||||||
podInfoOnMount: false
|
podInfoOnMount: false
|
||||||
{{- end -}}
|
|
||||||
|
10
deploy/cephfs/kubernetes/csidriver.yaml
Normal file
10
deploy/cephfs/kubernetes/csidriver.yaml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
# if Kubernetes version is less than 1.18 change
|
||||||
|
# apiVersion to storage.k8s.io/v1betav1
|
||||||
|
apiVersion: storage.k8s.io/v1
|
||||||
|
kind: CSIDriver
|
||||||
|
metadata:
|
||||||
|
name: cephfs.csi.ceph.com
|
||||||
|
spec:
|
||||||
|
attachRequired: true
|
||||||
|
podInfoOnMount: false
|
10
deploy/rbd/kubernetes/csidriver.yaml
Normal file
10
deploy/rbd/kubernetes/csidriver.yaml
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
---
|
||||||
|
# if Kubernetes version is less than 1.18 change
|
||||||
|
# apiVersion to storage.k8s.io/v1betav1
|
||||||
|
apiVersion: storage.k8s.io/v1
|
||||||
|
kind: CSIDriver
|
||||||
|
metadata:
|
||||||
|
name: rbd.csi.ceph.com
|
||||||
|
spec:
|
||||||
|
attachRequired: true
|
||||||
|
podInfoOnMount: false
|
@ -3,6 +3,8 @@ package e2e
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
@ -61,6 +63,19 @@ func deleteCephfsPlugin() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func createORDeleteCephfsResouces(action string) {
|
func createORDeleteCephfsResouces(action string) {
|
||||||
|
csiDriver, err := ioutil.ReadFile(cephfsDirPath + csiDriverObject)
|
||||||
|
if err != nil {
|
||||||
|
// createORDeleteRbdResouces is used for upgrade testing as csidriverObject is
|
||||||
|
// newly added, discarding file not found error.
|
||||||
|
if !os.IsNotExist(err) {
|
||||||
|
e2elog.Failf("failed to read content from %s with error %v", cephfsDirPath+csiDriverObject, err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
_, err = framework.RunKubectlInput(cephCSINamespace, string(csiDriver), action, "-f", "-")
|
||||||
|
if err != nil {
|
||||||
|
e2elog.Failf("failed to %s CSIDriver object with error %v", action, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
data, err := replaceNamespaceInTemplate(cephfsDirPath + cephfsProvisioner)
|
data, err := replaceNamespaceInTemplate(cephfsDirPath + cephfsProvisioner)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e2elog.Failf("failed to read content from %s with error %v", cephfsDirPath+cephfsProvisioner, err)
|
e2elog.Failf("failed to read content from %s with error %v", cephfsDirPath+cephfsProvisioner, err)
|
||||||
|
16
e2e/rbd.go
16
e2e/rbd.go
@ -3,6 +3,8 @@ package e2e
|
|||||||
import (
|
import (
|
||||||
"context"
|
"context"
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"io/ioutil"
|
||||||
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
"sync"
|
"sync"
|
||||||
|
|
||||||
@ -23,6 +25,7 @@ var (
|
|||||||
rbdNodePluginRBAC = "csi-nodeplugin-rbac.yaml"
|
rbdNodePluginRBAC = "csi-nodeplugin-rbac.yaml"
|
||||||
rbdNodePluginPSP = "csi-nodeplugin-psp.yaml"
|
rbdNodePluginPSP = "csi-nodeplugin-psp.yaml"
|
||||||
configMap = "csi-config-map.yaml"
|
configMap = "csi-config-map.yaml"
|
||||||
|
csiDriverObject = "csidriver.yaml"
|
||||||
rbdDirPath = "../deploy/rbd/kubernetes/"
|
rbdDirPath = "../deploy/rbd/kubernetes/"
|
||||||
rbdExamplePath = "../examples/rbd/"
|
rbdExamplePath = "../examples/rbd/"
|
||||||
rbdDeploymentName = "csi-rbdplugin-provisioner"
|
rbdDeploymentName = "csi-rbdplugin-provisioner"
|
||||||
@ -67,6 +70,19 @@ func deleteRBDPlugin() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func createORDeleteRbdResouces(action string) {
|
func createORDeleteRbdResouces(action string) {
|
||||||
|
csiDriver, err := ioutil.ReadFile(rbdDirPath + csiDriverObject)
|
||||||
|
if err != nil {
|
||||||
|
// createORDeleteRbdResouces is used for upgrade testing as csidriverObject is
|
||||||
|
// newly added, discarding file not found error.
|
||||||
|
if !os.IsNotExist(err) {
|
||||||
|
e2elog.Failf("failed to read content from %s with error %v", rbdDirPath+csiDriverObject, err)
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
_, err = framework.RunKubectlInput(cephCSINamespace, string(csiDriver), action, "-f", "-")
|
||||||
|
if err != nil {
|
||||||
|
e2elog.Failf("failed to %s CSIDriver object with error %v", action, err)
|
||||||
|
}
|
||||||
|
}
|
||||||
data, err := replaceNamespaceInTemplate(rbdDirPath + rbdProvisioner)
|
data, err := replaceNamespaceInTemplate(rbdDirPath + rbdProvisioner)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
e2elog.Failf("failed to read content from %s with error %v", rbdDirPath+rbdProvisioner, err)
|
e2elog.Failf("failed to read content from %s with error %v", rbdDirPath+rbdProvisioner, err)
|
||||||
|
Loading…
Reference in New Issue
Block a user