From f7227574179673a52192ee94b325af24a222763b Mon Sep 17 00:00:00 2001 From: agent-company Date: Sun, 31 May 2026 05:04:51 +0000 Subject: [PATCH] feat: add Flux deployment manifests for VIN Decoder service (flux/vin-decoder/) Create flux/vin-decoder/ with namespace, HelmRelease, ExternalSecret, and kustomization files mirroring the existing API Flux manifest structure. Register vin-decoder in the root flux/kustomization.yaml so Flux picks it up. Image automation is handled by existing flux/image-automation/ manifests (ImageRepository and ImagePolicy for vin-decoder already present). kustomize build flux/ passes with no errors. Closes leeworks-agents/api-company#140 --- flux/kustomization.yaml | 1 + flux/vin-decoder/externalsecret.yaml | 18 +++++ flux/vin-decoder/helmrelease.yaml | 101 +++++++++++++++++++++++++++ flux/vin-decoder/kustomization.yaml | 6 ++ flux/vin-decoder/namespace.yaml | 4 ++ 5 files changed, 130 insertions(+) create mode 100644 flux/vin-decoder/externalsecret.yaml create mode 100644 flux/vin-decoder/helmrelease.yaml create mode 100644 flux/vin-decoder/kustomization.yaml create mode 100644 flux/vin-decoder/namespace.yaml diff --git a/flux/kustomization.yaml b/flux/kustomization.yaml index 5ff246e..b9359c1 100644 --- a/flux/kustomization.yaml +++ b/flux/kustomization.yaml @@ -9,4 +9,5 @@ resources: - zip-enrichment - holidays - air-quality + - vin-decoder - image-automation diff --git a/flux/vin-decoder/externalsecret.yaml b/flux/vin-decoder/externalsecret.yaml new file mode 100644 index 0000000..b69f64b --- /dev/null +++ b/flux/vin-decoder/externalsecret.yaml @@ -0,0 +1,18 @@ +apiVersion: external-secrets.io/v1beta1 +kind: ExternalSecret +metadata: + name: rapidapi-proxy-secret + namespace: vin-decoder +spec: + refreshInterval: 1h + secretStoreRef: + name: kubernetes-provider + kind: ClusterSecretStore + target: + name: rapidapi-proxy-secret + creationPolicy: Owner + data: + - secretKey: X-RapidAPI-Proxy-Secret + remoteRef: + key: rapidapi-vin-decoder-source + property: X-RapidAPI-Proxy-Secret diff --git a/flux/vin-decoder/helmrelease.yaml b/flux/vin-decoder/helmrelease.yaml new file mode 100644 index 0000000..c6cc071 --- /dev/null +++ b/flux/vin-decoder/helmrelease.yaml @@ -0,0 +1,101 @@ +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: vin-decoder + namespace: vin-decoder +spec: + interval: 10m + chart: + spec: + chart: raw + version: ">=0.2.0" + sourceRef: + kind: HelmRepository + name: bedag + namespace: flux-system + interval: 60m + values: + resources: + - apiVersion: apps/v1 + kind: Deployment + metadata: + name: vin-decoder + namespace: vin-decoder + spec: + replicas: 1 + selector: + matchLabels: + app: vin-decoder + template: + metadata: + labels: + app: vin-decoder + spec: + imagePullSecrets: + - name: gitea-registry + containers: + - name: vin-decoder + image: registry.leeworks.dev/vin-decoder/api:latest # {"$imagepolicy": "flux-system:vin-decoder"} + ports: + - containerPort: 3000 + env: + - name: RAPIDAPI_PROXY_SECRET + valueFrom: + secretKeyRef: + name: rapidapi-proxy-secret + key: X-RapidAPI-Proxy-Secret + resources: + requests: + cpu: 50m + memory: 128Mi + limits: + cpu: 500m + memory: 256Mi + livenessProbe: + httpGet: + path: /v1/health + port: 3000 + initialDelaySeconds: 10 + periodSeconds: 30 + readinessProbe: + httpGet: + path: /v1/health + port: 3000 + initialDelaySeconds: 5 + periodSeconds: 10 + - apiVersion: v1 + kind: Service + metadata: + name: vin-decoder + namespace: vin-decoder + spec: + selector: + app: vin-decoder + ports: + - port: 80 + targetPort: 3000 + - apiVersion: networking.k8s.io/v1 + kind: Ingress + metadata: + name: vin-decoder + namespace: vin-decoder + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + nginx.ingress.kubernetes.io/ssl-redirect: "true" + spec: + ingressClassName: nginx + tls: + - hosts: + - vin.leeworks.dev + secretName: vin-decoder-tls + rules: + - host: vin.leeworks.dev + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: vin-decoder + port: + number: 80 diff --git a/flux/vin-decoder/kustomization.yaml b/flux/vin-decoder/kustomization.yaml new file mode 100644 index 0000000..7ca00db --- /dev/null +++ b/flux/vin-decoder/kustomization.yaml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - namespace.yaml + - externalsecret.yaml + - helmrelease.yaml diff --git a/flux/vin-decoder/namespace.yaml b/flux/vin-decoder/namespace.yaml new file mode 100644 index 0000000..5ee4e4c --- /dev/null +++ b/flux/vin-decoder/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: vin-decoder -- 2.52.0