Skip to content

Commit 86640ed

Browse files
committed
Adapting the kustomize resourcesf for backstage app
1 parent bc9493b commit 86640ed

28 files changed

+683
-330
lines changed

kubernetes/helm_charts/local/argo-cd/values/preprod/values-argocd-applications.yaml

Lines changed: 42 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -310,29 +310,63 @@ applications:
310310
########## KUSTOMIZE APPS ###########
311311
#####################################
312312

313-
- name: kustomize-backstage-dev
313+
# - name: kustomize-backstage-dev
314+
# clusters: [preprod]
315+
# config:
316+
# namespace: backstage-dev
317+
# repoURL: 'https://github.com/opentelekomcloud-infra/system-config.git'
318+
# targetRevision: 'Providing_backstage_kustomize_app'
319+
# path: kubernetes/kustomize/backstage/overlays/dev/
320+
# project: infra
321+
# kustomize: {}
322+
# syncPolicy:
323+
# automated:
324+
# prune: true
325+
# selfHeal: true
326+
# syncOptions:
327+
# - CreateNamespace=true
328+
329+
- name: openapi-validator
314330
clusters: [preprod]
315331
config:
316-
namespace: backstage-dev
332+
namespace: openapi-validator
333+
repoURL: 'https://github.com/opentelekomcloud-infra/system-config.git'
334+
targetRevision: 'Helm_charts_restructure&Pre-Prod_setup'
335+
path: kubernetes/kustomize/openapi-validator/overlays/dev/
336+
pluginName: argocd-vault-plugin-kustomize
337+
pluginEnv: '.'
338+
project: infra
339+
syncPolicy:
340+
automated:
341+
prune: true
342+
selfHeal: true
343+
syncOptions:
344+
- CreateNamespace=true
345+
346+
- name: redis
347+
clusters: [preprod]
348+
config:
349+
namespace: redis
317350
repoURL: 'https://github.com/opentelekomcloud-infra/system-config.git'
318351
targetRevision: 'Providing_backstage_kustomize_app'
319-
path: kubernetes/kustomize/backstage/overlays/dev/
352+
path: kubernetes/kustomize/redis/
353+
pluginName: argocd-vault-plugin-kustomize
354+
pluginEnv: '.'
320355
project: infra
321-
kustomize: {}
322356
syncPolicy:
323357
automated:
324358
prune: true
325359
selfHeal: true
326360
syncOptions:
327361
- CreateNamespace=true
328362

329-
- name: openapi-validator
363+
- name: backstage
330364
clusters: [preprod]
331365
config:
332-
namespace: openapi-validator
366+
namespace: backstage
333367
repoURL: 'https://github.com/opentelekomcloud-infra/system-config.git'
334-
targetRevision: 'Helm_charts_restructure&Pre-Prod_setup'
335-
path: kubernetes/kustomize/openapi-validator/overlays/dev/
368+
targetRevision: 'Providing_backstage_kustomize_app'
369+
path: kubernetes/kustomize/backstage/overlays/preprod/
336370
pluginName: argocd-vault-plugin-kustomize
337371
pluginEnv: '.'
338372
project: infra

kubernetes/kustomize/backstage/base/backstage.env

Lines changed: 0 additions & 3 deletions
This file was deleted.

kubernetes/kustomize/backstage/base/deployment.yaml

Lines changed: 41 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
---
12
apiVersion: apps/v1
23
kind: Deployment
34
metadata:
@@ -23,11 +24,29 @@ spec:
2324
ports:
2425
- name: http
2526
containerPort: 7007
27+
env:
28+
# Static configuration
29+
- name: APP_CONFIG
30+
value: "/app/app-config.production.yaml"
31+
- name: POSTGRES_PORT
32+
value: "5432"
33+
# Default values (can be overridden in overlays)
34+
- name: LOG_LEVEL
35+
value: "info"
36+
- name: NODE_ENV
37+
value: "production"
38+
- name: AUTH_ENVIRONMENT
39+
value: "production"
40+
- name: DANGEROUS_DISABLE_AUTH_POLICY
41+
value: "false"
2642
envFrom:
27-
- configMapRef:
28-
name: config
2943
- secretRef:
3044
name: backstage-secret
45+
volumeMounts:
46+
- name: app-config
47+
mountPath: /app/app-config.production.yaml
48+
subPath: app-config.production.yaml
49+
readOnly: true
3150
resources:
3251
requests:
3352
cpu: "50m"
@@ -36,12 +55,26 @@ spec:
3655
cpu: "500m"
3756
memory: "500Mi"
3857
readinessProbe:
39-
tcpSocket:
58+
httpGet:
59+
path: /healthcheck
4060
port: 7007
41-
initialDelaySeconds: 20
42-
periodSeconds: 10
61+
initialDelaySeconds: 60
62+
periodSeconds: 30
63+
timeoutSeconds: 10
64+
failureThreshold: 5
4365
livenessProbe:
44-
tcpSocket:
66+
httpGet:
67+
path: /healthcheck
4568
port: 7007
46-
initialDelaySeconds: 20
47-
periodSeconds: 5
69+
initialDelaySeconds: 120
70+
periodSeconds: 30
71+
timeoutSeconds: 10
72+
failureThreshold: 3
73+
volumes:
74+
- name: app-config
75+
secret:
76+
secretName: backstage-secret
77+
items:
78+
- key: app-config.production.yaml
79+
path: app-config.production.yaml
80+
defaultMode: 0400
Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
1+
---
12
apiVersion: kustomize.config.k8s.io/v1beta1
23
kind: Kustomization
34

