ci: upgrade uffizzi workflow to use clusters

Signed-off-by: Vibhav Bobade <vibhav.bobde@gmail.com>
This commit is contained in:
Vibhav Bobade
2023-09-02 05:24:05 +05:30
parent 767d5acef7
commit 57d3193b3d
14 changed files with 331 additions and 72 deletions
@@ -1,35 +0,0 @@
version: '3'
x-uffizzi:
ingress:
service: backstage
port: 7007
services:
backstage:
image: '${BACKSTAGE_IMAGE}'
environment:
POSTGRES_HOST: localhost
POSTGRES_PORT: 5432
POSTGRES_USER: postgres
POSTGRES_PASSWORD: kiTMoTsiEuyQ43GrL4Hv
REF_NAME: ${GITHUB_SHA}
NODE_ENV: production
deploy:
resources:
limits:
memory: 500M
entrypoint: '/bin/sh'
command:
- '-c'
- "APP_CONFIG_app_baseUrl=$$UFFIZZI_URL APP_CONFIG_backend_baseUrl=$$UFFIZZI_URL APP_CONFIG_auth_environment='production' node packages/backend --config app-config.yaml"
db:
image: postgres
environment:
POSTGRES_PASSWORD: kiTMoTsiEuyQ43GrL4Hv
deploy:
resources:
limits:
memory: 250M
@@ -0,0 +1,12 @@
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: backstage-cluster-ro
subjects:
- namespace: backstage
kind: ServiceAccount
name: backstage-service-account
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: system:aggregate-to-view
@@ -0,0 +1,37 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: backstage
spec:
replicas: 1
selector:
matchLabels:
app: backstage
template:
metadata:
labels:
app: backstage
spec:
serviceAccountName: backstage-service-account
containers:
- name: backstage
image: backstage
command:
- /bin/sh
args:
- '-c'
- "APP_CONFIG_app_baseUrl=$$UFFIZZI_URL APP_CONFIG_backend_baseUrl=$$UFFIZZI_URL APP_CONFIG_auth_environment='production' node packages/backend --config app-config.yaml"
imagePullPolicy: IfNotPresent
ports:
- name: http
containerPort: 7007
envFrom:
- secretRef:
name: postgres-secrets
env:
- name: POSTGRES_PORT
value: '5432'
- name: POSTGRES_HOST
value: 'postgres.default.svc.cluster.local'
- name: NODE_ENV
value: production
@@ -0,0 +1,20 @@
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: backstage
spec:
ingressClassName: uffizzi
rules:
- host: backstage.example.com
http:
paths:
- backend:
service:
name: backstage
port:
number: 80
path: /
pathType: Prefix
tls:
- hosts:
- backstage.example.com
@@ -0,0 +1,5 @@
apiVersion: v1
kind: ServiceAccount
metadata:
name: backstage-service-account
namespace: default
@@ -0,0 +1,11 @@
apiVersion: v1
kind: Service
metadata:
name: backstage
spec:
selector:
app: backstage
ports:
- name: http
port: 80
targetPort: http
@@ -0,0 +1,12 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
resources:
- backstage-deploy.yaml
- backstage-crb.yaml
- backstage-ingress.yaml
- backstage-sa.yaml
- backstage-svc.yaml
- pg-svc.yaml
- pg-deploy.yaml
- pg-secret.yaml
- pg-volume.yaml
@@ -0,0 +1,31 @@
# kubernetes/postgres.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: postgres
spec:
replicas: 1
selector:
matchLabels:
app: postgres
template:
metadata:
labels:
app: postgres
spec:
containers:
- name: postgres
image: postgres:13.2-alpine
imagePullPolicy: 'IfNotPresent'
ports:
- containerPort: 5432
envFrom:
- secretRef:
name: postgres-secrets
volumeMounts:
- mountPath: /var/lib/postgresql
name: postgresdb
volumes:
- name: postgresdb
persistentVolumeClaim:
claimName: postgres-storage-claim
@@ -0,0 +1,8 @@
apiVersion: v1
kind: Secret
metadata:
name: postgres-secrets
type: Opaque
data:
POSTGRES_USER: YmFja3N0YWdl
POSTGRES_PASSWORD: aHVudGVyMg==
@@ -0,0 +1,9 @@
apiVersion: v1
kind: Service
metadata:
name: postgres
spec:
selector:
app: postgres
ports:
- port: 5432
@@ -0,0 +1,10 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: postgres-storage-claim
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 2G
@@ -160,7 +160,10 @@ kubernetes:
type: 'multiTenant'
clusterLocatorMethods:
- type: 'config'
clusters: []
clusters:
- url: ${UFFIZZI_CLUSTER_APISERVER}
name: uffizzi
authProvider: 'serviceAccount'
kafka:
clientId: backstage