Improve CSI CRD installation code

This commit is contained in:
saad-ali 2018-08-31 17:19:21 -07:00
parent 2d7b92ee74
commit 247bad23f0
2 changed files with 15 additions and 14 deletions

View File

@ -148,7 +148,7 @@ func NewAttachDetachController(
} }
// Install required CSI CRDs on API server // Install required CSI CRDs on API server
if utilfeature.DefaultFeatureGate.Enabled(features.CSICrdAutoInstall) { if utilfeature.DefaultFeatureGate.Enabled(features.CSICRDAutoInstall) {
adc.installCRDs() adc.installCRDs()
} }
@ -685,15 +685,16 @@ func (adc *attachDetachController) installCRDs() error {
} }
res, err := adc.crdClient.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd) res, err := adc.crdClient.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd)
if err != nil && !apierrors.IsAlreadyExists(err) { if err == nil {
glog.Errorf("failed to create CSIDrivers CRD: %#v, err: %#v", glog.Infof("CSIDrivers CRD created successfully: %#v",
res, err) res)
} else if apierrors.IsAlreadyExists(err) { } else if apierrors.IsAlreadyExists(err) {
glog.Warningf("CSIDrivers CRD already exists: %#v, err: %#v", glog.Warningf("CSIDrivers CRD already exists: %#v, err: %#v",
res, err) res, err)
} else { } else {
glog.Infof("CSIDrivers CRD created successfully: %#v", glog.Errorf("failed to create CSIDrivers CRD: %#v, err: %#v",
res) res, err)
return err
} }
crd = &apiextensionsv1beta1.CustomResourceDefinition{ crd = &apiextensionsv1beta1.CustomResourceDefinition{
@ -712,15 +713,16 @@ func (adc *attachDetachController) installCRDs() error {
} }
res, err = adc.crdClient.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd) res, err = adc.crdClient.ApiextensionsV1beta1().CustomResourceDefinitions().Create(crd)
if err != nil && !apierrors.IsAlreadyExists(err) { if err == nil {
glog.Errorf("failed to create CSINodeInfo CRD: %#v, err: %#v", glog.Infof("CSINodeInfo CRD created successfully: %#v",
res, err) res)
} else if apierrors.IsAlreadyExists(err) { } else if apierrors.IsAlreadyExists(err) {
glog.Warningf("CSINodeInfo CRD already exists: %#v, err: %#v", glog.Warningf("CSINodeInfo CRD already exists: %#v, err: %#v",
res, err) res, err)
} else { } else {
glog.Infof("CSINodeInfo CRD created successfully: %#v", glog.Errorf("failed to create CSINodeInfo CRD: %#v, err: %#v",
res) res, err)
return err
} }
return nil return nil

View File

@ -201,9 +201,8 @@ const (
// owner: @saad-ali // owner: @saad-ali
// alpha: v1.12 // alpha: v1.12
//
// Enable automatic installation of CRD for csi.storage.k8s.io API objects. // Enable automatic installation of CRD for csi.storage.k8s.io API objects.
CSICrdAutoInstall utilfeature.Feature = "CSICrdAutoInstall" CSICRDAutoInstall utilfeature.Feature = "CSICRDAutoInstall"
// owner @MrHohn // owner @MrHohn
// beta: v1.10 // beta: v1.10
@ -412,7 +411,7 @@ var defaultKubernetesFeatureGates = map[utilfeature.Feature]utilfeature.FeatureS
MountContainers: {Default: false, PreRelease: utilfeature.Alpha}, MountContainers: {Default: false, PreRelease: utilfeature.Alpha},
VolumeScheduling: {Default: true, PreRelease: utilfeature.Beta}, VolumeScheduling: {Default: true, PreRelease: utilfeature.Beta},
CSIPersistentVolume: {Default: true, PreRelease: utilfeature.Beta}, CSIPersistentVolume: {Default: true, PreRelease: utilfeature.Beta},
CSICrdAutoInstall: {Default: false, PreRelease: utilfeature.Alpha}, CSICRDAutoInstall: {Default: false, PreRelease: utilfeature.Alpha},
CustomPodDNS: {Default: true, PreRelease: utilfeature.Beta}, CustomPodDNS: {Default: true, PreRelease: utilfeature.Beta},
BlockVolume: {Default: false, PreRelease: utilfeature.Alpha}, BlockVolume: {Default: false, PreRelease: utilfeature.Alpha},
StorageObjectInUseProtection: {Default: true, PreRelease: utilfeature.GA}, StorageObjectInUseProtection: {Default: true, PreRelease: utilfeature.GA},