Skip to content
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

Force single arch support via env var #9535

Merged
merged 3 commits into from
Jul 9, 2020

Conversation

hakman
Copy link
Member

@hakman hakman commented Jul 9, 2020

Force AMD64 or ARM64 only support via env var to address the issues with Kubernetes PR binaries being AMD64 only.

Fixes: #9526

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Jul 9, 2020
@k8s-ci-robot k8s-ci-robot added the size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. label Jul 9, 2020
@hakman
Copy link
Member Author

hakman commented Jul 9, 2020

/retest

@olemarkus
Copy link
Member

Feels like this should be a list of archs to support, but then I don't really think we'll support more archs than these two anytime soon.

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jul 9, 2020
@k8s-ci-robot k8s-ci-robot added size/S Denotes a PR that changes 10-29 lines, ignoring generated files. and removed lgtm "Looks good to me", indicates that a PR is ready to be merged. size/XS Denotes a PR that changes 0-9 lines, ignoring generated files. labels Jul 9, 2020
@olemarkus
Copy link
Member

Thanks :)
/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jul 9, 2020
Comment on lines 45 to 50
func GetSupported() []Architecture {
// Force support for AMD64 only if env var is set
arch := os.Getenv("KOPS_ARCH_AMD64")
if arch != "" {
return []Architecture{ArchitectureAmd64}
}

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Appreciate the fix!

Any idea whether we need to update the documentation?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Np. This is for internal use at the moment, so I don't see much value in adding docs for it.

Copy link
Member

@rifelpet rifelpet Jul 9, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I wonder if we could setup this env var so its a bit more flexible in the future if we do ever support additional architectures? Perhaps move the architecture into the env var value:

KOPS_ARCH=amd64
KOPS_ARCH=amd64,arm64

or something more descriptive since it is specifically for downloading k8s components and kops images (I don't have a good suggestion)

Copy link
Member Author

@hakman hakman Jul 9, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think in the future we may want to make it a spec option or even a create cluster flag.
At the moment, there is very little value to allow various values.

This function really should be used for anything cpu arch related in case there will be something like that, and it touches cni plugins and maybe other types of assets.

If we ever want to, we could add also KOPS_ARCH_ARM64 if we only want ARM64 support, but I don't have a better idea either.

Or, as you said KOPS_ARCH=amd64 and KOPS_ARCH=arm64, but single option for now. I think I like this most.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Another dump question. :)

I assume it was too late to rely on FindArchitecture() to provide the correct arch at runtime probably because we want to download binary/images upfront to save time?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

You would have to know what arch is on each node. That is not possible or unreliable when the cluster is created.
We only retrieve the hashes, not the binaries. Each node decides on its own what arch it needs.

@hakman
Copy link
Member Author

hakman commented Jul 9, 2020

/cc @rifelpet

@k8s-ci-robot k8s-ci-robot requested a review from rifelpet July 9, 2020 13:38
@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jul 9, 2020
@hakman hakman changed the title Force AMD64 only support via env var Force single arch support via env var Jul 9, 2020
@olemarkus
Copy link
Member

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jul 9, 2020
@rifelpet
Copy link
Member

rifelpet commented Jul 9, 2020

/approve

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: hakman, rifelpet

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 /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot added the approved Indicates a PR has been approved by an approver from all required OWNERS files. label Jul 9, 2020
@k8s-ci-robot k8s-ci-robot merged commit aa7b671 into kubernetes:master Jul 9, 2020
@k8s-ci-robot k8s-ci-robot added this to the v1.19 milestone Jul 9, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. size/S Denotes a PR that changes 10-29 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

pull-kubernetes-e2e-kops-aws failed for 1.19
5 participants