From a8ed94b74f10ec6957e11d3cc8e52c228923a6ea Mon Sep 17 00:00:00 2001 From: Jesse Haka Date: Wed, 11 Nov 2020 09:50:08 +0200 Subject: [PATCH] Allow to use custom csi plugin image and enable topology support --- pkg/apis/kops/componentconfig.go | 4 +++- pkg/apis/kops/v1alpha2/componentconfig.go | 4 +++- upup/models/bindata.go | 7 +++++-- .../storage-openstack.addons.k8s.io/k8s-1.16.yaml.template | 7 +++++-- 4 files changed, 16 insertions(+), 6 deletions(-) diff --git a/pkg/apis/kops/componentconfig.go b/pkg/apis/kops/componentconfig.go index 03c8e90c02..d5bcacfc87 100644 --- a/pkg/apis/kops/componentconfig.go +++ b/pkg/apis/kops/componentconfig.go @@ -706,7 +706,9 @@ type OpenstackBlockStorageConfig struct { IgnoreAZ *bool `json:"ignore-volume-az,omitempty"` OverrideAZ *string `json:"override-volume-az,omitempty"` // CreateStorageClass provisions a default class for the Cinder plugin - CreateStorageClass *bool `json:"createStorageClass,omitempty"` + CreateStorageClass *bool `json:"createStorageClass,omitempty"` + CSIPluginImage string `json:"csiPluginImage,omitempty"` + CSITopologySupport *bool `json:"csiTopologySupport,omitempty"` } // OpenstackMonitor defines the config for a health monitor diff --git a/pkg/apis/kops/v1alpha2/componentconfig.go b/pkg/apis/kops/v1alpha2/componentconfig.go index f98fb6406b..f9c4252e7d 100644 --- a/pkg/apis/kops/v1alpha2/componentconfig.go +++ b/pkg/apis/kops/v1alpha2/componentconfig.go @@ -707,7 +707,9 @@ type OpenstackBlockStorageConfig struct { IgnoreAZ *bool `json:"ignore-volume-az,omitempty"` OverrideAZ *string `json:"override-volume-az,omitempty"` // CreateStorageClass provisions a default class for the Cinder plugin - CreateStorageClass *bool `json:"createStorageClass,omitempty"` + CreateStorageClass *bool `json:"createStorageClass,omitempty"` + CSIPluginImage string `json:"csiPluginImage,omitempty"` + CSITopologySupport *bool `json:"csiTopologySupport,omitempty"` } // OpenstackMonitor defines the config for a health monitor diff --git a/upup/models/bindata.go b/upup/models/bindata.go index 36e8d497dc..94c83e3f49 100644 --- a/upup/models/bindata.go +++ b/upup/models/bindata.go @@ -15641,6 +15641,9 @@ spec: args: - "--csi-address=$(ADDRESS)" - "--timeout=3m" +{{ if WithDefaultBool .CloudConfig.Openstack.BlockStorage.CSITopologySupport false }} + - --feature-gates=Topology=true +{{ end }} env: - name: ADDRESS value: /var/lib/csi/sockets/pluginproxy/csi.sock @@ -15671,7 +15674,7 @@ spec: - name: socket-dir mountPath: /var/lib/csi/sockets/pluginproxy/ - name: cinder-csi-plugin - image: docker.io/k8scloudprovider/cinder-csi-plugin:{{ OpenStackCCMTag }} + image: "{{- if .CloudConfig.Openstack.BlockStorage.CSIPluginImage -}} {{ .CloudConfig.Openstack.BlockStorage.CSIPluginImage }} {{- else -}} docker.io/k8scloudprovider/cinder-csi-plugin:{{OpenStackCCMTag}} {{- end -}}" args: - /bin/cinder-csi-plugin - "--nodeid=$(NODE_ID)" @@ -15800,7 +15803,7 @@ spec: capabilities: add: ["SYS_ADMIN"] allowPrivilegeEscalation: true - image: docker.io/k8scloudprovider/cinder-csi-plugin:{{ OpenStackCCMTag }} + image: "{{- if .CloudConfig.Openstack.BlockStorage.CSIPluginImage -}} {{ .CloudConfig.Openstack.BlockStorage.CSIPluginImage }} {{- else -}} docker.io/k8scloudprovider/cinder-csi-plugin:{{OpenStackCCMTag}} {{- end -}}" args : - /bin/cinder-csi-plugin - "--nodeid=$(NODE_ID)" diff --git a/upup/models/cloudup/resources/addons/storage-openstack.addons.k8s.io/k8s-1.16.yaml.template b/upup/models/cloudup/resources/addons/storage-openstack.addons.k8s.io/k8s-1.16.yaml.template index 0bda323750..a1ad80b915 100644 --- a/upup/models/cloudup/resources/addons/storage-openstack.addons.k8s.io/k8s-1.16.yaml.template +++ b/upup/models/cloudup/resources/addons/storage-openstack.addons.k8s.io/k8s-1.16.yaml.template @@ -288,6 +288,9 @@ spec: args: - "--csi-address=$(ADDRESS)" - "--timeout=3m" +{{ if WithDefaultBool .CloudConfig.Openstack.BlockStorage.CSITopologySupport false }} + - --feature-gates=Topology=true +{{ end }} env: - name: ADDRESS value: /var/lib/csi/sockets/pluginproxy/csi.sock @@ -318,7 +321,7 @@ spec: - name: socket-dir mountPath: /var/lib/csi/sockets/pluginproxy/ - name: cinder-csi-plugin - image: docker.io/k8scloudprovider/cinder-csi-plugin:{{ OpenStackCCMTag }} + image: "{{- if .CloudConfig.Openstack.BlockStorage.CSIPluginImage -}} {{ .CloudConfig.Openstack.BlockStorage.CSIPluginImage }} {{- else -}} docker.io/k8scloudprovider/cinder-csi-plugin:{{OpenStackCCMTag}} {{- end -}}" args: - /bin/cinder-csi-plugin - "--nodeid=$(NODE_ID)" @@ -447,7 +450,7 @@ spec: capabilities: add: ["SYS_ADMIN"] allowPrivilegeEscalation: true - image: docker.io/k8scloudprovider/cinder-csi-plugin:{{ OpenStackCCMTag }} + image: "{{- if .CloudConfig.Openstack.BlockStorage.CSIPluginImage -}} {{ .CloudConfig.Openstack.BlockStorage.CSIPluginImage }} {{- else -}} docker.io/k8scloudprovider/cinder-csi-plugin:{{OpenStackCCMTag}} {{- end -}}" args : - /bin/cinder-csi-plugin - "--nodeid=$(NODE_ID)"