Skip to content
This repository was archived by the owner on Nov 8, 2023. It is now read-only.

Commit 955b34c

Browse files
authored
Merge pull request #29 from neicnordic/feature/interceptor
Added the interceptor
2 parents 3e127ba + 41648b2 commit 955b34c

File tree

9 files changed

+183
-6
lines changed

9 files changed

+183
-6
lines changed

.github/ci_tests/lint_helper.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ touch $1/files/server.crt
99
fi
1010

1111
if [ $1 = "sda-svc" ]; then
12-
for n in ca doa finalize inbox ingest verify
12+
for n in ca doa finalize inbox ingest interceptor verify
1313
do
1414
touch $1/files/$n.crt
1515
done

.github/ci_tests/svc.conf

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
{"name":"htsget", "ns": "default"},
77
{"name":"inbox", "ns": "default"},
88
{"name":"ingest", "ns": "default"},
9+
{"name":"interceptor", "ns": "default"},
910
{"name":"finalize", "ns": "default"},
1011
{"name":"verify", "ns": "default"},
1112
{"name":"mq-server", "dns":"broker-sda-mq", "ns": "default"},

.github/workflows/deploy.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -129,10 +129,10 @@ jobs:
129129
cp LocalEGA-deploy-init/config/certs/*.p12 sda-svc/files/
130130
cp LocalEGA-deploy-init/config/certs/cacerts sda-svc/files/
131131
cp LocalEGA-deploy-init/config/certs/root.ca.crt sda-svc/files/ca.crt
132-
for n in doa finalize ingest verify
132+
for n in doa finalize ingest interceptor verify
133133
do cp LocalEGA-deploy-init/config/certs/$n.ca.crt sda-svc/files/$(echo $n.ca.crt | cut -d '.' -f1,3)
134134
done
135-
for n in doa finalize ingest verify
135+
for n in doa finalize ingest interceptor verify
136136
do cp LocalEGA-deploy-init/config/certs/$n.ca.key sda-svc/files/$(echo $n.ca.key | cut -d '.' -f1,3)
137137
done
138138
- name: Deploy the SDA stack
@@ -333,10 +333,10 @@ jobs:
333333
cp LocalEGA-deploy-init/config/certs/doa.p12 sda-svc/files/
334334
cp LocalEGA-deploy-init/config/certs/cacerts sda-svc/files/
335335
cp LocalEGA-deploy-init/config/certs/root.ca.crt sda-svc/files/ca.crt
336-
for n in doa finalize ingest verify inbox
336+
for n in doa finalize ingest verify inbox interceptor
337337
do cp LocalEGA-deploy-init/config/certs/$n.ca.crt sda-svc/files/$(echo $n.ca.crt | cut -d '.' -f1,3)
338338
done
339-
for n in doa finalize ingest verify inbox
339+
for n in doa finalize ingest verify inbox interceptor
340340
do cp LocalEGA-deploy-init/config/certs/$n.ca.key sda-svc/files/$(echo $n.ca.key | cut -d '.' -f1,3)
341341
done
342342
cp LocalEGA-deploy-init/config/certs/res.ca.crt sda-svc/files/auth.crt

sda-svc/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
apiVersion: v2
22
name: sda-svc
3-
version: 0.2
3+
version: 0.3
44
description: Components for Sensitive Data Archive (SDA) installation
55
home: https://neic-sda.readthedocs.io
66
icon: https://neic.no/assets/images/logo.png

sda-svc/README.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,6 +108,8 @@ Parameter | Description | Default
108108
`credentials.ingest.dbPassword` | Database password for ingest | `""`
109109
`credentials.ingest.mqUser` | Broker user for ingest | `""`
110110
`credentials.ingest.mqPassword` | Broker password for ingest | `""`
111+
`credentials.interceptor.mqUser` | Broker user for interceptor | `""`
112+
`credentials.interceptor.mqPassword` | Broker password for interceptor | `""`
111113
`credentials.verify.dbUser` | Databse user for verify | `""`
112114
`credentials.verify.dbPassword` | Database password for verify | `""`
113115
`credentials.verify.mqUser` | Broker user for verify | `""`
@@ -137,6 +139,12 @@ Parameter | Description | Default
137139
`ingest.imagePullPolicy` | inbox container image pull policy | `Always`
138140
`ingest.replicaCount` | desired number of ingest workers | `1`
139141
`ingest.annotations` | Specific annotation for the ingest pod | `{}`
142+
`interceptor.repository` | interceptor container image repository | `neicnordic/sda-pipeline`
143+
`interceptor.imageTag` | interceptor container image version | `latest`
144+
`interceptor.imagePullPolicy` | interceptor container image pull policy | `Always`
145+
`interceptor.replicaCount` | desired number of interceptor workers | `1`
146+
`interceptor.annotations` | Specific annotation for the interceptor pod | `{}`
147+
`interceptor.deploy` | Set to false in a non federated deployment | `true`
140148
`s3Inbox.repository` | S3inbox container image repository | `neicnordic/sda-s3proxy`
141149
`s3Inbox.imageTag` | S3inbox container image version | `latest`
142150
`s3Inbox.imagePullPolicy` | S3inbox container image pull policy | `Always`

sda-svc/templates/_helpers.yaml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,14 @@ Create chart name and version as used by the chart label.
173173
{{- ternary .Values.global.broker.password .Values.credentials.inbox.mqPassword (empty .Values.credentials.inbox.mqPassword) -}}
174174
{{- end -}}
175175

176+
{{/**/}}
177+
{{- define "mqUserInterceptor" -}}
178+
{{- ternary .Values.global.broker.username .Values.credentials.interceptor.mqUser (empty .Values.credentials.interceptor.mqUser) -}}
179+
{{- end -}}
180+
{{- define "mqPassInterceptor" -}}
181+
{{- ternary .Values.global.broker.password .Values.credentials.interceptor.mqPassword (empty .Values.credentials.interceptor.mqPassword) -}}
182+
{{- end -}}
183+
176184
{{/**/}}
177185
{{- define "dbUserVerify" -}}
178186
{{- ternary "lega_in" .Values.credentials.verify.dbUser (empty .Values.credentials.verify.dbUser) -}}
Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
{{- if .Values.interceptor.deploy}}
2+
{{- if or (or (eq "all" .Values.global.deploymentType) (eq "internal" .Values.global.deploymentType) ) (not .Values.global.deploymentType) }}
3+
apiVersion: apps/v1
4+
kind: Deployment
5+
metadata:
6+
name: {{ template "sda.fullname" . }}-interceptor
7+
labels:
8+
role: interceptor
9+
app: {{ template "sda.name" . }}
10+
chart: {{ .Chart.Name }}-{{ .Chart.Version }}
11+
component: {{ .Release.Name }}-interceptor
12+
release: {{ .Release.Name }}
13+
heritage: {{ .Release.Service }}
14+
spec:
15+
replicas: 1
16+
revisionHistoryLimit: {{ default "3" .Values.global.revisionHistory }}
17+
selector:
18+
matchLabels:
19+
app: {{ template "sda.name" . }}-interceptor
20+
release: {{ .Release.Name }}
21+
template:
22+
metadata:
23+
labels:
24+
app: {{ template "sda.name" . }}-interceptor
25+
role: interceptor
26+
release: {{ .Release.Name }}
27+
annotations:
28+
{{- if not .Values.global.secretsService }}
29+
checksum/config: {{ include (print $.Template.BasePath "/interceptor-secrets.yaml") . | sha256sum }}
30+
{{- end }}
31+
{{- if .Values.global.podAnnotations }}
32+
{{- toYaml .Values.global.podAnnotations | nindent 8 -}}
33+
{{- end }}
34+
{{- if .Values.interceptor.annotations }}
35+
{{- toYaml .Values.interceptor.annotations | nindent 8 -}}
36+
{{- end }}
37+
spec:
38+
{{- if .Values.global.rbacEnabled}}
39+
serviceAccountName: {{ .Release.Name }}
40+
{{- end }}
41+
securityContext:
42+
runAsUser: 65534
43+
runAsGroup: 65534
44+
fsGroup: 65534
45+
containers:
46+
- name: interceptor
47+
image: "{{ .Values.interceptor.repository }}:{{ .Values.interceptor.imageTag }}"
48+
imagePullPolicy: {{ .Values.interceptor.imagePullPolicy | quote }}
49+
command: ["sda-interceptor"]
50+
securityContext:
51+
allowPrivilegeEscalation: false
52+
env:
53+
{{- if not .Values.global.secretsService }}
54+
- name: BROKER_PASSWORD
55+
valueFrom:
56+
secretKeyRef:
57+
name: {{ template "sda.fullname" . }}-interceptor
58+
key: mqPassword
59+
- name: BROKER_USER
60+
valueFrom:
61+
secretKeyRef:
62+
name: {{ template "sda.fullname" . }}-interceptor
63+
key: mqUser
64+
{{- end }}
65+
{{- if .Values.global.broker.ssl }}
66+
- name: BROKER_CACERT
67+
value: {{ include "tlsPath" . }}/ca.crt
68+
{{- if .Values.global.broker.verifyPeer }}
69+
- name: BROKER_CLIENTCERT
70+
value: {{ include "tlsPath" . }}/interceptor.crt
71+
- name: BROKER_CLIENTKEY
72+
value: {{ include "tlsPath" . }}/interceptor.key
73+
{{- end }}
74+
{{- end }}
75+
- name: BROKER_DURABLE
76+
value: "true"
77+
- name: BROKER_EXCHANGE
78+
value: {{ default "lega" .Values.global.broker.exchange | quote}}
79+
- name: BROKER_HOST
80+
value: {{ required "A valid MQ host is required" .Values.global.broker.host | quote }}
81+
- name: BROKER_PORT
82+
value: {{ .Values.global.broker.port | quote }}
83+
- name: BROKER_QUEUE
84+
value: "cega_files"
85+
- name: BROKER_ROUTINGERROR
86+
value: {{ .Values.global.broker.routingError | quote }}
87+
- name: BROKER_SSL
88+
value: {{ .Values.global.broker.ssl | quote}}
89+
- name: BROKER_VERIFYPEER
90+
value: {{ .Values.global.broker.verifyPeer | quote }}
91+
- name: BROKER_VHOST
92+
value: {{ .Values.global.broker.vhost | quote }}
93+
{{- if .Values.global.log }}
94+
- name: LOG_LEVEL
95+
value: {{ .Values.global.logLevel | quote }}
96+
{{- end }}
97+
resources:
98+
{{ toYaml .Values.interceptor.resources | trim | indent 10 }}
99+
{{- if not .Values.global.pkiService }}
100+
volumeMounts:
101+
- name: tls
102+
mountPath: {{ template "tlsPath" . }}
103+
volumes:
104+
- name: {{ "tls" }}
105+
secret:
106+
defaultMode: 0440
107+
secretName: {{ template "sda.fullname" . }}-interceptor-certs
108+
{{- end }}
109+
restartPolicy: Always
110+
{{- end }}
111+
{{- end }}
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
{{- if .Values.interceptor.deploy}}
2+
{{- if or (or (eq "all" .Values.global.deploymentType) (eq "internal" .Values.global.deploymentType) ) (not .Values.global.deploymentType) }}
3+
{{- if not .Values.global.secretsService }}
4+
---
5+
apiVersion: v1
6+
kind: Secret
7+
metadata:
8+
name: {{ template "sda.fullname" . }}-interceptor
9+
type: Opaque
10+
data:
11+
mqPassword: {{ include "mqPassInterceptor" . | b64enc }}
12+
mqUser: {{ include "mqUserInterceptor" . | b64enc }}
13+
{{- end }}
14+
{{- if not .Values.global.pkiService }}
15+
---
16+
{{- $interceptor := .Files.Glob "files/interceptor*" }}
17+
apiVersion: v1
18+
kind: Secret
19+
metadata:
20+
name: {{ template "sda.fullname" . }}-interceptor-certs
21+
data:
22+
{{ ( .Files.Glob "files/ca.crt" ).AsSecrets | trim | indent 2 }}
23+
{{ ( $interceptor ).AsSecrets | indent 2 }}
24+
{{- end }}
25+
{{- end }}
26+
{{- end }}

sda-svc/values.yaml

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,10 @@ credentials:
200200
dbUser: ""
201201
dbPassword: ""
202202

203+
interceptor:
204+
mqUser: ""
205+
mqPassword: ""
206+
203207
verify:
204208
mqUser: ""
205209
mqPassword: ""
@@ -284,6 +288,25 @@ ingest:
284288
# the annotations to apply to the service pods
285289
annotations: {}
286290

291+
interceptor:
292+
deploy: true
293+
name: ingest
294+
replicaCount: 1
295+
repository: neicnordic/sda-pipeline
296+
imageTag: latest
297+
imagePullPolicy: Always
298+
resources:
299+
requests:
300+
memory: "32Mi"
301+
cpu: "100m"
302+
limits:
303+
memory: "128Mi"
304+
cpu: "2000m"
305+
# Extra annotations to attach to the service pods
306+
# This should be a multi-line string mapping directly to the a map of
307+
# the annotations to apply to the service pods
308+
annotations: {}
309+
287310
s3Inbox:
288311
name: s3Inbox
289312
repository: neicnordic/sda-s3proxy

0 commit comments

Comments
 (0)