diff --git a/argocd-apps/platform/platform-redis.yaml b/argocd-apps/platform/platform-redis.yaml new file mode 100644 index 0000000..dfa7ea3 --- /dev/null +++ b/argocd-apps/platform/platform-redis.yaml @@ -0,0 +1,18 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: platform-redis + namespace: argocd +spec: + project: platform + source: + repoURL: https://www.symcrest.com/internal/dev/forgejo/symcrest/k8s-platform.git + targetRevision: main + path: rendered/platform-redis + destination: + server: https://kubernetes.default.svc + namespace: platform-services + syncPolicy: + automated: + prune: false + selfHeal: true diff --git a/charts/platform-redis/Chart.yaml b/charts/platform-redis/Chart.yaml new file mode 100644 index 0000000..9c47fb4 --- /dev/null +++ b/charts/platform-redis/Chart.yaml @@ -0,0 +1,6 @@ +apiVersion: v2 +name: platform-redis +description: Symcrest platform Redis +type: application +version: 0.1.0 +appVersion: "8.8.0" diff --git a/charts/platform-redis/templates/service.yaml b/charts/platform-redis/templates/service.yaml new file mode 100644 index 0000000..01230e8 --- /dev/null +++ b/charts/platform-redis/templates/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: platform-redis + namespace: {{ .Values.namespace }} +spec: + type: ClusterIP + selector: + app: platform-redis + ports: + - name: redis + port: 6379 + targetPort: 6379 diff --git a/charts/platform-redis/templates/statefulset.yaml b/charts/platform-redis/templates/statefulset.yaml new file mode 100644 index 0000000..1897f06 --- /dev/null +++ b/charts/platform-redis/templates/statefulset.yaml @@ -0,0 +1,47 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: platform-redis + namespace: {{ .Values.namespace }} +spec: + serviceName: platform-redis + replicas: 1 + selector: + matchLabels: + app: platform-redis + template: + metadata: + labels: + app: platform-redis + spec: + nodeSelector: +{{ toYaml .Values.nodeSelector | indent 8 }} + securityContext: + fsGroup: 999 + fsGroupChangePolicy: "OnRootMismatch" + containers: + - name: redis + image: "{{ .Values.image.repository }}:{{ .Values.image.tag }}" + securityContext: + runAsUser: 999 + runAsGroup: 999 + ports: + - name: redis + containerPort: 6379 + args: + - redis-server + - --appendonly + - "yes" + volumeMounts: + - name: redis-data + mountPath: /data + volumeClaimTemplates: + - metadata: + name: redis-data + spec: + accessModes: + - ReadWriteOnce + storageClassName: {{ .Values.storage.className | quote }} + resources: + requests: + storage: {{ .Values.storage.size | quote }} diff --git a/charts/platform-redis/values.yaml b/charts/platform-redis/values.yaml new file mode 100644 index 0000000..7460fb6 --- /dev/null +++ b/charts/platform-redis/values.yaml @@ -0,0 +1,12 @@ +namespace: platform-services + +image: + repository: redis + tag: "8.8.0-alpine" + +storage: + className: longhorn + size: 5Gi + +nodeSelector: + workload: app diff --git a/infrastructure/namespaces/platform-services.yaml b/infrastructure/namespaces/platform-services.yaml new file mode 100644 index 0000000..93e9eb3 --- /dev/null +++ b/infrastructure/namespaces/platform-services.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: platform-services diff --git a/rendered/platform-redis/platform-redis.yaml b/rendered/platform-redis/platform-redis.yaml new file mode 100644 index 0000000..e4d3567 --- /dev/null +++ b/rendered/platform-redis/platform-redis.yaml @@ -0,0 +1,64 @@ +--- +# Source: platform-redis/templates/service.yaml +apiVersion: v1 +kind: Service +metadata: + name: platform-redis + namespace: platform-services +spec: + type: ClusterIP + selector: + app: platform-redis + ports: + - name: redis + port: 6379 + targetPort: 6379 +--- +# Source: platform-redis/templates/statefulset.yaml +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: platform-redis + namespace: platform-services +spec: + serviceName: platform-redis + replicas: 1 + selector: + matchLabels: + app: platform-redis + template: + metadata: + labels: + app: platform-redis + spec: + nodeSelector: + workload: app + securityContext: + fsGroup: 999 + fsGroupChangePolicy: "OnRootMismatch" + containers: + - name: redis + image: "redis:8.8.0-alpine" + securityContext: + runAsUser: 999 + runAsGroup: 999 + ports: + - name: redis + containerPort: 6379 + args: + - redis-server + - --appendonly + - "yes" + volumeMounts: + - name: redis-data + mountPath: /data + volumeClaimTemplates: + - metadata: + name: redis-data + spec: + accessModes: + - ReadWriteOnce + storageClassName: "longhorn" + resources: + requests: + storage: "5Gi"