Provision
What Will You Do¶
In this part, you will provision an Amazon EKS cluster using Custom Networking.
Update Cluster Specification¶
- Open a suitable YAML editor and copy/paste the example EKS cluster specification provided below.
- Save the file as "custom-networking-demo.yaml" (an example)
Cluster Spec Explained
In the example cluster spec provided,
- The name of the EKS cluster will be "custom-networking-demo" and it is configured to be provisioned in the "defaultproject" in your Org.
- The EKS cluster is configured with one managed node group.
- (3) ENI Configs will be created, one for each AZ we are using.
The following items in the declarative cluster specification will need to be updated/customized for your environment.
- cluster name: "custom-networking-demo"
- project: "defaultproject"
- cloudCredentials: "my-cloud-credential"
- region: "us-west-2"
- Subnet IDs
- AWS Tags as required in your AWS account
apiVersion: infra.k8smgmt.io/v3
kind: Cluster
metadata:
name: custom-networking-demo
project: defaultproject
spec:
blueprintConfig:
name: minimal
cloudCredentials: my-cloud-credential
config:
addons:
- name: aws-ebs-csi-driver
version: latest
managedNodeGroups:
- amiFamily: AmazonLinux2
desiredCapacity: 1
iam:
withAddonPolicies:
autoScaler: true
instanceType: t3.large
maxSize: 6
minSize: 1
name: my-ng
privateNetworking: true
version: "1.25"
volumeSize: 80
volumeType: gp3
metadata:
name: custom-networking-demo
region: us-west-2
tags:
owner: rafay
version: "1.25"
network:
cni:
name: aws-cni
params:
customCniCrdSpec:
us-west-2a:
- subnet: subnet-081ff5e370607fafa
us-west-2c:
- subnet: subnet-0d336d3350d55a986
us-west-2d:
- subnet: subnet-0a4548dabae4b34cb
vpc:
clusterEndpoints:
privateAccess: true
publicAccess: false
nat:
gateway: Single
subnets:
private:
subnet-083bf5944d5ecb3dd:
id: subnet-083bf5944d5ecb3dd
subnet-0bce0fb4a1f682e13:
id: subnet-0bce0fb4a1f682e13
subnet-0f4534f41b98dd7be:
id: subnet-0f4534f41b98dd7be
public:
subnet-0238aec96d29bc809:
id: subnet-0238aec96d29bc809
subnet-0ad39284a3ed57cfe:
id: subnet-0ad39284a3ed57cfe
subnet-0fb450e17506bd15d:
id: subnet-0fb450e17506bd15d
proxyConfig: {}
type: aws-eks
Provision EKS Cluster¶
- Type the command below to provision the EKS cluster
rctl apply -f custom-networking-demo.yaml
If there are no errors, you will be presented with a "Task ID" that you can use to check progress/status. Note that this step requires creation of infrastructure in your AWS account and can take ~20-30 minutes to complete.
{
"taskset_id": "pkvgygk",
"operations": [
{
"operation": "ClusterCreation",
"resource_name": "custom-networking-demo",
"status": "PROVISION_TASK_STATUS_PENDING"
},
{
"operation": "NodegroupCreation",
"resource_name": "my-ng",
"status": "PROVISION_TASK_STATUS_PENDING"
},
{
"operation": "BlueprintSync",
"resource_name": "custom-networking-demo",
"status": "PROVISION_TASK_STATUS_PENDING"
}
],
"comments": "The status of the operations can be fetched using taskset_id",
"status": "PROVISION_TASKSET_STATUS_PENDING"
}
- Navigate to the specified "project" in your Org
- Click on Infrastructure -> Clusters.
The provisioning process can take approximately 30 minutes to fully complete. Once provisioning is complete, you should see a healthy cluster in the project in your Org