@@ -15,13 +16,3 @@ resources:
1516
- deployment.yaml
1617
- sa.yaml
1718
- secret.yaml
18-
19-
configMapGenerator:
20-
- name: config
21-
envs:
22-
- backstage.env
23-
24-
generatorOptions:
25-
disableNameSuffixHash: false
26-
labels:
27-
app.kubernetes.io/managed-by: kustomize

kubernetes/kustomize/backstage/base/secret.yaml

Lines changed: 143 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,149 @@ metadata:
66
type: Opaque
77
stringData:
88
# Database configuration
9-
POSTGRES_HOST: <path:secret/data/backstage/database#host>
10-
POSTGRES_PORT: <path:secret/data/backstage/database#port>
11-
POSTGRES_USER: <path:secret/data/backstage/database#username>
12-
POSTGRES_PASSWORD: <path:secret/data/backstage/database#password>
9+
POSTGRES_HOST: <path:secret/data/postgresql/backstage#host>
10+
POSTGRES_USER: <path:secret/data/postgresql/backstage#username>
11+
POSTGRES_PASSWORD: <path:secret/data/postgresql/backstage#password>
1312

14-
# Auth configuration
15-
AUTH_GITHUB_CLIENT_ID: <path:secret/data/backstage/auth#github_client_id>
16-
AUTH_GITHUB_CLIENT_SECRET: >-
17-
<path:secret/data/backstage/auth#github_client_secret>
13+
# Backend configuration
14+
BACKEND_SECRET: <path:secret/data/backstage/config#backend_secret>
15+
BACKSTAGE_BASE_URL: https://<path:secret/data/backstage/config#base_url>
1816

19-
# Integration tokens
20-
GITHUB_TOKEN: <path:secret/data/backstage/integrations#github_token>
21-
GITLAB_TOKEN: <path:secret/data/backstage/integrations#gitlab_token>
17+
# GitHub Auth configuration
18+
AUTH_GITHUB_CLIENT_ID: ""
19+
AUTH_GITHUB_CLIENT_SECRET: ""
2220

