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

Alternative CNI How-to #900

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open

Alternative CNI How-to #900

wants to merge 5 commits into from

Conversation

eaudetcobello
Copy link
Contributor

@eaudetcobello eaudetcobello commented Dec 12, 2024

Alternative CNI How-to

This PR adds a how-to page for installing an alternative CNI by the example of Calico.

@eaudetcobello eaudetcobello requested a review from a team as a code owner December 12, 2024 20:32
Copy link
Contributor

@bschimke95 bschimke95 left a comment

Choose a reason for hiding this comment

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

LGTM, minor nit
Leaving the approval to @nhennigan

docs/src/snap/howto/networking/alternative-cni.md Outdated Show resolved Hide resolved
Copy link
Contributor

@nhennigan nhennigan left a comment

Choose a reason for hiding this comment

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

Great work 😄

Please add to the index file so it appears in the navigation and address the small changes and I think it will be good to go

docs/src/snap/howto/networking/alternative-cni.md Outdated Show resolved Hide resolved
docs/src/snap/howto/networking/alternative-cni.md Outdated Show resolved Hide resolved
docs/src/snap/howto/networking/alternative-cni.md Outdated Show resolved Hide resolved
# How to use an alternative CNI

While {{product}} ships with a default [Container Network Interface] (CNI) that
we guarantee is compatible with our distribution, you may want to use a
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
we guarantee is compatible with our distribution, you may want to use a
guarantees compatibility with our distribution, there is an option to use a

Copy link
Contributor

@louiseschmidtgen louiseschmidtgen left a comment

Choose a reason for hiding this comment

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

Well done @eaudetcobello!
Left you a couple of suggestions.

different CNI plugin for your specific networking requirements. This guide
explains how to safely replace the default CNI with an alternative solution.

## What you'll need
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
## What you'll need
## Prerequisites


This guide assumes the following:

- You have root or sudo access to the machine.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
- You have root or sudo access to the machine.
- Root or sudo access to the machine.

This guide assumes the following:

- You have root or sudo access to the machine.
- Basic understanding of Kubernetes networking concepts.
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's link the networking explanation page.

plugin:

```
sudo k8s disable ingress gateway network
Copy link
Contributor

Choose a reason for hiding this comment

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

Should we add a note that the underlying implementation ships all three features and you can't just disable one?

enabled: false
```

Then bootstrap the cluster with this configuration:
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Then bootstrap the cluster with this configuration:
Then, bootstrap the cluster with this configuration:

EOF
```

Once you've created the values file, create the required namespace.
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Once you've created the values file, create the required namespace.
After saving the values file, create the required namespace:


## Verify deployment

Monitor the pod status:
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
Monitor the pod status:
Monitor the status of the calico pods:

watch sudo k8s kubectl get pods -n calico-system
```

You should see output similar to:
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
You should see output similar to:
If Calico is deployed successfully, the output will be similar to:

calico-typha-56f55cb75-cj2jk 1/1 Running 0 22h
csi-node-driver-vth9t 2/2 Running 0 22h
```

Copy link
Contributor

Choose a reason for hiding this comment

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

I would recommend adding a note that users do not get support for an alternative CNI and the responsibility is entirely on them.

In addition, I would add a note that at any time a switch to the networking solution provided by Canonical can be made by running: sudo k8s enable ingress gateway network

@@ -0,0 +1,107 @@
# How to use an alternative CNI
Copy link
Contributor

Choose a reason for hiding this comment

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

Suggested change
# How to use an alternative CNI
# How-to use an alternative CNI

Do we need a dash?

@louiseschmidtgen louiseschmidtgen changed the title alternative cni docs Alternative CNI how-to Dec 17, 2024
Copy link
Contributor

@louiseschmidtgen louiseschmidtgen left a comment

Choose a reason for hiding this comment

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

Two more things :)


While {{product}} ships with a default [Container Network Interface] (CNI) that
we guarantee is compatible with our distribution, you may want to use a
different CNI plugin for your specific networking requirements. This guide
Copy link
Contributor

Choose a reason for hiding this comment

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

Can you include a link to an upstream page that lists supported alternative CNIs?

## Configure Helm repository

Add the CNI's Helm repository to {{product}}'s Helm installation. This guide
uses Calico as an example:
Copy link
Contributor

Choose a reason for hiding this comment

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

Let's add a link to Calico's docs please.

@louiseschmidtgen louiseschmidtgen changed the title Alternative CNI how-to Alternative CNI How-to Dec 17, 2024
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.

4 participants