Skip to content

Commit

Permalink
deploy to beta
Browse files Browse the repository at this point in the history
  • Loading branch information
hknots committed Sep 25, 2024
1 parent 286939a commit 088bf4d
Show file tree
Hide file tree
Showing 5 changed files with 198 additions and 0 deletions.
117 changes: 117 additions & 0 deletions .github/workflows/CD.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,117 @@
name: CD

on:
repository_dispatch:
types: [trigger-cd]

env:
REGISTRY: ghcr.io
IMAGE_NAME: ${{ github.repository }}

jobs:
build-and-push:
name: Build and push Docker image
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
outputs:
tags: ${{ steps.meta.outputs.tags }}
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Login to Docker Hub
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Extract metadata (tags, labels) for Docker
uses: docker/metadata-action@v5
id: meta
with:
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
tags: |
type=sha,enable=true,priority=100,prefix=sha-,suffix=,format=short
latest
- name: Build and push Docker image
uses: docker/build-push-action@v5
with:
context: .
push: true
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}

deploy-to-aks:
name: deploy for ${{ matrix.org }} to ${{ matrix.cluster }}
runs-on: ubuntu-latest
needs: build-and-push
permissions:
contents: read
packages: write
strategy:
matrix:
org:
- fint-core
cluster:
# - aks-api-fint-2022-02-08
- aks-beta-fint-2021-11-23
# - aks-alpha-fint-2021-11-18

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Get environment
uses: actions/github-script@v6
id: environment
with:
script: return '${{ matrix.cluster }}'.split('-')[1]
result-encoding: string

- name: Get resource group name
uses: actions/github-script@v6
id: resource-group
with:
script: return 'rg-aks-${{ steps.environment.outputs.result }}'
result-encoding: string

- name: Bake manifests with Kustomize
id: bake
uses: azure/k8s-bake@v2
with:
renderEngine: 'kustomize'
kustomizationPath: 'kustomize/base'

- uses: azure/login@v1
with:
creds: "${{ secrets[format('AKS_{0}_FINT_GITHUB', steps.environment.outputs.result)] }}"

- uses: azure/use-kubelogin@v1.1
with:
kubelogin-version: 'v0.0.26'

- name: Set the target cluster
uses: azure/aks-set-context@v3
with:
cluster-name: '${{ matrix.cluster }}'
resource-group: '${{ steps.resource-group.outputs.result }}'
admin: 'true'
use-kubelogin: 'true'

- name: Create Namespace if it doesn't exist
run: |
if ! kubectl get namespace ${{ matrix.org }}; then
kubectl create namespace ${{ matrix.org }}
fi
- name: Deploy
uses: azure/k8s-deploy@v4.9
with:
action: deploy
manifests: ${{ steps.bake.outputs.manifestsBundle }}
images: ${{ needs.build-and-push.outputs.tags }}
namespace: ${{ matrix.org }}
40 changes: 40 additions & 0 deletions .github/workflows/CI.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
name: CI

on:
pull_request:
push:
branches: [main]

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@main

- name: Get repo name
id: get_repo
run: echo ::set-output name=REPO::${GITHUB_REPOSITORY#*/}

- name: Setup Java 21
uses: actions/setup-java@v3.10.0
with:
distribution: 'adopt'
java-version: '21'

- name: Gradle Wrapper Validation
uses: gradle/wrapper-validation-action@v1.1.0

- name: Gradle Setup
uses: gradle/gradle-build-action@v2.8.0
with:
gradle-version: wrapper
arguments: build

- name: Trigger CD
if: github.ref == 'refs/heads/main'
uses: peter-evans/repository-dispatch@v2
with:
token: ${{ secrets.GITHUBACTION_TOKEN }}
repository: ${{ github.repository }}
event-type: trigger-cd
9 changes: 9 additions & 0 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
FROM gradle:8.8-jdk21 as builder
USER root
COPY . .
RUN ./gradlew --no-daemon build

FROM gcr.io/distroless/java21
ENV JAVA_TOOL_OPTIONS -XX:+ExitOnOutOfMemoryError
COPY --from=builder /home/gradle/build/libs/fint-core-access-control*.jar /data/app.jar
CMD ["/data/app.jar"]
19 changes: 19 additions & 0 deletions kustomize/base/flais.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
apiVersion: fintlabs.no/v1alpha1
kind: Application
metadata:
name: fint-core-access-control
namespace: fint-core
spec:
port: 8080
orgId: fintlabs.no
image: ghcr.io/fintlabs/fint-core-access-control:latest
env:
- name: JAVA_TOOL_OPTIONS
value: '-XX:+ExitOnOutOfMemoryError -Xmx525M'
resources:
limits:
memory: "800Mi"
cpu: "1"
requests:
memory: "500Mi"
cpu: "100m"
13 changes: 13 additions & 0 deletions kustomize/base/kustomization.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- flais.yaml
labels:
- pairs:
app.kubernetes.io/name: fint-core-consumer-metamodel
app.kubernetes.io/instance: fint-core-consumer-metamodel_fintlabs_no
app.kubernetes.io/version: latest
app.kubernetes.io/component: backend
app.kubernetes.io/part-of: fint-core
fintlabs.no/team: core
fintlabs.no/org-id: fintlabs.no

0 comments on commit 088bf4d

Please sign in to comment.