Skip to content

Latest commit

 

History

History
70 lines (57 loc) · 2.15 KB

README.md

File metadata and controls

70 lines (57 loc) · 2.15 KB

Bootstrapping using Argo CD

Introduction

The k8s-bootstrapper leverages the Argo CD's App of Apps pattern. We use Helm to achieve this.

# Bootstrap
.
├── Chart.yaml # boiler plate chart.yaml
├── README.md 
├── bootstrap-resources # ingress/cluster issuer
├── bootstrap.yaml # parent app 
├── templates # child app templates (one file per app)
└── values.yaml # bootstrapper chart overrides: enable/disable apps

In this case, the parent app "bootstrap" is installed along with its child apps which are rendered from templates/ and bootstrap-resources/ directories. By default, we have disabled most of the apps, but you can easily enable them by setting the flags in the values.yaml

# values.yaml
# Global
domain: 
storageClass: "do-block-storage"
# Application specific
bots:
  enable: false
guestbook:
  enable: false
kyverno:
  enable: false  
logging:
  enable: false
observability:
  enable: false
  pdkey:
  storageSize: 50Gi
  retention: 5d
traefik:
  enable: true  
trivy:
  enable: false

Note: Save changes to the file as deemed fit and push the changes to your git repository. The bootstrapper follows a strict GitOps workflow, so all the changes need to be pushed to git to reflect the changes in the Kubernetes cluster. If you made changes, update bootstrap.yaml to use your repoURL.

Bootstrapping

# Let the bootstrap begin!
kubectl apply -f bootstrap/bootstrap.yaml

Access the ArgoCD Web UI

# Get the argo password
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
# Expose the argocd-server and login with the credentials on localhost:8080
kubectl -n argocd port-forward svc/argocd-server 8080:80
# Open the browser and go to localhost:8080 to access Argo CD UI
# Login with username: `admin,` password: `paste the value from the previous step.`

Note: Accessing Argo CD via FQDN (optional)

argocd-ui

Next steps »