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

📖 Adding MicroK8s providers #7136

Merged

Conversation

ktsakalozos
Copy link
Contributor

What this PR does / why we need it:
This PR adds the MicroK8s bootstrap and control plane providers to the list of default providers to enable with clusterctl init and also updates the providers list in the Book.

The MicroK8s team is committing to support and develop these two providers.

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 #

@k8s-ci-robot k8s-ci-robot added the cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. label Aug 31, 2022
@k8s-ci-robot
Copy link
Contributor

Welcome @ktsakalozos!

It looks like this is your first PR to kubernetes-sigs/cluster-api 🎉. Please refer to our pull request process documentation to help your PR have a smooth ride to approval.

You will be prompted by a bot to use commands during the review process. Do not be afraid to follow the prompts! It is okay to experiment. Here is the bot commands documentation.

You can also check if kubernetes-sigs/cluster-api has its own contribution guidelines.

You may want to refer to our testing guide if you run into trouble with your tests not passing.

If you are having difficulty getting your pull request seen, please follow the recommended escalation practices. Also, for tips and tricks in the contribution process you may want to read the Kubernetes contributor cheat sheet. We want to make sure your contribution gets all the attention it needs!

Thank you, and welcome to Kubernetes. 😃

@k8s-ci-robot k8s-ci-robot added size/L Denotes a PR that changes 100-499 lines, ignoring generated files. needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Aug 31, 2022
@k8s-ci-robot
Copy link
Contributor

Hi @ktsakalozos. 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 /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

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.

Copy link
Contributor

@killianmuldoon killianmuldoon left a comment

Choose a reason for hiding this comment

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

/ok-to-test

Thanks for adding microK8s to the provider list! Hoping to try it out soon

@k8s-ci-robot k8s-ci-robot added ok-to-test Indicates a non-member PR verified by an org member that is safe to test. and removed needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. labels Aug 31, 2022
Copy link
Contributor

@killianmuldoon killianmuldoon left a comment

Choose a reason for hiding this comment

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

Looking good - just a couple of nits

cmd/clusterctl/cmd/config_repositories_test.go Outdated Show resolved Hide resolved
@@ -9,6 +9,7 @@ updated info about which API version they are supporting.
- [EKS](https://github.com/kubernetes-sigs/cluster-api-provider-aws/tree/main/bootstrap/eks)
- [Kubeadm](https://github.com/kubernetes-sigs/cluster-api/tree/main/bootstrap/kubeadm)
- [Talos](https://github.com/siderolabs/cluster-api-bootstrap-provider-talos)
- [MicroK8s](https://github.com/canonical/cluster-api-bootstrap-provider-microk8s)
Copy link
Contributor

Choose a reason for hiding this comment

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

We should also add a Control plane section here to cover the micro K8s control plane provider 🙂

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Do you want me to add it in this PR or on a separate one?

We should put there:

kubeadm
microk8s
nested
talos

Copy link
Contributor

Choose a reason for hiding this comment

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

We can do it in this PR if it's okay for you - otherwise a follow up is fine. Just seems like the list is starting to get long enough to add here, and I've seen a lot of movement in the community on control plane providers.

Copy link
Contributor Author

Choose a reason for hiding this comment

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

Added a Control Plane section with the respective providers mentioned in alphabetical order.

Copy link
Member

Choose a reason for hiding this comment

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

Thx!

@ktsakalozos
Copy link
Contributor Author

/retest

@ktsakalozos
Copy link
Contributor Author

Thank you for the very fast review @killianmuldoon everything seems to be in the right place now

Copy link
Contributor

@killianmuldoon killianmuldoon left a comment

Choose a reason for hiding this comment

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

>  ./bin/clusterctl init -b microk8s -i docker -c microk8s
Fetching providers
Installing cert-manager Version="v1.9.1"
Waiting for cert-manager to be available...
Installing Provider="cluster-api" Version="v1.2.1" TargetNamespace="capi-system"
Installing Provider="bootstrap-microk8s" Version="v0.1.0" TargetNamespace="capm-system"
Installing Provider="control-plane-microk8s" Version="v0.1.0" TargetNamespace="capm-system"
Installing Provider="infrastructure-docker" Version="v1.2.1" TargetNamespace="capd-system"

Your management cluster has been initialized successfully!

Awesome!

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Aug 31, 2022
@killianmuldoon
Copy link
Contributor

For a follow up - it would be great to add microk8s and CAPM everywhere else we talk about providers. Are you using the same abbreviation CAPM for both providers here? I see they're in the same namespace. (All of this for curiosity only and completely non-blocking for this PR)

@sbueringer
Copy link
Member

sbueringer commented Aug 31, 2022

For a follow up - it would be great to add microk8s and CAPM everywhere else we talk about providers. Are you using the same abbreviation CAPM for both providers here? I see they're in the same namespace. (All of this for curiosity only and completely non-blocking for this PR)

Agree. Shouldn't be relevant for this PR, but I wonder if you'll run into problems at some point. In general providers have a unique abbreviation. They are also deployed into namespaces which are inferred from the abbreviation. E.g.

  • CABPK => capi-kubeadm-bootstrap-system
  • KCP => capi-kubeadm-control-plane-system
  • CAPI => capi-system
  • CAPA => capa-system

We have a list of providers under provider-contract.md. We should probably also include the new providers there.

I don't really know 100% if you will run into problems when using the same abbreviation for both and when deploying them into the same namespace.

@fabriziopandini probably knows more about the limitations / contracts

@fabriziopandini
Copy link
Member

/lgtm
/approve

Abbreviations are meant for users to identify providers, so if we have two providers IMO there should be two abbreviations; also by convention we have bootstrap providers starting with CABP, controlplane providers ending with CP.

As far as I remember we don't use those abbreviations heavily in the application - they are meant for humans - but we use them in the tilt file and probably in E2E as well. Given that AFAIK there are no two providers with the same label, I would say this is not supported.

@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: fabriziopandini

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 Aug 31, 2022
@k8s-ci-robot k8s-ci-robot merged commit 46b8e2d into kubernetes-sigs:main Aug 31, 2022
@k8s-ci-robot k8s-ci-robot added this to the v1.3 milestone Aug 31, 2022
@ktsakalozos
Copy link
Contributor Author

Thank you for the super-fast review and the advice.

We will followup with your suggestions, the abbreviation and discussion updates with MicroK8s.

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. ok-to-test Indicates a non-member PR verified by an org member that is safe to test. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants