diff --git a/manifests/artemis/kaneo/api-svc.yaml b/manifests/artemis/kaneo/api-svc.yaml deleted file mode 100644 index c50fdf8..0000000 --- a/manifests/artemis/kaneo/api-svc.yaml +++ /dev/null @@ -1,12 +0,0 @@ ---- -apiVersion: v1 -kind: Service -metadata: - name: kaneo-api -spec: - clusterIP: none - selector: - app: kaneo-api - ports: - - port: 1337 - targetPort: 1337 diff --git a/manifests/artemis/kaneo/api.yaml b/manifests/artemis/kaneo/api.yaml deleted file mode 100644 index b499f82..0000000 --- a/manifests/artemis/kaneo/api.yaml +++ /dev/null @@ -1,39 +0,0 @@ -# api-deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: kaneo-api -spec: - replicas: 1 - selector: - matchLabels: - app: kaneo-api - template: - metadata: - labels: - app: kaneo-api - spec: - containers: - - name: api - image: ghcr.io/usekaneo/api:latest - ports: - - containerPort: 1337 - envFrom: - - configMapRef: - name: kaneo-env - # If your API uses POSTGRES_HOST, point it to the postgres Service: - # env: - # - name: POSTGRES_HOST - # value: "postgres" ---- -apiVersion: v1 -kind: Service -metadata: - name: kaneo-api -spec: - type: ClusterIP - selector: - app: kaneo-api - ports: - - port: 1337 - targetPort: 1337 diff --git a/manifests/artemis/kaneo/configMap.yaml b/manifests/artemis/kaneo/configMap.yaml deleted file mode 100644 index abd26fc..0000000 --- a/manifests/artemis/kaneo/configMap.yaml +++ /dev/null @@ -1,15 +0,0 @@ -# postgres-configmap.yaml -apiVersion: v1 -kind: ConfigMap -metadata: - name: kaneo-env -data: -# Copy the contents of your .env file here as key: value pairs -# Example: - POSTGRES_USER: "kaneo" - POSTGRES_PASSWORD: "appelsap" - POSTGRES_DB: "kaneo" - DATABASE_URL: "postgresql://kaneo:appelsap@kaneo-db:5432/kaneo?schema=public" - AUTH_SECRET: "randomSecret" - KANEO_CLIENT_URL: "https://projects.dgse.cloud" - KANEO_API_URL: "https://projects.dgse.cloud/api" diff --git a/manifests/artemis/kaneo/db.yaml b/manifests/artemis/kaneo/db.yaml deleted file mode 100644 index 21c9e4b..0000000 --- a/manifests/artemis/kaneo/db.yaml +++ /dev/null @@ -1,62 +0,0 @@ -# postgres-deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: postgres -spec: - replicas: 1 - selector: - matchLabels: - app: postgres - template: - metadata: - labels: - app: postgres - spec: - containers: - - name: postgres - image: postgres:16-alpine - ports: - - containerPort: 5432 - envFrom: - - configMapRef: - name: kaneo-env - volumeMounts: - - name: postgres-data - mountPath: /var/lib/postgresql/data - readinessProbe: - exec: - command: - - sh - - -c - - pg_isready -U kaneo -d kaneo - initialDelaySeconds: 10 - periodSeconds: 10 - timeoutSeconds: 5 - failureThreshold: 5 - livenessProbe: - exec: - command: - - sh - - -c - - pg_isready -U kaneo -d kaneo - initialDelaySeconds: 30 - periodSeconds: 10 - timeoutSeconds: 5 - failureThreshold: 5 - volumes: - - name: postgres-data - persistentVolumeClaim: - claimName: postgres-data ---- -apiVersion: v1 -kind: Service -metadata: - name: postgres -spec: - type: ClusterIP - selector: - app: postgres - ports: - - port: 5432 - targetPort: 5432 diff --git a/manifests/artemis/kaneo/ingress.yaml b/manifests/artemis/kaneo/ingress.yaml deleted file mode 100644 index f1379df..0000000 --- a/manifests/artemis/kaneo/ingress.yaml +++ /dev/null @@ -1,30 +0,0 @@ ---- -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - annotations: - cert-manager.io/cluster-issuer: letsencrypt - name: kaneo-ingress -spec: - rules: - - host: projects.dgse.cloud - http: - paths: - - backend: - service: - name: kaneo-web - port: - number: 5173 - path: / - pathType: Prefix - - backend: - service: - name: kaneo-api - port: - number: 1337 - path: /api - pathType: Prefix - tls: - - hosts: - - projects.dgse.cloud - secretName: letsencrypt diff --git a/manifests/artemis/kaneo/kustomization.yaml b/manifests/artemis/kaneo/kustomization.yaml index 8f2badf..740ad74 100644 --- a/manifests/artemis/kaneo/kustomization.yaml +++ b/manifests/artemis/kaneo/kustomization.yaml @@ -4,12 +4,13 @@ kind: Kustomization metadata: name: kaneo -resources: - - configMap.yaml - - pvc.yaml - - api.yaml - - web.yaml - - db.yaml - - api-svc.yaml - - web-svc.yaml - - ingress.yaml +#resources: +# - secret.yaml + +helmCharts: + - name: kaneo + repo: https://github.com/usekaneo/kaneo + version: 0.1.0 + releaseName: kaneo + namespace: kaneo + valuesFile: values.yaml diff --git a/manifests/artemis/kaneo/pvc.yaml b/manifests/artemis/kaneo/pvc.yaml deleted file mode 100644 index d2e5933..0000000 --- a/manifests/artemis/kaneo/pvc.yaml +++ /dev/null @@ -1,13 +0,0 @@ -# postgres-pv-pvc.yaml -apiVersion: v1 -kind: PersistentVolumeClaim -metadata: - name: postgres-data -spec: - accessModes: - - ReadWriteOnce - resources: - requests: - storage: 5Gi - # For managed clusters, often you don't need storageClassName and use default. - # storageClassName: standard diff --git a/manifests/artemis/kaneo/values.yaml b/manifests/artemis/kaneo/values.yaml new file mode 100644 index 0000000..80d7619 --- /dev/null +++ b/manifests/artemis/kaneo/values.yaml @@ -0,0 +1,183 @@ +# Global values +nameOverride: "" +fullnameOverride: "" +replicaCount: 1 +# Autoscaling configuration +autoscaling: + enabled: false + minReplicas: 1 + maxReplicas: 10 + targetCPUUtilizationPercentage: 80 + # targetMemoryUtilizationPercentage: 80 +# Pod configuration +podAnnotations: {} +podSecurityContext: {} +nodeSelector: {} +tolerations: [] +affinity: {} +# Service account configuration +serviceAccount: + create: true + annotations: {} + name: "" +# PostgreSQL database configuration +postgresql: + # Set to true to deploy PostgreSQL as part of this chart + enabled: true + image: + repository: postgres + tag: 16-alpine + pullPolicy: IfNotPresent + # Database configuration + auth: + database: kaneo + username: kaneo_user + password: kaneo_password + # Use existing secret for database credentials (optional) + existingSecret: "" + secretKeys: + adminPasswordKey: postgres-password + userPasswordKey: password + # Persistence for PostgreSQL data + persistence: + enabled: true + size: 8Gi + storageClass: "" + accessMode: ReadWriteOnce + # PostgreSQL service configuration + service: + type: ClusterIP + port: 5432 + # Resources for PostgreSQL + resources: {} + # resources: + # limits: + # cpu: 500m + # memory: 512Mi + # requests: + # cpu: 100m + # memory: 128Mi +# API backend configuration +api: + image: + repository: ghcr.io/usekaneo/api + tag: latest + pullPolicy: IfNotPresent + securityContext: {} + service: + type: ClusterIP + port: 1337 + targetPort: 1337 + # Resources are optional and disabled by default + resources: {} + # resources: + # limits: + # cpu: 500m + # memory: 512Mi + # requests: + # cpu: 100m + # memory: 128Mi + + # Environment variables for the API + env: + jwtAccess: appelflap + existingSecret: + enabled: false + name: "" + key: jwt-access + disableRegistration: false + # Database configuration + database: + # Use external PostgreSQL (set postgresql.enabled to false) + # Important: when using external postgres, make sure you have set up the db user correctly: + # CREATE DATABASE kaneo; + # CREATE USER kaneo_user WITH PASSWORD 'your_password'; + # GRANT ALL PRIVILEGES ON DATABASE kaneo TO kaneo_user; + # \c kaneo; + # GRANT USAGE ON SCHEMA public TO kaneo_user; + # GRANT CREATE ON SCHEMA public TO kaneo_user; + # ALTER SCHEMA public OWNER TO kaneo_user; + external: + enabled: false + host: "" + port: 5432 + database: kaneo + username: kaneo_user + password: "" + # Use existing secret for external database credentials in the form of a uri, e.g.: "postgresql://user:pass@host:port/db" + existingSecret: + enabled: false + name: "" + passwordKey: postgres_uri + livenessProbe: + httpGet: + path: /me + port: api + initialDelaySeconds: 30 + periodSeconds: 10 + readinessProbe: + httpGet: + path: /me + port: api + initialDelaySeconds: 5 + periodSeconds: 10 +# Web frontend configuration +web: + image: + repository: ghcr.io/usekaneo/web + tag: latest + pullPolicy: IfNotPresent + # Environment variables for the Web + env: + # Optional: Override the default API URL (http://localhost:1337) + # The /api path will be automatically appended to the URL + # Make sure this url matches the ingress host + # apiUrl: "https://kaneo.example.com" + apiUrl: "" + securityContext: {} + service: + type: ClusterIP + port: 80 + targetPort: 80 + # Resources are optional and disabled by default + resources: {} + # resources: + # limits: + # cpu: 300m + # memory: 256Mi + # requests: + # cpu: 100m + # memory: 128Mi + + livenessProbe: + httpGet: + path: / + port: web + initialDelaySeconds: 30 + periodSeconds: 10 + readinessProbe: + httpGet: + path: / + port: web + initialDelaySeconds: 5 + periodSeconds: 10 +# Ingress configuration +ingress: + enabled: true + className: traefik + annotations: + cert-manager.io/cluster-issuer: letsencrypt + hosts: + # Use the same host in the web env variable apiUrl (with http:// or https://) + - host: projects.dgse.cloud + paths: + - path: /?(.*) + pathType: ImplementationSpecific + service: web + port: 80 + - path: /api/?(.*) + pathType: ImplementationSpecific + service: api + port: 1337 + tls: + - projects.dgse.cloud diff --git a/manifests/artemis/kaneo/web-svc.yaml b/manifests/artemis/kaneo/web-svc.yaml deleted file mode 100644 index f58aa88..0000000 --- a/manifests/artemis/kaneo/web-svc.yaml +++ /dev/null @@ -1,13 +0,0 @@ ---- -# web-service.yaml (unchanged from before) -apiVersion: v1 -kind: Service -metadata: - name: kaneo-web -spec: - clusterIP: none - selector: - app: kaneo-web - ports: - - port: 5173 - targetPort: 5173 diff --git a/manifests/artemis/kaneo/web.yaml b/manifests/artemis/kaneo/web.yaml deleted file mode 100644 index 6e796be..0000000 --- a/manifests/artemis/kaneo/web.yaml +++ /dev/null @@ -1,39 +0,0 @@ -# web-deployment.yaml -apiVersion: apps/v1 -kind: Deployment -metadata: - name: kaneo-web -spec: - replicas: 1 - selector: - matchLabels: - app: kaneo-web - template: - metadata: - labels: - app: kaneo-web - spec: - containers: - - name: web - image: ghcr.io/usekaneo/web:latest - ports: - - containerPort: 5173 - envFrom: - - configMapRef: - name: kaneo-env - # If the web app needs the API URL, ensure env var points to the API Service: - # env: - # - name: VITE_API_BASE_URL - # value: "http://kaneo-api:1337" ---- -apiVersion: v1 -kind: Service -metadata: - name: kaneo-web -spec: - type: ClusterIP - selector: - app: kaneo-web - ports: - - port: 5173 - targetPort: 5173