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

Commit a533f26

Browse files
authored
Dshop backend ops update (#4472)
* update dockerfile for dshop backend changes * ignore secrets-dshop.yaml * update dshop backend deploys: adjusts env vars as necessary, switches dshop backends from statefulsets to deployments, configures CloudSQL connections, * new subdir in dshop dir * adds redis and move dshop backend back to statefulsets for redis persistance * dshop backend Dockerfile moved to different repo * adds backendapi.ogn.app to dshop backend ingress * fixes mainnet password for dshop DB * dshopapi.ogn.app not backendapi
1 parent 97bac31 commit a533f26

10 files changed

+100
-45
lines changed

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ secrets.yaml
3131
secrets-dev.yaml
3232
secrets-staging.yaml
3333
secrets-prod.yaml
34+
secrets-dshop.yaml
3435
github.key
3536

3637
# Development #

devops/dockerfiles/dshop-backend

+1-27
Original file line numberDiff line numberDiff line change
@@ -1,27 +1 @@
1-
FROM node:10 as build
2-
3-
WORKDIR /app
4-
5-
ARG ENVKEY
6-
ARG DSHOP_BACKEND_DIR=dapps/shop/backend
7-
8-
ENV NODE_ENV=production
9-
ENV ENVKEY=$ENVKEY
10-
ENV DISABLE_SYNC=true
11-
12-
COPY $DSHOP_BACKEND_DIR/package.json ./
13-
COPY $DSHOP_BACKEND_DIR/app.js ./
14-
COPY $DSHOP_BACKEND_DIR/app.json ./
15-
COPY $DSHOP_BACKEND_DIR/config.js ./
16-
COPY $DSHOP_BACKEND_DIR/index.js ./
17-
COPY $DSHOP_BACKEND_DIR/listener.js ./
18-
COPY $DSHOP_BACKEND_DIR/tstEnc.js ./
19-
COPY $DSHOP_BACKEND_DIR/routes ./routes
20-
COPY $DSHOP_BACKEND_DIR/utils ./utils
21-
COPY $DSHOP_BACKEND_DIR/data/config.js ./data/config.js
22-
COPY $DSHOP_BACKEND_DIR/data/migrations ./data/migrations
23-
COPY $DSHOP_BACKEND_DIR/models ./models
24-
COPY $DSHOP_BACKEND_DIR/scripts ./scripts
25-
26-
RUN yarn install
27-
CMD npm run migrate && node index.js
1+
# Moved to https://github.com/OriginProtocol/dshop/blob/master/devops/Dockerfile

devops/kubernetes/charts/origin-experimental/templates/dshop-backend-mainnet.ingress.yaml

+6-1
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,16 @@ spec:
2323
- secretName: "{{ .Values.dshopBackendMainnetHost }}"
2424
hosts:
2525
- {{ .Values.dshopBackendMainnetHost }}
26+
- secretName: "dshopapi.ogn.app"
27+
hosts:
28+
- "dshopapi.ogn.app"
2629
rules:
2730
- host: {{ .Values.dshopBackendMainnetHost }}
28-
http:
31+
http: &http_rules
2932
paths:
3033
- path: /
3134
backend:
3235
serviceName: {{ template "dshopBackendMainnet.fullname" . }}
3336
servicePort: 3000
37+
- host: "dshopapi.ogn.app"
38+
http: *http_rules
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
apiVersion: v1
2+
kind: Secret
3+
metadata:
4+
name: {{ template "dshopBackendMainnet.fullname" . }}
5+
labels:
6+
app: {{ template "dshopBackendMainnet.fullname" . }}
7+
app.kubernetes.io/name: dshop
8+
helm.sh/chart: {{ .Chart.Name }}-{{ .Chart.Version }}
9+
app.kubernetes.io/managed-by: {{ .Release.Service }}
10+
app.kubernetes.io/instance: {{ .Release.Name }}
11+
app.kubernetes.io/version: {{ .Chart.AppVersion }}
12+
app.kubernetes.io/component: backend
13+
app.kubernetes.io/part-of: dshop-backend-rinkeby
14+
type: Opaque
15+
data:
16+
ENCRYPTION_KEY: {{ required "Set a .Values.dshopBackendMainnetEncryptionKey" .Values.dshopBackendMainnetEncryptionKey | b64enc | quote}}
17+
DATABASE_URL: {{ required "Set a .Values.dshopBackendMainnetDatabaseURL" .Values.dshopBackendMainnetDatabaseURL | b64enc | quote}}

devops/kubernetes/charts/origin-experimental/templates/dshop-backend-mainnet.statefulset.yaml

+33-8
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ metadata:
1212
app.kubernetes.io/component: backend
1313
app.kubernetes.io/part-of: dshop-backend-mainnet
1414
spec:
15+
replicas: {{ default 1 .Values.dshopBackendMainnetReplicas }}
1516
selector:
1617
matchLabels:
1718
app: {{ template "dshopBackendMainnet.fullname" . }}
1819
serviceName: {{ template "dshopBackendMainnet.fullname" . }}
19-
replicas: 1
2020
template:
2121
metadata:
2222
labels:
@@ -27,25 +27,50 @@ spec:
2727
image: "{{ .Values.containerRegistry }}/{{ .Release.Namespace }}/{{ .Values.dshopBackendMainnetImage }}:{{ .Values.dshopBackendMainnetImageTag }}"
2828
imagePullPolicy: Always
2929
env:
30-
- name: ENVKEY
30+
- name: ENCRYPTION_KEY
3131
valueFrom:
3232
secretKeyRef:
3333
name: {{ template "dshopBackendMainnet.fullname" . }}
34-
key: ENVKEY
34+
key: ENCRYPTION_KEY
3535
- name: DATABASE_URL
36-
value: "sqlite:/data/dshop/net_mainnet.db"
36+
valueFrom:
37+
secretKeyRef:
38+
name: {{ template "dshopBackendMainnet.fullname" . }}
39+
key: DATABASE_URL
40+
- name: REDIS_URL
41+
value: redis://localhost:6379/0
3742
port:
3843
- name: http
3944
containerPort: 3000
40-
volumeMounts:
41-
- mountPath: /data/dshop
42-
name: {{ template "dshopBackendMainnet.fullname" . }}-data
4345
resources:
4446
requests:
4547
memory: 1Gi
48+
- name: cloudsql-proxy
49+
image: gcr.io/cloudsql-docker/gce-proxy:1.11
50+
command: ["/cloud_sql_proxy",
51+
"-instances={{ .Values.dshopBackendMainnetDBInstance }}=tcp:5432",
52+
"-credential_file=/secrets/cloudsql/credentials.json"]
53+
securityContext:
54+
runAsUser: 2 # non-root user
55+
allowPrivilegeEscalation: false
56+
volumeMounts:
57+
- name: dshop-cloudsql-credentials
58+
mountPath: /secrets/cloudsql
59+
readOnly: true
60+
- name: redis
61+
image: redis:6.0
62+
command: ["/bin/sh","-c"]
63+
args: ["mkdir -p /data/redis && redis-server --dir /data/redis "]
64+
volumeMounts:
65+
- mountPath: /data
66+
name: {{ template "dshopBackendMainnet.fullname" . }}-redis
67+
volumes:
68+
- name: dshop-cloudsql-credentials
69+
secret:
70+
secretName: dshop-cloudsql-credentials
4671
volumeClaimTemplates:
4772
- metadata:
48-
name: {{ template "dshopBackendMainnet.fullname" . }}-data
73+
name: {{ template "dshopBackendMainnet.fullname" . }}-redis
4974
labels:
5075
app: {{ template "dshopBackendMainnet.fullname" . }}
5176
spec:

devops/kubernetes/charts/origin-experimental/templates/dshop-backend-rinkeby.secret.yaml

+2-1
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,5 @@ metadata:
1313
app.kubernetes.io/part-of: dshop-backend-rinkeby
1414
type: Opaque
1515
data:
16-
ENVKEY: {{ required "Set a .Values.dshopBackendRinkebyEnvKey" .Values.dshopBackendRinkebyEnvKey | b64enc | quote}}
16+
ENCRYPTION_KEY: {{ required "Set a .Values.dshopBackendRinkebyEncryptionKey" .Values.dshopBackendRinkebyEncryptionKey | b64enc | quote}}
17+
DATABASE_URL: {{ required "Set a .Values.dshopBackendRinkebyDatabaseURL" .Values.dshopBackendRinkebyDatabaseURL | b64enc | quote}}

devops/kubernetes/charts/origin-experimental/templates/dshop-backend-rinkeby.statefulset.yaml

+33-8
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,11 @@ metadata:
1212
app.kubernetes.io/component: backend
1313
app.kubernetes.io/part-of: dshop-backend-rinkeby
1414
spec:
15+
replicas: {{ default 1 .Values.dshopBackendRinkebyReplicas }}
1516
selector:
1617
matchLabels:
1718
app: {{ template "dshopBackendRinkeby.fullname" . }}
1819
serviceName: {{ template "dshopBackendRinkeby.fullname" . }}
19-
replicas: 1
2020
template:
2121
metadata:
2222
labels:
@@ -27,25 +27,50 @@ spec:
2727
image: "{{ .Values.containerRegistry }}/{{ .Release.Namespace }}/{{ .Values.dshopBackendRinkebyImage }}:{{ .Values.dshopBackendRinkebyImageTag }}"
2828
imagePullPolicy: Always
2929
env:
30-
- name: ENVKEY
30+
- name: ENCRYPTION_KEY
3131
valueFrom:
3232
secretKeyRef:
3333
name: {{ template "dshopBackendRinkeby.fullname" . }}
34-
key: ENVKEY
34+
key: ENCRYPTION_KEY
3535
- name: DATABASE_URL
36-
value: "sqlite:/data/dshop/net_rinkeby.db"
36+
valueFrom:
37+
secretKeyRef:
38+
name: {{ template "dshopBackendRinkeby.fullname" . }}
39+
key: DATABASE_URL
40+
- name: REDIS_URL
41+
value: redis://localhost:6379/0
3742
port:
3843
- name: http
3944
containerPort: 3000
40-
volumeMounts:
41-
- mountPath: /data/dshop
42-
name: {{ template "dshopBackendRinkeby.fullname" . }}-data
4345
resources:
4446
requests:
4547
memory: 1Gi
48+
- name: cloudsql-proxy
49+
image: gcr.io/cloudsql-docker/gce-proxy:1.11
50+
command: ["/cloud_sql_proxy",
51+
"-instances={{ .Values.dshopBackendRinkebyDBInstance }}=tcp:5432",
52+
"-credential_file=/secrets/cloudsql/credentials.json"]
53+
securityContext:
54+
runAsUser: 2 # non-root user
55+
allowPrivilegeEscalation: false
56+
volumeMounts:
57+
- name: dshop-cloudsql-credentials
58+
mountPath: /secrets/cloudsql
59+
readOnly: true
60+
- name: redis
61+
image: redis:6.0
62+
command: ["/bin/sh","-c"]
63+
args: ["mkdir -p /data/redis && redis-server --dir /data/redis "]
64+
volumeMounts:
65+
- mountPath: /data
66+
name: {{ template "dshopBackendRinkeby.fullname" . }}-redis
67+
volumes:
68+
- name: dshop-cloudsql-credentials
69+
secret:
70+
secretName: dshop-cloudsql-credentials
4671
volumeClaimTemplates:
4772
- metadata:
48-
name: {{ template "dshopBackendRinkeby.fullname" . }}-data
73+
name: {{ template "dshopBackendRinkeby.fullname" . }}-redis
4974
labels:
5075
app: {{ template "dshopBackendRinkeby.fullname" . }}
5176
spec:

devops/kubernetes/charts/origin-experimental/values.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,11 @@ containerRegistry: gcr.io/origin-214503
22

33
clusterIssuer: letsencrypt-prod
44

5+
6+
dshopBackendMainnetReplicas: 1
57
dshopBackendMainnetImage: dshop-backend
68
dshopBackendMainnetImageTag: mainnet
79

10+
dshopBackendRinkebyReplicas: 1
811
dshopBackendRinkebyImage: dshop-backend
912
dshopBackendRinkebyImageTag: latest
Binary file not shown.
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,6 @@
11
dshopBackendMainnetHost: api.ogn.app
2+
dshopBackendMainnetDBInstance: origin-214503:us-west1:dshop-mainnet0
3+
dshopBackendMainnetRedisURL: redis://localhost:6379/0
24
dshopBackendRinkebyHost: rinkebyapi.ogn.app
5+
dshopBackendRinkebyDBInstance: origin-214503:us-west1:dshop-rinkeby0
6+
dshopBackendRinkebyRedisURL: redis://localhost:6379/0

0 commit comments

Comments
 (0)