feature/multicluster
Some checks failed
Deploy Gitea Pages / build-and-deploy (push) Failing after 5s
Some checks failed
Deploy Gitea Pages / build-and-deploy (push) Failing after 5s
Co-authored-by: Danijel Simeunovic <danijel.simeunovic@trumf.no> Reviewed-on: #4 Reviewed-by: gitea_admin <admin@forteapps.net>
This commit was merged in pull request #4.
This commit is contained in:
@@ -207,7 +207,7 @@ kubectl get secrets -n argocd -l argocd.argoproj.io/secret-type=repository
|
||||
# Settings → Repositories → Should show "Successful" status
|
||||
|
||||
# Test by creating an application
|
||||
kubectl apply -f _app-of-apps.yaml
|
||||
kubectl apply -f _app-of-apps-upc-dev.yaml # or _app-of-apps-upc-prod.yaml
|
||||
|
||||
# Check application sync status
|
||||
kubectl get applications -n argocd
|
||||
@@ -1352,13 +1352,13 @@ kubectl get deployment argocd-server -n argocd \
|
||||
-o jsonpath='{.spec.template.spec.containers[0].image}'
|
||||
|
||||
# Update version in values
|
||||
vim infra/values/argocd-values.yaml
|
||||
vim infra/values/base/argocd-values.yaml
|
||||
|
||||
# Or upgrade via Helm directly
|
||||
helm upgrade argocd argo-cd \
|
||||
--repo https://argoproj.github.io/argo-helm \
|
||||
--namespace argocd \
|
||||
--values infra/values/argocd-values.yaml \
|
||||
--values infra/values/base/argocd-values.yaml \
|
||||
--version 6.0.0 # New version
|
||||
|
||||
# Verify
|
||||
@@ -1454,8 +1454,8 @@ kubectl top pods --all-namespaces --sort-by=cpu
|
||||
Example: Adding Redis
|
||||
|
||||
```bash
|
||||
# 1. Create application manifest
|
||||
cat > infra/redis-application.yaml <<EOF
|
||||
# 1. Create application manifest in base/
|
||||
cat > infra/base/redis-application.yaml <<EOF
|
||||
apiVersion: argoproj.io/v1alpha1
|
||||
kind: Application
|
||||
metadata:
|
||||
@@ -1465,15 +1465,17 @@ metadata:
|
||||
argocd.argoproj.io/sync-wave: "1"
|
||||
spec:
|
||||
project: default
|
||||
source:
|
||||
repoURL: https://charts.bitnami.com/bitnami
|
||||
sources:
|
||||
- repoURL: https://charts.bitnami.com/bitnami
|
||||
chart: redis
|
||||
targetRevision: 18.0.0
|
||||
helm:
|
||||
values: |
|
||||
auth:
|
||||
enabled: true
|
||||
password: changeme
|
||||
releaseName: redis
|
||||
valueFiles:
|
||||
- \$values/infra/values/base/redis-values.yaml
|
||||
- repoURL: ssh://git@git.forteapps.net:2222/Forte/launchpad.git
|
||||
targetRevision: HEAD
|
||||
ref: values
|
||||
destination:
|
||||
server: https://kubernetes.default.svc
|
||||
namespace: redis
|
||||
@@ -1485,30 +1487,37 @@ spec:
|
||||
- CreateNamespace=true
|
||||
EOF
|
||||
|
||||
# 2. Commit and push
|
||||
git add infra/redis-application.yaml
|
||||
# 2. Add to base kustomization
|
||||
# Edit infra/base/kustomization.yaml and add: - redis-application.yaml
|
||||
|
||||
# 3. Create base values file
|
||||
cat > infra/values/base/redis-values.yaml <<EOF
|
||||
auth:
|
||||
enabled: true
|
||||
EOF
|
||||
|
||||
# 4. Commit and push
|
||||
git add infra/base/redis-application.yaml infra/values/base/redis-values.yaml infra/base/kustomization.yaml
|
||||
git commit -m "Add Redis infrastructure component"
|
||||
git push
|
||||
|
||||
# 3. ArgoCD will auto-sync within 60 seconds
|
||||
# 5. ArgoCD will auto-sync within 60 seconds
|
||||
```
|
||||
|
||||
### Multi-Cluster Setup (Future)
|
||||
### Multi-Cluster Setup
|
||||
|
||||
For multi-cluster deployments:
|
||||
The repository supports multiple clusters via Kustomize overlays:
|
||||
|
||||
```yaml
|
||||
# Different destinations per environment
|
||||
# dev-cluster
|
||||
destination:
|
||||
server: https://dev.k8s.example.com
|
||||
namespace: myapp
|
||||
- **upc-dev** (default): `infra/overlays/upc-dev/` — uses base Applications as-is
|
||||
- **upc-prod**: `infra/overlays/upc-prod/` — patches value file paths from `upc-dev` to `upc-prod`
|
||||
|
||||
# prod-cluster
|
||||
destination:
|
||||
server: https://prod.k8s.example.com
|
||||
namespace: myapp
|
||||
```
|
||||
Each cluster has its own:
|
||||
- Root app-of-apps file: `_app-of-apps-upc-dev.yaml` / `_app-of-apps-upc-prod.yaml`
|
||||
- Cluster-specific Helm values: `infra/values/upc-dev/` / `infra/values/upc-prod/`
|
||||
- Sealed secrets: `secrets/upc-dev/` (others as needed)
|
||||
- Apps overlay: `apps/overlays/upc-dev/` / `apps/overlays/upc-prod/`
|
||||
|
||||
To add a new cluster, create a new overlay directory (e.g., `infra/overlays/upc-staging/`) with patches that swap the value file paths.
|
||||
|
||||
### Blue-Green Deployments
|
||||
|
||||
|
||||
Reference in New Issue
Block a user