This repo shows GitOps, IaC approach to managing runtime environment using Argo CD. Also, we use Istio for secure(strict mTLS) service to service communications.
To run, you must have the latest version of Docker Desktop with Kubernetes enabled.
Repo structure:
platform-infra
- contains base infrastructure managed by terraform to prepare and configure base for runtime environmentplatform-applications-prod
- this is a GitOps repo used by Argo CD to sync state forprod
platform applicationsapplications-prod
- this is a GitOps repo used by Argo CD to sync state forprod
applications
This folder contains terraform scripts with basic setup for the platform based on Kubernetes and docker-desktop.
cd platform-infra/external-secrets
terraform init --backend-config="path=terraform-prod.tfstate" --reconfigure
cd platform-infra/external-secrets
terraform apply --var-file=inputs-prod.tfvars -auto-approve
cd platform-infra/istio
terraform init --backend-config="path=terraform-prod.tfstate" --reconfigure
cd platform-infra/istio
terraform apply --var-file=inputs-prod.tfvars -auto-approve
cd platform-infra/argo-cd
terraform init --backend-config="path=terraform-prod.tfstate" --reconfigure
cd platform-infra/argo-cd
terraform apply --var-file=inputs-prod.tfvars -auto-approve
Username: admin
Password: admin
On Linux add inside /etc/hosts
record:
127.0.0.1 argo-cd.prod.in.localhost
This is a GitOps repo used by Argo CD to sync state for prod platform applications.
Add custom helm chart.
If it has dependencies, run:
helm dependency build
On Linux add inside /etc/hosts
record:
127.0.0.1 argo-rollouts.prod.in.localhost
On Linux add inside /etc/hosts
record:
127.0.0.1 temporal.prod.in.localhost
On other systems check where it should be added=)
On Linux add inside /etc/hosts
record:
127.0.0.1 n8n.prod.in.localhost
On other systems check where it should be added=)
This is a GitOps repo used by Argo CD to sync state for prod applications.