Elastic Kubernetes Service (Amazon EKS)
From KubeRig version 0.0.30 on the initEnvironment
task also supports Amazon Elastic Kubernetes Service (EKS).
KubeRig project setup
In case you want to jump right in you can download or clone the kuberig-starter repository.
In case KubeRig is new for you or you want to know the details about the project setup. Please read this first.
Create an EKS cluster
Having never used any AWS service (I know what planet am I from, right). Trying to use the EKS service from Amazon was a real pain. It was a total suprise to experience how difficult it was.
After inspecting the aws command line and the options needed (subnet-ids,security-group-id,role-arn) I gave up trying to use it directly. Because I remembered this tweet from Weaveworks about the eksctl command line tool. Thank god they made this command line tool!
In addition to eksctl
you will also need aws-iam-authenticator installed otherwise you will get an warning and kubectl
will not be able to authenticate to the cluster.
Now we can just execute this simple command.
eksctl create cluster
After a couple of minutes the cluster is up and running and your kubectl context will be updated to the newly created cluster.
Initialize the KubeRig environment
We can now use the initEnvironment
task to initialize a KubeRig environment based on the kubectl
config for EKS clusters.
With the following command we create an environment called dev based on the current kubectl
context.
$./gradlew initEnvironment --currentKubectlContext --name dev
The --currentKubectlContext
flag is key.
For details about the initEnvironment
task please visit the initEnvironment task page.
After the command completes you can start coding resources and execute the deployDevEnvironment task to deploy them.
Limitations
The --currentKubectlContext
flag of the initEnvironment
task is still brand new (available from KubeRig version 0.0.27).
For limitations about the initEnvironment
task please visit the initEnvironment task page.
In case you run into problems please create an issue on github or jump in and create a pull-request.
What is next?
Now that the most important providers are supported by the initEnvironment
task. I'll be focusing on adding new features.
Stay tuned and happy resource coding!