-
Notifications
You must be signed in to change notification settings - Fork 6.5k
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 multi-CPU architecture in Flannel CNI #6166
Enable multi-CPU architecture in Flannel CNI #6166
Conversation
Hi @electrocucaracha. Thanks for your PR. I'm waiting for a kubernetes-sigs member to verify that this patch is reasonable to test. If it is, they should reply with Once the patch is verified, the new status will be reflected by the I understand the commands that are listed here. 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. |
CI is broken right now, need to retest this once it's fixed |
/retest |
@electrocucaracha: Cannot trigger testing until a trusted user reviews the PR and leaves an 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. |
@@ -42,7 +42,7 @@ data: | |||
apiVersion: apps/v1 | |||
kind: DaemonSet | |||
metadata: | |||
name: kube-flannel | |||
name: kube-flannel-ds-amd64 |
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.
To simplify multi arch support, could you use templating with a for loop in jinja ? AFAIK you just replace the arch name in 2/3 strings so It should be a good improvement...
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.
That only applies for those case where you have an homogeneous architecture (all nodes of the cluster only using the amd64 or arm). Unfortunately the official flannel image is offered using different tags for different architectures.
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.
Yes sure, I do know that but instead of copying+pasting the deamonset x times, you can use something like {% for arch in ['amd64', 'arm64', ...] %}
or something similar to generate those...
This will enable you to have a smaller set of changes and improve general maintainability.
cb34fcc
to
6724916
Compare
/lgtm |
Just thinking about It, but maybe It would be nice to remove the old daemonset ? |
actually yes, for the upgrade use case we should test for its existence and remove it if it does because the new daemonset will have a different name. |
/hold |
@EppO and @electrocucaracha any ideas forward? Not sure if quay supports it, but multiarch docker registry is pretty useful for multi arch support. |
I think it's supported using different tags. It should be nice if the Flannel image could be offered using the BuildX plugin but I'm not sure if its source has restrictions during the build process. |
I'm ok with the multi-arch approach but my concern is about the upgrade path, we may end up with multiple daemonsets of flannel because this code creates new ones with different names. |
Hi! I used this in a baremetal cluster with some amd64 and arm systems and I would like to make a suggestion:
|
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.
Change image name for the init container also
in line 108 image: {{ flannel_image_repo }}:{{ flannel_image_tag }}-{{ arch }}
Signed-off-by: Victor Morales <v.morales@samsung.com>
6724916
to
0d87565
Compare
@Miouge1 @EppO @MrFreezeex I did some changes to preserve the amd64 daemonset and I fixed the name of image for the init container, I think this version will satisfy the upgrade scenario. |
/lgtm |
/unhold |
/approve |
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: electrocucaracha, floryut 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 |
* 'master' of https://github.com/kubernetes-sigs/kubespray: remove variable 'etcd_ionice', because ionice removed from container image etcd:v3.4.x (kubernetes-sigs#6735) calico: default to using kdd datastore (kubernetes-sigs#6693) Update docker packages to 19.03.13 + add docker f32 (kubernetes-sigs#6712) Fix snapshot.storage apiVersion (kubernetes-sigs#6711) properly generate extravolumes in kubeadmconfig for centos (kubernetes-sigs#6708) Fix reserved memory unit in kubelet configuration (kubernetes-sigs#6725) Fix unintended SIGPIPE (kubernetes-sigs#6721) Expose offline install overrides in inventory (kubernetes-sigs#6728) Added ability to set calico vxlan vni and port. defaults to calico's … (kubernetes-sigs#6678) Change health check from TCP to HTTPS (kubernetes-sigs#6487) Add multi architeture support to flannel (kubernetes-sigs#6166) Remove pypi repo and pip extra flags (kubernetes-sigs#6729) Fails if kubeadm_version do not matches kubernetes version (kubernetes-sigs#6302) Add external_openstack_lbaas_provider setting for occm (kubernetes-sigs#6566) add new variable allowing additionnal audit webhook server options (kubernetes-sigs#6726) Fix example value for etcd_quota_backend_bytes (kubernetes-sigs#6724) Added support for setting tiller_service_account and tiller_replicas (kubernetes-sigs#6696)
Signed-off-by: Victor Morales <v.morales@samsung.com>
What type of PR is this?
/kind feature
What this PR does / why we need it:
Flannel CNI provides different Docker images to support multi-CPU architectures, this change provides the daemonsets required to enable them.
Which issue(s) this PR fixes:
Fixes #
Special notes for your reviewer:
kube_network_plugin: flannel
Does this PR introduce a user-facing change?: