Skip to content

DE-3668: Add docs for juju charmed kubernetes - #2249

Merged
ctauchen merged 27 commits into
tigera:mainfrom
Glen-Tigera:glen-canonical-charmed-k8s-docs
Oct 7, 2025
Merged

ctauchen merged 27 commits into
tigera:mainfrom
Glen-Tigera:glen-canonical-charmed-k8s-docs

Conversation

@Glen-Tigera

@Glen-Tigera Glen-Tigera commented Aug 25, 2025 •

Copy link
Copy Markdown
Member

This PR adds documentation to call out support for charmed kubernetes by Canonical. Docs have been updated for calico enterprise for v3.20 and above as this was tested starting in CE v3.20 GA.

Product Version(s):

Applies to Calico Enterprise v3.20 and older

Issue:

https://tigera.atlassian.net/browse/DE-3668

Link to docs preview:

SME review:

  • An SME has approved this change.

DOCS review:

  • A member of the docs team has approved this change.

Additional information:

Merge checklist:

  • Deploy preview inspected wherever changes were made
  • Build completed successfully
  • Test have passed

@Glen-Tigera
Glen-Tigera requested a review from a team as a code owner August 25, 2025 21:24
@netlify

netlify Bot commented Aug 25, 2025 •

Copy link
Copy Markdown

✅ Deploy Preview succeeded!

Built without sensitive environment variables

Name Link
🔨 Latest commit 71a9615
🔍 Latest deploy log https://app.netlify.com/projects/tigera/deploys/68e4386ec181f90008188383
😎 Deploy Preview https://deploy-preview-2249--tigera.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
Lighthouse
Lighthouse
1 paths audited
Performance: 21 (🔴 down 2 from production)
Accessibility: 90 (no change from production)
Best Practices: 92 (no change from production)
SEO: 92 (no change from production)
PWA: -
View the detailed breakdown and full score reports

To edit notification comments on pull requests, go to your Netlify project configuration.

@CLAassistant

CLAassistant commented Aug 25, 2025 •

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@netlify

netlify Bot commented Aug 25, 2025 •

Copy link
Copy Markdown

✅ Deploy Preview for calico-docs-preview-next ready!

Name Link
🔨 Latest commit 71a9615
🔍 Latest deploy log https://app.netlify.com/projects/calico-docs-preview-next/deploys/68e4386e37f8ad0008d083f9
😎 Deploy Preview https://deploy-preview-2249--calico-docs-preview-next.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@ctauchen

Copy link
Copy Markdown
Collaborator

@Glen-Tigera Thanks for this first submission to the docs repo! Looks like everything is working as it ought to. I'd like to take this for a spin before I complete my review. I spotted a guide from Sara about spinning up a Charmed cluster, so I'll try to get through that and follow your install guide in the next day or so.

It's not a bad idea to get an SME review as well. Is there anyone else involved who could look it over? Perhaps Sara?

@Glen-Tigera

Glen-Tigera commented Aug 26, 2025 •

Copy link
Copy Markdown
Member Author

@Glen-Tigera Thanks for this first submission to the docs repo! Looks like everything is working as it ought to. I'd like to take this for a spin before I complete my review. I spotted a guide from Sara about spinning up a Charmed cluster, so I'll try to get through that and follow your install guide in the next day or so.

It's not a bad idea to get an SME review as well. Is there anyone else involved who could look it over? Perhaps Sara?

Hey @ctauchen , sounds good. Yeah think Sara could help with reviewing the instructions to create a charmed cluster. I think the doc that Sara wrote is similar to the quickstart that canonical has published, I have referenced this here - https://github.com/tigera/docs/pull/2249/files#diff-348f762926833df3dbadcbb62ade5c52e710793b2fe0f453069940fe48a8296fR61

I am not sure how informative I should be in this doc, so let me know if I need to call out exact steps or can reference a 3rd party link that owns provisioning for those clusters. Thanks!

@ctauchen ctauchen left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Thanks @Glen-Tigera. I've made a few small suggestions below.

There are a couple other questions that may be worth addressing.

  1. Does this installation work with any Charmed cluster? Or are there special configurations or procedures that must be done during or after you create the cluster? In particular, I wonder about the fact that Calico is already present by default. Is it a requirement that the Charmed cluster have Calico already as a CNI? Or will any possible configuration work?
  2. Do we need to address the tigera-secure-ee installation option in Charmed k8s? What's going on there? https://ubuntu.com/kubernetes/charmed-k8s/docs/tigera-secure-ee

Comment thread calico-enterprise/getting-started/install-on-clusters/charmed-k8s.mdx Outdated

<GeekDetails
prodname='$[prodname]'
details='Policy:Calico,IPAM:Calico,CNI:Calico,Overlay:IPIP,Routing:BGP,Datastore:Kubernetes'

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

A reminder to double check these.

@Glen-Tigera Glen-Tigera Sep 5, 2025 •

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

It depends on the path they take - if they are following the quick start to provisioned a charmed k8s cluster using the canonical docs, I think the details are slightly different. But I can confirm this setup looks accurate from provisioning using a custom bundle (overlay).

Comment on lines +26 to +30
:::note

By default, Charmed Kubernetes uses Calico for networking. Other CNI options like Flannel or Canal can be configured using bundle overlays during deployment.

:::

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

I think we can strike this. Unless you're suggesting alternative installation patterns, like installing CE for policy while using Flannel for networking?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

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

This is an example from the canonical docs but thought we can call out there is an option to configure flannel CNI using an overlay - https://ubuntu.com/kubernetes/charmed-k8s/docs/cni-flannel

Comment thread calico-enterprise/getting-started/install-on-clusters/charmed-k8s.mdx Outdated
@Glen-Tigera

Glen-Tigera commented Sep 5, 2025 •

Copy link
Copy Markdown
Member Author

Thanks @Glen-Tigera. I've made a few small suggestions below.

There are a couple other questions that may be worth addressing.

  1. Does this installation work with any Charmed cluster? Or are there special configurations or procedures that must be done during or after you create the cluster? In particular, I wonder about the fact that Calico is already present by default. Is it a requirement that the Charmed cluster have Calico already as a CNI? Or will any possible configuration work?
  2. Do we need to address the tigera-secure-ee installation option in Charmed k8s? What's going on there? https://ubuntu.com/kubernetes/charmed-k8s/docs/tigera-secure-ee
  1. I'm going to lean toward a no for any cluster. I've only tested the path where it took the default charmed kubernetes install (juju deploy charmed-kuberenetes without any custom overlay) and there were a few manual steps taken (such as deleting the calico CNI maintained and installed by juju, and specifying the right storage class) to eventually make it install Enterprise. I did dabble a bit with a charmed cluster that installed flannel CNI instead of calico CNI as well but I did not see a successful install going from flannel to installing CE.)

  2. This is something I haven't investigated but I believe this is a very old document about installation of Calico Enterprise dating back to when it was Tigera Secure Enterprise (almost 5-6 years back!). I have a feeling this install path would no longer work due to all the recent updates to k8s but I could give it a try and see what happens.

@ctauchen

ctauchen commented Sep 8, 2025

Copy link
Copy Markdown
Collaborator

I'm going to lean toward a no for any cluster. I've only tested the path where it took the default charmed kubernetes install (juju deploy charmed-kuberenetes without any custom overlay) and there were a few manual steps taken (such as deleting the calico CNI maintained and installed by juju, and specifying the right storage class) to eventually make it install Enterprise. I did dabble a bit with a charmed cluster that installed flannel CNI instead of calico CNI as well but I did not see a successful install going from flannel to installing CE.)

If that's the case, then we need to provide guidelines for users so they can follow the guide. If, for example, it's a requirement that they delete the packaged Calico CNI, then we need to say that. And explain why people can't just follow the upgrade from Calico to CE doc.

Basically, someone with no exposure to Charmed/juju should be able to find enough information here to correctly get to the base setup you need to install CE with the instructions you provide.

@Glen-Tigera

Copy link
Copy Markdown
Member Author

