From 785a3635474c0a05d0718b0aa015ceee552554fa Mon Sep 17 00:00:00 2001 From: Claude AI Date: Wed, 4 Mar 2026 18:38:58 +0000 Subject: [PATCH 1/5] feat: nginx-canary namespace --- apps/nginx-canary/namespace.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/apps/nginx-canary/namespace.yaml b/apps/nginx-canary/namespace.yaml index 8d2327f..04f8c8b 100644 --- a/apps/nginx-canary/namespace.yaml +++ b/apps/nginx-canary/namespace.yaml @@ -4,3 +4,4 @@ metadata: name: nginx-canary labels: track: canary + managed-by: argocd From 2d51a422716d112d4ccc97d7cb3de6d60e34f9d0 Mon Sep 17 00:00:00 2001 From: Claude AI Date: Wed, 4 Mar 2026 18:39:22 +0000 Subject: [PATCH 2/5] =?UTF-8?q?feat:=20nginx-canary=20configmap=20?= =?UTF-8?q?=E2=80=94=20orange=20UI,=20v2.0.0,=20X-Version/X-Track=20header?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/nginx-canary/configmap.yaml | 180 +++++++++++++++++++++++++++++++ 1 file changed, 180 insertions(+) create mode 100644 apps/nginx-canary/configmap.yaml diff --git a/apps/nginx-canary/configmap.yaml b/apps/nginx-canary/configmap.yaml new file mode 100644 index 0000000..4a8e3f8 --- /dev/null +++ b/apps/nginx-canary/configmap.yaml @@ -0,0 +1,180 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: nginx-canary-html + namespace: nginx-canary +data: + index.html: | + + + + + + Hello from MCP v2 — Canary + + + +
+
🐤 Canary Release

+
v2.0.0
+

Hello from MCP v2

+

Canary deployment — receiving experimental traffic

+
⚠ This is a CANARY build — not yet promoted to stable
+
+
Your IP Address
+
Detecting...
+
+
+
+
Track
+
canary
+
+
+
Version
+
v2.0.0
+
+
+
Image
+
nginx:1.25-alpine
+
+
+
Replicas
+
2
+
+
+ +
+ + + + nginx.conf: | + server { + listen 80; + server_name _; + root /usr/share/nginx/html; + index index.html; + add_header X-Version "v2.0.0" always; + add_header X-Track "canary" always; + location / { + try_files $uri $uri/ =404; + } + } From 15c2233a71cb5aac57ce12006ba4dec619fd4537 Mon Sep 17 00:00:00 2001 From: Claude AI Date: Wed, 4 Mar 2026 18:39:31 +0000 Subject: [PATCH 3/5] =?UTF-8?q?feat:=20nginx-canary=20deployment=20?= =?UTF-8?q?=E2=80=94=202=20replicas,=20nginx:1.25-alpine?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/nginx-canary/deployment.yaml | 56 +++++++++++++++++++++++++++++++ 1 file changed, 56 insertions(+) create mode 100644 apps/nginx-canary/deployment.yaml diff --git a/apps/nginx-canary/deployment.yaml b/apps/nginx-canary/deployment.yaml new file mode 100644 index 0000000..0e5b363 --- /dev/null +++ b/apps/nginx-canary/deployment.yaml @@ -0,0 +1,56 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: nginx-canary + namespace: nginx-canary + labels: + app: nginx-canary + track: canary + version: v2.0.0 +spec: + replicas: 2 + selector: + matchLabels: + app: nginx-canary + template: + metadata: + labels: + app: nginx-canary + track: canary + version: v2.0.0 + spec: + containers: + - name: nginx + image: nginx:1.25-alpine + ports: + - containerPort: 80 + volumeMounts: + - name: html + mountPath: /usr/share/nginx/html/index.html + subPath: index.html + - name: html + mountPath: /etc/nginx/conf.d/default.conf + subPath: nginx.conf + resources: + requests: + cpu: 50m + memory: 64Mi + limits: + cpu: 200m + memory: 128Mi + readinessProbe: + httpGet: + path: / + port: 80 + initialDelaySeconds: 5 + periodSeconds: 10 + livenessProbe: + httpGet: + path: / + port: 80 + initialDelaySeconds: 10 + periodSeconds: 20 + volumes: + - name: html + configMap: + name: nginx-canary-html From c02e2b29c76ceddc884c8e072e7dfcbb2b3c5952 Mon Sep 17 00:00:00 2001 From: Claude AI Date: Wed, 4 Mar 2026 18:39:36 +0000 Subject: [PATCH 4/5] =?UTF-8?q?feat:=20nginx-canary=20service=20=E2=80=94?= =?UTF-8?q?=20ClusterIP=20port=2080?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/nginx-canary/service.yaml | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 apps/nginx-canary/service.yaml diff --git a/apps/nginx-canary/service.yaml b/apps/nginx-canary/service.yaml new file mode 100644 index 0000000..875a6b1 --- /dev/null +++ b/apps/nginx-canary/service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: nginx-canary + namespace: nginx-canary + labels: + app: nginx-canary + track: canary +spec: + selector: + app: nginx-canary + ports: + - name: http + port: 80 + targetPort: 80 + type: ClusterIP From 16a8ab32763175a0bf28782105ced7e8fba27d81 Mon Sep 17 00:00:00 2001 From: Claude AI Date: Wed, 4 Mar 2026 18:39:41 +0000 Subject: [PATCH 5/5] =?UTF-8?q?feat:=20nginx-canary=20ArgoCD=20application?= =?UTF-8?q?=20=E2=80=94=20automated=20sync,=20prune,=20selfHeal?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/nginx-canary/application.yaml | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 apps/nginx-canary/application.yaml diff --git a/apps/nginx-canary/application.yaml b/apps/nginx-canary/application.yaml new file mode 100644 index 0000000..1cc990e --- /dev/null +++ b/apps/nginx-canary/application.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: nginx-canary + namespace: argocd +spec: + project: default + source: + repoURL: http://gitea-http.gitea.svc.cluster.local:3000/admin/k3s-gitops + path: apps/nginx-canary + targetRevision: HEAD + destination: + server: https://kubernetes.default.svc + namespace: nginx-canary + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true