diff --git a/argocd-apps/my-recipes.yaml b/argocd-apps/my-recipes.yaml index 120e053..0bf230f 100644 --- a/argocd-apps/my-recipes.yaml +++ b/argocd-apps/my-recipes.yaml @@ -15,7 +15,7 @@ spec: destination: server: https://kubernetes.default.svc namespace: my-apps - syncPolicy: - automated: - prune: true - selfHeal: true + syncPolicy: [] + # automated: + # prune: true + # selfHeal: true diff --git a/charts/my-recipes-chart/templates/backend-deployment.yaml b/charts/my-recipes-chart/templates/backend-deployment.yaml new file mode 100644 index 0000000..15d8b10 --- /dev/null +++ b/charts/my-recipes-chart/templates/backend-deployment.yaml @@ -0,0 +1,26 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ .Release.Name }}-backend + labels: + app: {{ .Release.Name }}-backend +spec: + replicas: {{ .Values.backend.replicas }} + selector: + matchLabels: + app: {{ .Release.Name }}-backend + template: + metadata: + labels: + app: {{ .Release.Name }}-backend + spec: + containers: + - name: backend + image: "{{ .Values.backend.image.repository }}:{{ .Values.backend.image.tag }}" + imagePullPolicy: {{ .Values.backend.image.pullPolicy }} + ports: + - containerPort: 8000 + name: http + envFrom: + - secretRef: + name: {{ .Release.Name }}-db-credentials diff --git a/charts/my-recipes-chart/templates/backend-service.yaml b/charts/my-recipes-chart/templates/backend-service.yaml new file mode 100644 index 0000000..e69de29 diff --git a/charts/my-recipes-chart/templates/db-secret.yaml b/charts/my-recipes-chart/templates/db-secret.yaml new file mode 100644 index 0000000..ad2c9eb --- /dev/null +++ b/charts/my-recipes-chart/templates/db-secret.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Secret +metadata: + name: {{ .Release.Name }}-db-credentials +type: Opaque +stringData: + DB_HOST: {{ printf "%s-db-headless.%s.svc.cluster.local" .Release.Name .Release.Namespace }} + DB_PORT: "{{ .Values.postgres.port }}" + DB_NAME: {{ .Values.postgres.database | quote }} + DB_USER: {{ .Values.postgres.user | quote }} + DB_PASSWORD: {{ .Values.postgres.password | quote }} diff --git a/charts/my-recipes-chart/templates/db-service.yaml b/charts/my-recipes-chart/templates/db-service.yaml new file mode 100644 index 0000000..d598d42 --- /dev/null +++ b/charts/my-recipes-chart/templates/db-service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ .Release.Name }}-db-headless + labels: + app: {{ .Release.Name }}-db +spec: + clusterIP: None + selector: + app: {{ .Release.Name }}-db + ports: + - name: postgres + port: {{ .Values.postgres.port }} + targetPort: 5432 diff --git a/charts/my-recipes-chart/templates/statefulset.yaml b/charts/my-recipes-chart/templates/db-statefulset.yaml similarity index 62% rename from charts/my-recipes-chart/templates/statefulset.yaml rename to charts/my-recipes-chart/templates/db-statefulset.yaml index 7622449..adabeaa 100644 --- a/charts/my-recipes-chart/templates/statefulset.yaml +++ b/charts/my-recipes-chart/templates/db-statefulset.yaml @@ -2,22 +2,25 @@ apiVersion: apps/v1 kind: StatefulSet metadata: name: {{ .Release.Name }}-db + labels: + app: {{ .Release.Name }}-db spec: - serviceName: {{ .Release.Name }}-headless + serviceName: {{ .Release.Name }}-db-headless replicas: 1 selector: matchLabels: - app: {{ .Release.Name }} + app: {{ .Release.Name }}-db template: metadata: labels: - app: {{ .Release.Name }} + app: {{ .Release.Name }}-db spec: containers: - name: postgres - image: {{ .Values.image }} + image: {{ .Values.postgres.image }} ports: - containerPort: 5432 + name: postgres env: - name: POSTGRES_USER value: {{ .Values.postgres.user | quote }} @@ -33,10 +36,10 @@ spec: name: data spec: accessModes: - - {{ .Values.persistence.accessMode }} + - {{ .Values.postgres.persistence.accessMode }} resources: requests: - storage: {{ .Values.persistence.size }} - {{- if .Values.persistence.storageClass }} - storageClassName: {{ .Values.persistence.storageClass | quote }} + storage: {{ .Values.postgres.persistence.size }} + {{- if .Values.postgres.persistence.storageClass }} + storageClassName: {{ .Values.postgres.persistence.storageClass | quote }} {{- end }} diff --git a/charts/my-recipes-chart/templates/frontend-deployment.yaml b/charts/my-recipes-chart/templates/frontend-deployment.yaml new file mode 100644 index 0000000..e69de29 diff --git a/charts/my-recipes-chart/templates/frontend-service.yaml b/charts/my-recipes-chart/templates/frontend-service.yaml new file mode 100644 index 0000000..e69de29 diff --git a/charts/my-recipes-chart/templates/ingress.yaml b/charts/my-recipes-chart/templates/ingress.yaml new file mode 100644 index 0000000..e69de29 diff --git a/charts/my-recipes-chart/templates/service.yaml b/charts/my-recipes-chart/templates/service.yaml deleted file mode 100644 index 78f1fdb..0000000 --- a/charts/my-recipes-chart/templates/service.yaml +++ /dev/null @@ -1,11 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: {{ .Release.Name }}-headless -spec: - clusterIP: None - selector: - app: {{ .Release.Name }} - ports: - - port: {{ .Values.service.port }} - targetPort: 5432 diff --git a/charts/my-recipes-chart/values.yaml b/charts/my-recipes-chart/values.yaml index db6626f..acc03cf 100644 --- a/charts/my-recipes-chart/values.yaml +++ b/charts/my-recipes-chart/values.yaml @@ -1,15 +1,28 @@ -image: postgres:16 +# Backend image +backend: + image: + repository: registry.dvirlabs.com/my-recipes/backend + tag: v1.0.0 + pullPolicy: IfNotPresent + replicas: 1 +# Frontend image +frontend: + image: + repository: registry.dvirlabs.com/my-recipes/frontend + tag: v1.0.0 + pullPolicy: IfNotPresent + replicas: 1 + +# Postgres DB postgres: + image: postgres:16 user: recipes_user - password: recipes_password # simple for POC + password: recipes_password # POC only – later use Secret/ExternalSecret database: recipes_db - -service: port: 5432 - -persistence: - enabled: true - accessMode: ReadWriteOnce - storageClass: "nfs-client" # or your default SC - size: 8Gi + persistence: + enabled: true + accessMode: ReadWriteOnce + storageClass: "nfs-client" + size: 8Gi