199 lines
4.9 KiB
YAML
199 lines
4.9 KiB
YAML
# Global settings
|
|
nameOverride: ""
|
|
fullnameOverride: "backstage"
|
|
namespaceOverride: "backstage"
|
|
|
|
# Backstage application image
|
|
image:
|
|
repository: gcr.io/prj-onlinesales-test-framework/backstage
|
|
tag: "main-e3f9d8c"
|
|
pullPolicy: IfNotPresent
|
|
|
|
# Replica count
|
|
replicaCount: 2
|
|
|
|
# Service configuration
|
|
service:
|
|
type: ClusterIP
|
|
port: 80
|
|
targetPort: 7007
|
|
|
|
# Ingress configuration (DEPRECATED - using HTTPRoute via Terraform instead)
|
|
# HTTPRoute is managed by Terraform in os-test-framework-terraform module
|
|
# The HTTPRoute connects to the Traefik Gateway with 600s timeouts configured
|
|
ingress:
|
|
enabled: false
|
|
className: ""
|
|
annotations: {}
|
|
hosts:
|
|
- host: backstage.os-tf-qa.onlinesales.ai
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
tls:
|
|
- secretName: backstage-tls
|
|
hosts:
|
|
- backstage.os-tf-qa.onlinesales.ai
|
|
|
|
# Resources
|
|
resources:
|
|
requests:
|
|
cpu: 500m
|
|
memory: 512Mi
|
|
limits:
|
|
cpu: 1000m
|
|
memory: 1Gi
|
|
|
|
# Health checks
|
|
livenessProbe:
|
|
httpGet:
|
|
path: /healthcheck
|
|
port: 7007
|
|
initialDelaySeconds: 60
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
failureThreshold: 3
|
|
|
|
readinessProbe:
|
|
httpGet:
|
|
path: /healthcheck
|
|
port: 7007
|
|
initialDelaySeconds: 30
|
|
periodSeconds: 10
|
|
timeoutSeconds: 5
|
|
failureThreshold: 3
|
|
|
|
# Backstage configuration
|
|
backstage:
|
|
baseUrl: https://backstage.os-tf-qa.onlinesales.ai
|
|
title: "Osmos Test Framework"
|
|
organization: "Osmos"
|
|
ingressDomain: "os-tf-qa.onlinesales.ai" # Domain for HTTPRoute creation in Edit Environment
|
|
gitea:
|
|
inClusterUrl: http://gitea-http.gitea.svc.cluster.local:3000
|
|
owner: gitea_admin
|
|
|
|
# Database configuration (Cloud SQL via proxy)
|
|
database:
|
|
host: backstage-cloudsql-proxy
|
|
port: 5432
|
|
user: backstage-user
|
|
name: backstage
|
|
|
|
# Cloud SQL Proxy configuration
|
|
cloudSqlProxy:
|
|
enabled: true
|
|
image:
|
|
repository: gcr.io/cloud-sql-connectors/cloud-sql-proxy
|
|
tag: "2.14.0"
|
|
connectionName: "prj-onlinesales-test-framework:asia-south1:backstage-db"
|
|
port: 5432
|
|
privateIp: true
|
|
resources:
|
|
requests:
|
|
cpu: 100m
|
|
memory: 128Mi
|
|
limits:
|
|
cpu: 200m
|
|
memory: 256Mi
|
|
|
|
# External Secrets Operator configuration
|
|
externalSecrets:
|
|
enabled: true
|
|
projectId: "prj-onlinesales-test-framework"
|
|
clusterLocation: "asia-south1"
|
|
clusterName: "backstage-cluster"
|
|
refreshInterval: "1h"
|
|
secretStoreRef: "gcpsm-secret-store"
|
|
# Single secret with all key-value pairs
|
|
secretName: "backstage-secrets"
|
|
|
|
# Integrations
|
|
integrations:
|
|
argocd:
|
|
url: https://argocd.os-tf-qa.onlinesales.ai
|
|
argoWorkflows:
|
|
url: https://argo-workflows.os-tf-qa.onlinesales.ai
|
|
gitea:
|
|
url: https://gitea.os-tf-qa.onlinesales.ai
|
|
kubernetes:
|
|
clusterUrl: https://35.200.246.59
|
|
|
|
# RBAC
|
|
rbac:
|
|
create: true
|
|
|
|
# Admin Users for Environment Plugin
|
|
# These users can see all environments and delete any environment
|
|
adminUsers:
|
|
enabled: true
|
|
users:
|
|
- vaibhav.pathak
|
|
|
|
# Tracked Users for Portal Sign-in Tracking
|
|
# Automatically tracks users who sign in via Google OAuth
|
|
trackedUsers:
|
|
enabled: true
|
|
|
|
# Google Workspace Admin Directory API configuration
|
|
# Used to list all organization users in the Admin page
|
|
# Prerequisites:
|
|
# 1. Create a Service Account in GCP Console
|
|
# 2. Generate a JSON key and store it in GCP Secret Manager as GOOGLE_ADMIN_SA_CREDENTIALS
|
|
# 3. Enable Domain-Wide Delegation in Google Workspace Admin Console
|
|
# 4. Grant scope: https://www.googleapis.com/auth/admin.directory.user.readonly
|
|
googleAdmin:
|
|
enabled: true
|
|
# Admin email to impersonate (must have admin rights in Google Workspace)
|
|
adminEmail: "admin@onlinesales.ai"
|
|
# Domain to query for users
|
|
domain: "onlinesales.ai"
|
|
# Cache TTL in minutes (default: 5)
|
|
cacheTtlMinutes: 5
|
|
|
|
# Service accounts
|
|
serviceAccount:
|
|
create: true
|
|
name: backstage
|
|
annotations:
|
|
iam.gke.io/gcp-service-account: backstage-workload@prj-onlinesales-test-framework.iam.gserviceaccount.com
|
|
|
|
cloudSqlProxyServiceAccount:
|
|
create: true
|
|
name: backstage-cloudsql
|
|
annotations:
|
|
iam.gke.io/gcp-service-account: backstage-workload@prj-onlinesales-test-framework.iam.gserviceaccount.com
|
|
|
|
# Namespace
|
|
namespace:
|
|
create: false # Already created by Terraform
|
|
name: backstage
|
|
|
|
# Pod scheduling configuration
|
|
nodeSelector: {}
|
|
|
|
# Tolerations - REQUIRED for spot node scheduling
|
|
tolerations:
|
|
# Tolerate spot instances (REQUIRED - GKE auto-adds this taint)
|
|
- key: "cloud.google.com/gke-spot"
|
|
operator: "Equal"
|
|
value: "true"
|
|
effect: "NoSchedule"
|
|
|
|
# Affinity rules for HA deployment
|
|
affinity:
|
|
# Spread pods across different nodes for high availability
|
|
podAntiAffinity:
|
|
preferredDuringSchedulingIgnoredDuringExecution:
|
|
- weight: 100
|
|
podAffinityTerm:
|
|
labelSelector:
|
|
matchLabels:
|
|
app.kubernetes.io/name: backstage
|
|
topologyKey: kubernetes.io/hostname
|
|
|
|
# Pod Disruption Budget for high availability
|
|
podDisruptionBudget:
|
|
enabled: true
|
|
minAvailable: 1
|