From 14390c5c2125337444f65fa7bd18a657205efb17 Mon Sep 17 00:00:00 2001 From: Dustin Pianalto Date: Sat, 2 Oct 2021 16:42:40 -0800 Subject: [PATCH] Update deployment and action --- .github/workflows/main.yml | 48 ++++++++++++++++++++++++-------------- deployment.yml | 11 ++++++++- 2 files changed, 41 insertions(+), 18 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 23cb2cf..12e027b 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -20,30 +20,44 @@ jobs: - name: Get Version id: get_version uses: battila7/get-version-action@v2.0.0 - - - name: Build container image - env: - IMAGE_TAG: ${{ steps.get_version.outputs.version-without-v }} - run: docker build -t registry.digitalocean.com/djpianalto/geeksbot:$IMAGE_TAG . - - - name: Install doctl - uses: digitalocean/action-doctl@v2 + + - name: install buildx + id: buildx + uses: crazy-max/ghaction-docker-buildx@v1 with: - token: ${{ secrets.DIGITALOCEAN_ACCESS_TOKEN }} + version: latest - - name: Login to DigitalOcean Container Registry with short-lived credentials - run: doctl registry login --expiry-seconds 600 + - name: Docker Login + # You may pin to the exact commit or the version. + # uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9 + uses: docker/login-action@v1.10.0 + with: + registry: ${{ secrets.DR_URL }} + # Username used to log against the Docker registry + username: ${{ secrets.DH_USERNAME }} + # Password or personal access token used to log against the Docker registry + password: ${{ secrets.DH_PASSWORD }} + # Log out from the Docker registry at the end of a job + logout: true - - name: Push image to DigitalOcean Container Registry - run: docker push registry.digitalocean.com/djpianalto/geeksbot + - name: Docker Build & Push + env: + IMAGE_TAG: ${{ steps.get_version.outputs.version-without-v }} + run: | + docker buildx build --push \ + --tag ${{ secrets.DR_URL }}/geeksbot:$IMAGE_TAG \ + --platform linux/amd64,linux/arm/v7,linux/arm64 . - name: Update deployment file - run: TAG=${{ steps.get_version.outputs.version-without-v }} && sed -i 's||registry.digitalocean.com/djpianalto/geeksbot:'${TAG}'|' $GITHUB_WORKSPACE/deployment.yml + run: TAG=${{ steps.get_version.outputs.version-without-v }} && sed -i 's||${{ secrets.DR_URL }}/geeksbot:'${TAG}'|' $GITHUB_WORKSPACE/deployment.yml - - name: Save DigitalOcean kubeconfig with short-lived credentials - run: doctl kubernetes cluster kubeconfig save --expiry-seconds 600 discord-bots + - uses: azure/k8s-set-context@v1 + with: + method: kubeconfig + kubeconfig: ${{ secrets.KUBE_CONFIG }} + id: setcontext - - name: Deploy to DigitalOcean Kubernetes + - name: Deploy to Kubernetes run: kubectl apply -f $GITHUB_WORKSPACE/deployment.yml - name: Verify deployment diff --git a/deployment.yml b/deployment.yml index 317b862..8305819 100644 --- a/deployment.yml +++ b/deployment.yml @@ -2,7 +2,7 @@ apiVersion: apps/v1 kind: Deployment metadata: name: geeksbot - namespace: default + namespace: discord-bots labels: app: geeksbot spec: @@ -23,6 +23,13 @@ spec: containers: - name: geeksbot image: + resources: + requests: + memory: "512Mi" + cpu: "1" + limits: + memory: "1Gi" + cpu: "2" env: - name: DATABASE_URL valueFrom: @@ -34,3 +41,5 @@ spec: secretKeyRef: name: geeksbot key: discord_token + imagePullSecrets: + - name: registry-2 \ No newline at end of file