-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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 kubeadm feature gates mutation #10154
✨ enable kubeadm feature gates mutation #10154
Conversation
/area api |
cc: @fabriziopandini |
35c3ba4
to
b5a33bc
Compare
/test pull-cluster-api-e2e-full-main |
@adityabhatia: The specified target(s) for
The following commands are available to trigger optional jobs:
Use
In response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. |
/test pull-cluster-api-e2e-main |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would FG mutations trigger a machine roll-out?
some FGs would only matter for different kubeadm commands, some of which are not used in CAPI.
i guess CAPI users would be required to understand what FGs can be a NO-OP for them?
e.g. one that is "kubeadm reset" or "kubeadm upgrade apply" specific.
It does an automatic machine rollout, also mentioned here. I will double check this. |
b5a33bc
to
822ebcf
Compare
/test pull-cluster-api-e2e-main |
822ebcf
to
a2b80c0
Compare
/test pull-cluster-api-e2e-main |
Looks like this adds a panic / nil pointer dereference:
|
a2b80c0
to
8702cfc
Compare
/retest |
/test pull-cluster-api-e2e-main |
2616f47
to
b68eefb
Compare
@@ -93,22 +93,24 @@ loopmembers: | |||
} | |||
|
|||
// UpdateEtcdVersionInKubeadmConfigMap sets the imageRepository or the imageTag or both in the kubeadm config map. | |||
func (w *Workload) UpdateEtcdVersionInKubeadmConfigMap(ctx context.Context, imageRepository, imageTag string, version semver.Version) error { | |||
return w.updateClusterConfiguration(ctx, func(c *bootstrapv1.ClusterConfiguration) { | |||
func (w *Workload) UpdateEtcdVersionInKubeadmConfigMap(imageRepository, imageTag string) func(*bootstrapv1.ClusterConfiguration, *[]string) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I think we are missing something for etcd.
If I look at what the webhook allows to change, we can change everything both for local etcd and external etcd.
Instead here (and in UpdateEtcdExtraArgsInKubeadmConfigMap) we do not persist changes to:
- etcd.local.DataDir
- etcd.local.ServerCertSANs
- etcd.local.PeerCertSANs
- etcd.External.*
What about refactoring UpdateEtcdVersionInKubeadmConfigMap and UpdateEtcdExtraArgsInKubeadmConfigMap into UpdateEtcdLocalInKubeadmConfigMap (+ filling the gaps) and adding a new UpdateEtcdExternalInKubeadmConfigMap to be called from controlplane/kubeadm/internal/controllers/upgrade.go?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Sounds good, we can additionally persist all local and external properties of etcd in the config map.
Since this requires a refactoring to the current methods and subsequently the interface as well (and tests), it makes sense to combine it with the interface clean-up addressed here IMHO #10154 (comment), wdyt? I can take this up directly after this issues is closed.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
let's tackle this in this PR (thinking about a potential backport in the 1.6 branch)
f2d9b42
to
885fd17
Compare
/test pull-cluster-api-e2e-main |
/lgtm |
LGTM label has been added. Git tree hash: 278f3645cf59d69dc575f439192a09a621799c61
|
@@ -30,6 +30,7 @@ import ( | |||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" | |||
"sigs.k8s.io/controller-runtime/pkg/client" | |||
"sigs.k8s.io/controller-runtime/pkg/client/fake" | |||
yaml2 "sigs.k8s.io/yaml" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
yaml2 "sigs.k8s.io/yaml" | |
"sigs.k8s.io/yaml" |
Let's alias the capi owned yaml package to utilyaml
here (we already do so in other packages)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Also changed in other files, which are a part of this PR.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
would not have been necessary but also does not hurt 👍
One last nit :-) |
885fd17
to
d86ba52
Compare
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: chrischdi 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 |
LGTM label has been added. Git tree hash: 91b6788c82d31056e1b3a78bb7094878283641d2
|
What this PR does / why we need it:
This PR aims at:
Which issue(s) this PR fixes (optional, in
fixes #<issue number>(, fixes #<issue_number>, ...)
format, will close the issue(s) when PR gets merged):Fixes #10050
/area api