chore: remove GCP + GitLab references, migrate to Gitea registry
Build + push image / build-and-push (push) Successful in 1m8s
Build + push image / build-and-push (push) Successful in 1m8s
Replace eu.gcr.io/vnc-development image refs with gitea.saas.vnc.biz/vnciac, swap gcr-json-key pull secret for gitea-registry, and update CI/deploy docs from GitLab CI to Gitea Actions.
This commit is contained in:
@@ -65,9 +65,8 @@ Dockerized Prosody **13.0.6** XMPP server for VNCtalk, built against **Lua 5.4**
|
|||||||
|
|
||||||
## CI / deploy
|
## CI / deploy
|
||||||
|
|
||||||
- GitLab CI (`.gitlab-ci.yml`). `main` builds + pushes to `eu.gcr.io/vnc-development/vnctalk-prosody:development-$CI_COMMIT_SHORT_SHA`, then Trivy-scans the saved image.
|
- Gitea Actions (`.gitea/workflows/deploy.yml`). `main` builds with kaniko (daemon-less) and pushes to the Gitea registry as `gitea.saas.vnc.biz/vnciac/vnctalk-prosody:sha-<short-sha>` and `:latest`. Auth via `REGISTRY_USER` / `REGISTRY_TOKEN` actions secrets.
|
||||||
- Tags `prod-*` retag the matching `development-<version>` to `eu.gcr.io/vnc-dev-275609/vnctalk-prosody:production-<version>`. Tags `stable-*` retag to `eu.gcr.io/vnc-stable/vnctalk-prosody:stable-<version>`. **No rebuild on promotion** — the `<version>` suffix must match an existing dev tag.
|
- Kubernetes deploy is via the ArgoCD application in the `vnc-iac-env` GitOps repo (`dev/charts/vnctalk-prosody`). The in-repo `helm/prosody/` + `argo/prosody.yaml` are legacy references, not the live deploy path.
|
||||||
- Kubernetes deploy is via the Helm chart in `helm/prosody/`, synced by ArgoCD (`argo/prosody.yaml`). The Argo manifest sets the live image tag (`release-13.0.6-vnc`) and TLS-update sidecar (`tlsUpdates`).
|
|
||||||
|
|
||||||
## Module conventions
|
## Module conventions
|
||||||
|
|
||||||
|
|||||||
@@ -47,16 +47,13 @@ There is no application source beyond Lua modules and shell/config templates —
|
|||||||
- No linter or automated test command exists for this repo; verification is "does the image build and does
|
- No linter or automated test command exists for this repo; verification is "does the image build and does
|
||||||
Prosody start against the rendered config" (see `test.sh` and `config/startup.sh`).
|
Prosody start against the rendered config" (see `test.sh` and `config/startup.sh`).
|
||||||
|
|
||||||
## CI/CD (`.gitlab-ci.yml`)
|
## CI/CD (`.gitea/workflows/deploy.yml`)
|
||||||
|
|
||||||
- `main` branch pushes: build + push image to `eu.gcr.io/vnc-development/vnctalk-prosody:development-$CI_COMMIT_SHORT_SHA`,
|
- `main` branch pushes: build the image with kaniko (daemon-less, fetched via `crane`) and push to the
|
||||||
then Trivy-scan the saved image.
|
Gitea registry as `gitea.saas.vnc.biz/vnciac/vnctalk-prosody:sha-<short-sha>` and `:latest`.
|
||||||
- Tags matching `prod-*`: retag the matching `development-<version>` image to
|
- Registry auth comes from the Gitea Actions secrets `REGISTRY_USER` / `REGISTRY_TOKEN`.
|
||||||
`eu.gcr.io/vnc-dev-275609/vnctalk-prosody:production-<version>` and push.
|
- The image is deployed by the ArgoCD application in the `vnc-iac-env` GitOps repo
|
||||||
- Tags matching `stable-*`: retag the matching `development-<version>` image to
|
(`dev/charts/vnctalk-prosody`), not by any manifest in this repo.
|
||||||
`eu.gcr.io/vnc-stable/vnctalk-prosody:stable-<version>` and push.
|
|
||||||
- Promotion (dev → prod/stable) works by re-tagging an already-built dev image, not rebuilding — the
|
|
||||||
`<version>` suffix must match an existing `development-<version>` tag.
|
|
||||||
|
|
||||||
## Working with patches vs. vnctalk modules
|
## Working with patches vs. vnctalk modules
|
||||||
|
|
||||||
|
|||||||
@@ -32,8 +32,9 @@ argo/prosody.yaml → helm/prosody/ → Docker image (release-13.0.6-vnc)
|
|||||||
chart and overrides values as needed.
|
chart and overrides values as needed.
|
||||||
- **Helm chart** (`helm/prosody/`) defines the Deployment, Service, Ingress,
|
- **Helm chart** (`helm/prosody/`) defines the Deployment, Service, Ingress,
|
||||||
HPA, PDB, and ServiceAccount templates.
|
HPA, PDB, and ServiceAccount templates.
|
||||||
- **Docker image** is built by GitLab CI from the `Dockerfile`, pushed to
|
- **Docker image** is built by Gitea Actions (`.gitea/workflows/deploy.yml`) from
|
||||||
`eu.gcr.io`, and referenced by tag in `argo/prosody.yaml`.
|
the `Dockerfile`, pushed to the Gitea registry (`gitea.saas.vnc.biz/vnciac/vnctalk-prosody`),
|
||||||
|
and referenced by tag in the ArgoCD application in the `vnc-iac-env` GitOps repo.
|
||||||
|
|
||||||
No other deployment method is supported. The `test.sh` / `docker-compose.yml`
|
No other deployment method is supported. The `test.sh` / `docker-compose.yml`
|
||||||
files are for local testing only.
|
files are for local testing only.
|
||||||
|
|||||||
@@ -14,9 +14,9 @@
|
|||||||
# * Sealed Secrets — commit a SealedSecret (Bitnami); the controller
|
# * Sealed Secrets — commit a SealedSecret (Bitnami); the controller
|
||||||
# decrypts it in-cluster. Replace the Secret below with a
|
# decrypts it in-cluster. Replace the Secret below with a
|
||||||
# SealedSecret produced by `kubeseal`.
|
# SealedSecret produced by `kubeseal`.
|
||||||
# * External Secrets Operator — reference an external vault (GCP Secret
|
# * External Secrets Operator — reference an external vault (AWS Secrets
|
||||||
# Manager, AWS Secrets Manager, HashiCorp Vault) via a
|
# Manager, HashiCorp Vault, or the self-hosted Infisical)
|
||||||
# SecretStore + ExternalSecret; no secret material in Git.
|
# via a SecretStore + ExternalSecret; no secret material in Git.
|
||||||
# * SOPS / age-encrypted manifests decrypted by ArgoCD's KSOPS plugin.
|
# * SOPS / age-encrypted manifests decrypted by ArgoCD's KSOPS plugin.
|
||||||
#
|
#
|
||||||
# The keys below MUST match `secretEnv.keys` in argo/prosody.yaml:
|
# The keys below MUST match `secretEnv.keys` in argo/prosody.yaml:
|
||||||
@@ -55,7 +55,7 @@ spec:
|
|||||||
project: default
|
project: default
|
||||||
source:
|
source:
|
||||||
path: charts/prosody-secrets
|
path: charts/prosody-secrets
|
||||||
repoURL: git@gitlab.example.com:helmcharts.git
|
repoURL: https://gitea.saas.vnc.biz/VNC/vnctalk-prosody.git
|
||||||
targetRevision: HEAD
|
targetRevision: HEAD
|
||||||
syncPolicy:
|
syncPolicy:
|
||||||
automated:
|
automated:
|
||||||
|
|||||||
+3
-3
@@ -13,7 +13,7 @@ spec:
|
|||||||
source:
|
source:
|
||||||
# example for a Helm chart from a Git repository
|
# example for a Helm chart from a Git repository
|
||||||
path: charts/prosody
|
path: charts/prosody
|
||||||
repoURL: git@gitlab.example.com:helmcharts.git
|
repoURL: https://gitea.saas.vnc.biz/VNC/vnctalk-prosody.git
|
||||||
targetRevision: HEAD
|
targetRevision: HEAD
|
||||||
helm:
|
helm:
|
||||||
parameters:
|
parameters:
|
||||||
@@ -21,7 +21,7 @@ spec:
|
|||||||
value: "prosody"
|
value: "prosody"
|
||||||
values: |
|
values: |
|
||||||
imagePullSecrets:
|
imagePullSecrets:
|
||||||
- name: gcr-json-key
|
- name: gitea-registry
|
||||||
|
|
||||||
securityContext:
|
securityContext:
|
||||||
readOnlyRootFilesystem: true
|
readOnlyRootFilesystem: true
|
||||||
@@ -29,7 +29,7 @@ spec:
|
|||||||
runAsUser: 1001
|
runAsUser: 1001
|
||||||
|
|
||||||
image:
|
image:
|
||||||
repository: eu.gcr.io/vnc-development/vnctalk-prosody
|
repository: gitea.saas.vnc.biz/vnciac/vnctalk-prosody
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
# Overrides the image tag whose default is the chart appVersion.
|
# Overrides the image tag whose default is the chart appVersion.
|
||||||
tag: release-13.0.6-vnc
|
tag: release-13.0.6-vnc
|
||||||
|
|||||||
@@ -27,7 +27,6 @@ metadata:
|
|||||||
{{- if .Values.service.annotationsenabled }}
|
{{- if .Values.service.annotationsenabled }}
|
||||||
{{- with .Values.service.s2s.annotations }}
|
{{- with .Values.service.s2s.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
#beta.cloud.google.com/backend-config: '{"ports": {"8000":"prosody"}}'
|
|
||||||
{{- toYaml . | nindent 4 }}
|
{{- toYaml . | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
@@ -54,7 +53,6 @@ metadata:
|
|||||||
{{- if .Values.service.annotationsenabled }}
|
{{- if .Values.service.annotationsenabled }}
|
||||||
{{- with .Values.service.annotations }}
|
{{- with .Values.service.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
#beta.cloud.google.com/backend-config: '{"ports": {"8000":"prosody"}}'
|
|
||||||
{{- toYaml . | nindent 4 }}
|
{{- toYaml . | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
replicaCount: 1
|
replicaCount: 1
|
||||||
|
|
||||||
image:
|
image:
|
||||||
repository: eu.gcr.io/vnc-development/vnctalk-prosody
|
repository: gitea.saas.vnc.biz/vnciac/vnctalk-prosody
|
||||||
pullPolicy: IfNotPresent
|
pullPolicy: IfNotPresent
|
||||||
# Overrides the image tag whose default is the chart appVersion.
|
# Overrides the image tag whose default is the chart appVersion.
|
||||||
tag: release-13.0.6-vnc
|
tag: release-13.0.6-vnc
|
||||||
|
|||||||
Reference in New Issue
Block a user