DBP-351 add Keycloak to deployment and test helm chart #56
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "Publish image and helm chart on push and (scheduled) trivy, deployment on push, delete namespace on branch deletion" | |
# All triggers have to be in one file, so that the trivy results can be compared to identify introduced vulnerabilities | |
# See DBP-340 | |
on: | |
push: | |
schedule: | |
- cron: '0 2 * * *' | |
delete: | |
concurrency: | |
group: dbildungs-iam-keycloak-${{ github.event.ref }} | |
cancel-in-progress: true | |
jobs: | |
build_image_on_push: | |
name: "Publish image and scan with trivy" | |
if: ${{ github.event_name == 'push' }} | |
permissions: | |
packages: write | |
security-events: write | |
contents: read | |
uses: dBildungsplattform/dbp-github-workflows/.github/workflows/[email protected] | |
with: | |
image_name: "dbildungs-iam" | |
run_trivy_scan: true | |
tag_generation: ${{ github.ref_name == 'main' && 'commit_hash' || 'ticket_from_branch' }} | |
add_latest_tag: ${{ github.ref_name == 'main' }} | |
container_registry: "ghcr.io" | |
fail_on_vulnerabilites: true | |
report_location: "Dockerfile" | |
scheduled_trivy_scan: | |
name: "Scheduled trivy scan of latest image" | |
if: ${{ github.event_name == 'schedule' }} | |
permissions: | |
packages: read | |
security-events: write | |
uses: dBildungsplattform/dbp-github-workflows/.github/workflows/[email protected] | |
with: | |
image_ref: 'ghcr.io/${{ github.repository_owner }}/dbildungs-iam:latest' | |
fail_on_vulnerabilites: false | |
report_location: "Dockerfile" | |
scan_helm: | |
if: ${{ github.event_name == 'push' && !startsWith(github.ref_name,'dependabot/') }} | |
uses: dBildungsplattform/dbp-github-workflows/.github/workflows/[email protected] | |
permissions: | |
contents: read | |
select_helm_version_generation: | |
if: ${{ github.event_name == 'push'}} | |
needs: | |
- scan_helm | |
runs-on: ubuntu-latest | |
outputs: | |
SELECT_HELM_VERION_GENERATION: ${{ steps.select_generation.outputs.SELECT_HELM_VERION_GENERATION }} | |
steps: | |
- id: select_generation | |
shell: bash | |
run: | | |
if ${{ github.ref_name == 'main' }}; then | |
echo "SELECT_HELM_VERION_GENERATION=short_hash" >> "$GITHUB_OUTPUT" | |
else | |
echo "SELECT_HELM_VERION_GENERATION=ticket_from_branch_short_hash" >> "$GITHUB_OUTPUT" | |
fi | |
release_helm: | |
if: ${{ github.event_name == 'push' && !startsWith(github.ref_name,'dependabot/') }} | |
uses: dBildungsplattform/dbp-github-workflows/.github/workflows/chart-release.yaml@DBP-352-Set-the-correct-Docker-Image-in-the-Helm-chart-for-each-SPSH-repository | |
secrets: inherit | |
with: | |
chart_name: dbildungscloud-iam-keycloak | |
version_generation: ticket_from_branch_short_hash | |
tag_generation: ticket_from_branch | |
branch_meta: | |
if: ${{ github.event_name == 'push' && !startsWith(github.ref_name,'dependabot/') }} | |
uses: dBildungsplattform/spsh-app-deploy/.github/workflows/get-branch-meta.yml@main | |
create_branch_identifier: | |
if: ${{ github.event_name == 'push' && !startsWith(github.ref_name,'dependabot/') }} | |
needs: | |
- branch_meta | |
uses: dBildungsplattform/spsh-app-deploy/.github/workflows/branch-to-namespace.yml@main | |
with: | |
branch: ${{ needs.branch_meta.outputs.branch }} | |
deploy: | |
if: ${{ github.event_name == 'push' && !startsWith(github.ref_name,'dependabot/') && (success() || failure())}} | |
needs: | |
- branch_meta | |
- create_branch_identifier | |
- release_helm | |
- build_image_on_push | |
uses: dBildungsplattform/spsh-app-deploy/.github/workflows/deploy.yml@main | |
with: | |
dbildungs_iam_server_branch: main | |
dbildungs_iam_client_branch: main | |
dbildungs_iam_keycloak_branch: ${{ needs.branch_meta.outputs.ticket }} | |
namespace: ${{ needs.create_branch_identifier.outputs.namespace_from_branch }} | |
secrets: | |
SPSH_DEV_KUBECONFIG: ${{ secrets.SPSH_DEV_KUBECONFIG }} | |
create_branch_identifier_for_deletion: | |
if: ${{ github.event_name == 'delete' && github.event.ref_type == 'branch' }} | |
uses: dBildungsplattform/spsh-app-deploy/.github/workflows/branch-to-namespace.yml@main | |
with: | |
branch: ${{ github.event.ref }} | |
delete_namespace: | |
if: ${{ github.event_name == 'delete' && github.event.ref_type == 'branch'}} | |
needs: | |
- create_branch_identifier_for_deletion | |
uses: dBildungsplattform/spsh-app-deploy/.github/workflows/delete-namespace.yml@main | |
with: | |
namespace: ${{ needs.create_branch_identifier_for_deletion.outputs.namespace_from_branch }} | |
secrets: | |
SPSH_DEV_KUBECONFIG: ${{ secrets.SPSH_DEV_KUBECONFIG }} | |
delete_successful: | |
if: ${{ github.event_name == 'delete' && github.event.ref_type == 'branch' }} | |
needs: | |
- delete_namespace | |
- create_branch_identifier_for_deletion | |
runs-on: ubuntu-latest | |
steps: | |
- run: echo "Deletion workflow of namespace" ${{ needs.create_branch_identifier_for_deletion.outputs.namespace_from_branch }} "done" |