Some checks reported errors
--> Linted: ANSIBLE No errors were found in the linting process
--> Linted: GITLEAKS No errors were found in the linting process
--> Linted: JSCPD No errors were found in the linting process
--> Linted: MARKDOWN Errors were detected, please view logs
--> Linted: NATURAL_LANGUAGE Errors were detected, please view logs
Lint Code Base / run-lint (push) Failing after 32s
1.7 KiB
1.7 KiB
Terraform-Ansible-Helm Deployer
Usage
From the terraform/ folder:
$ terraform init
$ terraform plan
$ terraform apply
Decisions and goals
The terraform-provider-libvirt has been chosen over Vagrant to deploy the VMs as a way to simplify the structure of the project. The choice over a cloud provider such as AWS or GCP has been done to not incur into billing cost during troubleshooting and deployments.
Terraform script
The Terraform script roughly follows these steps:
- Deploy 3 VMs (one master and two workers) with:
- 2 vCPUs;
- 2GB vRAM;
- 20GB of disk space;
- Ubuntu 24.04 LTS;
- An Ansible user.
- Call an Ansible Playbook that:
- Configures the master node and installs Kubernetes;
- Configures the network for the Kubernetes cluster;
- Configures the worker nodes and installs Kubernetes.
- Create the
kiratech-testnamespace; - Run the CIS Kubernetes benchmark;
- Copy the helm folder to the master node and install helm.
Next steps
The script currently lacks:
- [] Capability of deploying an Helm application;
- [] Usage of Terraform outputs to populate Ansible files;
CIS Kubernetes Benchmark
The CIS Benchamrk is one of (if not the) most popular benchmarks publicly available, and also has a simple way to implement it in a deployment pipeline using the kube-bench implementation.
Linting
The project uses Github Actions as a CI tool, running super-linter on the entire codebase.