@@ -71,7 +71,6 @@ deploy_wva_controller() {
7171 helm upgrade -i " $WVA_RELEASE_NAME " ${WVA_PROJECT} /charts/workload-variant-autoscaler \
7272 -n " $WVA_NS " \
7373 --values $VALUES_FILE \
74- --set-file wva.prometheus.caCert=" $PROM_CA_CERT_PATH " \
7574 --set wva.image.repository=" $WVA_IMAGE_REPO " \
7675 --set wva.image.tag=" $WVA_IMAGE_TAG " \
7776 --set wva.imagePullPolicy=" $WVA_IMAGE_PULL_POLICY " \
@@ -89,6 +88,9 @@ deploy_wva_controller() {
8988 --set llmd.namespace=" $LLMD_NS " \
9089 --set wva.prometheus.baseURL=" $PROMETHEUS_URL " \
9190 --set wva.prometheus.monitoringNamespace=" $MONITORING_NAMESPACE " \
91+ --set wva.prometheus.tls.caCertPath=" $PROM_TLS_CA_CERT_PATH " \
92+ ${PROM_TLS_SECRET_NAME: +--set wva.prometheus.tls.existingSecret=$PROM_TLS_SECRET_NAME } \
93+ ${PROM_TLS_KEY: +--set wva.prometheus.tls.key=$PROM_TLS_KEY } \
9294 --set vllmService.enabled=" $VLLM_SVC_ENABLED " \
9395 --set vllmService.port=" $VLLM_SVC_PORT " \
9496 --set vllmService.targetPort=" $VLLM_SVC_PORT " \
@@ -172,9 +174,12 @@ delete_namespaces_kube_like() {
172174deploy_wva_prerequisites_kube_like () {
173175 log_info " Deploying Workload-Variant-Autoscaler prerequisites for Kubernetes..."
174176
175- # Extract Prometheus CA certificate
176- log_info " Extracting Prometheus TLS certificate"
177- kubectl get secret " $PROMETHEUS_SECRET_NAME " -n " $MONITORING_NAMESPACE " -o jsonpath=' {.data.tls\.crt}' | base64 -d > " $PROM_CA_CERT_PATH "
177+ # Copy prometheus TLS Secret to WVA namespace for direct mounting (no extraction needed)
178+ log_info " Copying $PROMETHEUS_SECRET_NAME Secret to WVA namespace..."
179+ kubectl get secret " $PROMETHEUS_SECRET_NAME " -n " $MONITORING_NAMESPACE " -o yaml | \
180+ sed " s/namespace: $MONITORING_NAMESPACE /namespace: $WVA_NS /" | \
181+ kubectl apply -f - & > /dev/null
182+ log_success " Secret copied to $WVA_NS namespace"
178183
179184 local use_values_dev=false
180185 if [ " $SKIP_TLS_VERIFY " = " true" ]; then
@@ -202,63 +207,3 @@ deploy_wva_prerequisites_kube_like() {
202207
203208 log_success " WVA prerequisites complete"
204209}
205-
206- # OpenShift-specific CA extraction used by deploy/openshift/install.sh.
207- extract_openshift_prometheus_ca () {
208- # Extract OpenShift Service CA certificate for Thanos verification
209- # Note: For OpenShift service certificates, we need the Service CA that signed the server cert,
210- # not the server certificate itself. The server cert is in thanos-querier-tls, but we need the CA.
211- log_info " Extracting OpenShift Service CA certificate for Thanos verification"
212-
213- # Method 1: Extract Service CA from openshift-service-ca.crt ConfigMap (preferred)
214- # This is the actual CA certificate that signs OpenShift service certificates
215- if kubectl get configmap openshift-service-ca.crt -n " $PROMETHEUS_SECRET_NS " & > /dev/null; then
216- log_info " Extracting Service CA from openshift-service-ca.crt ConfigMap"
217- kubectl get configmap openshift-service-ca.crt -n " $PROMETHEUS_SECRET_NS " -o jsonpath=' {.data.service-ca\.crt}' > " $PROM_CA_CERT_PATH " 2> /dev/null || true
218- if [ -s " $PROM_CA_CERT_PATH " ]; then
219- log_success " Extracted Service CA from openshift-service-ca.crt ConfigMap"
220- fi
221- fi
222-
223- # Method 2: Extract Service CA from openshift-config namespace
224- if [ ! -s " $PROM_CA_CERT_PATH " ]; then
225- log_info " Trying to extract Service CA from openshift-config namespace"
226- kubectl get configmap openshift-service-ca -n openshift-config -o jsonpath=' {.data.service-ca\.crt}' > " $PROM_CA_CERT_PATH " 2> /dev/null || true
227- if [ -s " $PROM_CA_CERT_PATH " ]; then
228- log_success " Extracted Service CA from openshift-config namespace"
229- fi
230- fi
231-
232- # Method 3: Fallback to thanos-querier-tls secret (as per Helm README)
233- # Note: This extracts the server certificate, which may work if the cert chain includes the CA
234- # but it's not ideal - we should use the Service CA instead.
235- if [ ! -s " $PROM_CA_CERT_PATH " ]; then
236- log_warning " Service CA not found, falling back to server certificate from thanos-querier-tls"
237- log_warning " This may cause TLS verification issues - Service CA is preferred"
238- if kubectl get secret " $PROMETHEUS_SECRET_NAME " -n " $PROMETHEUS_SECRET_NS " & > /dev/null; then
239- log_info " Extracting certificate from thanos-querier-tls secret (as per Helm README)"
240- kubectl get secret " $PROMETHEUS_SECRET_NAME " -n " $PROMETHEUS_SECRET_NS " -o jsonpath=' {.data.tls\.crt}' | base64 -d > " $PROM_CA_CERT_PATH "
241- if [ -s " $PROM_CA_CERT_PATH " ]; then
242- log_success " Extracted certificate from thanos-querier-tls secret"
243- fi
244- fi
245- fi
246-
247- # Verify we have a valid certificate
248- if [ ! -s " $PROM_CA_CERT_PATH " ]; then
249- log_error " Failed to extract OpenShift Service CA certificate"
250- log_error " Tried: openshift-service-ca.crt ConfigMap, openshift-config ConfigMap, and thanos-querier-tls secret"
251- exit 1
252- fi
253-
254- # Verify the certificate is valid PEM format
255- if ! openssl x509 -in " $PROM_CA_CERT_PATH " -text -noout & > /dev/null; then
256- log_warning " Certificate file may not be in valid PEM format, but continuing..."
257- log_warning " If TLS errors occur, verify the certificate format is correct"
258- else
259- # Log certificate details for debugging
260- local cert_subject
261- cert_subject=$( openssl x509 -in " $PROM_CA_CERT_PATH " -noout -subject 2> /dev/null | sed ' s/subject=//' || echo " unknown" )
262- log_info " Certificate subject: $cert_subject "
263- fi
264- }
0 commit comments