From 9c58554b5a9976efccec9c2c23a5e1d4895bcbda Mon Sep 17 00:00:00 2001 From: juli0n21 Date: Sun, 8 Dec 2024 15:58:32 +0100 Subject: [PATCH] deployemnt stuff --- .github/workflows/osumusic.yml | 45 +++++++++++++++++++++++++++++++++ deployment/frontend-service.yml | 14 ++++++++++ deployment/frontend.yml | 20 +++++++++++++++ deployment/proxy-pvc.yml | 11 ++++++++ deployment/proxy-service.yml | 14 ++++++++++ deployment/proxy.yml | 27 ++++++++++++++++++++ 6 files changed, 131 insertions(+) create mode 100644 .github/workflows/osumusic.yml create mode 100644 deployment/frontend-service.yml create mode 100644 deployment/frontend.yml create mode 100644 deployment/proxy-pvc.yml create mode 100644 deployment/proxy-service.yml create mode 100644 deployment/proxy.yml diff --git a/.github/workflows/osumusic.yml b/.github/workflows/osumusic.yml new file mode 100644 index 0000000..62a6450 --- /dev/null +++ b/.github/workflows/osumusic.yml @@ -0,0 +1,45 @@ +name: Docker Build and Push + +on: + push: + branches: + - main + paths: + - 'proxy/**' + - 'frontend/**' + pull_request: + paths: + - 'proxy/**' + - 'frontend/**' + +jobs: + build-and-push: + runs-on: ubuntu-latest + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Docker Buildx + uses: docker/setup-buildx-action@v2 + + - name: Build Proxy Docker image + run: | + docker build -t juli0n21/proxy-container:latest -t juli0n21/proxy-container:${{ github.sha }} . + + - name: Build Frontend Docker image + run: | + docker build -t juli0n21/frontend-container:latest -t juli0n21/frontend-container:${{ github.sha }} . + + - name: Log in to Docker Hub + env: + DOCKER_HUB_USERNAME: ${{ secrets.DOCKER_HUB_USERNAME }} + DOCKER_HUB_TOKEN: ${{ secrets.DOCKER_HUB_TOKEN }} + run: | + echo "${DOCKER_HUB_TOKEN}" | docker login -u "${DOCKER_HUB_USERNAME}" --password-stdin + + - name: Push Docker image + run: | + docker push juli0n21/proxy-container:${{ github.sha }} + docker push juli0n21/proxy-container:latest + docker push juli0n21/frontend-container:${{ github.sha }} + docker push juli0n21/frontend-container:latest \ No newline at end of file diff --git a/deployment/frontend-service.yml b/deployment/frontend-service.yml new file mode 100644 index 0000000..4af8c10 --- /dev/null +++ b/deployment/frontend-service.yml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: frontend-service + namespace: osu-music +spec: + selector: + app: frontend + ports: + - protocol: TCP + port: 80 + targetPort: 80 + nodePort: 5001 + type: NodePort diff --git a/deployment/frontend.yml b/deployment/frontend.yml new file mode 100644 index 0000000..a741ba2 --- /dev/null +++ b/deployment/frontend.yml @@ -0,0 +1,20 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: frontend-deployment + namespace: osu-music +spec: + replicas: 1 + selector: + matchLabels: + app: frontend + template: + metadata: + labels: + app: frontend + spec: + containers: + - name: frontend-container + image: frontend + ports: + - containerPort: 80 diff --git a/deployment/proxy-pvc.yml b/deployment/proxy-pvc.yml new file mode 100644 index 0000000..a740eff --- /dev/null +++ b/deployment/proxy-pvc.yml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: proxy-data-pvc + namespace: osu-music +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi \ No newline at end of file diff --git a/deployment/proxy-service.yml b/deployment/proxy-service.yml new file mode 100644 index 0000000..e7e179e --- /dev/null +++ b/deployment/proxy-service.yml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: backend-service + namespace: osu-music +spec: + selector: + app: backend + ports: + - protocol: TCP + port: 80 + targetPort: 80 + nodePort: 5002 + type: NodePort diff --git a/deployment/proxy.yml b/deployment/proxy.yml new file mode 100644 index 0000000..10e4fd4 --- /dev/null +++ b/deployment/proxy.yml @@ -0,0 +1,27 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: backend-deployment + namespace: osu-music +spec: + replicas: 1 + selector: + matchLabels: + app: backend + template: + metadata: + labels: + app: backend + spec: + containers: + - name: proxy-container + image: proxy + ports: + - containerPort: 80 + volumeMounts: + - name: proxy-data + mountPath: /app/data + volumes: + - name: proxy-data + persistentVolumeClaim: + claimName: proxy-data-pvc