I'm going to lean toward a no for any cluster. I've only tested the path where it took the default charmed kubernetes install (juju deploy charmed-kuberenetes without any custom overlay) and there were a few manual steps taken (such as deleting the calico CNI maintained and installed by juju, and specifying the right storage class) to eventually make it install Enterprise. I did dabble a bit with a charmed cluster that installed flannel CNI instead of calico CNI as well but I did not see a successful install going from flannel to installing CE.)

If that's the case, then we need to provide guidelines for users so they can follow the guide. If, for example, it's a requirement that they delete the packaged Calico CNI, then we need to say that. And explain why people can't just follow the upgrade from Calico to CE doc.

Basically, someone with no exposure to Charmed/juju should be able to find enough information here to correctly get to the base setup you need to install CE with the instructions you provide.

Got it, thanks @ctauchen. I will ensure to include that info.

@Glen-Tigera

Copy link
Copy Markdown
Member Author

I'm going to lean toward a no for any cluster. I've only tested the path where it took the default charmed kubernetes install (juju deploy charmed-kuberenetes without any custom overlay) and there were a few manual steps taken (such as deleting the calico CNI maintained and installed by juju, and specifying the right storage class) to eventually make it install Enterprise. I did dabble a bit with a charmed cluster that installed flannel CNI instead of calico CNI as well but I did not see a successful install going from flannel to installing CE.)

If that's the case, then we need to provide guidelines for users so they can follow the guide. If, for example, it's a requirement that they delete the packaged Calico CNI, then we need to say that. And explain why people can't just follow the upgrade from Calico to CE doc.

Basically, someone with no exposure to Charmed/juju should be able to find enough information here to correctly get to the base setup you need to install CE with the instructions you provide.

@ctauchen I added some additional information on using a bundle file to setup a charmed cluster for installing CE in the charmed-k8s.mdx files. I mentioned some of the challenges a user may face and steps to address it. Let me know if there's any feedback around this. Thanks!

@Glen-Tigera
Glen-Tigera requested a review from ctauchen September 9, 2025 22:20
@ctauchen

Copy link
Copy Markdown
Collaborator

@Glen-Tigera Thanks for the changes. I've got one last high-level question for you.

Now the guide seems to be saying: Create a Charmed cluster with juju. Don't use the default settings with the default Calico. Instead, you must create the cluster with no CNI. The way to to this is to specify that no-CNI setting in a bundle.yaml file.

But then you supply a bundle file with loads of configuration options. Can we simplify this? Which of those parameters are required?

@Glen-Tigera

Glen-Tigera commented Sep 12, 2025 •

Copy link
Copy Markdown
Member Author

@Glen-Tigera Thanks for the changes. I've got one last high-level question for you.

Now the guide seems to be saying: Create a Charmed cluster with juju. Don't use the default settings with the default Calico. Instead, you must create the cluster with no CNI. The way to to this is to specify that no-CNI setting in a bundle.yaml file.

But then you supply a bundle file with loads of configuration options. Can we simplify this? Which of those parameters are required?

@ctauchen The default bundle file already contains these charms specified in the custom bundle I have in the doc to deploy the charmed kubernetes cluster. I believe these are required applications to create a healthy charmed cluster (k8s control plane, k8s worker, easyrsa charms etc)

The bundle provided in the doc is already at the most minimal configuration. Other than the constraints field, that could be tuned or removed by the user to use the default resource. I think when I tried without specifying constraints, Enterprise couldn't be installed due to storage issues.

@Glen-Tigera

Glen-Tigera commented Sep 24, 2025 •

Copy link
Copy Markdown
Member Author

@ctauchen Thanks for touching base about this last week. As discussed, I've incorporated the changes to mention preparation of the bundle file for charmed k8s, reason for removing calico from the bundle, additional steps to setup the controller, model via Juju, and removing legacy JSX files. If I am missing anything else, please let me know.

This is a PR from my forked repo that contains those changes that I've merged into this branch - Glen-Tigera#1

@ctauchen

ctauchen commented Oct 7, 2025

Copy link
Copy Markdown
Collaborator

LGTM! Ready to merge?

@ctauchen
ctauchen merged commit 4a44b3b into tigera:main Oct 7, 2025
10 of 11 checks passed
@Glen-Tigera
Glen-Tigera deleted the glen-canonical-charmed-k8s-docs branch October 7, 2025 15:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants