File tree 15 files changed +109
-18
lines changed
15 files changed +109
-18
lines changed Original file line number Diff line number Diff line change 1
1
{
2
2
"heading-style" : { "style" : " atx" },
3
3
"ul-style" : { "style" : " dash" },
4
- "line-length" : { "line_length" : 120 , "stern " : true },
4
+ "line-length" : { "line_length" : 120 , "code_blocks " : false },
5
5
"hr-style" : { "style" : " ---" }
6
6
}
Original file line number Diff line number Diff line change 1
1
+++
2
- title = " CAPI Runtime Extensions"
2
+ title = " Cluster API Runtime Extensions - Nutanix (CAREN) "
3
3
4
4
# [[cascade]]
5
5
# type = "blog"
@@ -23,11 +23,12 @@ templating by introducing variables specified with an OpenAPI schema that can th
23
23
via patches.
24
24
25
25
The [ Runtime SDK] feature provides an extensibility mechanism to hook into ` ClusterClass ` managed Kubernetes clusters'
26
- lifecycle. This project, CAPI Runtime Extensions, provides implementations of various runtime hooks that can be used in
27
- ` ClusterClasses ` across providers. This includes variables and patches that can be used across any provider to configure
28
- generic Kubernetes capabilities, such as configuring audit policy or HTTP proxy configuration. These capabilities are
29
- not provider-specific and delivering these capabilities in code instead of directly embedded in ` ClusterClass `
30
- definitions leads to a much more robust experience via fast-feedback unit tests, as opposed to long running e2e tests.
26
+ lifecycle. This project, Cluster API Runtime Extensions - Nutanix (CAREN), provides implementations of various runtime
27
+ hooks that can be used in ` ClusterClasses ` across providers. This includes variables and patches that can be used across
28
+ any provider to configure generic Kubernetes capabilities, such as configuring audit policy or HTTP proxy configuration.
29
+ These capabilities are not provider-specific and delivering these capabilities in code instead of directly embedded in
30
+ ` ClusterClass ` definitions leads to a much more robust experience via fast-feedback unit tests, as opposed to long
31
+ running e2e tests.
31
32
32
33
In addition to cluster resource customizations, this project enables management of essential cluster addons (e.g. CNI)
33
34
via variable definitions, e.g. selecting a CNI provider via variables defined on the ` Cluster ` resource itself. The goal
Original file line number Diff line number Diff line change 1
1
+++
2
2
title = " Addons"
3
- weight = 2
3
+ weight = 3
4
4
icon = " fa-solid fa-cubes"
5
5
+++
Original file line number Diff line number Diff line change 1
1
+++
2
2
title = " Cluster Autoscaler"
3
+ icon = " fa-solid fa-up-right-and-down-left-from-center"
3
4
+++
4
5
5
6
By leveraging CAPI cluster lifecycle hooks, this handler deploys [ Cluster Autoscaler] [ cluster-autoscaler ]
Original file line number Diff line number Diff line change 1
1
+++
2
2
title = " Contributing"
3
3
weight = 99
4
- icon = " fa-solid fa-gift "
4
+ icon = " fa-solid fa-hand-holding-heart "
5
5
+++
Original file line number Diff line number Diff line change 1
1
+++
2
2
title = " End-to-end tests"
3
+ icon = " fa-solid fa-bugs"
3
4
+++
4
5
5
6
This project uses [ Ginkgo] to run end-to-end tests. Tests are labelled to make running targeted or specific tests
Original file line number Diff line number Diff line change 1
1
+++
2
2
title = " Releasing"
3
+ icon = " fa-solid fa-gift"
3
4
+++
4
5
5
6
This project uses [ release-please] to automate changelog updates per release. Due to security restrictions[ ^ 1 ] in the
@@ -9,7 +10,7 @@ This project uses [release-please] to automate changelog updates per release. Du
9
10
When a release has been cut, a new release PR can be created manually using the ` release-please ` CLI locally. This needs
10
11
to be run by someone with write permissions to the repository. Create the ` release-please ` branch and PR:
11
12
12
- ``` bash
13
+ ``` shell
13
14
make release-please
14
15
```
15
16
@@ -20,19 +21,19 @@ date).
20
21
When a release is ready, the commits in the release PR will need to be signed (again, this is a security requirement).
21
22
To do this, check out the PR branch locally:
22
23
23
- ``` bash
24
+ ``` shell
24
25
gh pr checkout < RELEASE_PR_NUMBER>
25
26
```
26
27
27
28
Sign the previous commit:
28
29
29
- ``` bash
30
+ ``` shell
30
31
git commit --gpg-sign --amend
31
32
```
32
33
33
34
And force push:
34
35
35
- ``` bash
36
+ ``` shell
36
37
git push --force-with-lease
37
38
```
38
39
Original file line number Diff line number Diff line change 1
1
+++
2
2
title = " Cluster customizations"
3
- weight = 1
3
+ weight = 2
4
4
icon = " fa-solid fa-screwdriver-wrench"
5
5
+++
6
6
Original file line number Diff line number Diff line change 1
1
+++
2
2
title = " Nutanix"
3
- icon = " fa-brands fa-nutanix "
3
+ icon = " fa-solid fa-server "
4
4
+++
5
5
6
6
The customizations in this section are applicable only to Nutanix clusters. They will only be applied to clusters that
Original file line number Diff line number Diff line change
1
+ +++
2
+ title = " Getting started"
3
+ icon = " fa-solid fa-forward-fast"
4
+ weight = 1
5
+ +++
6
+
7
+ To deploy CAREN, follow the docs on how to deploy CAREN using either
8
+ [ clusterctl] ({{< ref "deployment/via-clusterctl" >}}) or [ Helm] ({{< ref "deployment/via-helm" >}}).
Original file line number Diff line number Diff line change
1
+ +++
2
+ title = " Deploying CAREN"
3
+ icon = " fa-solid fa-truck-fast"
4
+ +++
5
+
6
+ CAREN is implemented as a CAPI runtime extension provider, which means it can be deployed alongside all other CAPI
7
+ providers in the same way [ using ` clusterctl ` ] ({{< ref "via-clusterctl" >}}). However, as CAREN is not yet integrated
8
+ into ` clusterctl ` , it is necessary to first configure ` clusterctl ` to know about CAREN before we can deploy it.
9
+
10
+ Alternatively you can install CAREN [ via Helm] ({{< ref "via-helm" >}}). Installing via Helm will provide default some
11
+ default ` ClusterClasses ` and allow for further customization of the CAREN deployment.
Original file line number Diff line number Diff line change
1
+ +++
2
+ title = " Via clusterctl"
3
+ icon = " fa-solid fa-circle-nodes"
4
+ weight = 1
5
+ +++
6
+
7
+ Add the following to your ` clusterctl.yaml ` file, which is normally found at
8
+ ` ${XDG_CONFIG_HOME}/cluster-api/clusterctl.yaml ` (or ` ${HOME}/cluster-api/clusterctl.yaml ` ). See [ clusterctl
9
+ configuration file] for more details. If the ` providers ` section already exists, add the entry and omit the ` providers `
10
+ key from this block below:
11
+
12
+ ``` yaml
13
+ providers :
14
+ - name : " caren"
15
+ url : " https://github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix/releases/latest/runtime-extension-components.yaml"
16
+ type : " RuntimeExtensionProvider"
17
+ ` ` `
18
+
19
+ Now we can deploy CAREN and other necessary providers (update infrastructure providers for your needs), leaving all
20
+ configuration values blank as we will specify these when creating clusters:
21
+
22
+ ` ` ` shell
23
+ env CLUSTER_TOPOLOGY=true \
24
+ EXP_RUNTIME_SDK=true \
25
+ EXP_CLUSTER_RESOURCE_SET=true \
26
+ NUTANIX_ENDPOINT= NUTANIX_PASSWORD= NUTANIX_USER= \
27
+ AWS_B64ENCODED_CREDENTIALS= \
28
+ clusterctl init \
29
+ --infrastructure docker,nutanix:v1.4.0-alpha.2,aws \
30
+ --addon helm \
31
+ --runtime-extension caren \
32
+ --wait-providers
33
+ ```
34
+
35
+ [ clusterctl configuration file ] : https://cluster-api.sigs.k8s.io/clusterctl/configuration.html?highlight=clusterctl%20config#variables
Original file line number Diff line number Diff line change
1
+ +++
2
+ title = " Via Helm"
3
+ icon = " fa-solid fa-helmet-safety"
4
+ weight = 2
5
+ +++
6
+
7
+ When installing CAREN via Helm, we need to deploy Cluster API core providers and any other required infrastructure
8
+ providers to our management cluster via ` clusterctl ` :
9
+
10
+ ``` shell
11
+ env CLUSTER_TOPOLOGY=true \
12
+ EXP_RUNTIME_SDK=true \
13
+ EXP_CLUSTER_RESOURCE_SET=true \
14
+ NUTANIX_ENDPOINT= NUTANIX_PASSWORD= NUTANIX_USER= \
15
+ AWS_B64ENCODED_CREDENTIALS= \
16
+ clusterctl init \
17
+ --infrastructure docker,nutanix:v1.4.0-alpha.2,aws \
18
+ --addon helm \
19
+ --wait-providers
20
+ ```
21
+
22
+ We can then deploy CAREN via Helm by adding the Helm repo and installing in the usual way via Helm:
23
+ Add the CAREN Helm repo:
24
+
25
+ ``` shell
26
+ helm repo add caren https://nutanix-cloud-native.github.io/cluster-api-runtime-extensions-nutanix/helm
27
+ helm repo update caren
28
+ helm upgrade --install caren caren/cluster-api-runtime-extensions-nutanix \
29
+ --namespace cluster-api-runtime-extensions-nutanix-system \
30
+ --create-namespace \
31
+ --wait \
32
+ --wait-for-jobs
33
+ ```
Original file line number Diff line number Diff line change 1
1
+++
2
2
title = " Lifecycle handlers"
3
- weight = 3
3
+ weight = 4
4
4
icon = " fa-solid fa-seedling"
5
5
+++
Original file line number Diff line number Diff line change @@ -127,8 +127,8 @@ sidebar_cache_limit = 1000
127
127
[params .ui .feedback ]
128
128
enable = true
129
129
# The responses that the user sees after clicking "yes" (the page was helpful) or "no" (the page was not helpful).
130
- yes = ' Glad to hear it! Please <a href="https://github.com/USERNAME/REPOSITORY /issues/new">tell us how we can improve</a>.'
131
- no = ' Sorry to hear that. Please <a href="https://github.com/USERNAME/REPOSITORY /issues/new">tell us how we can improve</a>.'
130
+ yes = ' Glad to hear it! Please <a href="https://github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix /issues/new">tell us how we can improve</a>.'
131
+ no = ' Sorry to hear that. Please <a href="https://github.com/nutanix-cloud-native/cluster-api-runtime-extensions-nutanix /issues/new">tell us how we can improve</a>.'
132
132
133
133
# Adds a reading time to the top of each doc.
134
134
# If you want this feature, but occasionally need to remove the Reading time from a single page,
You can’t perform that action at this time.
0 commit comments