[2019Q2] UX Scorecard for adding EKS cluster to GitLab
Job To Be Done
When managing my clusters using AWS, I want to add my Kubernetes cluster to GitLab, so I can deploy and manage my containerized application at scale using advanced features.
Experience Baseline
Benchmark Score: C-
Workflow needs improvement, but user can still finish completing the task. It usually takes longer to complete the task than it should. User may abandon the process or try again later.
Frustration: Medium
Task Completion: Successful but with unnecessary steps
I keep the template as Amazon S3 and I add the URL provided from the docs.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I add my stack name taurie-eks-vpc and keep the other details using the defaults.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I don't touch any of the options and choose Next.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I review my VPC and choose to create it.
Neutral: Nothing unexpected arises.
4. Install kubectl and AWS CLI
Step
Screenshot
Emotional grade
While my VPC is being created, I navigate back to the docs and see I need to install kubectl. I navigate to those docs.
Neutral: There are two options and I'm not entirely sure which is best to use but I just choose to use the one provided by Amazon.
Step
Screenshot
Emotional grade
I believe I already have kubectl installed from previously creating a GKE cluster, so I check the version in my terminal using kubectl version. It outputs v1.15.1
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
From the docs, I see I need the latest AWS CLI. I follow the link to the docs.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I see I can use pip3 if my Python version is 3 or greater so I check my Python version in the terminal using my version manager, asdf. I run asdf current Python and see that my version is 3.6.2.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I follow the docs and run the pip command in my terminal. I then run aws --version to check that I have the latest version.
Neutral: Nothing unexpected arises.
5. Create cluster
Step
Screenshot
Emotional grade
I navigate back to the docs and see I am ready to create my cluster. I choose to create my cluster using the AWS console. I follow the link in the docs to the EKS console and choose Create cluster.
Positive: I am relieved that I don't have any more prereqs and I can finally create my cluster.
Step
Screenshot
Emotional grade
I fill out my cluster name taurie-eks-cluster, keep the Kubernetes version as the default, and choose the Role name I created previously.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I choose the VPC I created earlier and keep the subnets selected. I made sure to select the security group associated with my VPC.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I keep the rest of the settings as the default and create my cluster. Docs say it will take 10-15 minutes
Negative: I am disappointed that it will take so long to create the cluster.
Step
Screenshot
Emotional grade
The cluster is created in less than ten minutes.
Positive: It took less than ten minutes to create and while this is still a long time, I'm glad it took less time than the docs forewarned.
6. Create a kubeconfig file
Step
Screenshot
Emotional grade
I follow the docs to create a kubeconfig file and test my configuration.
Neutral: Nothing unexpected arises.
7. Launch worker nodes
Step
Screenshot
Emotional grade
I follow the docs and learn I need to launch worker nodes by creating another stack. I follow the link in the docs to the CloudFormation console and choose Create stack.
Negative: Nothing unexpected happens, but I'm a little irritated I have to create another stack.
Step
Screenshot
Emotional grade
I select the Amazon S3 template, as per the docs and paste in the URL the docs provide.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
On the details view, I add a name taurie-eks-cluster-worker-nodes and add the name of my cluster. I add the security group that I used for the VPC attached to my cluster.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I add a name for my node group taurie-node-group and keep the other node options as the default.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I refer to the docs for the NodeImageId and copy the ami that matches the region I created the cluster in.
Negative: Its not immediately clear what region my cluster was created in. I didn't select a region during creation. I have to know what region it is and know where to look.
Negative: I am not sure why KeyName wasn't included as part of the prereqs.
7a. Adding a key name
Step
Screenshot
Emotional grade
From here, I am linked to another docs page for how to create a Key Pair.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
From this docs page, I am linked to Amazon EC3 console and told to navigate to Network & Security and Choose Key Pairs.
Negative: I am being linked from docs page to docs page.
Step
Screenshot
Emotional grade
I click Create Key Pair from the top of the page.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I enter in my name into the modal and click Create.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I navigate back to VPC screen, but my key pair doesn't automatically appear in the dropdown. I have to refresh which looses all my progress.
Negative: I have to refresh the page in order for my KeyName to appear. This means I lose all my progress on this screen.
Step
Screenshot
Emotional grade
I fill out all the fields again. I keep the Bootstrap Arguments blank. I add my VPC and the Subnets from my VPC.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I skip the options page.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I review my VPC, acknowledge that IAM resources may be created, and create the stack.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
Once created, I view the Outputs tab, per the docs. I see I will need the NodeInstanceRole for later, so I leave this page up.
Neutral: Nothing unexpected arises.
7. Enable worker nodes
Step
Screenshot
Emotional grade
Per the docs, I download the configuration map using the command they give me.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I create a new file in my terminal using nano. It doesn't tell me what to name the file so I look ahead to the next step to see how the file will be used. There it says it will apply the file to my cluster using aws-auth-cm.yaml so I use this for my file name.
-
Negative: Its unclear what to name the file or if it matters until I read further along in the docs.
Step
Screenshot
Emotional grade
I paste the content of the file and add my rolearn.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I save the file and then apply it to my cluster.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
Per the docs, I watch the nodes and wait for them to be ready.
Positive: Its nice to see the nodes go from Not Ready to Ready quickly.
8. Adding my cluster to GitLab
Step
Screenshot
Emotional grade
I think I am now ready to add my cluster to GitLab. I navigate back to GitLab and add my cluster name.
Positive: I am happy to be finally at the step where I can add my cluster.
I type the command found in the docs to get my API url and add it to GitLab.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I type the command found in the docs to get my token name.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I use the token name in order to get my certificate. Docs call it token name in one line and secret name in another, so slightly confusing but safe to assume it means the same thing. I add the cert out to GitLab
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I need to create a service account file to apply to my cluster. Using nano, I do this and then apply the file to my cluster.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I use the command in the docs to get the token output.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I copy the token output and add it to GitLab. I choose to not add a project namespace and keep my RBAC cluster managed by GitLab.
Neutral: Nothing unexpected arises.
Step
Screenshot
Emotional grade
I add my cluster to GitLab. There is nothing telling me that its successfully been added but I assume it has been because I see no errors.
Neutral: I finally finished all the steps of adding my EKS cluster to GitLab but its a bit lacking in excitement as I'm unsure if it successfully is connected.