diff --git a/charts/internal/seed-controlplane/charts/csi-driver-controller/templates/csi-driver-controller-deployment.yaml b/charts/internal/seed-controlplane/charts/csi-driver-controller/templates/csi-driver-controller-deployment.yaml index 9107e0866..357906688 100644 --- a/charts/internal/seed-controlplane/charts/csi-driver-controller/templates/csi-driver-controller-deployment.yaml +++ b/charts/internal/seed-controlplane/charts/csi-driver-controller/templates/csi-driver-controller-deployment.yaml @@ -122,6 +122,8 @@ spec: - --leader-election-namespace=kube-system - --worker-threads=20 - --v=5 + {{- if ((.Values.csiProvisioner).featureGates) }} + - --feature-gates={{ range $feature, $enabled := .Values.csiProvisioner.featureGates }}{{ $feature }}={{ $enabled }},{{ end }} env: - name: ADDRESS value: {{ .Values.socketPath }}/csi.sock @@ -206,6 +208,9 @@ spec: - --handle-volume-inuse-error=false - --v=5 - --workers=20 + {{- if ((.Values.csiResizer).featureGates) }} + - --feature-gates={{ range $feature, $enabled := .Values.csiResizer.featureGates }}{{ $feature }}={{ $enabled }},{{ end }} + {{- end }} env: - name: ADDRESS value: {{ .Values.socketPath }}/csi.sock diff --git a/charts/internal/shoot-system-components/charts/csi-driver-node/templates/clusterrole-csi-attacher.yaml b/charts/internal/shoot-system-components/charts/csi-driver-node/templates/clusterrole-csi-attacher.yaml index 8aa273c8e..35e98627d 100644 --- a/charts/internal/shoot-system-components/charts/csi-driver-node/templates/clusterrole-csi-attacher.yaml +++ b/charts/internal/shoot-system-components/charts/csi-driver-node/templates/clusterrole-csi-attacher.yaml @@ -19,6 +19,9 @@ rules: - apiGroups: [ "storage.k8s.io" ] resources: [ "volumeattachments/status" ] verbs: [ "patch" ] +- apiGroups: ["storage.k8s.io"] + resources: ["volumeattributesclasses"] + verbs: ["get"] - apiGroups: [""] resources: ["events"] verbs: ["create", "patch", "update"] diff --git a/charts/internal/shoot-system-components/charts/csi-driver-node/templates/clusterrole-csi-resizer.yaml b/charts/internal/shoot-system-components/charts/csi-driver-node/templates/clusterrole-csi-resizer.yaml index f11ccfa61..65ac31738 100644 --- a/charts/internal/shoot-system-components/charts/csi-driver-node/templates/clusterrole-csi-resizer.yaml +++ b/charts/internal/shoot-system-components/charts/csi-driver-node/templates/clusterrole-csi-resizer.yaml @@ -16,3 +16,6 @@ rules: - apiGroups: [""] resources: ["events"] verbs: ["list", "watch", "create", "update", "patch"] +- apiGroups: ["storage.k8s.io"] + resources: ["volumeattributesclasses"] + verbs: ["get", "list", "watch"] diff --git a/docs/usage/usage.md b/docs/usage/usage.md index 68b094994..b7c8c9600 100644 --- a/docs/usage/usage.md +++ b/docs/usage/usage.md @@ -657,6 +657,12 @@ CSI drivers usually have a different procedure for configuring this custom limit The newer versions of EBS CSI driver are not readily compatible with the use of XFS volumes on nodes using a kernel version <= 5.4. A workaround was added that enables the use of a "legacy XFS" mode that introduces a backwards compatible volume formating for the older kernels. You can enable this option for your shoot by annotating it with `aws.provider.extensions.gardener.cloud/legacy-xfs=true`. +### Support for VolumeAttributesClasses (Beta in k8s 1.31) + +To have the CSI-driver configured to support the necessary features for [VolumeAttributesClasses](https://kubernetes.io/docs/concepts/storage/volume-attributes-classes/) on AWS for shoots with a k8s-version of at least 1.31, use the `aws.provider.extensions.gardener.cloud/enable-volume-attributes-class` annotation on the shoot. Keep in mind to also enable the required feature flags and runtime-config on the common kubernetes controllers (as outlined in the link above) in the shoot-spec. + +For more information and examples, see [this markdown](https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/modify-volume.md#volume-modification) in the aws-ebs-csi-driver repository. Please take special note of the considerations mentioned. + ## Kubernetes Versions per Worker Pool This extension supports `gardener/gardener`'s `WorkerPoolKubernetesVersion` feature gate, i.e., having [worker pools with overridden Kubernetes versions](https://github.com/gardener/gardener/blob/8a9c88866ec5fce59b5acf57d4227eeeb73669d7/example/90-shoot.yaml#L69-L70) since `gardener-extension-provider-aws@v1.34`. diff --git a/example/controller-registration.yaml b/example/controller-registration.yaml index f0b39dbb5..697014c5f 100644 --- a/example/controller-registration.yaml +++ b/example/controller-registration.yaml @@ -4,7 +4,7 @@ kind: ControllerDeployment metadata: name: provider-aws helm: - rawChart: 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 + rawChart: H4sIAAAAAAAAA+09a3PbtrL9rF+Bq6TTJBNSD0t2r2Z85zi2k3raOD62T3rOdDoeioQk1BTJEKQcNc1/v7sASIIPiaLjIzet0E4sgruLxWt3sViAUyt0qEdDg36MqMeZ7xlB6C+YA1nWHe988wCpC+ngYCj+Qir+Fb97e4Nef9jf38f83vDgYP8bMnyIwutSzCMrJOSb0PejdXB177/SNK3p/+OZFUbm0pq79y8DO3h/MFjZ//29Yv8fHPQG35Duw1Vzdfqb978VsPc0xH4fkUWvZQVB+tjumd12y6HcDlkQiawj8gN158TGQUEmfkiiGSVv1BAiRz9fkQs1eEg6nlqeNacjUjPQWouk2K4J5bYeu13+Lqlu/ju+bU79LyujZv73usNhcf53D3q7+b+N1OmQq4uTfxuvmUuP/WAZsuksuobBMCL9bn9Aro4uyNUpgalueeLBmkyYy6yIEtufB5a3hBdOJgNs34tCNo4jP+StTqeV0P+J2TC8qHEGYBGbMBqCNAkse0aNPkx3gJv6oymSQNJ8RgybtMcW/Hj65ujy5PT89PLmh6PjH29Ozi47CZwhSvNdFwZrSKeMR5ALQ9hEfCPwHYNTOw5ZtDSoB+LKpodByBZQ1Sl1iD7OiUmePrOtiJhmB/5/f3p5dfbu/Ll6pB+teeDSzqriUD2SV5Z9GwevYvuWRiMkKTNOAWWpnrmQovj7WFK6cC2PioyT86tLavuhg09G6McRHe6RM28SAlYY21EcSsCf/fAWGg9+trHVyAWUYk2pksnUs8Yu5STXmHEQ+Epeq0zmTYXohgJDakckqxjJVawV6NR3Qvmvl+rkf0Rh5MMo+pKVQHP7/+DgYLCz/7eRNu//mxl1AzDSzChouBao0f/9Uv/3YUWws/+3kj59MohDJ8yjpI2GepsYnz+36ox1xKKg9hG2pZNwrTF1uQnLCPOWLiUx8RCPaehRGEcm8ztYUI7GChILy40VR58+EebZbuykfJpEIa5hpIxbZBCpjMgKCFW+KKlcC+bB0PFsKtDNS+pSi1PzHJir5Cxljc1Bo0rOCME3bEJmFr8I4f1H0uYzqz/cH0Gx77F4KArhzciakhQDrBgvmpD2t/wf3/IiZEgDnzMwwJbrSEAdaRXB0b0JQmW1ehc7RGBAs7oBPCa1T+ufo5tAEQUjodaC5GuUEk76VLKblG2SHNpGfAdWzGvZFkBruc5BbMS0Kngtz6XR79DA9ZdzMLXVsjqdibwDq3wNr4H8V1VoLP5r/T89UPYF+d/r79Z/W0mloZ6bofL3aM/sd829lRI7N1DxpVpDLM3b74WkFK+ASq+bo/HYdd+lJvYfSCUe0RBW//AvN1x/OoVl5Cau4Tr7DyZ+Yf4P94Y7+28rSff/TkBTedGYRab8hVN30QMZABZJ65Z5zogcy0HwWgyC1pxGlmNF1ggUkzSbRkJFZYSS4dWJlgEYSm1OqdNeAWParh87RUjpPRavdHfP3PJA6Igxaqx62eIBtZEjNWbxJ5g6VshpOFIaF4zAc1ECjGeVpQAIWnsGtA88gBY1ZLaCCanIPcHKkyiMKeTPrcieSTRlJL5YxdmLdWy/aBmG0fpaOoYzwwkZNpBWE1E9zv4EHVDF3gvF3lfX0NyzAj7zoz9X+yZcZc362EJtlzZODfS/703YdG4Fhg0zwJ8b8yjebGO4bv+n1y/a/4ODvf5O/28jFfZ/lYwTXf3WCnLyTcmhtPONdESolzywqrwhIluuXhMRWfa34Ar3D8jE7SEyQOikWFGSKJT9DiKSgwT6QwipJ//TGTOvw2ctKU79EPDRQoXibgIrmsEjefoM1igO6fAlWrAW5x2QXCAlUcYSlxjC8fFcEHB8JftIRufw6bMx1ANrR55+ypP//LyVIUyIy4nhloGgVtOQBsT4QBYsjGLLTZGiGfXSB0zUnvmE37IgwA0aBZ4xM9Kpf85honJjnpDSMk1Yxpwga88sDw12bE/iT4gHM33TElhAXObdEg5N59BFDkjQ6w32u6oNPboT/19Ruo/8F+v9BbUjPzR8sBzuQhbRNaqgzv8z2N8ryP+D3nBvJ/+3kaocme9F175LelZ6vxuqiWp/ffXQ+a+qD+m1vMmPU1QhWM66WufJaV7Xx+6yB033mP+NowFr/T9l/+9+f7ib/9tIDzWxt2MLylLSKYwWBy7h8a9eERi4ZjKKzXRgc1OhF5bbaoHfE2TSBlC+AtkUsYyHaRWkpaJnuww4BUgPRAiAJTs1xfxkSW7ZNg0wHxiLrsEQ5aKhQvohZiF1SLuGvlkmQBhP8dt1/FXhp1tQdpbbkCsNsxk7OmLKx4egaasARrNyESEtbxyHPGpYosBpVqZEySsUYaNHtpOMD1jrhKCQRqn9LRYu58n0KxSBmKZCMVPIrGKAbsGsY9GyHlsBJvyVh7oAH4vANglEIv8/GP22Bi6dyvt/ZUX6labN9b9j0TkIURo9tP+nv98t7v8MDnb2/3YSat+JCOF9Rj+kszjVkOiDTlUpaWPU6XPyzPOjMmgYexGbU+UfN2UkqvMcJ7pUqidiAF3RKLeaSGISypZG3vHT2K4Q2vx7bkABJVqJ35wDCbT6JbTwb/+koa8mQEgyMRSqxr1Q8R60kbAZuCbGZ9S+5fG80pWas6yeCbcUeWpeq1LMV1DTC/RptVc7YqFr0HCSAURQTqYD3Fyl1lUL2kS1DSZgw8fw6eNMAaUCgy+hn+fG/3a7Cnjm8+icRnd+eJtuGQg3l+/SsNgWoAQmE2j7ETn3r6BhnNjNnFeE+AGiQMeQ04+MR1zDu6WgyI6BK2Zb7pHjANl3nrvcDDkr9PQjteNogzKZx4SpZDFPbbFIUisGqULCFWXeWC4EQJk5De3P5zAH9ebp5Cl3Sm7QFDaJcRf23MdopFUJFfqYudBWlOv5MEAdmJG/tM9Pr2+OTt6enbdfkvbVf65urs/enrZ/TUEXvhvP6Vsf5naOQE31Mc0RCYfsqFgXzdLMN2pGV0SMaORWt2cpPgqnZjhnnhhxb0KQCxcUhrFzRaFAB4zKfkuvW0XhKytlJ+uifFuudYxnyaETK3ajt74D0N2D4RBsIbCEHtcQaqD/05iypg6A9fq/N4D/Cvp/r7t3sNP/20hVqlip67S/N/YCbKijRTSs7nScen5ILyn349BO1qIlDRom74vrd4k+Im3UOe38wqqJkwELmbHpzLAWFnOl3FyquWyuLF1u1sst9NSuCOmCYZv+wHBptfyJzRkonaF4E7iguHhuLaYyj1FiSk7WGCY1VdlXBPAID50uVdv5rsu86b8CJ7VYkOrHf3mqrm5+aZl/lUlWyL+Kw2kJWGRKsHvYRRv6oFMpXDajMPKg0rV8H6tq9fbGagMrF5a7htG13rN7MLsRW8rAT/uLRiGzubLQr+zQEtuNGhJoAACa0TiN1ofZVRHk3l6BwZFmNiMToCeJCiSKBWywwMdqMk87g2aopcQK6niYTfGTr9EFnnLTuSr1SdEO9qS5inGMxWntJ1xkETIgIV3Xv6POZvgOjPFmGEE8BjlgKJjG2CFb4KHIjdBXyzPfADSDz0DfcaMQIhTZgTEY7GWUa4TR90nT64uKwnSvWUBmnVexGNHGwCoyJax8tH0+/r7Reqc0urCRmE2PbBsF+fl6RSkExMplxVq01eZwFdhF7LoXPoyrvP9PBW2nL+uWI3VHgjJQw5COv7E4CmuAekD5BmuUEIaEEaIZbjOX8sO8N1JNfm7q2GaGebX0bK5zmZVE8YztfQsSyPXliLO79ymDJz7udfSlQDcmQOqwQyO7Uz0AlODvaPsgRTJYcoDHipvzqmPXMQzCLRTnlZsXk6JuXkY60qQ/3fgQbEA9QToWOP+8uNqcvvDSNy3hVeLa36yMO4tFBkoqP25c1M+Aey1RiwXOqOVGM2F6NO8aDbmucwA0jMbUiozU5D9cZfGTFZhAnN4ZIpZoYbl4WB9X6GuYk3imwDtTaGpdXyqG5c7ON2+LPH5dc8hFiCF9SCgpMkt3ZQEC5V2CcZQiFGnfiSP/zWsg8eo4v6Nj0PW3iQiq78112EoFGmij6WwpMLmbaiooZa/V0cPQ5FpyNCxSu6+ZkZOk2I6HukJ6mU7J/DRnHMkk7PPD9ot2DiDTmmKL7lCyk7dUc6ZInq7OjtYO6nW2Xc3B9voNLGrSftleRSvlsUzoZ/VqBZWKNU6hlfOWeK549coYg21oWI4DFig/HK204tcVmsm51dTk+ypGUktGnY08rLIi1Tsdl3qLsq/wp9Ojk9PLm9OfTo+vz96d35wfvT29ujg6PtVcf+IY8WtYw+TdhhNGXeeSTvK5Kl86TpPls5nOyvsumhN+z94evTl9D8y+u7x59/708ufLs+sSryPSERd+aGFTnco4qnWd5LIFtCTnF6E/pnodZ1EUvKFRvtqBdBTLXvs9/0qs92q7FhMH1YW1/OH6+kL3HnssYpZ7Ql1rmbqBe90UIqSWwxrziljLrbA6bOkFVHisE6mp3FAZuXSFcVHkbBMRKlbekW/77ohcH18UYwLCvMcuaUuVOaqIDsgw/iCeWiP2uhXhEJiq9x6SKksFobGq7zfUWtBfOo1WxTFWMVOaShocjiHcvcptmFVMJ7x1ycMQDm0kOEegyI5KL0gajXISh7DUV7tr8OtMGBwqW+5/aVFJsnpiEX+V8z5qtUI/5OnHAIVt3oWXoIvNubr7FgpY+s7bmVd6KSRSqSgsbINbG3SEyA98158uf0Qe2/m7HHDvUgyS6r2hFYOucj9o4zC5JOX2hQZ93b2w8cjcbFw257dunK/hfRfk8zWkzff/QOCAlRjG4irIcexM6aYbgXXx//vdYvz/Lv5nW0nf/wuEIzDbAbzwnZO0x1+JHn/orcBmO3SJF7m4c9X78h0zJW05nS8w6HceWCFA/98h6Zn9faMLCMdaLIX5I2gP1W7me32pEHvS5FtC453CIhebLvG+Hrl31pIfoev8TxMGufn8D2EZnOyJNIsAqIv/2+vtF/f/+8Pubv5vI8n4vwZOkuKReRwWphVHMz9kv8tbI9WtL9lxAknl0nfp5gcKsj3AJhIijF202gw8DvAm9ONAnYnXDgHk97tauRULgureHl7O6cB4iWL5IvUFFR8zIJAmY0UYxacwsRmXP+5QSLXkkf3kVyy26MsVWLVfV+Zf3iLhpLl5JtAvVSJu+8C0iphSvVemK6R3gZoN6xdhD8pakaxa5EtLSfKFulAXG2iCyQBA/CmkPh7NEC1cFmap07i6L1Y1d7tdZo1TqK4aEmATe1FV037R7HgFGbA0+69PEihK+Z2Saq/htJUeitGm8YZ88Xj8G/SPmJGSyFVuj/RhjAilSx9blX6VqZn+v9+HAGr0/2DQK9r/veH+Lv5vK0nq/wYB/Vu0Af7Uuj8LHmC0IicPKmIA8g86gLpaTT1ou/AVOQ3tD7xPUt/HrMzTweWmYe73zpr5K1gzhojvVWMw6aB1Wh8QnDkTnt7cpfA6QMC02aW90CLNtNy57+E1spgLw5T6uF09L7daqvN54bEzgQZ3MSi/YIXljbPUyaqgVJChmiRpWHPpucNty6WKnDBTuP5gSZslN2XRlCpljKUZJ/MziNKr3/yx/BH4TvajIy/qgtaKI3FTv9qpsfWTyKpMceQgaT1xHSfL3qo+EF4dlq+K6gieDEQVXSkkqISDoukkdjm0KXlCrt+dvHsWgszwfr+lz0fkEigsKIlmjBNrEuG3X+IpMCO+GWFuMEfnlj1jHjW5FYiJXzl75B56HSkYvT52XG6sFSgBDXFcCNo3AZdjqI64dImVCVY4Q1cLkyaiUg5Jl+I03upa4s+2htju2uHR/XCPlTa3/5XouMcSoMb+39s/KN//39/d/7qVVHn/h5poD+/sLx3/2CQifQL6CWPgXMfAKHcRAUG+++VTOwlOaI/a18cX7ZdtfNcebRbk8PnX75pxIKLiKXUMebrBgGGDUt9QofA5xop85EObXhY5vxcvSczHOj621UBp7xvJNoziQNuHgXILm+656CbgURJtQwOVEAvlofYBBHFIod2IU/wolNBpKadZxCM0IcOTWZlJ26raiK86rbb58bTC9nhFAfnD97jnBb8itAS5mcQwHN1ZwIMfY24xhHHdVtZBg62s9EBD4bsXCQ/GXOz6t9Gi0uqlRTHW4FtYCWOGpnmZTL55tEdpjY7INRqfoitxYRP6YFHiVSxgz8MiGDSWIw49eT5xfW8KFqoHrQmZzBNfvprEIqo3s2TpnFiccB9qD3/TW3uTH/9Y9MyDIX6ng4wp9aC7hYBzzGYTV9qTRnkUiiM1VfLlXvQfTCY1PT/5wEM5WboZ3MWoYjFUVrcArJA4Gi6r5lqyfSyPbCpT9Ayj77LN481OV6ZheEY55K821DkfUycik0RXNwrReyj939j+U6vgJmZgXfzHXun+FzAJd9//2EpaZ/8lC61HjflAtSCiKfNMXfu3FC9st0Dd/D1Xbg+TGsx/eUmYOL7woPEfve7woDj/93bxX9tJSmFvePcTKVwFm1wcV/RDXcl8cYy2Wnw0uMSumQ2y+b0R0s1mwIhn3gJMf8eQPrjUfBBW1HsRCXz6MbA8WWcRqC2aBZ/R2qipjgaLLMrQYuWek4GzNQRKGEgGrHpooeSrD9KkmQZ7rZINVkWRena4DKLE0EofNcup+tNojz1cd+mB0+byfxFY99v+r7X/DnrF+397g8H+Tv5vIxWEBXaytgbL3Q5U2mfJ5P17tb9y4TtH6f7K5mFMUOqGtmN2wY4U6iq0tqVONyRnneSOl8w2shfySobvXkh3EcmuHHFk9XFj6wP8jZIb5eTCLD2jV3VZEuaXLkyqO1cBAFLX6PzLnJJGwC7Rgc0M7gGEc938l6dv7jnxVaqL/+l1i/G/3d7+Lv53K0neJCJmVPKR1xGhcegH1HB8G8+PB7dT06GL7AYQGCC4M9eR19Wk+Z3Mb9opXA0SWdMREWoE50ag3UhyNjn3owv82hRMm5Y8ZArD/3PrCUw3+fVJDF94QuSVgOKhpd+XhdH/5fMA2UVVw+63iJDs3iJpmFEjYfUIOZcevVs/I9tHwj/Z0txmI/J99/tuKzvjKTJ6rZZ2WhsJ6TFEqajSj+TLE57adSRroXh2aq8SQg8XWgOWRgutgSGkdImGPG1RfPFK3p5dhaPdVTEifRwN+eijNcXL+KM1ANp9FeuhZNTMiKgVQfn6iBHZ6+LblZcyJL6GVvnM/Yj88murcIJe5BW2ClIST0jVaT680R7GufpixUj8zt2HaaSKTLwjRNK91GbulEWzeIxhNZ3M6a7/HLv+uDO30PPZGcfMdeTHWTsnYq7j/TOKti4PpnaI6n7q+1OX3mS3Fklcw5o7+wOFJmZ6e8/stlXGIlGYPbPXMz9+3bXqlWol91V6ffnCNM1WK+e2lbcMpz7gERkM9lRWcii71+0PuzAonpDENy6+ZaUEzUtCzalJeHJN23hJxC5BFrUDmIlUwtKAjpRs6S1rCa54mQq+5OI3Jf9adspv9XcLqr5aAEYQCmIE6vzGfS+1w9IvCFRCiLv9e+oiLXXxfm8PH7Nr8AuX4NvlG7nkMt6YWDxKgNKL7vvDN0xl5pbq+Z0ojLyj4+TuqoqFOcqu1374mgGLUHMO75PT9dqaWbZfwtaopQ8PXErLN24i/CcgiUDuvUF1KPQRET06yslO8REL2RDa1WnJAMnO71btouine1MlJ0UPzIBcVO+oVQn0ZO1NaPJHciFaH/rxsa2YXdqlXdqlXdqlXdqlXdqlXdqlXdqlXVqX/h8FxaynAKAAAA== values: image: tag: v1.59.0-dev diff --git a/pkg/aws/types.go b/pkg/aws/types.go index a96639f70..7bda47f73 100644 --- a/pkg/aws/types.go +++ b/pkg/aws/types.go @@ -127,6 +127,9 @@ const ( CSISnapshotValidationName = "csi-snapshot-validation" // CSIVolumeModifierName is the constant for the name of the csi-volume-modifier. CSIVolumeModifierName = "csi-volume-modifier" + + // AnnotationEnableVolumeAttributesClass is the annotation to use on shoots to enable VolumeAttributesClasses + AnnotationEnableVolumeAttributesClass = "aws.provider.extensions.gardener.cloud/enable-volume-attributes-class" ) var ( diff --git a/pkg/controller/controlplane/valuesprovider.go b/pkg/controller/controlplane/valuesprovider.go index 435b18d89..0c43680d2 100644 --- a/pkg/controller/controlplane/valuesprovider.go +++ b/pkg/controller/controlplane/valuesprovider.go @@ -12,6 +12,7 @@ import ( "slices" "strings" + "github.com/Masterminds/semver/v3" extensionscontroller "github.com/gardener/gardener/extensions/pkg/controller" "github.com/gardener/gardener/extensions/pkg/controller/controlplane/genericactuator" extensionssecretsmanager "github.com/gardener/gardener/extensions/pkg/util/secret/manager" @@ -24,6 +25,7 @@ import ( kutil "github.com/gardener/gardener/pkg/utils/kubernetes" secretutils "github.com/gardener/gardener/pkg/utils/secrets" secretsmanager "github.com/gardener/gardener/pkg/utils/secrets/manager" + versionutils "github.com/gardener/gardener/pkg/utils/version" monitoringv1 "github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring/v1" admissionregistrationv1 "k8s.io/api/admissionregistration/v1" appsv1 "k8s.io/api/apps/v1" @@ -792,7 +794,7 @@ func getCSIControllerChartValues( return nil, fmt.Errorf("secret %q not found", csiSnapshotValidationServerName) } - return map[string]interface{}{ + values := map[string]interface{}{ "enabled": true, "replicas": extensionscontroller.GetControlPlaneReplicas(cluster, scaledDown, 1), "region": cp.Spec.Region, @@ -809,7 +811,28 @@ func getCSIControllerChartValues( }, "topologyAwareRoutingEnabled": gardencorev1beta1helper.IsTopologyAwareRoutingForShootControlPlaneEnabled(cluster.Seed, cluster.Shoot), }, - }, nil + } + + k8sVersion, err := semver.NewVersion(cluster.Shoot.Spec.Kubernetes.Version) + if err != nil { + return nil, err + } + if versionutils.ConstraintK8sGreaterEqual131.Check(k8sVersion) { + if _, ok := cluster.Shoot.Annotations[aws.AnnotationEnableVolumeAttributesClass]; ok { + values["csiResizer"] = map[string]interface{}{ + "featureGates": map[string]string{ + "VolumeAttributesClass": "true", + }, + } + values["csiProvisioner"] = map[string]interface{}{ + "featureGates": map[string]string{ + "VolumeAttributesClass": "true", + }, + } + } + } + + return values, nil } // getControlPlaneShootChartValues collects and returns the control plane shoot chart values.