-
Notifications
You must be signed in to change notification settings - Fork 17
Expand file tree
/
Copy path.env.example
More file actions
142 lines (110 loc) · 6.68 KB
/
Copy path.env.example
File metadata and controls
142 lines (110 loc) · 6.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# ============================================================================
# CLM Components Deployment Configuration
# ============================================================================
# This file contains environment variables used by deploy-clm.sh
# Copy this file to .env and modify values as needed for your environment:
# cp .env.example .env
# Kubernetes Configuration
# NAMESPACE must be unique to prevent GCP Pub/Sub topic/subscription collisions.
# GCP resources are named using the namespace (e.g., ${NAMESPACE}-clusters),
# so multiple users sharing the same namespace will interfere with each other's tests.
export NAMESPACE="${NAMESPACE:-hyperfleet-e2e-$(echo ${USER:-default} | tr '[:upper:]' '[:lower:]')}"
# Provider Configuration
export GCP_PROJECT_ID="${GCP_PROJECT_ID:-hcm-hyperfleet}"
# Image Registry Configuration
export IMAGE_REGISTRY="${IMAGE_REGISTRY:-registry.ci.openshift.org}"
# API Component Configuration
export API_IMAGE_REPO="${API_IMAGE_REPO:-ci/hyperfleet-api}"
export API_IMAGE_TAG="${API_IMAGE_TAG:-latest}"
export API_SERVICE_TYPE="${API_SERVICE_TYPE:-LoadBalancer}"
# ============================================================================
# Adapter Deployment Configuration
# ============================================================================
# REQUIRED: Specify which adapters to deploy (comma-separated list)
# These environment variables are REQUIRED - auto-discovery has been removed
# Cluster-level adapters to deploy
# Available adapters: cl-namespace, cl-job, cl-deployment, cl-maestro
export CLUSTER_TIER0_ADAPTERS_DEPLOYMENT="${CLUSTER_TIER0_ADAPTERS_DEPLOYMENT:-cl-namespace,cl-job,cl-deployment,cl-maestro}"
# NodePool-level adapters to deploy
# Available adapters: np-configmap
export NODEPOOL_TIER0_ADAPTERS_DEPLOYMENT="${NODEPOOL_TIER0_ADAPTERS_DEPLOYMENT:-np-configmap}"
# Base directory containing adapter test data folders
# Each adapter must have its own folder: ${ADAPTERS_FILE_DIR}/<adapter-name>/
# Note: Uses TESTDATA_DIR environment variable if not explicitly set
# ADAPTERS_FILE_DIR="${TESTDATA_DIR}/adapter-configs"
# ============================================================================
# API Adapter Configuration
# ============================================================================
# NOTE: These are SEPARATE from tier0 deployment configuration above
# These should be set based on specific test case requirements
# Set per test case as needed
# Adapters for API cluster configuration
export API_ADAPTERS_CLUSTER="${API_ADAPTERS_CLUSTER:-cl-namespace,cl-job,cl-deployment,cl-maestro}"
# Adapters for API nodepool configuration
export API_ADAPTERS_NODEPOOL="${API_ADAPTERS_NODEPOOL:-np-configmap}"
# Sentinel Component Configuration
export SENTINEL_IMAGE_REPO="${SENTINEL_IMAGE_REPO:-ci/hyperfleet-sentinel}"
export SENTINEL_IMAGE_TAG="${SENTINEL_IMAGE_TAG:-latest}"
export SENTINEL_BROKER_TYPE="${SENTINEL_BROKER_TYPE:-googlepubsub}"
export SENTINEL_GOOGLEPUBSUB_CREATE_TOPIC_IF_MISSING="${SENTINEL_GOOGLEPUBSUB_CREATE_TOPIC_IF_MISSING:-true}"
# Adapter Component Configuration
export ADAPTER_IMAGE_REPO="${ADAPTER_IMAGE_REPO:-ci/hyperfleet-adapter}"
export ADAPTER_IMAGE_TAG="${ADAPTER_IMAGE_TAG:-latest}"
export ADAPTER_GOOGLEPUBSUB_CREATE_TOPIC_IF_MISSING="${ADAPTER_GOOGLEPUBSUB_CREATE_TOPIC_IF_MISSING:-true}"
export ADAPTER_GOOGLEPUBSUB_CREATE_SUBSCRIPTION_IF_MISSING="${ADAPTER_GOOGLEPUBSUB_CREATE_SUBSCRIPTION_IF_MISSING:-true}"
# Adapter Pub/Sub Configuration (Optional)
# If not set, these will be auto-generated based on namespace and resource type:
# ADAPTER_SUBSCRIPTION_ID: ${NAMESPACE}-${resource_type}-${adapter_name}
# ADAPTER_TOPIC: ${NAMESPACE}-${resource_type}
# ADAPTER_DEAD_LETTER_TOPIC: ${NAMESPACE}-${resource_type}-dlq
# HyperFleet API Configuration
# Note: If namespace is different, use: http://hyperfleet-api.${NAMESPACE}.svc.cluster.local:8000
export API_BASE_URL="${API_BASE_URL:-http://hyperfleet-api:8000}"
# Helm Chart Sources
# Note: ADAPTER_CHART_* and API_CHART_* vars are also required by tier2 E2E tests
# (e.g., crash recovery) which deploy dedicated adapters and upgrade API config at runtime.
# When running tier2 tests in CI, ensure these are exported alongside GINKGO_LABEL_FILTER=tier2.
export API_CHART_REPO="${API_CHART_REPO:-https://github.com/openshift-hyperfleet/hyperfleet-api.git}"
export API_CHART_REF="${API_CHART_REF:-main}"
export API_CHART_PATH="${API_CHART_PATH:-charts}"
export SENTINEL_CHART_REPO="${SENTINEL_CHART_REPO:-https://github.com/openshift-hyperfleet/hyperfleet-sentinel.git}"
export SENTINEL_CHART_REF="${SENTINEL_CHART_REF:-main}"
export SENTINEL_CHART_PATH="${SENTINEL_CHART_PATH:-charts}"
export ADAPTER_CHART_REPO="${ADAPTER_CHART_REPO:-https://github.com/openshift-hyperfleet/hyperfleet-adapter.git}"
export ADAPTER_CHART_REF="${ADAPTER_CHART_REF:-main}"
export ADAPTER_CHART_PATH="${ADAPTER_CHART_PATH:-charts}"
# Component Selection Flags (true/false)
export INSTALL_API="${INSTALL_API:-true}"
export INSTALL_SENTINEL="${INSTALL_SENTINEL:-true}"
export INSTALL_ADAPTER="${INSTALL_ADAPTER:-true}"
# Uninstall Options (only used when --action uninstall)
# DELETE_K8S_RESOURCES: Delete Kubernetes resources (Helm releases + namespace)
export DELETE_K8S_RESOURCES="${DELETE_K8S_RESOURCES:-false}"
# DELETE_CLOUD_RESOURCES: Delete GCP Pub/Sub topics and subscriptions
export DELETE_CLOUD_RESOURCES="${DELETE_CLOUD_RESOURCES:-false}"
# DELETE_ALL: Delete everything (k8s + cloud resources) - overrides individual flags
export DELETE_ALL="${DELETE_ALL:-false}"
# Execution Options
export DRY_RUN="${DRY_RUN:-false}"
export VERBOSE="${VERBOSE:-false}"
# ============================================================================
# Local kind Development (used by kind-local.sh, see docs/local-kind-setup.md)
# ============================================================================
# Uncomment and modify for local kind setup. Not used by deploy-clm.sh or CI.
# Parent directory containing component repos (hyperfleet-api, hyperfleet-sentinel, etc.)
# export PROJECTS_DIR="${HOME}/projects"
# Path to hyperfleet-infra repo (for RabbitMQ + Maestro install)
# export INFRA_DIR="${HOME}/projects/hyperfleet-infra"
# Kind cluster name (kubectl context becomes kind-<name>)
# export KIND_CLUSTER="kind"
# Kubernetes namespace for local deployment (overrides NAMESPACE above)
# export NAMESPACE="hyperfleet-local"
# Maestro configuration
# export MAESTRO_NS="maestro"
# export MAESTRO_CONSUMER="cluster1"
# export MAESTRO_LOCAL_PORT="8100"
# RabbitMQ connection URL (in-cluster service name)
# export RABBITMQ_URL="amqp://guest:guest@rabbitmq:5672"
# E2E test URLs (set these so 'make e2e' works without extra env vars)
# export HYPERFLEET_API_URL="http://localhost:8000"
# export MAESTRO_URL="http://localhost:8100"