Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

#444 K8S Migration #443

Draft
wants to merge 20 commits into
base: dev
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,3 +10,6 @@

# AdminJS 관련 디렉토리
.adminjs

# deployment secret
deployment/**/secret.yaml
2 changes: 2 additions & 0 deletions app.js
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ eventConfig &&
require("./src/lottery").lotteryRouter
);

app.use("/hc", require("./src/routes/hc"));

// [Middleware] 모든 API 요청에 대하여 origin 검증
app.use(require("./src/middlewares/originValidator"));

Expand Down
32 changes: 32 additions & 0 deletions deployment/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# Deployment Resource Definitions for Taxi Backend Service

### directories
```
├── README.md
├── base
│ ├── kustomization.yaml
│ ├── redis
│ │ ├── deployment.yaml
│ │ └── service.yaml
│ └── server
│ ├── configmap.yaml
│ ├── deployment.yaml
│ ├── ingress.yaml
│ ├── sealed-secret.yaml
│ ├── secret-template.yaml
│ ├── secret.yaml
│ └── service.yaml
└── overlays
└── dev
└── kustomization.yaml
```

*under base folder*
- shared resource definitions for all environments

*under overlay folder*
- environment specific settings
- you can add more environments

### Using kubeseal
[Document Notion Link](https://www.notion.so/sparcs/K8S-Sealed-Secret-kubeseal-c3e315e429c442bebf8998b048404e17) [sparcs only]
12 changes: 12 additions & 0 deletions deployment/base/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- ./server/deployment.yaml
- ./server/configmap.yaml
- ./server/service.yaml
- ./server/ingress.yaml
- ./server/sealed-secret.yaml
- ./redis/deployment.yaml
- ./redis/service.yaml
- ./og-generator/deployment.yaml
- ./og-generator/service.yaml
33 changes: 33 additions & 0 deletions deployment/base/og-generator/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: taxi-og-generator
labels:
app: taxi-og-generator
spec:
replicas: 1
selector:
matchLabels:
app: taxi-og-generator
template:
metadata:
labels:
app: taxi-og-generator
spec:
containers:
- name: taxi-og-generator
image: 666583083672.dkr.ecr.ap-northeast-2.amazonaws.com/taxi-og-generator:latest
ports:
- containerPort: 80
name: og-gen-port
env:
- name: API_ROOM_INFO
valueFrom:
configMapKeyRef:
name: taxi-env
key: API_ROOM_INFO
- name: FRONT_URL
valueFrom:
configMapKeyRef:
name: taxi-env
key: FRONT_URL
12 changes: 12 additions & 0 deletions deployment/base/og-generator/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: og-gen-service
spec:
selector:
app: taxi-og-generator
ports:
- name: og-gen-port
protocol: TCP
port: 80
targetPort: og-gen-port
22 changes: 22 additions & 0 deletions deployment/base/redis/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: taxi-redis
labels:
app: taxi-redis
spec:
replicas: 1
selector:
matchLabels:
app: taxi-redis
template:
metadata:
labels:
app: taxi-redis
spec:
containers:
- name: taxi-redis
image: redis:7.0.4-alpine
ports:
- containerPort: 6379
name: taxi-redis-port
12 changes: 12 additions & 0 deletions deployment/base/redis/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: taxi-redis-service
spec:
selector:
app: taxi-redis
ports:
- name: taxi-redis-service-port
protocol: TCP
port: 6379
targetPort: taxi-redis-port
12 changes: 12 additions & 0 deletions deployment/base/server/configmap.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: ConfigMap
metadata:
name: taxi-env
data:
SPARCSSSO_CLIENT_ID: "Taxi"
AWS_ACCESS_KEY_ID: "AKIAZWM3SVKMBOCGSY2F"
AWS_S3_BUCKET_NAME: "sparcs-taxi-prod"
TEST_ACCOUNTS: "[\"[email protected]\",\"[email protected]\"]"
REDIS_PATH: "redis://taxi-redis-service:6379"
API_ROOM_INFO: "http://taxi-svc/rooms/publicInfo?id={}"
FRONT_URL: "https://taxi-staging.sparcs.org"
55 changes: 55 additions & 0 deletions deployment/base/server/deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: taxi-server
labels:
app: taxi-server
spec:
replicas: 2
selector:
matchLabels:
app: taxi-server
template:
metadata:
labels:
app: taxi-server
spec:
containers:
- name: taxi-server
image: 666583083672.dkr.ecr.ap-northeast-2.amazonaws.com/taxi-back:deploy
ports:
- containerPort: 80
envFrom:
- secretRef:
name: taxi-secret
env:
- name: SPARCSSSO_CLIENT_ID
valueFrom:
configMapKeyRef:
name: taxi-env
key: SPARCSSSO_CLIENT_ID
- name: TEST_ACCOUNTS
valueFrom:
configMapKeyRef:
name: taxi-env
key: TEST_ACCOUNTS
- name: AWS_ACCESS_KEY_ID
valueFrom:
configMapKeyRef:
name: taxi-env
key: AWS_ACCESS_KEY_ID
- name: AWS_S3_BUCKET_NAME
valueFrom:
configMapKeyRef:
name: taxi-env
key: AWS_S3_BUCKET_NAME
- name: REDIS_PATH
valueFrom:
configMapKeyRef:
name: taxi-env
key: REDIS_PATH
- name: DB_PATH
valueFrom:
secretKeyRef:
name: taxi-mongodb-admin-taxi
key: connectionString.standardSrv
35 changes: 35 additions & 0 deletions deployment/base/server/ingress.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
annotations:
alb.ingress.kubernetes.io/backend-protocol: HTTP
alb.ingress.kubernetes.io/listen-ports: '[{"HTTP": 80}, {"HTTPS":443}]'
alb.ingress.kubernetes.io/ssl-redirect: '443'
alb.ingress.kubernetes.io/scheme: internet-facing
alb.ingress.kubernetes.io/healthcheck-path: /api/hc
alb.ingress.kubernetes.io/target-type: 'instance'
alb.ingress.kubernetes.io/certificate-arn: arn:aws:acm:ap-northeast-2:666583083672:certificate/2f5020e0-01dd-43dd-aa7e-0699015d6b89
alb.ingress.kubernetes.io/ssl-policy: ELBSecurityPolicy-2016-08
alb.ingress.kubernetes.io/group.name: "sparcs-prod-external"
name: taxi-ingress
namespace: taxi
finalizers:
- ingress.k8s.aws/resources
labels:
app: taxi-ingress
spec:
ingressClassName: alb
rules:
- host: taxi-staging.sparcs.org
http:
paths:
- path: /
backend:
service:
name: taxi-svc
port:
number: 80
pathType: Prefix
tls:
- hosts:
- taxi-staging.sparcs.org
21 changes: 21 additions & 0 deletions deployment/base/server/sealed-secret.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
---
apiVersion: bitnami.com/v1alpha1
kind: SealedSecret
metadata:
creationTimestamp: null
name: taxi-secret
namespace: taxi
spec:
encryptedData:
AWS_SECRET_ACCESS_KEY: AgBPReCL3Gy0pIUAJu+X2LAnbDRvtuNeYIp3InIQwp6Wo4rlO4WGS+xEVlAL0LMJu55wPAVDlDg87AIB0jW769Yu8gFQRBCfxcGl/EN6tZC6L4LoMjyMScCJ8zpfsFqWjR3v4qXPT/C90M+W5g+bf+Iaea9C1pUKEqTDlq0aUR0MSuW5GXLu5XGmwxwAGo5bHhhAZvwjPuXb0LlE75r4kfAOr6lop/7g98pA2+tZoWHRPIo7K1kbl6ZfE6unOpHdLJeVJvSif+anVjc5Hk+EVZnvyLeGgsp6uKVvjoZ5FbppLX5a9lpTbu4CJcwfFWRaWv1vLK2YTssxrgZQdWXVHkT6clAb26UJfG9m3MbyWpSn5do4U5p8zzb7fSrTwLUBHjtzyalOUW2hNMB33BV6GcnnCckwwRAMxu+UvXRyfYRa4WNsxdibLS5FOL5PHELD7K/cdKYwWtVQoH9Bfh7ytBrmOAqTpiAGYSDp2ojCvybN7HsH7FaxMPf/yeDfO7Q+b83BJKikR92NDAjn0xI6aWgUC0ziCZyIAngpkRAhNS3s1wa/dhzXrCTK8PU5+JwcnZsJb3VaddZUczhjQopucbO7bVmOocejZ0Y/v8CXs+bWHck0gvrH7ZmryrTAn6AhTz/DijyN7FkEPPCvsH+WEXhxDkFWaT2MOgg3LCYyf8mhFIncJajR4E7H7JsseMtmZMCNv5v7IWRhBGVrJtLakRK6gIl92maJFib+t/gtDdabbRTFMcPYOMfHD9o=
GOOGLE_APPLICATION_CREDENTIALS: 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
JWT_SECRET_KEY: AgCmtJZw596tZly6Q6eTRPN9kT74Y8/R4Y83JQOD8K+86xU1BykK/ygOCD9FR2cYMuKZ0yL5t992w9v498lw2y2rC3URUB116qK1IrXxO0xgRm4bl3wVZO/mlZGH6WOEcP0sq5Cue+z/KY94LhoyhBZns7RfwfrpPRIoJY3YMGAJsswf2gn30N/4ey9JFrKpHZAMeAHkRDozuN9Ay8LkBNITvSdXk9c/cAczM/yh+NzaSHYHQqxK5Dery/4FRU3BM+W86LyFmjMl3yX0bEc9R/HW2rKi3d4Hlx2uuRLhK590fd9uycIWmD+gQoRMddK/gOEC/z4t3QLSlmaHGknet4G1qEKSFmfxMF2ylmWjgZp9+TvSM2nO6nDP1urYvzhm0Fc/r2NnlFMFC33cJwUW+uXLX8kLgDW6nEJn0pWizn0LpN6HKqmmSJ91PUckl42rhXNhh8FJtRwhsxxCKdH7UCn55gUQf+pulJFZM13SxrZkQxGlDBtBaDoTF5oNMgBa9ecHWAqh8iKcHzD3ifxklkKrHLEhvpRYlRAKotbl+xjTG7IIPpbRj3eQaRKD/H/4BM474cYQdJ4IzNk7XL/HvXGHbzK8yUBGY+cVIYoX1zibSnVloqWq/Wqx4LeO9LAC2OWeGnYnWTqjMain8JuOkCfktESj/XJ99YV89xWAZyiIiy3bt9pG5zAP1hFgpsX431bCqXCdqrKCV4XSm6y2eYDFMeGg5nUhxcWQVP+l20zHBt+bLhFYYhVDqVWkrSFK/ELnFpqwnH82StD76dmTt40=
SESSION_KEY: AgCCXWm7xXLjXOYaRctREJkJoKjQ2lm60ZlA5VrAeV6oEAtUw//fEERmI+Jt5ELJ9949+3TGpfMxO9u8Je+vf3TBmirdCvPc5QWjzoGJLYRcx+8gxgmri/CaeF1iCjOxbpjZp/wM8bBOmHtZsGG/NE+ulFX5kXrYS/JSb29SmKpAK1hgdpNTPHb9HxgTSI4HC3ETy98bplFDT68x2DgZQcvvsmG0EaPSey57rGVWaCACUNmL312ZKQlmAml7Z4nqSW6DmLXORB4KhiniHOEZFummIQK6g4gJEsVZXPjWV+w9BpMxNqpYeUPfMsndHyzuBdxr4NlLIBEDfLHYI9zzBn2neCbl0F8ItpuGPSTgWNxcXHtaYO5rxJyUfX2n7qY9bhEGC0yQKztJ9EPB6oYPKgMqi9+RcCr3FeLama86EJdOrx9M+iod1RlYAzbT70wuhQE2pqy74QbH6bpRR7hjO5kGTvEcJqWaCbcKKTKyqqTBFTX1eXkrMsqutLNT+t53B80RCx1VXA+BdxddmdCq+ZLZq8tmyRXkiO24eah0MWm81MCg0U1BqqiK/0LLmTfr8UDFQdfJ8xG4hNmM1bvxE3Ws3dOoTaqxk7Ap+d19NEKUcliMJldt9KeoCklTro+ifEbpU6yXsh3go/ehci9By3lMwvizkeI3ntVwaVY4iSlDqnMbx8Zk8tMEB/+HrzkIalRyQ5f+5o+t0NXelK+oQFDLlXgoAmAkfz+p66jowvvxhKvhk/Jk/RAFuiw=
SLACK_REPORT_WEBHOOK_URL: AgBtvFn5I/KrgUJfDz5iFPsVJEr+JK/87nc7G7yy/cTDdl6iwroS7xv301J50xLYg2yPdPLiKON6IcgORRe+rOAzfc9UmeEbiOcMVCSKJlbIqgfzroRlyUHgawBIM1Vx1zlaQ40Hhd15+dvOQKOvdiflhnNZIl7TWZ45pEW1+fTe1S2NsL64h74oPLcf3OidJfzz1yVRII7qFdzZ51OyOykNHYbNRcaI4KAgi0LY9G0RsjFat/58X75lbdO6iZW7B5/bOR6dOrj/DOkijJ8ChaZ3NEsGSl+jmr77McspywgKvEv+2LX562OckF3CkG4UyIAanD88Z2XjmjUcFP9EQtjsxBrqnIMt8r6vsJ3XpCEaRNZNA0kLai0Fk//NTErAw8YAZVTwFDfw4bxoTnBiAB8lf7GyelSu1ZLC10WEc5RrEuGBYokwKouJMSUL4fmOPLDaUE9s8qSv6jvdfPljNxptDMmhu/2VCncWw41eSmcM7vq167/+qh6yJ8PRgt9OrJDAcnHJkumsWF6mYJ/1uvxkLStJKYREhS+PrJ69oS8A+apqfJsQBVNzhM2x8A1Q94/boRgPi7XuUKwj5ByXK9PlSAidj8ab8I7zP/rAQip9Q6NHRAX24T3qwbhN28mLIMtAGsUIGNesPK7lCCUsvzaneoFIJ1lyX9IjGqpBRK2ATbc4IB6cbAUMPPk+rE9g3r5qhNZWAERj3jd+ZMI1iaP0L8c0M3pSAJcKsMUq6K7Wd3mnOSq60WaQ4ROgrWxv6MScD2br9xDo/ueYksR+C4uqjLzpkYwuXeyiQ0VIN4fupuA=
SPARCSSSO_CLIENT_KEY: AgBs7a7GAGv4Y8yg2JWY5gc6a/udyHOYcVX6sfyzx47rGil8hj1al9QyQnM+mf2+gBWYxj2wgyxfA7Kfwh7qGoTFsY0+eGu50DDMDAOIAK2T2giNaDXF9KOX55qvCt+QpQPSe9YDo7FdPW+7rvOOAdRmokRcrZ6+KLVsEDz4EATpZ84d/6tnHEHMvJAwxm76ACCWl6n4IVtzBltzEwtaIZ4b97NG5cvzJB6zsIOujyVWbpc0y6PPy6Lgc8knejVWNKek1LwvcCZonwN9Vf6sXm1suF3MMjp+uDi+ZHJl0nl57uHL7nFcYjWsXLIjthquz3VDMfCCRkGMOYGfIDe7h+3D0k5G9XJA1jZF/UheZ/quYbVWQ2/rHCciP8IuvhC19/b256WWiGIYVF8zv0f1IBVEoNg0dSe2o7bD4XJfXAfh/g04eXkhq8dOvHvo+lLWlrSiNNTD7PM4pjeg5J1Kc1kNQXNbuW06stoTkA+L+fo9gXYc5yyoT5Kqxy7BNwxGFBVQn/G44sVnDViQPOvnR6lfMBJ9nEM7Anqn5bBnuqb0PKjSnu+JFtHg4CFXgln4A7JoleCmlBFaAtUFZ00b8wR3dZYgTSilYBPsf2L4SK5xITTAJzonY9cbZ+PxSpLF5Z8XQgNSHBo9twFEF1GB8J/K9IfpjM82zLLepQj6b+ybTIJ27QtuPIbJmBlDrk/kjIm/aZttzFC3h1uGCVfm7RU2jrE/4xM7
template:
metadata:
creationTimestamp: null
name: taxi-secret
namespace: taxi
type: Opaque
13 changes: 13 additions & 0 deletions deployment/base/server/secret-template.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: v1
kind: Secret
metadata:
name: zabo-secret
namespace: zabo
type: Opaque
data:
SSO_SECRET: base64encodedvalue
AWS_SECRET_ACCESS_KEY: base64encodedvalue
SESSION_SECRET: base64encodedvalue
JWT_SECRET: base64encodedvalue
SLACK_WEBHOOK_URL: base64encodedvalue
AWS_S3_DUMP_BUCKET_SECRET_ACCESS_KEY: base64encodedvalue
12 changes: 12 additions & 0 deletions deployment/base/server/service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: v1
kind: Service
metadata:
name: taxi-svc
spec:
type: NodePort
selector:
app: taxi-server
ports:
- protocol: TCP
port: 80
targetPort: 80
7 changes: 7 additions & 0 deletions deployment/overlays/dev/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
images:
- name: 666583083672.dkr.ecr.ap-northeast-2.amazonaws.com/taxi-back
newTag: deploy
resources:
- ../../base
26 changes: 26 additions & 0 deletions src/routes/docs/hc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
const tag = "hc";
const apiPrefix = "/hc";

const hcDocs = {};
hcDocs[`${apiPrefix}`] = {
get: {
tags: [tag],
summary: "서버 상태 확인",
description: "서버 상태 확인",
responses: {
200: {
description: "서버 상태 확인",
content: {
"application/json": {
schema: {
type: "string",
example: "OK",
},
},
},
},
},
},
};

module.exports = hcDocs;
6 changes: 6 additions & 0 deletions src/routes/docs/swaggerDocs.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ const logininfoDocs = require("./logininfo");
const locationsDocs = require("./locations");
const authDocs = require("./auth");
const usersDocs = require("./users");
const hcDocs = require("./hc");
const { port, nodeEnv } = require("../../../loadenv");

const serverList = [
Expand Down Expand Up @@ -56,6 +57,10 @@ const swaggerDocs = {
name: "users",
description: "유저 계정 정보 수정 및 조회",
},
{
name: "hc",
description: "서버 상태 확인",
},
],
consumes: ["application/json"],
produces: ["application/json"],
Expand All @@ -65,6 +70,7 @@ const swaggerDocs = {
...locationsDocs,
...usersDocs,
...authDocs,
...hcDocs,
},
components: {
schemas: {
Expand Down
8 changes: 8 additions & 0 deletions src/routes/hc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
const express = require("express");

const router = express.Router();
const healthCheckHandlers = require("../services/hc");

router.get("/", healthCheckHandlers.healthCheckHandler);

module.exports = router;
7 changes: 7 additions & 0 deletions src/services/hc.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
const healthCheckHandler = (_, res) => {
res.status(200).send("OK");
};

module.exports = {
healthCheckHandler,
};