-
Notifications
You must be signed in to change notification settings - Fork 807
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Enable CI tests in K8s 1.25
#1341
Conversation
Needs eksctl version bump to https://github.com/weaveworks/eksctl/releases/tag/v0.109.0-rc.0 for k8s 1.23 support. |
@torredil I wonder if it is worth implementing a feature in kops where you tell kops the addon is enabled, but it's selfmanaged. That way kops will behave as if it installed the addon, but won't deploy the manifest. We do this e.g for cert-manager, which a lot of people prefer to self-manage. This will make it a lot easier to migrate to 1.24, where CSI driver is mandatory and cannot be disabled. |
40b4ed8
to
0513e12
Compare
kops patch needs merge with this to disable security feature of preventing nodes from accessing IMDSv2: spec:
instanceMetadata:
httpPutResponseHopLimit: 3 |
@olemarkus Can you clarify this point: "CSI driver is mandatory and cannot be disabled". My understanding was that even in kOps v1.24, users would still be able to disable the CSI driver as currently done in kops-patch.yaml.
If this is not the case, then I think the solution you are proposing would be worth implementing. |
To be precise, kOps 1.24 with K8s 1.24 will enable external cloud-controller-manager, which in turn requires CSI. So the above snippet will fail with "external cloud controller manager requires CSI driver to be enabled" or something to that effect. |
@olemarkus thoughts on just disabling the external CCM in CI as a temporary fix? I can't think of any reason it would be needed in CI. Also, I think I might have seen someone mention this elsewhere on another issue, but I wonder if as a long term fix it would be better to add a kops option to override the EBS CSI Driver container repo/tag. Then, the CI could just deploy the driver via kops which would be easier and probably more accurately represent real-world customer installations. |
0513e12
to
86e686f
Compare
Adding this here for context: As of kOps 1.22, new clusters running Kubernetes 1.22+ on AWS will restrict Pod access to the instance metadata service. This means that Pods will also be prevented from directly assuming instance roles. See https://kops.sigs.k8s.io/iam_roles/#adding-additional-policies |
kOps is moving away from in-tree CCM. From kOps perspective it doesn't make much sense to add any option to disable it.
Yes. That is also an option. There are quite a few images involved though, so a question of how much configurability you need. E.g do you want to test all the sidecars? FWIW, we run the CSI driver e2e test against all our configurations now. So e.g the 1.23 results can be seen here: https://testgrid.k8s.io/kops-k8s-1.23#kops-aws-k8s-1-23 (tests containing the string "External Storage") |
3e78697
to
c275e78
Compare
cf72f41
to
3669771
Compare
@torredil anything we can do to get this merged anytime soon? We currently are running our own tests manually on every driver release because upstream doesn't bother running them for k8s 1.25 |
@MurphyPuppy See e.g https://testgrid.k8s.io/kops-k8s-1.23#kops-aws-k8s-1-23 mentioned above. The k8s community already tests this driver on multiple versions and configurations. |
3669771
to
e1ebcb6
Compare
0f78410
to
06af297
Compare
/retest |
Some great work here! |
06af297
to
b8e0c00
Compare
/hold for more reviews |
/lgtm |
/lgtm |
Signed-off-by: Eddie Torres <torredil@amazon.com>
Co-authored-by: ConnorJC3 <conncatl@amazon.com> Signed-off-by: Eddie Torres <torredil@amazon.com>
Signed-off-by: Eddie Torres <torredil@amazon.com>
f8cdd7e
to
1cfdeb9
Compare
Good to go |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: gtxu, torredil The full list of commands accepted by this bot can be found here. The pull request process is described here
Needs approval from an approver in each of these files:
Approvers can indicate their approval by writing |
/lgtm |
What is this PR about? / Why do we need it?
k8s.io/kubernetes
to1.25
.github.com/onsi/ginkgo
tov2
.kubetest2
fore2e-kubernetes
and use the upstream binary for this test.K8S_VERSION
in tests betweenkOps
andeksctl
so that we can test them independently.CSIDriverRegistry
,CSINodeInfo
, andCSIBlockVolume
fromhack/kops-patch.yaml
as the feature gates have been GA since K8sv1.18
.Signed-off-by: Eddie Torres torredil@amazon.com