Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
175 changes: 175 additions & 0 deletions apps/drone-tm-prod.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,175 @@
# Drone Task Manager Application - Production Environment
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: drone-tm-prod
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
source:
repoURL: https://github.com/hotosm/drone-tm
targetRevision: HEAD
path: charts/drone-tm
helm:
values: |
global:
domain: drone-tm.hotosm.org
storageClass: "gp3"
ingress:
className: "nginx"

backend:
replicaCount: 3
resources:
limits:
cpu: 2000m
memory: 2Gi
requests:
cpu: 1000m
memory: 1Gi
autoscaling:
enabled: true
minReplicas: 3
maxReplicas: 10
targetCPUUtilizationPercentage: 70
ingress:
enabled: true
hosts:
- host: api.drone-tm.hotosm.org
paths:
- path: /
pathType: Prefix
tls:
- secretName: drone-tm-prod-tls
hosts:
- api.drone-tm.hotosm.org

frontend:
replicaCount: 3
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 250m
memory: 256Mi
ingress:
enabled: true
hosts:
- host: drone-tm.hotosm.org
paths:
- path: /
pathType: Prefix
tls:
- secretName: drone-tm-prod-tls
hosts:
- drone-tm.hotosm.org

worker:
replicaCount: 3
resources:
limits:
cpu: 1000m
memory: 1Gi
requests:
cpu: 500m
memory: 512Mi

odm:
enabled: true
nodeodm:
replicaCount: 2
resources:
limits:
cpu: 4000m
memory: 8Gi
requests:
cpu: 2000m
memory: 4Gi
webodm:
replicaCount: 1
resources:
limits:
cpu: 1000m
memory: 2Gi
requests:
cpu: 500m
memory: 1Gi
worker:
replicaCount: 2
resources:
limits:
cpu: 2000m
memory: 4Gi
requests:
cpu: 1000m
memory: 2Gi

postgresql:
enabled: true
primary:
resources:
limits:
cpu: 4000m
memory: 4Gi
requests:
cpu: 2000m
memory: 2Gi
persistence:
size: 200Gi
storageClass: "gp3"

minio:
enabled: true
replicas: 2
resources:
limits:
cpu: 2000m
memory: 4Gi
requests:
cpu: 1000m
memory: 2Gi
persistence:
size: 500Gi
storageClass: "gp3"

redis:
enabled: true
architecture: replication
master:
resources:
limits:
cpu: 1000m
memory: 2Gi
requests:
cpu: 500m
memory: 1Gi
persistence:
size: 50Gi
storageClass: "gp3"
replica:
replicaCount: 2
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 250m
memory: 512Mi
persistence:
size: 25Gi
storageClass: "gp3"
destination:
server: https://kubernetes.default.svc
namespace: drone-tm-prod
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- PrunePropagationPolicy=foreground
- PruneLast=true
revisionHistoryLimit: 10
140 changes: 140 additions & 0 deletions apps/drone-tm-stage.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
# Drone Task Manager Application - Staging Environment
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: drone-tm-staging
namespace: argocd
finalizers:
- resources-finalizer.argocd.argoproj.io
spec:
project: default
source:
repoURL: https://github.com/hotosm/drone-tm
targetRevision: HEAD
path: charts/drone-tm
helm:
values: |
global:
domain: drone-tm-staging.hotosm.org
storageClass: "gp3"
ingress:
className: "nginx"

backend:
replicaCount: 2
resources:
limits:
cpu: 1000m
memory: 1Gi
requests:
cpu: 500m
memory: 512Mi
ingress:
enabled: true
hosts:
- host: api.drone-tm-staging.hotosm.org
Copy link
Member

@spwoodcock spwoodcock Oct 12, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would you advise this flatter URL structure like:

  • drone-tm-staging.hotosm.org
  • drone-tm-dev.hotosm.org
  • drone-tm.hotosm.org

Or a subdomain approach I have used elsewhere:

  • stage.drone-tm.hotosm.org
  • dev.drone-tm.hotosm.org
  • drone-tm.hotosm.org

Or perhaps it makes no difference / no preference?

paths:
- path: /
pathType: Prefix
tls:
- secretName: drone-tm-staging-tls
hosts:
- api.drone-tm-staging.hotosm.org

frontend:
replicaCount: 2
resources:
limits:
cpu: 500m
memory: 512Mi
requests:
cpu: 250m
memory: 256Mi
ingress:
enabled: true
hosts:
- host: drone-tm-staging.hotosm.org
paths:
- path: /
pathType: Prefix
tls:
- secretName: drone-tm-staging-tls
hosts:
- drone-tm-staging.hotosm.org

worker:
replicaCount: 2
resources:
limits:
cpu: 1000m
memory: 1Gi
requests:
cpu: 500m
memory: 512Mi

odm:
enabled: true
nodeodm:
replicaCount: 1
resources:
limits:
cpu: 2000m
memory: 4Gi
requests:
cpu: 1000m
memory: 2Gi

postgresql:
enabled: true
primary:
resources:
limits:
cpu: 2000m
memory: 2Gi
requests:
cpu: 1000m
memory: 1Gi
persistence:
size: 50Gi
storageClass: "gp3"

minio:
enabled: true
replicas: 1
resources:
limits:
cpu: 1000m
memory: 2Gi
requests:
cpu: 500m
memory: 1Gi
persistence:
size: 100Gi
storageClass: "gp3"

redis:
enabled: true
architecture: standalone
master:
resources:
limits:
cpu: 500m
memory: 1Gi
requests:
cpu: 250m
memory: 512Mi
persistence:
size: 10Gi
storageClass: "gp3"
destination:
server: https://kubernetes.default.svc
namespace: drone-tm-staging
syncPolicy:
automated:
prune: true
selfHeal: true
syncOptions:
- CreateNamespace=true
- PrunePropagationPolicy=foreground
- PruneLast=true
revisionHistoryLimit: 10
Loading