Compare commits
2 Commits
e932269f04
...
8730911a5d
Author | SHA1 | Date | |
---|---|---|---|
8730911a5d | |||
4b32e554dc |
91
.drone.yml
91
.drone.yml
@ -5,6 +5,8 @@ name: staging
|
|||||||
trigger:
|
trigger:
|
||||||
event:
|
event:
|
||||||
- push
|
- push
|
||||||
|
branch:
|
||||||
|
- main
|
||||||
|
|
||||||
# STAGING!!!!
|
# STAGING!!!!
|
||||||
steps:
|
steps:
|
||||||
@ -61,6 +63,8 @@ steps:
|
|||||||
- .drone/helm/staging-val.yaml
|
- .drone/helm/staging-val.yaml
|
||||||
values:
|
values:
|
||||||
- "image=dutchellie/proper-website-2:dev-${DRONE_COMMIT_SHA:0:8}"
|
- "image=dutchellie/proper-website-2:dev-${DRONE_COMMIT_SHA:0:8}"
|
||||||
|
- "baseURL=staging.quenten.nl"
|
||||||
|
- "name=newsite-staging"
|
||||||
kube_api_server:
|
kube_api_server:
|
||||||
from_secret: staging_api_server
|
from_secret: staging_api_server
|
||||||
kube_token:
|
kube_token:
|
||||||
@ -87,6 +91,8 @@ trigger:
|
|||||||
- promote
|
- promote
|
||||||
target:
|
target:
|
||||||
- production
|
- production
|
||||||
|
branch:
|
||||||
|
- main
|
||||||
|
|
||||||
# PRODUCTION!!!!
|
# PRODUCTION!!!!
|
||||||
steps:
|
steps:
|
||||||
@ -143,6 +149,8 @@ steps:
|
|||||||
- .drone/helm/prod-val.yaml
|
- .drone/helm/prod-val.yaml
|
||||||
values:
|
values:
|
||||||
- "image=dutchellie/proper-website-2:latest-${DRONE_COMMIT_SHA:0:8}"
|
- "image=dutchellie/proper-website-2:latest-${DRONE_COMMIT_SHA:0:8}"
|
||||||
|
- "baseURL=quenten.nl"
|
||||||
|
- "name=newsite-prod"
|
||||||
kube_api_server:
|
kube_api_server:
|
||||||
from_secret: prod_api_server
|
from_secret: prod_api_server
|
||||||
kube_token:
|
kube_token:
|
||||||
@ -156,4 +164,87 @@ steps:
|
|||||||
|
|
||||||
volumes:
|
volumes:
|
||||||
- name: build
|
- name: build
|
||||||
|
temp: {}
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
kind: pipeline
|
||||||
|
type: kubernetes
|
||||||
|
name: feature-branch
|
||||||
|
|
||||||
|
trigger:
|
||||||
|
event:
|
||||||
|
- push
|
||||||
|
branch:
|
||||||
|
exclude:
|
||||||
|
- main
|
||||||
|
|
||||||
|
# FEATURE DEPLOY
|
||||||
|
steps:
|
||||||
|
- name: build-wasm
|
||||||
|
image: golang:1.17.8-alpine
|
||||||
|
volumes:
|
||||||
|
- name: build-feature
|
||||||
|
path: /drone/src/build
|
||||||
|
environment:
|
||||||
|
APIURL: https://api.quenten.nl/api/testing
|
||||||
|
CGO_ENABLED: 0
|
||||||
|
commands:
|
||||||
|
- mkdir ./build/web
|
||||||
|
- GOARCH=wasm GOOS=js go build -o ./build/web/app.wasm -ldflags="-X 'main.ApiURL=$APIURL'" ./src
|
||||||
|
- name: build-server
|
||||||
|
image: golang:1.17.8-alpine
|
||||||
|
volumes:
|
||||||
|
- name: build-feature
|
||||||
|
path: /drone/src/build
|
||||||
|
environment:
|
||||||
|
APIURL: https://api.quenten.nl/api/testing
|
||||||
|
CGO_ENABLED: 0
|
||||||
|
commands:
|
||||||
|
- go build -o ./build/app -ldflags="-X 'main.ApiURL=$APIURL'" ./src
|
||||||
|
- name: build-publish-image
|
||||||
|
image: plugins/docker
|
||||||
|
privileged: true
|
||||||
|
volumes:
|
||||||
|
- name: build-feature
|
||||||
|
path: /drone/src/build
|
||||||
|
settings:
|
||||||
|
username:
|
||||||
|
from_secret: docker_username
|
||||||
|
password:
|
||||||
|
from_secret: docker_password
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
repo: dutchellie/proper-website-2
|
||||||
|
tags:
|
||||||
|
- feature-${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:8}
|
||||||
|
depends_on:
|
||||||
|
- build-wasm
|
||||||
|
- build-server
|
||||||
|
- name: deploy-staging
|
||||||
|
image: pelotech/drone-helm3
|
||||||
|
settings:
|
||||||
|
mode: upgrade
|
||||||
|
chart: .drone/helm/chart
|
||||||
|
namespace: drone-staging
|
||||||
|
release: feature-${DRONE_BRANCH}
|
||||||
|
skip_tls_verify: true
|
||||||
|
values_files:
|
||||||
|
- .drone/helm/staging-val.yaml
|
||||||
|
values:
|
||||||
|
- "image=dutchellie/proper-website-2:feature-${DRONE_BRANCH}-${DRONE_COMMIT_SHA:0:8}"
|
||||||
|
- "baseURL=${DRONE_BRANCH}.quenten.nl"
|
||||||
|
- "name=${DRONE_BRANCH}-deployment"
|
||||||
|
kube_api_server:
|
||||||
|
from_secret: staging_api_server
|
||||||
|
kube_token:
|
||||||
|
from_secret: staging_kube_token
|
||||||
|
kube_certificate:
|
||||||
|
from_secret: staging_kube_certificate
|
||||||
|
kube_service_account: drone-deploy
|
||||||
|
dry_run: false
|
||||||
|
depends_on:
|
||||||
|
- build-publish-image
|
||||||
|
|
||||||
|
volumes:
|
||||||
|
- name: build-feature
|
||||||
temp: {}
|
temp: {}
|
@ -1,3 +1,3 @@
|
|||||||
apiVersion: v2
|
apiVersion: v2
|
||||||
name: newsite
|
name: newsite
|
||||||
version: v0.0.1
|
version: v0.0.2
|
@ -1,11 +1,11 @@
|
|||||||
apiVersion: networking.k8s.io/v1
|
apiVersion: networking.k8s.io/v1
|
||||||
kind: Ingress
|
kind: Ingress
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ .Values.ingress.name }}
|
name: {{ tpl .Values.ingress.name . }}
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
{{- with .Values.ingress.annotations }}
|
{{- with .Values.ingress.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
{{- toYaml . | nindent 4 }}
|
{{- tpl (. | toYaml) $ | nindent 4 }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
spec:
|
spec:
|
||||||
ingressClassName: {{ .Values.ingress.className }}
|
ingressClassName: {{ .Values.ingress.className }}
|
||||||
@ -14,14 +14,14 @@ spec:
|
|||||||
{{- range .Values.ingress.tls }}
|
{{- range .Values.ingress.tls }}
|
||||||
- hosts:
|
- hosts:
|
||||||
{{- range .hosts }}
|
{{- range .hosts }}
|
||||||
- {{ . | quote }}
|
- {{ tpl . $ | quote }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
secretName: {{ .secretName }}
|
secretName: {{ tpl (.secretName | toYaml) $ }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
{{- end }}
|
{{- end }}
|
||||||
rules:
|
rules:
|
||||||
{{- range .Values.ingress.hosts }}
|
{{- range .Values.ingress.hosts }}
|
||||||
- host: {{ .host | quote }}
|
- host: {{ tpl .host $ | quote }}
|
||||||
http:
|
http:
|
||||||
paths:
|
paths:
|
||||||
{{- range .paths }}
|
{{- range .paths }}
|
||||||
@ -29,7 +29,7 @@ spec:
|
|||||||
pathType: {{ .pathType }}
|
pathType: {{ .pathType }}
|
||||||
backend:
|
backend:
|
||||||
service:
|
service:
|
||||||
name: {{ $.Values.service.name }}
|
name: {{ tpl $.Values.service.name $ }}
|
||||||
port:
|
port:
|
||||||
number: 8000
|
number: 8000
|
||||||
{{- end }}
|
{{- end }}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: Service
|
kind: Service
|
||||||
metadata:
|
metadata:
|
||||||
name: {{ .Values.service.name }}
|
name: {{ tpl .Values.service.name . }}
|
||||||
namespace: {{ .Release.Namespace }}
|
namespace: {{ .Release.Namespace }}
|
||||||
{{- with .Values.service.annotations }}
|
{{- with .Values.service.annotations }}
|
||||||
annotations:
|
annotations:
|
||||||
|
@ -1,23 +1,24 @@
|
|||||||
|
baseURL: quenten.nl
|
||||||
name: newsite-prod
|
name: newsite-prod
|
||||||
containerEnv:
|
containerEnv:
|
||||||
- name: APIURL
|
- name: APIURL
|
||||||
value: https://api.quenten.nl/api
|
value: https://api.quenten.nl/api
|
||||||
service:
|
service:
|
||||||
name: newsite-prod
|
name: "{{ .Values.name }}"
|
||||||
ingress:
|
ingress:
|
||||||
name: newsite-prod
|
name: "{{ .Values.name }}"
|
||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/cluster-issuer: letsencrypt-prod
|
cert-manager.io/cluster-issuer: "letsencrypt-{{ .Values.name }}"
|
||||||
external-dns.alpha.kubernetes.io/hostname: "quenten.nl"
|
external-dns.alpha.kubernetes.io/hostname: "{{ .Values.baseURL }}"
|
||||||
nginx.ingress.kubernetes.io/configuration-snippet: |
|
nginx.ingress.kubernetes.io/configuration-snippet: |
|
||||||
add_header Content-Security-Policy "frame-ancestors 'self' https://forestofunix.xyz";
|
add_header Content-Security-Policy "frame-ancestors 'self' https://forestofunix.xyz";
|
||||||
proxy_hide_header X-Frame-Options ;
|
proxy_hide_header X-Frame-Options ;
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- quenten.nl
|
- "{{ .Values.baseURL }}"
|
||||||
secretName: newsite-tls
|
secretName: "{{ .Values.name }}-tls"
|
||||||
hosts:
|
hosts:
|
||||||
- host: quenten.nl
|
- host: "{{ .Values.baseURL }}"
|
||||||
paths:
|
paths:
|
||||||
- path: /
|
- path: /
|
||||||
pathType: Prefix
|
pathType: Prefix
|
@ -1,23 +1,24 @@
|
|||||||
|
baseURL: staging.quenten.nl
|
||||||
name: newsite-staging
|
name: newsite-staging
|
||||||
containerEnv:
|
containerEnv:
|
||||||
- name: APIURL
|
- name: APIURL
|
||||||
value: https://api.quenten.nl/api/testing
|
value: https://api.quenten.nl/api/testing
|
||||||
service:
|
service:
|
||||||
name: newsite-staging
|
name: "{{ .Values.name }}"
|
||||||
ingress:
|
ingress:
|
||||||
name: newsite-staging
|
name: "{{ .Values.name }}"
|
||||||
annotations:
|
annotations:
|
||||||
cert-manager.io/cluster-issuer: letsencrypt-staging
|
cert-manager.io/cluster-issuer: "letsencrypt-{{ .Values.name }}"
|
||||||
external-dns.alpha.kubernetes.io/hostname: "staging.quenten.nl"
|
external-dns.alpha.kubernetes.io/hostname: "{{ .Values.baseURL }}"
|
||||||
nginx.ingress.kubernetes.io/configuration-snippet: |
|
nginx.ingress.kubernetes.io/configuration-snippet: |
|
||||||
add_header Content-Security-Policy "frame-ancestors 'self' https://forestofunix.xyz";
|
add_header Content-Security-Policy "frame-ancestors 'self' https://forestofunix.xyz";
|
||||||
proxy_hide_header X-Frame-Options ;
|
proxy_hide_header X-Frame-Options ;
|
||||||
tls:
|
tls:
|
||||||
- hosts:
|
- hosts:
|
||||||
- staging.quenten.nl
|
- "{{ .Values.baseURL }}"
|
||||||
secretName: newsite-staging-tls
|
secretName: "{{ .Values.name }}-tls"
|
||||||
hosts:
|
hosts:
|
||||||
- host: staging.quenten.nl
|
- host: "{{ .Values.baseURL }}"
|
||||||
paths:
|
paths:
|
||||||
- path: /
|
- path: /
|
||||||
pathType: Prefix
|
pathType: Prefix
|
Loading…
Reference in New Issue
Block a user