k8s resource deployments with helm, argocd, eks, terraform, s3 helm repo, etc. These includes deployments, services, ingress, vpas, hpas, volumes, roles and role bindings, eks configurations, s3 helm repository configuration via terraform, etc.
This repo contains kubernetes manifests for for deploying the vote-app application and cipher-tool github cipher-tool dockerhub application
terraform
to provission an ansible control host and a fleet of serversroles
and playbooks
to manage the fleet of servers from the control hostping
, check commecetivity to specific ports
and perform apache
installations on the server fleets.playbooks
ansible-playbook -i inventory playbook_name.yaml
adhoc
or one liners
such as the ping command
ansible -i inventory -m ping
inventory
file contains a list of private ips
defined in yamlargo_cd
, a continous delivery (cicd) tool.
argo_cd
server.terraform
how to set up an eks
cluster, complete with the nrtworking required to succesfully deploy the vote-app application
terraform
terraform
configured on your localawscli
configured with the correct iam credentialscd
to the eks
directory
cd eks/terraform
backend
configuration to local
.format.sh
script and modify the init command by removing the backend arguement
terraform init
env/.terraform.tfvars
file and change the the key_name to the iam key
you have in aws
key pair
on your local machine.format.sh
to initialize terraform on your local macchine, and format and valifdate the codeterraform plan
to plan the resources that will be createdterraform apply
and submit yes when prompted, to create the resourcescluster name
and jumper server public ip
from the outputs in the terminaleks
is very expensive to run, therefor resources must be destroyed after pcaticeaws eks update-kubeconfig --name <cluster-name> --region <cluster-region>
kubectl config get-contexts
eks
terraform destroy --auto-approve
helm
charts which completely define how to deploy both the vote-app application and cipher-tool github cipher-tool dockerhub applications via helm
vote-app
but with extra resources or features.terraform
configurations to set up an s3
bucket as a helm
`repositoryvote-app-repo
to your helm charts
helm repo add s3-repo https://helm-myoneansonlyhelmrepobucket.s3.us-east-1.amazonaws.com
helm repo update
vote-app
via the new repo you just added
helm install vote-app s3-repo/vote-app-chart-1
cipher-tool
via the new repo you just added
helm install vote-app s3-repo/cipher-tool-v020
$ tree
.
|-- README.md
|-- ansible
| |-- inventory
| |-- playbooks
| | |-- apache.yaml
| | |-- apache2.yaml
| | `-- networking.yaml
| |-- roles
| | |-- apache
| | | |-- defaults
| | | | `-- main.yaml
| | | |-- handlers
| | | |-- meta
| | | | `-- main.yaml
| | | |-- tasks
| | | | `-- main.yaml
| | | |-- templates
| | | | `-- index.html.j2
| | | `-- vars
| | `-- networking
| | |-- README.md
| | |-- defaults
| | |-- handlers
| | |-- tasks
| | `-- vars
| `-- server_fleet
| |-- env
| | `-- backend.tfvars
| |-- main.tf
| |-- modules
| | |-- master
| | | |-- data.tf
| | | |-- iam.tf
| | | |-- master.tf
| | | |-- output.tf
| | | |-- provider.tf
| | | |-- ssm_agent.sh
| | | `-- variables.tf
| | |-- networking
| | | |-- locals.tf
| | | |-- network.tf
| | | |-- output.tf
| | | |-- provider.tf
| | | |-- store.tf
| | | `-- variables.tf
| | `-- servers
| | |-- data.tf
| | |-- locals.tf
| | |-- outputs.tf
| | |-- providers.tf
| | |-- servers.tf
| | `-- variables.tf
| |-- output.tf
| |-- providers.tf
| `-- variables.tf
|-- argo_cd
| `-- vote_app.yaml
|-- eks
| |-- kubeconfig
| `-- terraform
| |-- env
| | `-- backend.tfvars
| |-- main.tf
| |-- modules
| | |-- cluster
| | | |-- cluster.tf
| | | |-- outputs.tf
| | | |-- provider.tf
| | | |-- ssm_agent.sh
| | | `-- variables.tf
| | |-- jumper_server
| | | |-- bastion.tf
| | | |-- output.tf
| | | |-- provider.tf
| | | |-- ssm_agent.sh
| | | `-- variables.tf
| | `-- networking
| | |-- cluster_network.tf
| | |-- locals.tf
| | |-- output.tf
| | |-- provider.tf
| | |-- store.tf
| | `-- variables.tf
| |-- outputs.tf
| |-- providers.tf
| `-- variables.tf
|-- get_helm.sh
|-- helm
| |-- cipher-tool-chart
| | |-- Chart.yaml
| | |-- charts
| | |-- templates
| | | |-- _helpers.tpl
| | | `-- deploy_&_svc
| | | `-- deploy&svc.yaml
| | |-- values
| | | |-- dev-values.yaml
| | | |-- prod-values.yaml
| | | |-- staging-values.yaml
| | | `-- values.yaml
| | `-- values.yaml
| |-- vote-app-chart-1
| | |-- Chart.yaml
| | |-- charts
| | |-- templates
| | | |-- _helpers.tpl
| | | |-- deployments
| | | | |-- db.yaml
| | | | |-- redis.yaml
| | | | |-- result.yaml
| | | | |-- vote.yaml
| | | | `-- worker.yaml
| | | |-- ingress
| | | | `-- ingress.yaml
| | | |-- roleBindings
| | | | `-- all_access_role_binding.yaml
| | | |-- roles
| | | | `-- all_access_roles.yaml
| | | |-- secrets
| | | | `-- secret.yaml
| | | |-- service-accounts
| | | | `-- allAccess.yaml
| | | |-- svcs
| | | | |-- db-svc.yaml
| | | | |-- redis-svc.yaml
| | | | |-- result-scv.yaml
| | | | `-- vote-svc.yaml
| | | `-- volumes
| | | |-- pv
| | | | |-- db_pv.yaml
| | | | `-- redis_pv.yaml
| | | `-- pvc
| | | |-- db_pvc.yaml
| | | `-- redis_pvc.yaml
| | |-- values
| | | |-- dev-values.yaml
| | | |-- prod-values.yaml
| | | `-- staging-values.yaml
| | `-- values.yaml
| `-- vote-app-chart-2
| |-- Chart.yaml
| |-- charts
| |-- templates
| | |-- _helpers.tpl
| | |-- deployments
| | | `-- deploy.yaml
| | |-- ingress
| | | `-- ingress.yaml
| | |-- roleBindings
| | | `-- all_access_role_binding.yaml
| | |-- roles
| | | `-- all_access_roles.yaml
| | |-- secrets
| | | `-- secret.yaml
| | |-- service-accounts
| | | `-- allAccess.yaml
| | |-- svcs
| | | `-- svc.yaml
| | `-- volumes
| | |-- pv
| | | `-- pvs.yaml
| | `-- pvc
| | `-- pvcs.yaml
| |-- values
| | |-- dev-values.yaml
| | |-- prod-values.yaml
| | |-- staging-values.yaml
| | `-- values.yaml
| `-- values.yaml
|-- kube-apiserver.yml
|-- pod_scalling
| |-- hpa
| | |-- helm
| | | `-- vote-app-chart-hpa
| | | |-- Chart.yaml
| | | |-- charts
| | | |-- templates
| | | | |-- _helpers.tpl
| | | | |-- deployments
| | | | | `-- deploy.yaml
| | | | |-- hpa
| | | | | `-- hpa.yaml
| | | | |-- ingress
| | | | | `-- ingress.yaml
| | | | |-- roleBindings
| | | | | `-- all_access_role_binding.yaml
| | | | |-- roles
| | | | | `-- all_access_roles.yaml
| | | | |-- secrets
| | | | | `-- secret.yaml
| | | | |-- service-accounts
| | | | | `-- allAccess.yaml
| | | | |-- svcs
| | | | | `-- svc.yaml
| | | | `-- volumes
| | | | |-- pv
| | | | | `-- pvs.yaml
| | | | `-- pvc
| | | | `-- pvcs.yaml
| | | |-- values
| | | | |-- dev-values.yaml
| | | | |-- prod-values.yaml
| | | | |-- staging-values.yaml
| | | | `-- values.yaml
| | | `-- values.yaml
| | `-- hpa.yaml
| |-- metrics-server
| | |-- metrics-server-components.yaml
| | |-- metrics-server-values.yaml
| | `-- prometheus.yaml
| `-- vpa
| |-- helm
| | `-- vote-app-chart-vpa
| | |-- Chart.yaml
| | |-- charts
| | |-- templates
| | | |-- _helpers.tpl
| | | |-- deployments
| | | | `-- deploy.yaml
| | | |-- ingress
| | | | `-- ingress.yaml
| | | |-- roleBindings
| | | | `-- all_access_role_binding.yaml
| | | |-- roles
| | | | `-- all_access_roles.yaml
| | | |-- secrets
| | | | `-- secret.yaml
| | | |-- service-accounts
| | | | `-- allAccess.yaml
| | | |-- svcs
| | | | `-- svc.yaml
| | | |-- volumes
| | | | |-- pv
| | | | | `-- pvs.yaml
| | | | `-- pvc
| | | | `-- pvcs.yaml
| | | `-- vpa
| | | `-- vpa.yaml
| | |-- values
| | | |-- dev-values.yaml
| | | |-- prod-values.yaml
| | | |-- staging-values.yaml
| | | `-- values.yaml
| | `-- values.yaml
| |-- vpa-crd.yaml
| `-- vpa.yaml
|-- s3_helm_repo
| |-- env
| |-- main.tf
| |-- modules
| | |-- repo
| | | |-- outputs.tf
| | | |-- s3.tf
| | | `-- variables.tf
| | `-- repo_files
| | |-- files.tf
| | `-- variables.tf
| |-- output.tf
| |-- providers.tf
| |-- uploads
| | |-- cipher-tool-v020-1.0.0.tgz
| | |-- index.yaml
| | |-- vote-app-chart-1-1.0.0.tgz
| | `-- vote-app-chart-2-1.0.0.tgz
| `-- variables.tf
|-- ssl-script.sh
`-- terraform.tfstate
105 directories, 162 files