Deploy a Dynamic Admission Controller with Terraform

1.25 hours
  • 3 Learning Objectives

About this Hands-on Lab

In this lab, you are being asked to create a dynamic admission controller with Terraform that will use a validating admission webhook. You will create and deploy a validating webhook, along with the webhook configuration. Start by creating the webhook Docker image from the provided code. You will then update the webhook deployment Terraform code with the image, and deploy the validating webhook, as well as the webhook configuration code, to finish up the deployment.

Learning Objectives

Successfully complete this lab by achieving the following learning objectives:

Lab Setup
  1. Move to the validating-admission-webhook directory.

  2. Create an Access Key in the AWS console. (You need to copy the Access Key ID and Secret Key somewhere safe and accessible for the next step).

  3. Make the lab-setup.sh script executable.

  4. Run the lab-setup.sh script.

    Note: This script will run for about 10-15 minutes.

Create the Webhook Docker Image

Note: Make sure you have set up your Docker Hub account before doing this objective.

  1. Move into the validating-web hook directory.

  2. Log in to Docker Hub from the terminal.

  3. Update the Makefile with your Docker Hub username.

  4. Build the webhook.

    Note: This can take between 5-10 minutes.

  5. Build the Docker image.

  6. Push the Docker image to Docker Hub.

  7. Deploy the certs.

Deploy the Validating Webhook Configuration and Webhook
  1. Update the deployment configuration file with your Docker Hub username.

  2. Initialize the working directory.

  3. Apply the configuration.

  4. Confirm the validating webhook is up and available.

Additional Resources

In this scenario, you will first need to set up the lab, which involves the deployment of an EKS cluster. You will then build the Validating Webhook Configuration from the supplied code that is written in Go. Once the Docker image has been built, you will need to push your image to Docker Hub. You will then update the supplied Terraform configuration with your image and apply the Terraform code to deploy your Validating Webhook as well as the Webhook configuration. Confirm the webhook has been deployed successfully and is up and running to complete the lab.

Note: If you don't have a Docker Hub account, you will need to create a free Docker Hub account before you start the lab.

Lab Resources

What are Hands-on Labs

Hands-on Labs are real environments created by industry experts to help you learn. These environments help you gain knowledge and experience, practice without compromising your system, test without risk, destroy without fear, and let you learn from your mistakes. Hands-on Labs: practice your skills before delivering in the real world.

Sign In
Welcome Back!

Psst…this one if you’ve been moved to ACG!

Get Started
Who’s going to be learning?