From 44ee16960ba1998045f41a8ea3e080ca7bd5e7e1 Mon Sep 17 00:00:00 2001 From: Claude Code Date: Wed, 29 Apr 2026 15:02:13 +0200 Subject: [PATCH] feat: add calibre, portainer, egress-gateway, trivy-system, kyverno, olallalab --- apps/calibre/values.yaml | 12 ++++ apps/egress-gateway/values.yaml | 85 +++++++++++++++++++++++++ apps/olallalab/deployment.yaml | 45 +++++++++++++ apps/olallalab/ingress.yaml | 42 ++++++++++++ apps/olallalab/namespace.yaml | 4 ++ apps/olallalab/service.yaml | 13 ++++ argocd/applications/calibre.yaml | 25 ++++++++ argocd/applications/egress-gateway.yaml | 25 ++++++++ argocd/applications/kyverno.yaml | 20 ++++++ argocd/applications/olallalab.yaml | 18 ++++++ argocd/applications/portainer.yaml | 20 ++++++ argocd/applications/trivy-system.yaml | 20 ++++++ 12 files changed, 329 insertions(+) create mode 100644 apps/calibre/values.yaml create mode 100644 apps/egress-gateway/values.yaml create mode 100644 apps/olallalab/deployment.yaml create mode 100644 apps/olallalab/ingress.yaml create mode 100644 apps/olallalab/namespace.yaml create mode 100644 apps/olallalab/service.yaml create mode 100644 argocd/applications/calibre.yaml create mode 100644 argocd/applications/egress-gateway.yaml create mode 100644 argocd/applications/kyverno.yaml create mode 100644 argocd/applications/olallalab.yaml create mode 100644 argocd/applications/portainer.yaml create mode 100644 argocd/applications/trivy-system.yaml diff --git a/apps/calibre/values.yaml b/apps/calibre/values.yaml new file mode 100644 index 0000000..7b89e43 --- /dev/null +++ b/apps/calibre/values.yaml @@ -0,0 +1,12 @@ +image: + tag: 0.6.24 + +persistence: + books: + enabled: true + accessMode: ReadWriteOnce + size: 2Gi + config: + enabled: true + accessMode: ReadWriteOnce + size: 1Gi diff --git a/apps/egress-gateway/values.yaml b/apps/egress-gateway/values.yaml new file mode 100644 index 0000000..b3e7371 --- /dev/null +++ b/apps/egress-gateway/values.yaml @@ -0,0 +1,85 @@ +replicaCount: 2 + +resources: + limits: + cpu: 200m + memory: 128Mi + requests: + cpu: 50m + memory: 32Mi + +service: + type: ClusterIP + ports: + - name: http + port: 80 + targetPort: 8080 + - name: https + port: 443 + targetPort: 8443 + - name: smtp-submission + port: 587 + targetPort: 5870 + - name: smtps + port: 465 + targetPort: 4650 + +networkPolicy: + enabled: true + allowExternal: true + extraIngress: + - ports: + - port: 8443 + protocol: TCP + - port: 5870 + protocol: TCP + - port: 4650 + protocol: TCP + +configuration: | + global + log stdout format raw local0 info + maxconn 4096 + + defaults + log global + mode tcp + option tcplog + option dontlognull + timeout connect 10s + timeout client 1m + timeout server 1m + + # ── HTTP → NPM (192.168.1.10) ────────────────────────────────────── + frontend fe_http + bind *:8080 + default_backend be_npm_http + + backend be_npm_http + server npm 192.168.1.10:80 check + + # ── HTTPS → NPM con SNI passthrough ──────────────────────────────── + frontend fe_https + bind *:8443 + tcp-request inspect-delay 5s + tcp-request content accept if { req_ssl_hello_type 1 } + default_backend be_npm_https + + backend be_npm_https + server npm 192.168.1.10:443 check + + # ── SMTP submission (587) → Mailcow ──────────────────────────────── + frontend fe_smtp_587 + bind *:5870 + default_backend be_mailcow_587 + + backend be_mailcow_587 + server mailcow 192.168.1.30:587 check + + # ── SMTPS (465) → Mailcow ────────────────────────────────────────── + frontend fe_smtps + bind *:4650 + default_backend be_mailcow_465 + + backend be_mailcow_465 + server mailcow 192.168.1.30:465 check diff --git a/apps/olallalab/deployment.yaml b/apps/olallalab/deployment.yaml new file mode 100644 index 0000000..0b7a487 --- /dev/null +++ b/apps/olallalab/deployment.yaml @@ -0,0 +1,45 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: oligo-tools + namespace: olallalab + labels: + app: oligo-tools +spec: + replicas: 1 + selector: + matchLabels: + app: oligo-tools + template: + metadata: + labels: + app: oligo-tools + spec: + containers: + - name: oligo-tools + image: alexandrev/oligo-tools:20231223 + ports: + - containerPort: 8080 + name: http + resources: + limits: + cpu: 1000m + memory: 512Mi + livenessProbe: + httpGet: + path: / + port: 8080 + initialDelaySeconds: 10 + periodSeconds: 20 + readinessProbe: + httpGet: + path: / + port: 8080 + initialDelaySeconds: 5 + periodSeconds: 10 + startupProbe: + tcpSocket: + port: 8080 + failureThreshold: 1 + periodSeconds: 240 + timeoutSeconds: 240 diff --git a/apps/olallalab/ingress.yaml b/apps/olallalab/ingress.yaml new file mode 100644 index 0000000..1f06a23 --- /dev/null +++ b/apps/olallalab/ingress.yaml @@ -0,0 +1,42 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: oligo-tools-ingress + namespace: olallalab + annotations: + nginx.ingress.kubernetes.io/rewrite-target: / +spec: + ingressClassName: public + rules: + - host: oligo-tools.alexandre-vazquez.cloud + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: oligo-tools + port: + number: 80 +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: oligo-tools-ingress-internal + namespace: olallalab + annotations: + nginx.ingress.kubernetes.io/rewrite-target: / + external-dns.alpha.kubernetes.io/hostname: oligo-tools.alexandre-vazquez.internal +spec: + ingressClassName: public + rules: + - host: oligo-tools.alexandre-vazquez.internal + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: oligo-tools + port: + number: 80 diff --git a/apps/olallalab/namespace.yaml b/apps/olallalab/namespace.yaml new file mode 100644 index 0000000..0725d95 --- /dev/null +++ b/apps/olallalab/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: olallalab diff --git a/apps/olallalab/service.yaml b/apps/olallalab/service.yaml new file mode 100644 index 0000000..7f647ee --- /dev/null +++ b/apps/olallalab/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: oligo-tools + namespace: olallalab + labels: + app: oligo-tools +spec: + ports: + - port: 80 + targetPort: 8080 + selector: + app: oligo-tools diff --git a/argocd/applications/calibre.yaml b/argocd/applications/calibre.yaml new file mode 100644 index 0000000..0d87a3b --- /dev/null +++ b/argocd/applications/calibre.yaml @@ -0,0 +1,25 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: calibre + namespace: argocd +spec: + project: default + sources: + - repoURL: https://k8s-home-lab.github.io/helm-charts/ + chart: calibre-web + targetRevision: 9.0.2 + helm: + releaseName: calibre-web + valueFiles: + - $values/apps/calibre/values.yaml + - repoURL: https://gitea.alexandre-vazquez.cloud/baphemot/gitops.git + targetRevision: HEAD + ref: values + destination: + server: https://kubernetes.default.svc + namespace: calibre + syncPolicy: + syncOptions: + - CreateNamespace=true + - ServerSideApply=true diff --git a/argocd/applications/egress-gateway.yaml b/argocd/applications/egress-gateway.yaml new file mode 100644 index 0000000..ae5e76d --- /dev/null +++ b/argocd/applications/egress-gateway.yaml @@ -0,0 +1,25 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: egress-gateway + namespace: argocd +spec: + project: default + sources: + - repoURL: https://charts.bitnami.com/bitnami + chart: haproxy + targetRevision: 3.4.12 + helm: + releaseName: egress-gateway + valueFiles: + - $values/apps/egress-gateway/values.yaml + - repoURL: https://gitea.alexandre-vazquez.cloud/baphemot/gitops.git + targetRevision: HEAD + ref: values + destination: + server: https://kubernetes.default.svc + namespace: egress-gateway + syncPolicy: + syncOptions: + - CreateNamespace=true + - ServerSideApply=true diff --git a/argocd/applications/kyverno.yaml b/argocd/applications/kyverno.yaml new file mode 100644 index 0000000..27ec7b4 --- /dev/null +++ b/argocd/applications/kyverno.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: kyverno + namespace: argocd +spec: + project: default + source: + repoURL: https://kyverno.github.io/kyverno/ + chart: kyverno + targetRevision: 3.x + helm: + releaseName: kyverno + destination: + server: https://kubernetes.default.svc + namespace: kyverno + syncPolicy: + syncOptions: + - CreateNamespace=true + - ServerSideApply=true diff --git a/argocd/applications/olallalab.yaml b/argocd/applications/olallalab.yaml new file mode 100644 index 0000000..e7f8317 --- /dev/null +++ b/argocd/applications/olallalab.yaml @@ -0,0 +1,18 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: olallalab + namespace: argocd +spec: + project: default + source: + repoURL: https://gitea.alexandre-vazquez.cloud/baphemot/gitops.git + targetRevision: HEAD + path: apps/olallalab + destination: + server: https://kubernetes.default.svc + namespace: olallalab + syncPolicy: + syncOptions: + - CreateNamespace=true + - ServerSideApply=true diff --git a/argocd/applications/portainer.yaml b/argocd/applications/portainer.yaml new file mode 100644 index 0000000..f0f13d2 --- /dev/null +++ b/argocd/applications/portainer.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: portainer + namespace: argocd +spec: + project: default + source: + repoURL: https://portainer.github.io/k8s/ + chart: portainer + targetRevision: 1.0.51 + helm: + releaseName: portainer + destination: + server: https://kubernetes.default.svc + namespace: portainer + syncPolicy: + syncOptions: + - CreateNamespace=true + - ServerSideApply=true diff --git a/argocd/applications/trivy-system.yaml b/argocd/applications/trivy-system.yaml new file mode 100644 index 0000000..e77d342 --- /dev/null +++ b/argocd/applications/trivy-system.yaml @@ -0,0 +1,20 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: trivy-system + namespace: argocd +spec: + project: default + source: + repoURL: https://aquasecurity.github.io/helm-charts/ + chart: trivy-operator + targetRevision: 0.18.4 + helm: + releaseName: trivy-operator + destination: + server: https://kubernetes.default.svc + namespace: trivy-system + syncPolicy: + syncOptions: + - CreateNamespace=true + - ServerSideApply=true