From e5e14d7ce696fbe69a4e66d857cbd875dbf6379c Mon Sep 17 00:00:00 2001 From: Vitor Hideyoshi Date: Wed, 23 Aug 2023 10:17:28 -0300 Subject: [PATCH] Adds Storage Service --- .gitignore | 2 + deploy.sh | 6 ++ deployment/backend/backend.yaml | 6 ++ deployment/storage/storage-config.yaml | 8 ++ deployment/storage/storage.yaml | 102 ++++++++++++++++++ setup.py | 5 + template/storage/storage-secret.template.yaml | 12 +++ 7 files changed, 141 insertions(+) create mode 100644 deployment/storage/storage-config.yaml create mode 100644 deployment/storage/storage.yaml create mode 100644 template/storage/storage-secret.template.yaml diff --git a/.gitignore b/.gitignore index 8e8cad2..0b4e79b 100644 --- a/.gitignore +++ b/.gitignore @@ -6,6 +6,8 @@ .vscode/ +**/storage-secret.yaml + **/backend-secret.yaml **/frontend-secret.yaml diff --git a/deploy.sh b/deploy.sh index 30be59f..8f75173 100755 --- a/deploy.sh +++ b/deploy.sh @@ -44,6 +44,12 @@ function application_deploy() { deployment.apps/frontend-deployment \ -n portfolio; + kubectl apply -f ./deployment/storage; + kubectl wait --for=condition=available \ + --timeout=600s \ + deployment.apps/storage-deployment \ + -n portfolio; + kubectl apply -f ./deployment/backend; kubectl wait --for=condition=available \ --timeout=600s \ diff --git a/deployment/backend/backend.yaml b/deployment/backend/backend.yaml index edfedf9..91620f8 100644 --- a/deployment/backend/backend.yaml +++ b/deployment/backend/backend.yaml @@ -155,6 +155,12 @@ spec: name: redis-secret key: redis-password + - name: STORAGE_SERVICE_PATH + valueFrom: + configMapKeyRef: + name: storage-config + key: storage_url + --- apiVersion: v1 kind: Service diff --git a/deployment/storage/storage-config.yaml b/deployment/storage/storage-config.yaml new file mode 100644 index 0000000..229d64e --- /dev/null +++ b/deployment/storage/storage-config.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + namespace: portfolio + name: storage-config +data: + storage_url: storage-service + storage_port: "8000" \ No newline at end of file diff --git a/deployment/storage/storage.yaml b/deployment/storage/storage.yaml new file mode 100644 index 0000000..10ff8ed --- /dev/null +++ b/deployment/storage/storage.yaml @@ -0,0 +1,102 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + namespace: portfolio + name: storage-deployment +spec: + replicas: 1 + selector: + matchLabels: + app: storage + template: + metadata: + labels: + app: storage + spec: + containers: + - name: storage + image: yoshiunfriendly/storage-hideyoshi.com:latest + imagePullPolicy: "Always" + ports: + - containerPort: 8000 + env: + - name: ALLOWED_ORIGINS + valueFrom: + secretKeyRef: + name: frontend-secret + key: backend_url + + - name: EXPIRES_IN + valueFrom: + secretKeyRef: + name: backend-secret + key: access_token_duration + + - name: SERVER_PORT + valueFrom: + configMapKeyRef: + name: storage-config + key: storage_port + + - name: REDIS_HOST + valueFrom: + configMapKeyRef: + name: redis-config + key: redis-url + + - name: REDIS_PORT + valueFrom: + configMapKeyRef: + name: redis-config + key: redis-port + + - name: REDIS_PASSWORD + valueFrom: + secretKeyRef: + name: redis-secret + key: redis-password + + - name: STORAGE_TYPE + valueFrom: + secretKeyRef: + name: storage-secret + key: storage_type + + - name: AWS_ACCESS_KEY_ID + valueFrom: + secretKeyRef: + name: storage-secret + key: aws_access_key_id + + - name: AWS_SECRET_ACCESS_KEY + valueFrom: + secretKeyRef: + name: storage-secret + key: aws_access_access_key + + - name: AWS_REGION_NAME + valueFrom: + secretKeyRef: + name: storage-secret + key: aws_region_name + + - name: AWS_BUCKET_NAME + valueFrom: + secretKeyRef: + name: storage-secret + key: aws_bucket_name + +--- +apiVersion: v1 +kind: Service +metadata: + namespace: portfolio + name: storage-service +spec: + selector: + app: storage + ports: + - port: 8000 + protocol: TCP + targetPort: 8000 + type: ClusterIP diff --git a/setup.py b/setup.py index c023d54..64f6dc5 100644 --- a/setup.py +++ b/setup.py @@ -27,6 +27,11 @@ ENV_VARIABLES = [ "POSTGRES_PASSWORD", "POSTGRES_DB", "REDIS_PASSWORD", + "STORAGE_TYPE", + "AWS_ACCESS_KEY_ID", + "AWS_SECRET_ACCESS_KEY", + "AWS_REGION_NAME", + "AWS_BUCKET_NAME", ] diff --git a/template/storage/storage-secret.template.yaml b/template/storage/storage-secret.template.yaml new file mode 100644 index 0000000..4da3faf --- /dev/null +++ b/template/storage/storage-secret.template.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Secret +metadata: + namespace: portfolio + name: storage-secret +type: Opaque +data: + storage_type: $STORAGE_TYPE + aws_access_key_id: $AWS_ACCESS_KEY_ID + aws_access_access_key: $AWS_SECRET_ACCESS_KEY + aws_region_name: $AWS_REGION_NAME + aws_bucket_name: $AWS_BUCKET_NAME \ No newline at end of file