Skip to main content
Version: 3.3.x

Other Configuration Tasks

The base infrastructure and cluster configuration is managed by the docker-compose tooling provided by CloudOps for Kubernetes. The following are some less-common tasks that can be completed using the docker-compose tooling.

note

Perform the following steps on the operations workstation, ideally the workstation you used for the initial setup. For more information, see the Operations Workstation documentation.

Clean Up the Cluster

warning

This will destroy the Kubernetes cluster, Docker repositories and their images, DNS zones and other important infrastructure.

To clean up the CloudOps for Kubernetes cluster:

  1. Checkout the version of CloudOps for Kubernetes currently in use.

  2. Copy the docker-compose.override.yml file that you saved after completing the initial setup of the cluster or when last updating the cluster.

  3. Set the Docker Compose parameter TF_VAR_bootstrap_mode in the docker-compose.override.yml file to cleanup.

  4. Run the following Docker Compose command to build the Docker image:

    docker-compose build
  5. Run the following Docker Compose command to clean up the cluster:

    docker-compose up

Force Clean Up the Cluster

warning

The clean up action destroys the following assets:

  • Kubernetes cluster
  • Docker repositories
  • Container images
  • DNS zones
  • Other important infrastructure

Force clean up will also attempt to destroy all existing Terraform workspaces.

warning

Do not use foce clean up mode if your AWS account contains other AWS infrastructure. Force clean up may impact or destroy AWS infrastructure not deployed or managed by CloudOps for Kubernetes.

Force clean up mode performs the following tasks:

  • Empty all Simple Cloud Storage Service (S3) buckets in your account that follow the same bucket name.
  • Empty all Dynamo Database (DynamoDB) tables in your account that follow the same table name.
  • Delete non-attached Elastic Block Store (EBS) volumes in your account.
  • Delete all Elastic Container Registry (ECR) repositories in your account.
  • Delete all Domain Name Service (DNS) hosted zones in your account that match the domain name used in the TF_VAR_domain variable in your docker-compose.override.yaml file.
  • Delete all Amazon Certificate Manager (ACM) certificates in your account that match the domain name that you use in the TF_VAR_domain variable in your docker-compose.override.yaml file.
  • Delete all Ambassador-created AWS Application Load Balancers (ALB) and Ambassador-specific target groups and security groups.
  • Delete all HAProxy AWS Network Load Balancers (NLB).
  • Delete the Elastic File System (EFS) volume and related Security Groups for the efs-provisioner service.

This mode is especially useful when the cleanup bootstrap mode fails and there are Terraform state locks existing, and so on. :::

To clean up the CloudOps for Kubernetes cluster:

  1. Checkout the version of CloudOps for Kubernetes currently in use.

  2. Copy the docker-compose.override.yml file that you saved after completing the initial setup of the cluster or when you were last updating the cluster.

  3. Set the Docker Compose parameter TF_VAR_bootstrap_mode in the docker-compose.override.yml file to force-cleanup.

  4. Set the Docker Compose parameter TF_VAR_approve_force_cleanup in the docker-compose.override.yml file to true.

  5. Run the following Docker Compose command to build the Docker image and force-cleanup the existing cluster resources:

    docker-compose up --build

Show the Current State of the Cluster

To show the current state of the CloudOps for Kubernetes cluster:

  1. Checkout the version of CloudOps for Kubernetes currently in use.

  2. Copy the docker-compose.override.yml file that you saved after completing the initial setup of the cluster or when you were last updating the cluster.

  3. Set the Docker Compose parameter TF_VAR_bootstrap_mode in the docker-compose.override.yml file to show.

  4. Run the following Docker Compose command to build the Docker image:

    docker-compose build
  5. Run the following Docker Compose command to show the current state of the cluster:

    docker-compose up

Create Local Terraform Configuration

note

You may need to install dependencies before manipulating the CloudOps for Kubernetes Terraform state locally. You will also need to update the current context of Kubectl to the Kubernetes cluster created by the CloudOps for Kubernetes Docker image.

To create Terraform backend configuration files locally so you can locally manipulate the CloudOps for Kubernetes Terraform state:

  1. Checkout the version of CloudOps for Kubernetes currently in use.

  2. Copy the docker-compose.override.yml file that you saved after completing the initial setup of the cluster or when you were last updating the cluster.

  3. Set the Docker Compose parameter TF_VAR_bootstrap_mode in the docker-compose.override.yml file to create-terraform-files.

  4. Update the volumes section of the Docker Compose configuration with the path to the CloudOps for Kubernetes code.

  5. Run the following Docker Compose command to build the Docker image:

    docker-compose build
  6. Run the following Docker Compose command to create the Terraform backend configuration files locally:

    docker-compose up
  7. In the CloudOps for Kubernetes code, go to the bootstrap/terraform/ folder:

    cd bootstrap/terraform
  8. Initialize Terraform:

    terraform init
    note

    If you have created Terraform configuration files previously for a different cluster, you may need to clean up any state left behind.

  9. To manipulate the CloudOps for Kubernetes cluster, select the Terraform workspace bootstrap:

    terraform workspace select bootstrap
  10. Test your Terraform configuration by refreshing your Terraform state with the following command:

    terraform refresh -var-file=bootstrap.tfvars