From bb27b33c5b8984eda90063f4130340df173e0748 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dawid=20Wysoki=C5=84ski?= Date: Thu, 26 Jan 2023 08:23:07 +0100 Subject: [PATCH] build: add .drone.yml --- .drone.yml | 84 +++++++++++++++++++++++++++++ Caddyfile | 3 ++ Dockerfile | 1 - README.md | 2 +- k8s/base/caddy.yml | 51 ++++++++++++++++++ k8s/base/kustomization.yml | 8 +++ k8s/overlays/prod/ingress.yml | 20 +++++++ k8s/overlays/prod/kustomization.yml | 6 +++ manifest.tmpl | 13 +++++ 9 files changed, 186 insertions(+), 2 deletions(-) create mode 100644 .drone.yml create mode 100644 k8s/base/caddy.yml create mode 100644 k8s/base/kustomization.yml create mode 100644 k8s/overlays/prod/ingress.yml create mode 100644 k8s/overlays/prod/kustomization.yml create mode 100644 manifest.tmpl diff --git a/.drone.yml b/.drone.yml new file mode 100644 index 0000000..c727fc7 --- /dev/null +++ b/.drone.yml @@ -0,0 +1,84 @@ +--- +kind: pipeline +type: docker +name: linux-amd64 + +platform: + os: linux + arch: amd64 + +steps: + - name: publish + image: plugins/docker + settings: + username: + from_secret: docker_username + password: + from_secret: docker_password + registry: gitea.dwysokinski.me + repo: gitea.dwysokinski.me/twhelp-packages/scripts + auto_tag: true + auto_tag_suffix: linux-amd64 + dockerfile: Dockerfile + +trigger: + event: + - tag +--- +kind: pipeline +type: docker +name: manifest + +steps: + - name: manifest + image: plugins/manifest + settings: + auto_tag: "true" + ignore_missing: "true" + spec: manifest.tmpl + username: + from_secret: docker_username + password: + from_secret: docker_password + - name: manifest-latest + image: plugins/manifest + settings: + tags: latest + ignore_missing: "true" + spec: manifest.tmpl + username: + from_secret: docker_username + password: + from_secret: docker_password + +trigger: + event: + - tag + +depends_on: + - linux-amd64 + +--- +kind: pipeline +type: docker +name: deploy + +steps: + - name: deploy-k8s + image: alpine/k8s:1.25.5 + environment: + KUBECONFIG: + from_secret: kubeconfig + commands: + - "mkdir ~/.kube && echo \"$KUBECONFIG\" > ~/.kube/twhelp" + - "cd ./k8s/overlays/prod && kustomize edit set image scripts=gitea.dwysokinski.me/twhelp-packages/scripts:${DRONE_TAG##v} && cd ../../.." + - kustomize build ./k8s/overlays/prod | kubectl --kubeconfig ~/.kube/twhelp apply -n twhelp -f - + +trigger: + event: + - tag +--- +kind: signature +hmac: b03cbfdb69c54f0762033201c913f1660ff205f43c85139f0a79ec7425cbae15 + +... diff --git a/Caddyfile b/Caddyfile index 094a13d..e0cf8c1 100644 --- a/Caddyfile +++ b/Caddyfile @@ -2,4 +2,7 @@ root * /var/www file_server header -Server + header Cache-Control max-age=3600 + header /quickbar/*.js Content-type "text/javascript; charset=UTF-8" + header /userscripts/*.js Content-type "text/javascript; charset=UTF-8" } diff --git a/Dockerfile b/Dockerfile index dc3eee9..e62a8d3 100644 --- a/Dockerfile +++ b/Dockerfile @@ -11,5 +11,4 @@ RUN yarn build FROM caddy:2.6.2-alpine COPY --from=build-deps /app/dist /var/www -COPY --from=build-deps /app/static /var/www COPY Caddyfile /etc/caddy/Caddyfile diff --git a/README.md b/README.md index a63a306..1812e41 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ -# scripts +# Scripts diff --git a/k8s/base/caddy.yml b/k8s/base/caddy.yml new file mode 100644 index 0000000..bfa7dd3 --- /dev/null +++ b/k8s/base/caddy.yml @@ -0,0 +1,51 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: scripts-caddy-deployment +spec: + selector: + matchLabels: + app: scripts-caddy + template: + metadata: + labels: + app: scripts-caddy + spec: + containers: + - name: scripts-caddy + image: scripts + ports: + - name: container-port + containerPort: 80 + livenessProbe: + httpGet: + path: /quickbar/extendedPlayerProfile.js + port: container-port + initialDelaySeconds: 5 + periodSeconds: 5 + readinessProbe: + httpGet: + path: /quickbar/extendedPlayerProfile.js + port: container-port + initialDelaySeconds: 5 + periodSeconds: 10 + resources: + requests: + cpu: 50m + memory: 64Mi + limits: + cpu: 100m + memory: 128Mi +--- +apiVersion: v1 +kind: Service +metadata: + name: scripts-caddy-service +spec: + ports: + - port: 80 + targetPort: 80 + protocol: TCP + name: http + selector: + app: scripts-caddy diff --git a/k8s/base/kustomization.yml b/k8s/base/kustomization.yml new file mode 100644 index 0000000..e0897aa --- /dev/null +++ b/k8s/base/kustomization.yml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - caddy.yml +images: + - name: scripts + newName: scripts + newTag: latest diff --git a/k8s/overlays/prod/ingress.yml b/k8s/overlays/prod/ingress.yml new file mode 100644 index 0000000..3bc3d65 --- /dev/null +++ b/k8s/overlays/prod/ingress.yml @@ -0,0 +1,20 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: twhelp-caddy-ingress + annotations: + traefik.ingress.kubernetes.io/router.entrypoints: "web" + traefik.ingress.kubernetes.io/router.tls: "false" + traefik.ingress.kubernetes.io/router.middlewares: kube-system-compress@kubernetescrd +spec: + rules: + - host: scripts.tribalwarshelp.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: twhelp-caddy-service + port: + number: 80 diff --git a/k8s/overlays/prod/kustomization.yml b/k8s/overlays/prod/kustomization.yml new file mode 100644 index 0000000..f4d923e --- /dev/null +++ b/k8s/overlays/prod/kustomization.yml @@ -0,0 +1,6 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namespace: twhelp +resources: + - ../../base + - ingress.yml diff --git a/manifest.tmpl b/manifest.tmpl new file mode 100644 index 0000000..509f588 --- /dev/null +++ b/manifest.tmpl @@ -0,0 +1,13 @@ +image: gitea.dwysokinski.me/twhelp-packages/scripts:{{#if build.tag}}{{trimPrefix "v" build.tag}}{{else}}latest{{/if}} +{{#if build.tags}} +tags: +{{#each build.tags}} + - {{this}} +{{/each}} +{{/if}} +manifests: + - + image: gitea.dwysokinski.me/twhelp-packages/scripts:{{#if build.tag}}{{trimPrefix "v" build.tag}}-{{/if}}linux-amd64 + platform: + architecture: amd64 + os: linux