Skip to content

Commit

Permalink
feat: add deploy with kustomize
Browse files Browse the repository at this point in the history
  • Loading branch information
hegeaal committed Jun 17, 2024
1 parent 2e05f03 commit 5c1b969
Show file tree
Hide file tree
Showing 11 changed files with 283 additions and 12 deletions.
24 changes: 17 additions & 7 deletions .github/workflows/deploy-prod&demo.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,38 @@ on:
push:
branches:
- main
workflow_dispatch:

jobs:
build-and-deploy-production:
name: Deploy to prod on merge to main branch
uses: Informasjonsforvaltning/workflows/.github/workflows/build-deploy-maven.yaml@main
build-fdk-dataservice-harvester:
name: Build when pull request is created
uses: Informasjonsforvaltning/workflows/.github/workflows/build-push.yaml@main
with:
app_name: fdk-dataservice-harvester
java_version: '17'
coverage_file_path: ./target/site/jacoco/jacoco.xml
environment: prod
secrets:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GCP_SA_DIGDIR_FDK_GCR_KEY: ${{ secrets.GCP_SA_DIGDIR_FDK_GCR_KEY }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

deploy-prod:
name: Deploy to prod environment
needs: [ build-fdk-dataservice-harvester ]
uses: Informasjonsforvaltning/workflows/.github/workflows/kustomize-deploy.yaml@main
with:
app_name: fdk-dataservice-harvester
environment: prod
cluster: digdir-fdk-prod
secrets:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GCP_SA_DIGDIR_FDK_GCR_KEY: ${{ secrets.GCP_SA_DIGDIR_FDK_GCR_KEY }}
DIGDIR_FDK_AUTODEPLOY: ${{ secrets.DIGDIR_FDK_PROD_AUTODEPLOY }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}

deploy-to-demo:
needs: build-and-deploy-production
needs: deploy-prod
name: Deploy to demo if prod-deploy is successful
uses: Informasjonsforvaltning/workflows/.github/workflows/deploy.yaml@main
uses: Informasjonsforvaltning/workflows/.github/workflows/kustomize-deploy.yaml@main
with:
app_name: fdk-dataservice-harvester
environment: demo
Expand Down
21 changes: 16 additions & 5 deletions .github/workflows/deploy-staging.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -7,19 +7,30 @@ on:
- main

jobs:
build-and-deploy-staging:
name: Call reusable workflow when pull request is created
build-fdk-dataservice-harvester:
name: Build when pull request is created
if: github.event.pull_request.draft == false
uses: Informasjonsforvaltning/workflows/.github/workflows/build-deploy-maven.yaml@main
uses: Informasjonsforvaltning/workflows/.github/workflows/build-push.yaml@main
with:
app_name: fdk-dataservice-harvester
java_version: '17'
coverage_file_path: ./target/site/jacoco/jacoco.xml
environment: staging
cluster: digdir-fdk-dev
secrets:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
GCP_SA_DIGDIR_FDK_GCR_KEY: ${{ secrets.GCP_SA_DIGDIR_FDK_GCR_KEY }}
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

deploy:
name: Deploy to staging environment
if: ${{ github.actor != 'dependabot[bot]' && github.event.pull_request.draft == false }}
needs: [ build-fdk-dataservice-harvester ]
uses: Informasjonsforvaltning/workflows/.github/workflows/kustomize-deploy.yaml@main
with:
app_name: fdk-dataservice-harvester
environment: staging
cluster: digdir-fdk-dev
secrets:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
DIGDIR_FDK_AUTODEPLOY: ${{ secrets.DIGDIR_FDK_DEV_AUTODEPLOY }}
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
DEPENDABOT_SLACK_WEBHOOK_URL: ${{ secrets.DEPENDABOT_SLACK_WEBHOOK_URL }}
36 changes: 36 additions & 0 deletions deploy/base/fdk-dataservice-harvester-deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
apiVersion: apps/v1
kind: Deployment
metadata:
creationTimestamp: null
labels:
fdk.service: fdk-dataservice-harvester
name: fdk-dataservice-harvester
spec:
replicas: 1
selector:
matchLabels:
fdk.service: fdk-dataservice-harvester
strategy:
type: RollingUpdate
template:
metadata:
creationTimestamp: null
labels:
fdk.service: fdk-dataservice-harvester
annotations:
prometheus.io/scrape: "true"
prometheus.io/path: "/prometheus"
spec:
containers:
- name: fdk-dataservice-harvester
image: fdk-dataservice-harvester
imagePullPolicy: Always
ports:
- containerPort: 8080
resources:
requests:
memory: "650Mi"
cpu: "20m"
limits: "650Mi"
restartPolicy: Always
status: {}
18 changes: 18 additions & 0 deletions deploy/base/fdk-dataservice-harvester-service.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
---
apiVersion: v1
kind: Service
metadata:
creationTimestamp: null
labels:
fdk.service: fdk-dataservice-harvester
name: fdk-dataservice-harvester
spec:
type: NodePort
ports:
- name: "8080"
port: 8080
targetPort: 8080
selector:
fdk.service: fdk-dataservice-harvester
status:
loadBalancer: {}
10 changes: 10 additions & 0 deletions deploy/base/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- fdk-dataservice-harvester-deployment.yaml
- fdk-dataservice-harvester-service.yaml
images:
- name: fdk-dataservice-harvester
newName: eu.gcr.io/digdir-fdk-infra/fdk-dataservice-harvester
newTag: $(GIT_COMMIT_SHA)
53 changes: 53 additions & 0 deletions deploy/demo/env.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: fdk-dataservice-harvester
labels:
app: fdk-dataservice-harvester
spec:
template:
spec:
containers:
- name: fdk-dataservice-harvester
env:
- name: FDK_DATASERVICE_HARVESTER_URI
valueFrom:
secretKeyRef:
name: commonurl-demo
key: FDK_DATASERVICE_HARVESTER_BASE_URI
- name: RABBIT_USERNAME
valueFrom:
secretKeyRef:
name: rabbitmq-demo
key: RABBITMQ_USERNAME
- name: RABBIT_PASSWORD
valueFrom:
secretKeyRef:
name: rabbitmq-demo
key: RABBITMQ_PASSWORD
- name: HARVEST_ADMIN_ROOT_URL
valueFrom:
secretKeyRef:
name: commonurl-demo
key: ADMIN_API_BASE_URI
- name: MONGO_USERNAME
valueFrom:
secretKeyRef:
name: mongo-demo
key: MONGO_USERNAME
- name: MONGO_PASSWORD
valueFrom:
secretKeyRef:
name: mongo-demo
key: MONGO_PASSWORD
- name: SSO_HOST
valueFrom:
secretKeyRef:
name: commonurl-demo
key: SSO_BASE_URI
- name: ADMIN_API_KEY
valueFrom:
secretKeyRef:
name: fdk-harvest-admin
key: API_KEY
9 changes: 9 additions & 0 deletions deploy/demo/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: demo
resources:
- ../base

patchesStrategicMerge:
- env.yaml
53 changes: 53 additions & 0 deletions deploy/prod/env.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: fdk-dataservice-harvester
labels:
app: fdk-dataservice-harvester
spec:
template:
spec:
containers:
- name: fdk-dataservice-harvester
env:
- name: FDK_DATASERVICE_HARVESTER_URI
valueFrom:
secretKeyRef:
name: commonurl-prod
key: FDK_DATASERVICE_HARVESTER_BASE_URI
- name: RABBIT_USERNAME
valueFrom:
secretKeyRef:
name: rabbitmq-prod
key: RABBITMQ_USERNAME
- name: RABBIT_PASSWORD
valueFrom:
secretKeyRef:
name: rabbitmq-prod
key: RABBITMQ_PASSWORD
- name: HARVEST_ADMIN_ROOT_URL
valueFrom:
secretKeyRef:
name: commonurl-prod
key: ADMIN_API_BASE_URI
- name: MONGO_USERNAME
valueFrom:
secretKeyRef:
name: mongo-prod
key: MONGO_USERNAME
- name: MONGO_PASSWORD
valueFrom:
secretKeyRef:
name: mongo-prod
key: MONGO_PASSWORD
- name: SSO_HOST
valueFrom:
secretKeyRef:
name: commonurl-prod
key: SSO_BASE_URI
- name: ADMIN_API_KEY
valueFrom:
secretKeyRef:
name: fdk-harvest-admin
key: API_KEY
9 changes: 9 additions & 0 deletions deploy/prod/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: prod
resources:
- ../base

patchesStrategicMerge:
- env.yaml
53 changes: 53 additions & 0 deletions deploy/staging/env.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: fdk-dataservice-harvester
labels:
app: fdk-dataservice-harvester
spec:
template:
spec:
containers:
- name: fdk-dataservice-harvester
env:
- name: FDK_DATASERVICE_HARVESTER_URI
valueFrom:
secretKeyRef:
name: commonurl-staging
key: FDK_DATASERVICE_HARVESTER_BASE_URI
- name: RABBIT_USERNAME
valueFrom:
secretKeyRef:
name: rabbitmq-staging
key: RABBITMQ_USERNAME
- name: RABBIT_PASSWORD
valueFrom:
secretKeyRef:
name: rabbitmq-staging
key: RABBITMQ_PASSWORD
- name: HARVEST_ADMIN_ROOT_URL
valueFrom:
secretKeyRef:
name: commonurl-staging
key: ADMIN_API_BASE_URI
- name: MONGO_USERNAME
valueFrom:
secretKeyRef:
name: mongo-staging
key: MONGO_USERNAME
- name: MONGO_PASSWORD
valueFrom:
secretKeyRef:
name: mongo-staging
key: MONGO_PASSWORD
- name: SSO_HOST
valueFrom:
secretKeyRef:
name: commonurl-staging
key: SSO_BASE_URI
- name: ADMIN_API_KEY
valueFrom:
secretKeyRef:
name: fdk-harvest-admin
key: API_KEY
9 changes: 9 additions & 0 deletions deploy/staging/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
---
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: staging
resources:
- ../base

patchesStrategicMerge:
- env.yaml

0 comments on commit 5c1b969

Please sign in to comment.