From 21f0e2c0a34c41b5b743fb7d47c253264c928e5b Mon Sep 17 00:00:00 2001 From: Stanislas Bruhiere Date: Fri, 10 Oct 2025 17:54:10 +0200 Subject: [PATCH] feat: add first k8s for neo4j --- k8s/crisalid/Chart.lock | 6 +++++ k8s/crisalid/Chart.yaml | 11 ++++++++ k8s/crisalid/charts/common-0.3.5.tgz | Bin 0 -> 5127 bytes k8s/crisalid/templates/config.yaml | 7 +++++ k8s/crisalid/templates/deployment.yaml | 34 +++++++++++++++++++++++++ k8s/crisalid/templates/service.yaml | 20 +++++++++++++++ k8s/crisalid/values.yaml | 29 +++++++++++++++++++++ 7 files changed, 107 insertions(+) create mode 100644 k8s/crisalid/Chart.lock create mode 100644 k8s/crisalid/Chart.yaml create mode 100644 k8s/crisalid/charts/common-0.3.5.tgz create mode 100644 k8s/crisalid/templates/config.yaml create mode 100644 k8s/crisalid/templates/deployment.yaml create mode 100644 k8s/crisalid/templates/service.yaml create mode 100644 k8s/crisalid/values.yaml diff --git a/k8s/crisalid/Chart.lock b/k8s/crisalid/Chart.lock new file mode 100644 index 0000000..782a4c7 --- /dev/null +++ b/k8s/crisalid/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: oci://criprodprod.azurecr.io/helm + version: 0.3.5 +digest: sha256:b7bde64ce14d4bf8ae72bf99d81b6ce16028cbee9cdaffa0ab845b3cd247e1e2 +generated: "2025-10-10T17:40:44.182406995+02:00" diff --git a/k8s/crisalid/Chart.yaml b/k8s/crisalid/Chart.yaml new file mode 100644 index 0000000..d5bc993 --- /dev/null +++ b/k8s/crisalid/Chart.yaml @@ -0,0 +1,11 @@ +apiVersion: v2 +appVersion: 0.1.0 +description: Deploy and manage crisalid +name: crisalid +type: application +version: 1.0.0 + +dependencies: +- name: common + repository: oci://criprodprod.azurecr.io/helm + version: 0.3.5 diff --git a/k8s/crisalid/charts/common-0.3.5.tgz b/k8s/crisalid/charts/common-0.3.5.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0baee4b2a3e69bb4f96a928f2849ca0141004f2f GIT binary patch literal 5127 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 literal 0 HcmV?d00001 diff --git a/k8s/crisalid/templates/config.yaml b/k8s/crisalid/templates/config.yaml new file mode 100644 index 0000000..feb8268 --- /dev/null +++ b/k8s/crisalid/templates/config.yaml @@ -0,0 +1,7 @@ +{{- $configGenerator := dict +"config" .Values.neo4j.config +"root" $ +"commonLabels" .Values.neo4j.commonLabels +"name" (tpl .Values.neo4j.fullName .) }} + +{{- include "common.config.resources" $configGenerator}} diff --git a/k8s/crisalid/templates/deployment.yaml b/k8s/crisalid/templates/deployment.yaml new file mode 100644 index 0000000..60fb6d4 --- /dev/null +++ b/k8s/crisalid/templates/deployment.yaml @@ -0,0 +1,34 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ tpl .Values.neo4j.fullName $ }} + labels: + {{- (tpl ($.Values.neo4j.commonLabels | toYaml ) $) | nindent 4 }} +spec: + serviceName: {{ tpl .Values.neo4j.fullName $ }} + replicas: 1 + selector: + matchLabels: + {{- (tpl ($.Values.neo4j.commonLabels | toYaml ) $) | nindent 6 }} + template: + metadata: + labels: + {{- (tpl ($.Values.neo4j.commonLabels | toYaml ) $) | nindent 8 }} + spec: + containers: + - name: neo4j + {{- with $.Values.neo4j.image }} + image: {{ tpl (printf "%s/%s:%s" .repository .path .tag) $ }} + {{- end }} + imagePullPolicy: IfNotPresent + ports: + - containerPort: {{ .Values.neo4j.httpPort }} + name: http + - containerPort: {{ .Values.neo4j.boltPort }} + name: bolt + envFrom: + - configMapRef: + name: {{ tpl .Values.neo4j.fullName $ }} + securityContext: + {{- include "common.security.containerSecurityContext.restricted" dict | nindent 10 }} + diff --git a/k8s/crisalid/templates/service.yaml b/k8s/crisalid/templates/service.yaml new file mode 100644 index 0000000..5ae6b9d --- /dev/null +++ b/k8s/crisalid/templates/service.yaml @@ -0,0 +1,20 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ tpl .Values.neo4j.fullName $ }} + labels: + {{- (tpl ($.Values.neo4j.commonLabels | toYaml ) $) | nindent 4 }} + +spec: + type: ClusterIP + ports: + - port: {{ .Values.neo4j.httpPort }} + targetPort: http + protocol: TCP + name: http + - port: {{ .Values.neo4j.boltPort }} + targetPort: bolt + protocol: TCP + name: bolt + selector: + {{- (tpl ($.Values.neo4j.commonLabels | toYaml ) $) | nindent 4 }} diff --git a/k8s/crisalid/values.yaml b/k8s/crisalid/values.yaml new file mode 100644 index 0000000..7df17c8 --- /dev/null +++ b/k8s/crisalid/values.yaml @@ -0,0 +1,29 @@ +# Default values for crisalid-neo4j Helm chart. +# This is a YAML-formatted file. +# Declare variables to be passed into your templates. + + + +neo4j: + fullName: neo4j + image: + repository: neo4j + tag: "5-community" + pullPolicy: IfNotPresent + httpPort: 7474 + boltPort: 7687 + commonLabels: + app.kubernetes.io/name: neo4j + app.kubernetes.io/part-of: crisalid + app.kubernetes.io/managed-by: Helm + config: + nonSensitive: + NEO4J_AUTH: none + NEO4J_apoc_export_file_enabled: true + NEO4J_apoc_import_file_enabled: true + NEO4J_apoc_import_file_use__neo4j__config: true + NEO4J_PLUGINS: '[ "apoc" ]' + NEO4J_server_memory_heap_initial__size: "512m" + NEO4J_server_memory_heap_max__size: "2G" + NEO4J_server_memory_pagecache_size: "1G" +