23-
# App configuration
24-
BACKEND_SECRET: <path:secret/data/backstage/config#backend_secret>
25-
CATALOG_TOKEN: <path:secret/data/backstage/config#catalog_token>
21+
# GitHub Integration configuration
22+
GITHUB_APP_ID: ""
23+
GITHUB_CLIENT_ID: ""
24+
GITHUB_CLIENT_SECRET: ""
25+
GITHUB_WEBHOOK_SECRET: ""
26+
GITHUB_PRIVATE_KEY: ""
27+
28+
# Gitea configuration
29+
GITEA_CLIENT_ID: <path:secret/data/backstage/gitea#clientId>
30+
GITEA_CLIENT_SECRET: <path:secret/data/backstage/gitea#clientSecret>
31+
GITEA_TOKEN: <path:secret/data/backstage/gitea#token>
32+
GITEA_URL: <path:secret/data/gitea/config#gitea_address>
33+
34+
# Zitadel/OIDC configuration
35+
ZITADEL_PROJECT_ID: <path:secret/data/backstage/zitadel#projectId>
36+
ZITADEL_CLIENT_ID: <path:secret/data/backstage/zitadel#clientId>
37+
ZITADEL_CLIENT_SECRET: <path:secret/data/backstage/zitadel#clientSecret>
38+
ZITADEL_URL: https://<path:secret/data/zitadel/config#base_url>
39+
40+
# Kubernetes configuration
41+
K8S_INFRA2_TOKEN: ""
42+
43+
# Grafana configuration
44+
GRAFANA_TOKEN: ""
45+
46+
# Dependency Track configuration
47+
DEPENDENCYTRACK_TOKEN: ""
48+
49+
# Secure configuration file - this replaces the ConfigMap
50+
app-config.production.yaml: |
51+
app:
52+
baseUrl: ${BACKSTAGE_BASE_URL}
53+
54+
backend:
55+
auth:
56+
dangerouslyDisableDefaultAuthPolicy: ${DANGEROUS_DISABLE_AUTH_POLICY}
57+
baseUrl: ${BACKSTAGE_BASE_URL}
58+
listen:
59+
port: 7007
60+
cors:
61+
origin: ${BACKSTAGE_BASE_URL}
62+
database:
63+
client: pg
64+
connection:
65+
host: ${POSTGRES_HOST}
66+
port: ${POSTGRES_PORT}
67+
user: ${POSTGRES_USER}
68+
password: ${POSTGRES_PASSWORD}
69+
database: backstage
70+
71+
auth:
72+
environment: ${AUTH_ENVIRONMENT}
73+
providers:
74+
oauth2Proxy: {}
75+
github:
76+
development:
77+
clientId: ${GITHUB_CLIENT_ID}
78+
clientSecret: ${GITHUB_CLIENT_SECRET}
79+
production:
80+
clientId: ${GITHUB_CLIENT_ID}
81+
clientSecret: ${GITHUB_CLIENT_SECRET}
82+
gitea:
83+
development:
84+
metadataUrl: https://${GITEA_URL}/.well-known/openid-configuration
85+
authorizationUrl: https://${GITEA_URL}/login/oauth/authorize
86+
tokenUrl: https://${GITEA_URL}/login/oauth/access_token
87+
clientId: ${GITEA_CLIENT_ID}
88+
clientSecret: ${GITEA_CLIENT_SECRET}
89+
90+
catalog:
91+
providers:
92+
zitadelOrg:
93+
default:
94+
baseUrl: ${ZITADEL_URL}
95+
projectId: ${ZITADEL_PROJECT_ID}
96+
clientId: ${ZITADEL_CLIENT_ID}
97+
clientSecret: ${ZITADEL_CLIENT_SECRET}
98+
rules:
99+
- allow: [Component, System, API, Resource, Location, Group, User, Template]
100+
locations:
101+
- type: url
102+
target: https://${GITEA_URL}/backstage/catalog/contents/blob/main/otc-catalog.yaml
103+
rules:
104+
- allow: [Domain, Group, User, Location, Component, Resource, API, System]
105+
- type: url
106+
target: https://${GITEA_URL}/backstage/catalog-compute/contents/blob/main/catalog.yaml
107+
- type: url
108+
target: https://${GITEA_URL}/backstage/catalog-ecosystem/contents/blob/main/catalog.yaml
109+
- type: url
110+
target: https://github.com/opentelekomcloud-infra/backstage-templates/blob/main/catalog.yaml
111+
rules:
112+
- allow: [Template]
113+
114+
integrations:
115+
gitea:
116+
- host: ${GITEA_URL}
117+
password: ${GITEA_TOKEN}
118+
github:
119+
- host: github.com
120+
apps:
121+
- appId: ${GITHUB_APP_ID}
122+
clientId: ${GITHUB_CLIENT_ID}
123+
clientSecret: ${GITHUB_CLIENT_SECRET}
124+
webhookSecret: ${GITHUB_WEBHOOK_SECRET}
125+
privateKey: |
126+
${GITHUB_PRIVATE_KEY}
127+
128+
kubernetes:
129+
serviceLocatorMethod:
130+
type: 'multiTenant'
131+
clusterLocatorMethods:
132+
- type: 'config'
133+
clusters:
134+
- name: ""
135+
authProvider: 'serviceAccount'
136+
skipTLSVerify: true
137+
skipMetricsLookup: true
138+
url: ''
139+
serviceAccountToken: ${K8S_INFRA2_TOKEN}
140+
141+
proxy:
142+
'/grafana/api':
143+
target: https://dashboard.eco-preprod.tsi-dev.otc-service.com
144+
headers:
145+
Authorization: "Bearer ${GRAFANA_TOKEN}"
146+
'/dependencytrack':
147+
target: https://dependencytrack.eco-preprod.tsi-dev.otc-service.com
148+
allowedMethods: ['GET']
149+
headers:
150+
X-Api-Key: "${DEPENDENCYTRACK_TOKEN}"
151+
'/quay/api':
152+
target: 'https://quay.io'
153+
headers:
154+
X-Requested-With: 'XMLHttpRequest'

kubernetes/kustomize/backstage/overlays/preprod/backstage.env

Lines changed: 0 additions & 4 deletions
This file was deleted.
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
---
2+
apiVersion: apps/v1
3+
kind: Deployment
4+
metadata:
5+
name: backstage
6+
spec:
7+
template:
8+
spec:
9+
containers:
10+
- name: backstage
11+
env:
12+
- name: LOG_LEVEL
13+
value: "debug"
14+
- name: NODE_ENV
15+
value: "preprod"
16+
- name: AUTH_ENVIRONMENT
17+
value: "development"
18+
- name: DANGEROUS_DISABLE_AUTH_POLICY
19+
value: "true"

0 commit comments

Comments
 (0)