Skip to content

Commit 6b248bb

Browse files
chore: runtime app configuration sources (#17729)
1 parent 5bc0bf4 commit 6b248bb

File tree

12 files changed

+532
-0
lines changed

12 files changed

+532
-0
lines changed
Lines changed: 106 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,106 @@
1+
name: Runtime - deploy apps config
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
paths:
8+
- infra/runtime/apps-config/**
9+
- .github/workflows/deploy-runtime-apps-config.yaml
10+
workflow_dispatch:
11+
inputs:
12+
rings:
13+
description: 'Rings to tag the artifact with. Format of the input object is [{"ring": "at_ring1", "environment": "runtime_at_ring1"}].'
14+
required: false
15+
default: '[{"ring": "at_ring1", "environment": "runtime_at_ring1"}]'
16+
17+
permissions:
18+
id-token: write
19+
contents: read
20+
21+
jobs:
22+
get-short-sha:
23+
uses: ./.github/workflows/template-short-sha.yaml
24+
25+
construct-rings-array:
26+
runs-on: ubuntu-latest
27+
env:
28+
default-rings: >-
29+
[{"ring": "at_ring1", "environment": "runtime_at_ring1"},{"ring": "at_ring2", "environment": "runtime_at_ring2"},{"ring": "tt_ring1", "environment": "runtime_tt_ring1"},{"ring": "tt_ring2", "environment": "runtime_tt_ring2"},{"ring": "prod_ring1", "environment": "runtime_prod_ring1"},{"ring": "prod_ring2", "environment": "runtime_prod_ring2"}]
30+
outputs:
31+
ringsjson: ${{ steps.construct-rings.outputs.ringsjson }}
32+
steps:
33+
- name: Construct rings array
34+
id: construct-rings
35+
run: |
36+
rings='${{ github.event.inputs.rings }}'
37+
if [ -z "$rings" ]; then
38+
rings='${{ env.default-rings }}'
39+
fi
40+
echo "Raw rings input: $rings"
41+
echo "ringsjson=${rings}" >> $GITHUB_OUTPUT
42+
43+
push-apps-config-artifact:
44+
name: Push apps config as OCI artifact
45+
needs: get-short-sha
46+
runs-on: ubuntu-latest
47+
environment: dev
48+
env:
49+
REGISTRY_NAME: altinncr
50+
CONFIG_REPO: altinncr.azurecr.io/studio-apps/runtime-apps-config-repo:${{ needs.get-short-sha.outputs.short-sha }}
51+
outputs:
52+
config-repo: altinncr.azurecr.io/studio-apps/runtime-apps-config-repo:${{ needs.get-short-sha.outputs.short-sha }}
53+
defaults:
54+
run:
55+
working-directory: infra/runtime/apps-config
56+
steps:
57+
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
58+
59+
- name: az login
60+
uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2
61+
with:
62+
client-id: ${{ secrets.AZURE_CLIENT_ID_FC }}
63+
tenant-id: ${{ secrets.AZURE_TENANT_ID_FC }}
64+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID_FC }}
65+
66+
- name: az acr login
67+
run: az acr login --name ${{ env.REGISTRY_NAME }}
68+
69+
- name: flux install
70+
uses: fluxcd/flux2/action@8454b02a32e48d775b9f563cb51fdcb1787b5b93 # v2.7.5
71+
72+
- name: push artifact
73+
run: |
74+
flux push artifact oci://${{ env.CONFIG_REPO }} \
75+
--provider=azure \
76+
--reproducible \
77+
--path="." \
78+
--source="$(git config --get remote.origin.url)" \
79+
--revision="$(git branch --show-current)/$(git rev-parse HEAD)"
80+
81+
tag-apps-config:
82+
name: Tag apps config
83+
needs: [push-apps-config-artifact, construct-rings-array]
84+
runs-on: ubuntu-latest
85+
environment: ${{ matrix.environment }}
86+
strategy:
87+
matrix:
88+
include: ${{ fromJson(needs.construct-rings-array.outputs.ringsjson) }}
89+
steps:
90+
- name: az login
91+
uses: azure/login@a457da9ea143d694b1b9c7c869ebb04ebe844ef5 # v2
92+
with:
93+
client-id: ${{ secrets.AZURE_CLIENT_ID_FC }}
94+
tenant-id: ${{ secrets.AZURE_TENANT_ID_FC }}
95+
subscription-id: ${{ secrets.AZURE_SUBSCRIPTION_ID_FC }}
96+
97+
- name: az acr login
98+
run: az acr login --name altinncr
99+
100+
- name: flux install
101+
uses: fluxcd/flux2/action@8454b02a32e48d775b9f563cb51fdcb1787b5b93 # v2.7.5
102+
103+
- name: tag artifact
104+
run: |
105+
flux tag artifact oci://${{ needs.push-apps-config-artifact.outputs.config-repo }} \
106+
--tag ${{ matrix.ring }}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
resources:
4+
- ../base
5+
patches:
6+
- target:
7+
kind: ConfigMap
8+
name: apps-runtime-common-config-env
9+
patch: |-
10+
apiVersion: v1
11+
kind: ConfigMap
12+
metadata:
13+
name: apps-runtime-common-config-env
14+
data:
15+
PlatformSettings__ApiStorageEndpoint: https://platform.at22.altinn.cloud/storage/api/v1/
16+
PlatformSettings__ApiRegisterEndpoint: https://platform.at22.altinn.cloud/register/api/v1/
17+
PlatformSettings__ApiProfileEndpoint: https://platform.at22.altinn.cloud/profile/api/v1/
18+
PlatformSettings__ApiAuthenticationEndpoint: https://platform.at22.altinn.cloud/authentication/api/v1/
19+
PlatformSettings__ApiAuthorizationEndpoint: https://platform.at22.altinn.cloud/authorization/api/v1/
20+
PlatformSettings__ApiEventsEndpoint: https://platform.at22.altinn.cloud/events/api/v1/
21+
PlatformSettings__ApiNotificationEndpoint: https://platform.at22.altinn.cloud/notifications/api/v1/
22+
PlatformSettings__ApiAccessManagementEndpoint: https://platform.at22.altinn.cloud/accessmanagement/api/v1/
23+
PlatformSettings__ApiCorrespondenceEndpoint: https://platform.at22.altinn.cloud/correspondence/api/v1/
24+
GeneralSettings__HostName: at22.altinn.cloud
25+
AppSettings__OpenIdWellKnownEndpoint: https://platform.at22.altinn.cloud/authentication/api/v1/openid/
26+
ASPNETCORE_ENVIRONMENT: Staging
27+
- target:
28+
kind: ConfigMap
29+
name: apps-runtime-common-config
30+
patch: |-
31+
- op: add
32+
path: /data/runtime-overrides.json
33+
value: |-
34+
{
35+
"PlatformSettings": {
36+
"ApiStorageEndpoint": "https://platform.at22.altinn.cloud/storage/api/v1/",
37+
"ApiRegisterEndpoint": "https://platform.at22.altinn.cloud/register/api/v1/",
38+
"ApiProfileEndpoint": "https://platform.at22.altinn.cloud/profile/api/v1/",
39+
"ApiAuthenticationEndpoint": "https://platform.at22.altinn.cloud/authentication/api/v1/",
40+
"ApiAuthorizationEndpoint": "https://platform.at22.altinn.cloud/authorization/api/v1/",
41+
"ApiEventsEndpoint": "https://platform.at22.altinn.cloud/events/api/v1/",
42+
"ApiNotificationEndpoint": "https://platform.at22.altinn.cloud/notifications/api/v1/",
43+
"ApiAccessManagementEndpoint": "https://platform.at22.altinn.cloud/accessmanagement/api/v1/",
44+
"ApiCorrespondenceEndpoint": "https://platform.at22.altinn.cloud/correspondence/api/v1/"
45+
},
46+
"GeneralSettings": {
47+
"HostName": "at22.altinn.cloud"
48+
},
49+
"AppSettings": {
50+
"OpenIdWellKnownEndpoint": "https://platform.at22.altinn.cloud/authentication/api/v1/openid/"
51+
},
52+
"ASPNETCORE_ENVIRONMENT": "Staging"
53+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
resources:
4+
- ../base
5+
patches:
6+
- target:
7+
kind: ConfigMap
8+
name: apps-runtime-common-config-env
9+
patch: |-
10+
apiVersion: v1
11+
kind: ConfigMap
12+
metadata:
13+
name: apps-runtime-common-config-env
14+
data:
15+
PlatformSettings__ApiStorageEndpoint: https://platform.at23.altinn.cloud/storage/api/v1/
16+
PlatformSettings__ApiRegisterEndpoint: https://platform.at23.altinn.cloud/register/api/v1/
17+
PlatformSettings__ApiProfileEndpoint: https://platform.at23.altinn.cloud/profile/api/v1/
18+
PlatformSettings__ApiAuthenticationEndpoint: https://platform.at23.altinn.cloud/authentication/api/v1/
19+
PlatformSettings__ApiAuthorizationEndpoint: https://platform.at23.altinn.cloud/authorization/api/v1/
20+
PlatformSettings__ApiEventsEndpoint: https://platform.at23.altinn.cloud/events/api/v1/
21+
PlatformSettings__ApiNotificationEndpoint: https://platform.at23.altinn.cloud/notifications/api/v1/
22+
PlatformSettings__ApiAccessManagementEndpoint: https://platform.at23.altinn.cloud/accessmanagement/api/v1/
23+
PlatformSettings__ApiCorrespondenceEndpoint: https://platform.at23.altinn.cloud/correspondence/api/v1/
24+
GeneralSettings__HostName: at23.altinn.cloud
25+
AppSettings__OpenIdWellKnownEndpoint: https://platform.at23.altinn.cloud/authentication/api/v1/openid/
26+
ASPNETCORE_ENVIRONMENT: Staging
27+
- target:
28+
kind: ConfigMap
29+
name: apps-runtime-common-config
30+
patch: |-
31+
- op: add
32+
path: /data/runtime-overrides.json
33+
value: |-
34+
{
35+
"PlatformSettings": {
36+
"ApiStorageEndpoint": "https://platform.at23.altinn.cloud/storage/api/v1/",
37+
"ApiRegisterEndpoint": "https://platform.at23.altinn.cloud/register/api/v1/",
38+
"ApiProfileEndpoint": "https://platform.at23.altinn.cloud/profile/api/v1/",
39+
"ApiAuthenticationEndpoint": "https://platform.at23.altinn.cloud/authentication/api/v1/",
40+
"ApiAuthorizationEndpoint": "https://platform.at23.altinn.cloud/authorization/api/v1/",
41+
"ApiEventsEndpoint": "https://platform.at23.altinn.cloud/events/api/v1/",
42+
"ApiNotificationEndpoint": "https://platform.at23.altinn.cloud/notifications/api/v1/",
43+
"ApiAccessManagementEndpoint": "https://platform.at23.altinn.cloud/accessmanagement/api/v1/",
44+
"ApiCorrespondenceEndpoint": "https://platform.at23.altinn.cloud/correspondence/api/v1/"
45+
},
46+
"GeneralSettings": {
47+
"HostName": "at23.altinn.cloud"
48+
},
49+
"AppSettings": {
50+
"OpenIdWellKnownEndpoint": "https://platform.at23.altinn.cloud/authentication/api/v1/openid/"
51+
},
52+
"ASPNETCORE_ENVIRONMENT": "Staging"
53+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
resources:
4+
- ../base
5+
patches:
6+
- target:
7+
kind: ConfigMap
8+
name: apps-runtime-common-config-env
9+
patch: |-
10+
apiVersion: v1
11+
kind: ConfigMap
12+
metadata:
13+
name: apps-runtime-common-config-env
14+
data:
15+
PlatformSettings__ApiStorageEndpoint: https://platform.at24.altinn.cloud/storage/api/v1/
16+
PlatformSettings__ApiRegisterEndpoint: https://platform.at24.altinn.cloud/register/api/v1/
17+
PlatformSettings__ApiProfileEndpoint: https://platform.at24.altinn.cloud/profile/api/v1/
18+
PlatformSettings__ApiAuthenticationEndpoint: https://platform.at24.altinn.cloud/authentication/api/v1/
19+
PlatformSettings__ApiAuthorizationEndpoint: https://platform.at24.altinn.cloud/authorization/api/v1/
20+
PlatformSettings__ApiEventsEndpoint: https://platform.at24.altinn.cloud/events/api/v1/
21+
PlatformSettings__ApiNotificationEndpoint: https://platform.at24.altinn.cloud/notifications/api/v1/
22+
PlatformSettings__ApiAccessManagementEndpoint: https://platform.at24.altinn.cloud/accessmanagement/api/v1/
23+
PlatformSettings__ApiCorrespondenceEndpoint: https://platform.at24.altinn.cloud/correspondence/api/v1/
24+
GeneralSettings__HostName: at24.altinn.cloud
25+
AppSettings__OpenIdWellKnownEndpoint: https://platform.at24.altinn.cloud/authentication/api/v1/openid/
26+
ASPNETCORE_ENVIRONMENT: Staging
27+
- target:
28+
kind: ConfigMap
29+
name: apps-runtime-common-config
30+
patch: |-
31+
- op: add
32+
path: /data/runtime-overrides.json
33+
value: |-
34+
{
35+
"PlatformSettings": {
36+
"ApiStorageEndpoint": "https://platform.at24.altinn.cloud/storage/api/v1/",
37+
"ApiRegisterEndpoint": "https://platform.at24.altinn.cloud/register/api/v1/",
38+
"ApiProfileEndpoint": "https://platform.at24.altinn.cloud/profile/api/v1/",
39+
"ApiAuthenticationEndpoint": "https://platform.at24.altinn.cloud/authentication/api/v1/",
40+
"ApiAuthorizationEndpoint": "https://platform.at24.altinn.cloud/authorization/api/v1/",
41+
"ApiEventsEndpoint": "https://platform.at24.altinn.cloud/events/api/v1/",
42+
"ApiNotificationEndpoint": "https://platform.at24.altinn.cloud/notifications/api/v1/",
43+
"ApiAccessManagementEndpoint": "https://platform.at24.altinn.cloud/accessmanagement/api/v1/",
44+
"ApiCorrespondenceEndpoint": "https://platform.at24.altinn.cloud/correspondence/api/v1/"
45+
},
46+
"GeneralSettings": {
47+
"HostName": "at24.altinn.cloud"
48+
},
49+
"AppSettings": {
50+
"OpenIdWellKnownEndpoint": "https://platform.at24.altinn.cloud/authentication/api/v1/openid/"
51+
},
52+
"ASPNETCORE_ENVIRONMENT": "Staging"
53+
}
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: apps-runtime-common-config-env
5+
namespace: default
6+
data:
7+
ServiceRepositorySettings__BaseResourceFolderContainer: /AltinnService/
8+
ServiceRepositorySettings__RepositoryLocation: /AltinnService/
9+
PdfGeneratorSettings__ServiceEndpointUri: http://pdf-generator.pdf.svc.cluster.local/pdf
10+
PlatformSettings__ApiPdf2Endpoint: http://pdf-generator.pdf.svc.cluster.local/pdf
11+
GeneralSettings__ExternalAppBaseUrl: https://{org}.apps.{hostName}/{org}/{app}/
12+
---
13+
apiVersion: v1
14+
kind: Secret
15+
metadata:
16+
name: apps-runtime-common-secrets-env
17+
namespace: default
18+
type: Opaque
19+
stringData:
20+
ApplicationInsights__ConnectionString: ""
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: apps-runtime-common-config
5+
namespace: default
6+
data:
7+
runtime-common.json: |-
8+
{
9+
"ServiceRepositorySettings": {
10+
"BaseResourceFolderContainer": "/AltinnService/",
11+
"RepositoryLocation": "/AltinnService/"
12+
},
13+
"PlatformSettings": {
14+
"ApiPdf2Endpoint": "http://pdf-generator.pdf.svc.cluster.local/pdf"
15+
},
16+
"GeneralSettings": {
17+
"ExternalAppBaseUrl": "https://{org}.apps.{hostName}/{org}/{app}/"
18+
},
19+
"PdfGeneratorSettings": {
20+
"ServiceEndpointUri": "http://pdf-generator.pdf.svc.cluster.local/pdf"
21+
}
22+
}
23+
---
24+
apiVersion: v1
25+
kind: Secret
26+
metadata:
27+
name: apps-runtime-common-secrets
28+
namespace: default
29+
type: Opaque
30+
stringData:
31+
runtime-common-secrets.json: |-
32+
{
33+
"ApplicationInsights": {
34+
"ConnectionString": ""
35+
}
36+
}
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
resources:
4+
- apps-runtime-common.yaml
5+
- apps-runtime-common-env.yaml
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
apiVersion: kustomize.config.k8s.io/v1beta1
2+
kind: Kustomization
3+
resources:
4+
- ../base
5+
patches:
6+
- target:
7+
kind: ConfigMap
8+
name: apps-runtime-common-config-env
9+
patch: |-
10+
apiVersion: v1
11+
kind: ConfigMap
12+
metadata:
13+
name: apps-runtime-common-config-env
14+
data:
15+
PlatformSettings__ApiStorageEndpoint: https://platform.altinn.no/storage/api/v1/
16+
PlatformSettings__ApiRegisterEndpoint: https://platform.altinn.no/register/api/v1/
17+
PlatformSettings__ApiProfileEndpoint: https://platform.altinn.no/profile/api/v1/
18+
PlatformSettings__ApiAuthenticationEndpoint: https://platform.altinn.no/authentication/api/v1/
19+
PlatformSettings__ApiAuthorizationEndpoint: https://platform.altinn.no/authorization/api/v1/
20+
PlatformSettings__ApiEventsEndpoint: https://platform.altinn.no/events/api/v1/
21+
PlatformSettings__ApiNotificationEndpoint: https://platform.altinn.no/notifications/api/v1/
22+
PlatformSettings__ApiAccessManagementEndpoint: https://platform.altinn.no/accessmanagement/api/v1/
23+
PlatformSettings__ApiCorrespondenceEndpoint: https://platform.altinn.no/correspondence/api/v1/
24+
GeneralSettings__HostName: altinn.no
25+
AppSettings__OpenIdWellKnownEndpoint: https://platform.altinn.no/authentication/api/v1/openid/
26+
ASPNETCORE_ENVIRONMENT: Production
27+
AppSettings__EFormidlingSender: "991825827"
28+
EFormidlingClientSettings__BaseUrl: https://platform.altinn.no/eformidling/api/
29+
- target:
30+
kind: ConfigMap
31+
name: apps-runtime-common-config
32+
patch: |-
33+
- op: add
34+
path: /data/runtime-overrides.json
35+
value: |-
36+
{
37+
"PlatformSettings": {
38+
"ApiStorageEndpoint": "https://platform.altinn.no/storage/api/v1/",
39+
"ApiRegisterEndpoint": "https://platform.altinn.no/register/api/v1/",
40+
"ApiProfileEndpoint": "https://platform.altinn.no/profile/api/v1/",
41+
"ApiAuthenticationEndpoint": "https://platform.altinn.no/authentication/api/v1/",
42+
"ApiAuthorizationEndpoint": "https://platform.altinn.no/authorization/api/v1/",
43+
"ApiEventsEndpoint": "https://platform.altinn.no/events/api/v1/",
44+
"ApiNotificationEndpoint": "https://platform.altinn.no/notifications/api/v1/",
45+
"ApiAccessManagementEndpoint": "https://platform.altinn.no/accessmanagement/api/v1/",
46+
"ApiCorrespondenceEndpoint": "https://platform.altinn.no/correspondence/api/v1/"
47+
},
48+
"GeneralSettings": {
49+
"HostName": "altinn.no"
50+
},
51+
"AppSettings": {
52+
"OpenIdWellKnownEndpoint": "https://platform.altinn.no/authentication/api/v1/openid/",
53+
"EFormidlingSender": "991825827"
54+
},
55+
"EFormidlingClientSettings": {
56+
"BaseUrl": "https://platform.altinn.no/eformidling/api/"
57+
},
58+
"ASPNETCORE_ENVIRONMENT": "Production"
59+
}

0 commit comments

Comments
 (0)