Skip to content

Commit

Permalink
feat: update templates to specify control and worker shapes separately
Browse files Browse the repository at this point in the history
While the users can specify the shapes independently we wanted our
defined templates to support this as well. It should make it easier
for our users to quickly define different shapes independent of each
other.
  • Loading branch information
joekr committed Mar 5, 2022
1 parent d3f1ede commit c8fceba
Show file tree
Hide file tree
Showing 14 changed files with 115 additions and 85 deletions.
61 changes: 39 additions & 22 deletions docs/src/gs/create-workload-cluster.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,15 +8,19 @@ The workload cluster templates can be downloaded from the [latest released artif

The following Oracle Cloud Infrastructure (OCI) configuration parameters are available when creating a workload cluster on OCI:

| Parameter | Default Value | Description |
| ---------------------------- |---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `OCI_COMPARTMENT_ID` | | The OCID of the compartment where the OCI resources are to be created |
| `OCI_IMAGE_ID` | | The OCID of the Compute Image (Oracle Linux or Ubuntu) with which to create the Kubernetes nodes |
| `OCI_SHAPE` | VM.Standard.E4.Flex | The shape of the Kubernetes nodes |
| `OCI_SHAPE_MEMORY_IN_GBS` | | The amount of memory to be allocated to the instances. If not provided it is automatically computed by compute API. |
| `OCI_SHAPE_OCPUS` | 1 | The number of OCPUs allocated to the instance |
| `OCI_SSH_KEY` | | The public SSH key to be added to the Kubernetes nodes. It can be used to login to the node and troubleshoot failures. |
| `OCI_PV_TRANSIT_ENCRYPTION` | true | [In-transit encryption](https://docs.oracle.com/en-us/iaas/Content/File/Tasks/intransitencryption.htm) provides a way to secure your data between instances and mounted file systems using TLS v.1.2 (Transport Layer Security) encryption. Only [some bare metal instances](https://docs.oracle.com/en-us/iaas/releasenotes/changes/60d602f5-abb3-4639-aa19-292a5744a808/) support In-transit encryption |
| Parameter | Default Value | Description |
|-----------------------------------------|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `OCI_COMPARTMENT_ID` | | The OCID of the compartment where the OCI resources are to be created |
| `OCI_IMAGE_ID` | | The OCID of the Compute Image (Oracle Linux or Ubuntu) with which to create the Kubernetes nodes |
| `OCI_CONTROL_PLANE_SHAPE` | VM.Standard.E4.Flex | The shape of the Kubernetes nodes |
| `OCI_CONTROL_PLANE_SHAPE_MEMORY_IN_GBS` | | The amount of memory to be allocated to the instances. If not provided it is automatically computed by compute API. |
| `OCI_CONTROL_PLANE_SHAPE_OCPUS` | 1 | The number of OCPUs allocated to the instance |
| `OCI_NODE_SHAPE` | VM.Standard.E4.Flex | The shape of the Kubernetes nodes |
| `OCI_NODE_SHAPE_MEMORY_IN_GBS` | | The amount of memory to be allocated to the instances. If <br/>not provided it is automatically computed by compute API. |
| `OCI_NODE_SHAPE_OCPUS` | 1 | The number of OCPUs allocated to the instance |
| `OCI_SSH_KEY` | | The public SSH key to be added to the Kubernetes nodes. It can be used to login to the node and troubleshoot failures. |
| `OCI_CONTROL_PLANE_PV_TRANSIT_ENCRYPTION` | true | [In-transit encryption](https://docs.oracle.<br/>com/en-us/iaas/Content/File/Tasks/intransitencryption.htm) provides a way to secure your data between instances and mounted file systems using TLS v.1.2 (Transport Layer Security) encryption. Only [some bare metal instances](https://docs.oracle.com/en-us/iaas/releasenotes/changes/60d602f5-abb3-4639-aa19-292a5744a808/) support In-transit encryption |
| `OCI_NODE_PV_TRANSIT_ENCRYPTION` | true | [In-transit encryption](https://docs.oracle.com/en-us/iaas/Content/File/Tasks/intransitencryption.htm) provides a way to secure your data between instances and mounted file systems using TLS v.1.2 (Transport Layer Security) encryption. Only [some bare metal instances](https://docs.oracle.com/en-us/iaas/releasenotes/changes/60d602f5-abb3-4639-aa19-292a5744a808/) support In-transit encryption |

The following Cluster API parameters are also available:

Expand All @@ -38,9 +42,12 @@ Run the command below to create a Kubernetes cluster with 1 control plane node a
```bash
OCI_COMPARTMENT_ID=<compartment-id> \
OCI_IMAGE_ID=<ubuntu-custom-image-id> \
OCI_SHAPE=VM.Standard.E4.Flex \
OCI_SHAPE_OCPUS=1 \
OCI_SHAPE_MEMORY_IN_GBS= \
OCI_CONTROL_PLANE_SHAPE=VM.Standard.E4.Flex \
OCI_CONTROL_PLANE_SHAPE_OCPUS=1 \
OCI_CONTROL_PLANE_SHAPE_MEMORY_IN_GBS= \
OCI_NODE_SHAPE=VM.Standard.E4.Flex \
OCI_NODE_SHAPE_OCPUS=1 \
OCI_NODE_SHAPE_MEMORY_IN_GBS= \
OCI_SSH_KEY=<ssh-key> \
CONTROL_PLANE_MACHINE_COUNT=1 \
KUBERNETES_VERSION=v1.20.10 \
Expand All @@ -57,11 +64,15 @@ Note the addition of `OCI_PV_TRANSIT_ENCRYPTION=false` which is required for mos
```bash
OCI_COMPARTMENT_ID=<compartment-id> \
OCI_IMAGE_ID=<ubuntu-custom-image-id> \
OCI_SHAPE=BM.Standard2.52 \
OCI_SHAPE_OCPUS=52 \
OCI_SHAPE_MEMORY_IN_GBS= \
OCI_SSH_KEY=<ssh-key> \
OCI_PV_TRANSIT_ENCRYPTION=false \
OCI_CONTROL_PLANE_SHAPE=BM.Standard2.52 \
OCI_CONTROL_PLANE_SHAPE_OCPUS=52 \
OCI_CONTROL_PLANE_SHAPE_MEMORY_IN_GBS= \
OCI_CONTROL_PLANE_PV_TRANSIT_ENCRYPTION=false \
OCI_NODE_SHAPE=BM.Standard2.52 \
OCI_NODE_SHAPE_OCPUS=52 \
OCI_NODE_SHAPE_MEMORY_IN_GBS= \
OCI_NODE_PV_TRANSIT_ENCRYPTION=false \
CONTROL_PLANE_MACHINE_COUNT=1 \
KUBERNETES_VERSION=v1.20.10 \
NAMESPACE=default \
Expand All @@ -75,9 +86,12 @@ clusterctl generate cluster <cluster-name>\
```bash
OCI_COMPARTMENT_ID=<compartment-id> \
OCI_IMAGE_ID=<oracle-linux-custom-image-id> \
OCI_SHAPE=VM.Standard.E4.Flex \
OCI_SHAPE_OCPUS=1 \
OCI_SHAPE_MEMORY_IN_GBS= \
OCI_CONTROL_PLANE_SHAPE=VM.Standard.E4.Flex \
OCI_CONTROL_PLANE_SHAPE_OCPUS=1 \
OCI_CONTROL_PLANE_SHAPE_MEMORY_IN_GBS= \
OCI_NODE_SHAPE=VM.Standard.E4.Flex \
OCI_NODE_SHAPE_OCPUS=1 \
OCI_NODE_SHAPE_MEMORY_IN_GBS= \
OCI_SSH_KEY=<ssh-key> \
CONTROL_PLANE_MACHINE_COUNT=1 \
KUBERNETES_VERSION=v1.20.10 \
Expand Down Expand Up @@ -136,9 +150,12 @@ Cluster API. -->
OCI_IMAGE_ID=<ubuntu-custom-image-id> \
OCI_COMPARTMENT_ID=<compartment-id> \
WORKER_MACHINE_COUNT=1 \
OCI_SHAPE=VM.Standard.E4.Flex \
OCI_SHAPE_OCPUS=1 \
OCI_SHAPE_MEMORY_IN_GBS= \
OCI_CONTROL_PLANE_SHAPE=VM.Standard.E4.Flex \
OCI_CONTROL_PLANE_SHAPE_OCPUS=1 \
OCI_CONTROL_PLANE_SHAPE_MEMORY_IN_GBS= \
OCI_NODE_SHAPE=VM.Standard.E4.Flex \
OCI_NODE_SHAPE_OCPUS=1 \
OCI_NODE_SHAPE_MEMORY_IN_GBS= \
OCI_SSH_KEY=<ssh-key> \
clusterctl generate cluster <cluster-name> --kubernetes-version v1.20.10 \
--target-namespace default \
Expand Down
18 changes: 12 additions & 6 deletions docs/src/gs/create-workload-templates.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,9 +21,12 @@ You can then reuse the `ConfigMap` to create your clusters. For example, to crea
```shell
OCI_COMPARTMENT_ID=<compartment-id> \
OCI_IMAGE_ID=<oracle-linux-custom-image-id> \
OCI_SHAPE=VM.Standard.E4.Flex \
OCI_SHAPE_OCPUS=1 \
OCI_SHAPE_MEMORY_IN_GBS= \
OCI_CONTROL_PLANE_SHAPE=VM.Standard.E4.Flex \
OCI_CONTROL_PLANE_SHAPE_OCPUS=1 \
OCI_CONTROL_PLANE_SHAPE_MEMORY_IN_GBS= \
OCI_NODE_SHAPE=VM.Standard.E4.Flex \
OCI_NODE_SHAPE_OCPUS=1 \
OCI_NODE_SHAPE_MEMORY_IN_GBS= \
OCI_SSH_KEY=<ssh-key> \
CONTROL_PLANE_MACHINE_COUNT=1 \
KUBERNETES_VERSION=v1.20.10 \
Expand All @@ -38,9 +41,12 @@ Likewise, to create a workload cluster using Ubuntu:
```shell
OCI_COMPARTMENT_ID=<compartment-id> \
OCI_IMAGE_ID=<ubuntu-custom-image-id> \
OCI_SHAPE=VM.Standard.E4.Flex \
OCI_SHAPE_OCPUS=1 \
OCI_SHAPE_MEMORY_IN_GBS= \
OCI_CONTROL_PLANE_SHAPE=VM.Standard.E4.Flex \
OCI_CONTROL_PLANE_SHAPE_OCPUS=1 \
OCI_CONTROL_PLANE_SHAPE_MEMORY_IN_GBS= \
OCI_NODE_SHAPE=VM.Standard.E4.Flex \
OCI_NODE_SHAPE_OCPUS=1 \
OCI_NODE_SHAPE_MEMORY_IN_GBS= \
OCI_SSH_KEY=<ssh-key> \
CONTROL_PLANE_MACHINE_COUNT=1 \
KUBERNETES_VERSION=v1.20.10 \
Expand Down
9 changes: 6 additions & 3 deletions scripts/ci-conformance.sh
Original file line number Diff line number Diff line change
Expand Up @@ -27,9 +27,12 @@ export TAG="${defaultTag:-dev}"
export GINKGO_NODES=3

export OCI_SSH_KEY="${OCI_SSH_KEY:-""}"
export OCI_SHAPE="${OCI_SHAPE:-"VM.Standard.E3.Flex"}"
export OCI_SHAPE_OCPUS="${OCI_SHAPE_OCPUS:-"1"}"
export OCI_SHAPE_MEMORY_IN_GBS="${OCI_SHAPE_MEMORY_IN_GBS:-"16"}"
export OCI_CONTROL_PLANE_SHAPE="${OCI_CONTROL_PLANE_SHAPE:-"VM.Standard.E3.Flex"}"
export OCI_CONTROL_PLANE_SHAPE_OCPUS="${OCI_CONTROL_PLANE_SHAPE_OCPUS:-"1"}"
export OCI_CONTROL_PLANE_SHAPE_MEMORY_IN_GBS="${OCI_CONTROL_PLANE_SHAPE_MEMORY_IN_GBS:-"16"}"
export OCI_NODE_SHAPE="${OCI_NODE_SHAPE:-"VM.Standard.E3.Flex"}"
export OCI_NODE_SHAPE_OCPUS="${OCI_NODE_SHAPE_OCPUS:-"1"}"
export OCI_NODE_SHAPE_MEMORY_IN_GBS="${OCI_NODE_SHAPE_MEMORY_IN_GBS:-"16"}"
export KIND_EXPERIMENTAL_DOCKER_NETWORK="bridge"

# Generate SSH key.
Expand Down
9 changes: 6 additions & 3 deletions scripts/ci-e2e.sh
Original file line number Diff line number Diff line change
Expand Up @@ -31,9 +31,12 @@ export TAG="${defaultTag:-dev}"
export GINKGO_NODES=3

export OCI_SSH_KEY="${OCI_SSH_KEY:-""}"
export OCI_SHAPE="${OCI_SHAPE:-"VM.Standard.E3.Flex"}"
export OCI_SHAPE_OCPUS="${OCI_SHAPE_OCPUS:-"1"}"
export OCI_SHAPE_MEMORY_IN_GBS="${OCI_SHAPE_MEMORY_IN_GBS:-"16"}"
export OCI_CONTROL_PLANE_SHAPE="${OCI_CONTROL_PLANE_SHAPE:-"VM.Standard.E3.Flex"}"
export OCI_CONTROL_PLANE_SHAPE_OCPUS="${OCI_CONTROL_PLANE_SHAPE_OCPUS:-"1"}"
export OCI_CONTROL_PLANE_SHAPE_MEMORY_IN_GBS="${OCI_CONTROL_PLANE_SHAPE_MEMORY_IN_GBS:-"16"}"
export OCI_NODE_SHAPE="${OCI_NODE_SHAPE:-"VM.Standard.E3.Flex"}"
export OCI_NODE_SHAPE_OCPUS="${OCI_NODE_SHAPE_OCPUS:-"1"}"
export OCI_NODE_SHAPE_MEMORY_IN_GBS="${OCI_NODE_SHAPE_MEMORY_IN_GBS:-"16"}"
export KIND_EXPERIMENTAL_DOCKER_NETWORK="bridge"

# Generate SSH key.
Expand Down
16 changes: 8 additions & 8 deletions templates/cluster-template-antrea.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -284,13 +284,13 @@ spec:
spec:
imageId: "${OCI_IMAGE_ID}"
compartmentId: "${OCI_COMPARTMENT_ID}"
shape: "${OCI_SHAPE}"
shape: "${OCI_CONTROL_PLANE_SHAPE=VM.Standard.E4.Flex}"
shapeConfig:
ocpus: "${OCI_SHAPE_OCPUS}"
memoryInGBs: "${OCI_SHAPE_MEMORY_IN_GBS}"
ocpus: "${OCI_CONTROL_PLANE_SHAPE_OCPUS=1}"
memoryInGBs: "${OCI_CONTROL_PLANE_SHAPE_MEMORY_IN_GBS=16}"
metadata:
ssh_authorized_keys: "${OCI_SSH_KEY}"
IsPvEncryptionInTransitEnabled: ${OCI_PV_TRANSIT_ENCRYPTION=true}
IsPvEncryptionInTransitEnabled: ${OCI_CONTROL_PLANE_PV_TRANSIT_ENCRYPTION=true}
---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: OCIMachineTemplate
Expand All @@ -301,13 +301,13 @@ spec:
spec:
imageId: "${OCI_IMAGE_ID}"
compartmentId: "${OCI_COMPARTMENT_ID}"
shape: "${OCI_SHAPE}"
shape: "${OCI_NODE_SHAPE=VM.Standard.E4.Flex}"
shapeConfig:
ocpus: "${OCI_SHAPE_OCPUS}"
memoryInGBs: "${OCI_SHAPE_MEMORY_IN_GBS}"
ocpus: "${OCI_NODE_SHAPE_OCPUS=1}"
memoryInGBs: "${OCI_NODE_SHAPE_MEMORY_IN_GBS=16}"
metadata:
ssh_authorized_keys: "${OCI_SSH_KEY}"
IsPvEncryptionInTransitEnabled: ${OCI_PV_TRANSIT_ENCRYPTION=true}
IsPvEncryptionInTransitEnabled: ${OCI_NODE_PV_TRANSIT_ENCRYPTION=true}
---
apiVersion: bootstrap.cluster.x-k8s.io/v1alpha4
kind: KubeadmConfigTemplate
Expand Down
14 changes: 8 additions & 6 deletions templates/cluster-template-arm-free-tier.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -102,14 +102,15 @@ spec:
spec:
imageId: "${OCI_IMAGE_ID}"
compartmentId: "${OCI_COMPARTMENT_ID}"
shape: "${OCI_SHAPE}"
shape: "${OCI_CONTROL_PLANE_SHAPE=VM.Standard.E4.Flex}"
networkDetails:
assignPublicIp: true
shapeConfig:
ocpus: "${OCI_SHAPE_OCPUS}"
memoryInGBs: "${OCI_SHAPE_MEMORY_IN_GBS}"
ocpus: "${OCI_CONTROL_PLANE_SHAPE_OCPUS=1}"
memoryInGBs: "${OCI_CONTROL_PLANE_SHAPE_MEMORY_IN_GBS=16}"
metadata:
ssh_authorized_keys: "${OCI_SSH_KEY}"
IsPvEncryptionInTransitEnabled: ${OCI_CONTROL_PLANE_PV_TRANSIT_ENCRYPTION=true}
---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: OCIMachineTemplate
Expand All @@ -120,14 +121,15 @@ spec:
spec:
imageId: "${OCI_IMAGE_ID}"
compartmentId: "${OCI_COMPARTMENT_ID}"
shape: "${OCI_SHAPE}"
shape: "${OCI_NODE_SHAPE=VM.Standard.E4.Flex}"
networkDetails:
assignPublicIp: true
shapeConfig:
ocpus: "${OCI_SHAPE_OCPUS}"
memoryInGBs: "${OCI_SHAPE_MEMORY_IN_GBS}"
ocpus: "${OCI_NODE_SHAPE_OCPUS=1}"
memoryInGBs: "${OCI_NODE_SHAPE_MEMORY_IN_GBS=16}"
metadata:
ssh_authorized_keys: "${OCI_SSH_KEY}"
IsPvEncryptionInTransitEnabled: ${OCI_NODE_PV_TRANSIT_ENCRYPTION=true}
---
apiVersion: bootstrap.cluster.x-k8s.io/v1alpha4
kind: KubeadmConfigTemplate
Expand Down
16 changes: 8 additions & 8 deletions templates/cluster-template-failure-domain-spread.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -80,13 +80,13 @@ spec:
spec:
imageId: "${OCI_IMAGE_ID}"
compartmentId: "${OCI_COMPARTMENT_ID}"
shape: "${OCI_SHAPE}"
shape: "${OCI_CONTROL_PLANE_SHAPE=VM.Standard.E4.Flex}"
shapeConfig:
ocpus: "${OCI_SHAPE_OCPUS}"
memoryInGBs: "${OCI_SHAPE_MEMORY_IN_GBS}"
ocpus: "${OCI_CONTROL_PLANE_SHAPE_OCPUS=1}"
memoryInGBs: "${OCI_CONTROL_PLANE_SHAPE_MEMORY_IN_GBS=16}"
metadata:
ssh_authorized_keys: "${OCI_SSH_KEY}"
IsPvEncryptionInTransitEnabled: ${OCI_PV_TRANSIT_ENCRYPTION=true}
IsPvEncryptionInTransitEnabled: ${OCI_CONTROL_PLANE_PV_TRANSIT_ENCRYPTION=true}
---
apiVersion: infrastructure.cluster.x-k8s.io/v1beta1
kind: OCIMachineTemplate
Expand All @@ -97,13 +97,13 @@ spec:
spec:
imageId: "${OCI_IMAGE_ID}"
compartmentId: "${OCI_COMPARTMENT_ID}"
shape: "${OCI_SHAPE}"
shape: "${OCI_NODE_SHAPE=VM.Standard.E4.Flex}"
shapeConfig:
ocpus: "${OCI_SHAPE_OCPUS}"
memoryInGBs: "${OCI_SHAPE_MEMORY_IN_GBS}"
ocpus: "${OCI_NODE_SHAPE_OCPUS=1}"
memoryInGBs: "${OCI_NODE_SHAPE_MEMORY_IN_GBS=16}"
metadata:
ssh_authorized_keys: "${OCI_SSH_KEY}"
IsPvEncryptionInTransitEnabled: ${OCI_PV_TRANSIT_ENCRYPTION=true}
IsPvEncryptionInTransitEnabled: ${OCI_NODE_PV_TRANSIT_ENCRYPTION=true}
---
apiVersion: bootstrap.cluster.x-k8s.io/v1alpha4
kind: KubeadmConfigTemplate
Expand Down
Loading

0 comments on commit c8fceba

Please sign in to comment.