Skip to content

Commit 439af80

Browse files
committed
chart: add osrdyne support
1 parent 667b602 commit 439af80

12 files changed

+229
-489
lines changed

templates/_helpers.tpl

+7-7
Original file line numberDiff line numberDiff line change
@@ -31,23 +31,23 @@ Create chart name and version as used by the chart label.
3131
{{- end }}
3232

3333
{{/*
34-
Common labels Core
34+
Common labels Osrdyne
3535
*/}}
36-
{{- define "osrd.labels.core" -}}
36+
{{- define "osrd.labels.osrdyne" -}}
3737
helm.sh/chart: {{ include "osrd.chart" . }}
38-
{{ include "osrd.selectorLabels.core" . }}
38+
{{ include "osrd.selectorLabels.osrdyne" . }}
3939
{{- if .Chart.AppVersion }}
4040
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
4141
{{- end }}
4242
app.kubernetes.io/managed-by: {{ .Release.Service }}
4343
{{- end }}
4444

4545
{{/*
46-
Selector labels Core
46+
Selector labels Osrdyne
4747
*/}}
48-
{{- define "osrd.selectorLabels.core" -}}
49-
app.kubernetes.io/name: {{ include "osrd.name" . }}-core
50-
app.kubernetes.io/instance: {{ .Release.Name }}-core
48+
{{- define "osrd.selectorLabels.osrdyne" -}}
49+
app.kubernetes.io/name: {{ include "osrd.name" . }}-osrdyne
50+
app.kubernetes.io/instance: {{ .Release.Name }}-osrdyne
5151
{{- end }}
5252

5353
{{/*

templates/core_deployment.yaml

-87
This file was deleted.

templates/core_service.yaml

-19
This file was deleted.

templates/editoast_deployment.yaml

+2
Original file line numberDiff line numberDiff line change
@@ -59,6 +59,8 @@ spec:
5959
value: "{{ .Values.editoast.service.targetPort }}"
6060
- name: OSRD_BACKEND_URL
6161
value: {{ .Values.core.internalUrl }}
62+
- name: OSRD_MQ_URL
63+
value: {{ .Values.osrdyne.config.amqp_uri }}
6264
resources:
6365
{{- toYaml .Values.editoast.resources | nindent 12 }}
6466
{{- with .Values.editoast.nodeSelector }}

templates/editoast_init_script.yaml

-1
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,5 @@ data:
1111
{{- with .Values.editoast.init.extend }}
1212
{{ . }}
1313
{{- end }}
14-
export DATABASE_URL="postgres://${PSQL_USERNAME}:${PSQL_PASSWORD}@${PSQL_HOST}:${PSQL_PORT}/${PSQL_DATABASE}"
1514
diesel migration run
1615
{{- end }}

templates/osrdyne_configmap.yaml

+69
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
{{- if .Values.osrdyne.enabled -}}
2+
3+
apiVersion: v1
4+
kind: ConfigMap
5+
metadata:
6+
name: {{ include "osrd.fullname" . }}-osrdyne-config
7+
data:
8+
osrdyne.yml: |
9+
amqp_uri: "{{ .Values.osrdyne.config.amqp_uri }}"
10+
management_port: {{ .Values.osrdyne.config.management_port }}
11+
{{- if .Values.osrdyne.config.management_host }}
12+
management_host: "{{ .Values.osrdyne.config.management_host }}"
13+
{{- end }}
14+
{{- if .Values.osrdyne.config.pool_id }}
15+
pool_id: "{{ .Values.osrdyne.config.pool_id }}"
16+
{{- end }}
17+
{{- if .Values.osrdyne.config.default_message_ttl }}
18+
default_message_ttl: "{{ .Values.osrdyne.config.default_message_ttl }}"
19+
{{- end }}
20+
{{- if .Values.osrdyne.config.max_length }}
21+
max_length: "{{ .Values.osrdyne.config.max_length }}"
22+
{{- end }}
23+
{{- if .Values.osrdyne.config.max_length_bytes }}
24+
max_length_bytes: "{{ .Values.osrdyne.config.max_length_bytes }}"
25+
{{- end }}
26+
api_address: "0.0.0.0:80"
27+
worker_driver:
28+
type: "KubernetesDriver"
29+
core_image: "{{ .Values.core.image }}"
30+
start_command: ["sh", "-c", "exec java $JAVA_OPTS -ea -jar /app/osrd_core.jar worker"]
31+
deployment_prefix: "{{ include "osrd.fullname" . }}"
32+
namespace: "{{ .Release.Namespace }}"
33+
editoast_url: "{{ .Values.editoast.internalUrl }}"
34+
{{- with .Values.core.autoscaling }}
35+
autoscaling:
36+
{{- toYaml . | nindent 6 }}
37+
{{- end }}
38+
kube_deployment_options:
39+
default_env:
40+
{{- with .Values.core.env }}
41+
{{- toYaml . | nindent 10 }}
42+
{{- end }}
43+
- name: CORE_EDITOAST_URL
44+
value: {{ .Values.editoast.internalUrl }}
45+
- name: CORE_MONITOR_TYPE
46+
value: "{{ .Values.core.config.telemetry }}"
47+
- name: JAVA_TOOL_OPTIONS
48+
value: {{ if eq .Values.core.config.telemetry "opentelemetry" -}}
49+
"-javaagent:/app/opentelemetry-javaagent.jar"
50+
{{- else if eq .Values.core.config.telemetry "datadog" -}}
51+
"-javaagent:/app/dd-java-agent.jar"
52+
{{- end -}}
53+
{{- with .Values.core.resources }}
54+
resources:
55+
{{- toYaml . | nindent 10 }}
56+
{{- end }}
57+
{{- with .Values.core.nodeSelector }}
58+
node_selector:
59+
{{- toYaml . | nindent 10 }}
60+
{{- end }}
61+
{{- with .Values.core.affinity }}
62+
affinity:
63+
{{- toYaml . | nindent 10 }}
64+
{{- end }}
65+
{{- with .Values.core.tolerations }}
66+
tolerations:
67+
{{- toYaml . | nindent 10 }}
68+
{{- end }}
69+
{{- end }}

templates/osrdyne_deployment.yaml

+90
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,90 @@
1+
{{- if .Values.osrdyne.enabled -}}
2+
3+
apiVersion: apps/v1
4+
kind: Deployment
5+
metadata:
6+
name: {{ include "osrd.fullname" . }}-osrdyne
7+
labels:
8+
{{- include "osrd.labels.osrdyne" . | nindent 4 }}
9+
{{- with .Values.osrdyne.annotations }}
10+
annotations:
11+
{{- toYaml . | nindent 4 }}
12+
{{- end }}
13+
spec:
14+
replicas: 1
15+
strategy:
16+
type: Recreate
17+
selector:
18+
matchLabels:
19+
{{- include "osrd.selectorLabels.osrdyne" . | nindent 6 }}
20+
template:
21+
metadata:
22+
annotations:
23+
rollme: {{ randAlphaNum 5 | quote }}
24+
{{- with .Values.osrdyne.annotations }}
25+
{{- toYaml . | nindent 8 }}
26+
{{- end }}
27+
labels:
28+
{{- include "osrd.labels.osrdyne" . | nindent 8 }}
29+
{{- with .Values.osrdyne.labels }}
30+
{{- toYaml . | nindent 8 }}
31+
{{- end }}
32+
spec:
33+
serviceAccountName: {{ include "osrd.fullname" . }}-osrdyne-sa
34+
{{- with .Values.imagePullSecrets }}
35+
imagePullSecrets:
36+
{{- toYaml . | nindent 8 }}
37+
{{- end }}
38+
containers:
39+
- name: {{ include "osrd.name" . }}-osrdyne
40+
image: "{{ .Values.osrdyne.image }}"
41+
imagePullPolicy: {{ .Values.osrdyne.pullPolicy }}
42+
ports:
43+
- name: http
44+
containerPort: {{ .Values.osrdyne.service.port }}
45+
protocol: TCP
46+
volumeMounts:
47+
- name: config
48+
mountPath: /osrdyne.yml
49+
subPath: osrdyne.yml
50+
{{- with .Values.osrdyne.volumeMounts }}
51+
{{- toYaml . | nindent 12 }}
52+
{{- end }}
53+
livenessProbe:
54+
httpGet:
55+
path: /health
56+
port: http
57+
readinessProbe:
58+
httpGet:
59+
path: /health
60+
port: http
61+
env:
62+
{{- with .Values.osrdyne.env }}
63+
{{- toYaml . | nindent 12 }}
64+
{{- end }}
65+
- name: RUST_LOG
66+
value: info
67+
- name: OSRDYNE_PORT
68+
value: "{{ .Values.osrdyne.service.port }}"
69+
resources:
70+
{{- toYaml .Values.osrdyne.resources | nindent 12 }}
71+
volumes:
72+
- name: config
73+
configMap:
74+
name: {{ include "osrd.fullname" . }}-osrdyne-config
75+
{{- with .Values.osrdyne.volumes }}
76+
{{- toYaml . | nindent 8 }}
77+
{{- end }}
78+
{{- with .Values.osrdyne.nodeSelector }}
79+
nodeSelector:
80+
{{- toYaml . | nindent 8 }}
81+
{{- end }}
82+
{{- with .Values.osrdyne.affinity }}
83+
affinity:
84+
{{- toYaml . | nindent 8 }}
85+
{{- end }}
86+
{{- with .Values.osrdyne.tolerations }}
87+
tolerations:
88+
{{- toYaml . | nindent 8 }}
89+
{{- end }}
90+
{{- end }}

templates/osrdyne_role.yaml

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: Role
3+
metadata:
4+
name: {{ include "osrd.fullname" . }}-osrdyne-role
5+
namespace: {{ .Release.Namespace }}
6+
rules:
7+
- apiGroups: ["apps"]
8+
resources: ["deployments"]
9+
verbs: ["get", "create", "update", "delete", "list"]
10+
- apiGroups: ["autoscaling"]
11+
resources: ["horizontalpodautoscalers"]
12+
verbs: ["get", "create", "update", "delete", "list"]

templates/osrdyne_rolebinding.yaml

+13
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
apiVersion: rbac.authorization.k8s.io/v1
2+
kind: RoleBinding
3+
metadata:
4+
name: {{ include "osrd.fullname" . }}-osrdyne-rolebinding
5+
namespace: {{ .Release.Namespace }}
6+
subjects:
7+
- kind: ServiceAccount
8+
name: {{ include "osrd.fullname" . }}-osrdyne-sa
9+
namespace: {{ .Release.Namespace }}
10+
roleRef:
11+
kind: Role
12+
name: {{ include "osrd.fullname" . }}-osrdyne-role
13+
apiGroup: rbac.authorization.k8s.io
+9
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
apiVersion: v1
2+
kind: ServiceAccount
3+
metadata:
4+
name: {{ include "osrd.fullname" . }}-osrdyne-sa
5+
labels:
6+
app.kubernetes.io/name: {{ include "osrd.name" . }}
7+
helm.sh/chart: {{ include "osrd.chart" . }}
8+
app.kubernetes.io/instance: {{ .Release.Name }}
9+
app.kubernetes.io/managed-by: {{ .Release.Service }}

0 commit comments

Comments
 (0)