backstage-chart/values.yaml
Vaibhav Pathak 2947a1c3d6 image update
2026-05-21 13:58:53 +05:30

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