-
Notifications
You must be signed in to change notification settings - Fork 20
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
19 changed files
with
356 additions
and
42 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,59 @@ | ||
# Kubeadm ClusterClass | ||
## Specification | ||
| Control Plane | CNI | Default OS | Installs ClusterClass | | ||
|---------------|--------|--------------|-----------------------| | ||
| Kubeadm | Cilium | Ubuntu 22.04 | Yes | | ||
## Prerequisites | ||
[Quickstart](../topics/getting-started.md) completed | ||
## Usage | ||
### Create clusterClass and first cluster | ||
1. Generate the ClusterClass and cluster manifests | ||
```bash | ||
clusterctl generate cluster test-cluster --infrastructure linode:0.0.0 --flavor clusterclass-kubeadm > test-cluster.yaml | ||
``` | ||
2. Apply cluster manifests | ||
```bash | ||
kubectl apply -f test-cluster.yaml | ||
``` | ||
### (Optional) Create a second cluster using the existing ClusterClass | ||
1. Generate cluster manifests | ||
```bash | ||
clusterctl generate cluster test-cluster-2 --flavor clusterclass-kubeadm > test-cluster-2.yaml | ||
``` | ||
```yaml | ||
apiVersion: cluster.x-k8s.io/v1beta1 | ||
kind: Cluster | ||
metadata: | ||
labels: | ||
ccm: linode | ||
cni: cilium | ||
crs: test-cluster-2-crs | ||
name: test-cluster-2 | ||
namespace: default | ||
spec: | ||
clusterNetwork: | ||
pods: | ||
cidrBlocks: | ||
- 192.168.128.0/17 | ||
topology: | ||
class: kubeadm | ||
controlPlane: | ||
replicas: 1 | ||
variables: | ||
- name: region | ||
value: us-ord | ||
- name: controlPlaneMachineType | ||
value: g6-standard-2 | ||
- name: workerMachineType | ||
value: g6-standard-2 | ||
version: v1.29.1 | ||
workers: | ||
machineDeployments: | ||
- class: default-worker | ||
name: md-0 | ||
replicas: 1 | ||
``` | ||
2. Apply cluster manifests | ||
```bash | ||
kubectl apply -f test-cluster-2.yaml | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,16 @@ | ||
# Default | ||
## Specification | ||
| Control Plane | CNI | Default OS | Installs ClusterClass | | ||
|---------------|--------|--------------|-----------------------| | ||
| Kubeadm | Cilium | Ubuntu 22.04 | No | | ||
## Prerequisites | ||
[Quickstart](../topics/getting-started.md) completed | ||
## Usage | ||
1. Generate cluster yaml | ||
```bash | ||
clusterctl generate cluster test-cluster --infrastructure linode:0.0.0 --flavor clusterclass > test-cluster.yaml | ||
``` | ||
2. Apply cluster yaml | ||
```bash | ||
kubectl apply -f test-cluster.yaml | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
# Flavors | ||
|
||
In `clusterctl` the infrastructure provider authors can provide different types | ||
of cluster templates referred to as "flavors". You can use the `--flavor` flag | ||
to specify which flavor to use for a cluster, e.g: | ||
|
||
```bash | ||
clusterctl generate cluster test-cluster --flavor clusterclass | ||
``` | ||
|
||
To use the default flavor, omit the `--flavor` flag. | ||
|
||
See the [`clusterctl` flavors docs](https://cluster-api.sigs.k8s.io/clusterctl/commands/generate-cluster.html#flavors) for more information. | ||
|
||
|
||
## Supported flavors | ||
|
||
- [Default (kubeadm)](default.md) | ||
- [Cluster Class Kubeadm](clusterclass-kubeadm.md) | ||
- [k3s](k3s.md) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,36 @@ | ||
# K3s | ||
## Specification | ||
| Control Plane | CNI | Default OS | Installs ClusterClass | | ||
|-----------------------------|--------|--------------|-----------------------| | ||
| [k3s](https://docs.k3s.io/) | Cilium | Ubuntu 22.04 | No | | ||
## Prerequisites | ||
* [Quickstart](../topics/getting-started.md) completed | ||
* Select a [k3s kubernetes version](https://github.com/k3s-io/k3s/releases) to set for the kubernetes version | ||
```bash | ||
export KUBERNETES_VERSION=v1.29.1+k3s2 | ||
``` | ||
* Installed [k3s bootstrap provider](https://github.com/k3s-io/cluster-api-k3s) into your management cluster | ||
* Add the following to `~/.cluster-api/clusterctl.yaml` for the k3s bootstrap/control plane providers | ||
```yaml | ||
providers: | ||
- name: "k3s" | ||
url: https://github.com/k3s-io/cluster-api-k3s/releases/latest/bootstrap-components.yaml | ||
type: "BootstrapProvider" | ||
- name: "k3s" | ||
url: https://github.com/k3s-io/cluster-api-k3s/releases/latest/control-plane-components.yaml | ||
type: "ControlPlaneProvider" | ||
|
||
``` | ||
* Install the k3s provider into your management cluster | ||
```shell | ||
clusterctl init --bootstrap k3s --control-plane k3s | ||
``` | ||
## Usage | ||
1. Generate cluster yaml | ||
```bash | ||
clusterctl generate cluster test-cluster --infrastructure linode:0.0.0 --flavor k3s > test-k3s-cluster.yaml | ||
``` | ||
2. Apply cluster yaml | ||
```bash | ||
kubectl apply -f test-k3s-cluster.yaml | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,7 +1,8 @@ | ||
--- | ||
apiVersion: kustomize.config.k8s.io/v1beta1 | ||
kind: Kustomization | ||
resources: | ||
- cluster.yaml | ||
- kubeadm-control-plane.yaml | ||
- linode-cluster.yaml | ||
- linode-machine-template.yaml | ||
- machine-deployment.yaml |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
File renamed without changes.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,9 +1,39 @@ | ||
resources: | ||
- ../base | ||
- kubeadm-config-template.yaml | ||
- linode-machine-template.yaml | ||
- machine-deployment.yaml | ||
- kubeadm-control-plane.yaml | ||
- ../../common-init-files | ||
- ../../addons/cilium | ||
- ../../addons/provider-linode | ||
- ../../addons/cluster-resource-set | ||
patches: | ||
- target: | ||
group: cluster.x-k8s.io | ||
version: v1beta1 | ||
kind: Cluster | ||
patch: |- | ||
- op: replace | ||
path: /spec/controlPlaneRef/kind | ||
value: KubeadmControlPlane | ||
- target: | ||
group: cluster.x-k8s.io | ||
version: v1beta1 | ||
kind: Cluster | ||
patch: |- | ||
apiVersion: cluster.x-k8s.io/v1beta1 | ||
kind: Cluster | ||
metadata: | ||
name: ${CLUSTER_NAME} | ||
labels: | ||
cni: cilium | ||
ccm: linode | ||
crs: ${CLUSTER_NAME}-crs | ||
- target: | ||
group: cluster.x-k8s.io | ||
version: v1beta1 | ||
kind: MachineDeployment | ||
patch: |- | ||
- op: replace | ||
path: /spec/template/spec/bootstrap/configRef/kind | ||
value: KubeadmConfigTemplate | ||
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,18 @@ | ||
--- | ||
apiVersion: bootstrap.cluster.x-k8s.io/v1beta1 | ||
kind: KThreesConfigTemplate | ||
metadata: | ||
name: ${CLUSTER_NAME}-md-0 | ||
spec: | ||
template: | ||
spec: | ||
agentConfig: | ||
nodeName: '{{ ds.meta_data.label }}' | ||
kubeletArgs: | ||
- "provider-id=linode://{{ ds.meta_data.id }}" | ||
preK3sCommands: | ||
- | | ||
mkdir -p /etc/rancher/k3s/config.yaml.d/ | ||
echo "node-ip: $(hostname -I | grep -oE 192\.168\.[0-9]+\.[0-9]+)" >> /etc/rancher/k3s/config.yaml.d/capi-config.yaml | ||
- sed -i '/swap/d' /etc/fstab | ||
- swapoff -a |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,50 @@ | ||
--- | ||
apiVersion: controlplane.cluster.x-k8s.io/v1beta1 | ||
kind: KThreesControlPlane | ||
metadata: | ||
name: ${CLUSTER_NAME}-control-plane | ||
spec: | ||
infrastructureTemplate: | ||
apiVersion: infrastructure.cluster.x-k8s.io/v1alpha1 | ||
kind: LinodeMachineTemplate | ||
name: ${CLUSTER_NAME}-control-plane | ||
kthreesConfigSpec: | ||
files: | ||
- content: | | ||
flannel-backend: none | ||
disable-network-policy: true | ||
owner: root:root | ||
path: /etc/rancher/k3s/config.yaml.d/capi-config.yaml | ||
- contentFrom: | ||
secret: | ||
key: cilium.yaml | ||
name: linode-${CLUSTER_NAME}-crs-0 | ||
owner: root:root | ||
path: /var/lib/rancher/k3s/server/manifests/cilium.yaml | ||
- contentFrom: | ||
secret: | ||
key: linode-ccm.yaml | ||
name: linode-${CLUSTER_NAME}-crs-0 | ||
owner: root:root | ||
path: /var/lib/rancher/k3s/server/manifests/linode-ccm.yaml | ||
- contentFrom: | ||
secret: | ||
key: linode-token-region.yaml | ||
name: linode-${CLUSTER_NAME}-crs-0 | ||
owner: root:root | ||
path: /var/lib/rancher/k3s/server/manifests/linode-token-region.yaml | ||
serverConfig: | ||
disableComponents: | ||
- servicelb | ||
- traefik | ||
agentConfig: | ||
nodeName: '{{ ds.meta_data.label }}' | ||
kubeletArgs: | ||
- "provider-id=linode://{{ ds.meta_data.id }}" | ||
preK3sCommands: | ||
- | | ||
echo "node-ip: $(hostname -I | grep -oE 192\.168\.[0-9]+\.[0-9]+)" >> /etc/rancher/k3s/config.yaml.d/capi-config.yaml | ||
- sed -i '/swap/d' /etc/fstab | ||
- swapoff -a | ||
replicas: ${CONTROL_PLANE_MACHINE_COUNT} | ||
version: ${KUBERNETES_VERSION} |
Oops, something went wrong.