auth
FreeAuthentication and authorization patterns for Rossoctl services
The English summary is being prepared. Showing the original description.
Use OpenShift's trusted CA bundle for TLS verification in pods
The English summary is being prepared. Showing the original description.
Run score Not tested
See how to installReview the instructions the agent will receive before you install.
Use OpenShift's automatically-managed trusted CA bundle for TLS verification in pods.
OpenShift automatically creates a ConfigMap named config-trusted-cabundle in each namespace that contains the cluster's trusted CA certificates. This is useful for services that need to verify TLS connections to internal services or external endpoints.
OpenShift automatically maintains this ConfigMap:
apiVersion: v1
kind: ConfigMap
metadata:
name: config-trusted-cabundle
namespace: <any-namespace>
data:
ca-bundle.crt: |
-----BEGIN CERTIFICATE-----
# ... certificates ...
-----END CERTIFICATE-----
Important: This ConfigMap exists automatically in every namespace. Do NOT create it manually.
Mount the CA bundle in your pod:
apiVersion: apps/v1
kind: Deployment
metadata:
name: my-service
spec:
template:
spec:
containers:
- name: my-service
volumeMounts:
- name: trusted-ca
mountPath: /etc/pki/ca-trust/extracted/pem
readOnly: true
volumes:
- name: trusted-ca
configMap:
name: config-trusted-cabundle
items:
- key: ca-bundle.crt
path: tls-ca-bundle.pem
import requests
response = requests.get(
"https://internal-service.example.com",
verify="/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem"
)
from keycloak import KeycloakAdmin
keycloak_admin = KeycloakAdmin(
server_url="https://keycloak.example.com",
verify="/etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem"
)
extensions:
oauth2client/mlflow:
token_url: https://keycloak.example.com/realms/master/protocol/openid-connect/token
tls:
ca_file: /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
curl --cacert /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem \
https://internal-service.example.com
Do NOT create a ConfigMap with the injection annotation:
# DON'T DO THIS
apiVersion: v1
kind: ConfigMap
metadata:
name: my-custom-ca-bundle
annotations:
service.beta.openshift.io/inject-cabundle: "true"
data: {}
Why: The injection annotation doesn't inject certificates immediately. The ConfigMap may be empty when the pod starts, causing TLS failures.
Avoid TLS complexity entirely by using internal service URLs:
# Instead of external URL
KEYCLOAK_URL: "https://keycloak.apps.example.com"
# Use internal URL
KEYCLOAK_URL: "http://keycloak-service.keycloak.svc.cluster.local:8080"
{{- if eq .Values.global.platform "ocp" }}
tls:
ca_file: /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
{{- end }}
kubectl exec -it <pod> -- ls -la /etc/pki/ca-trust/extracted/pem/
{{- if .Values.global.openshift.enabled }}
spec:
template:
spec:
containers:
- name: {{ .Chart.Name }}
volumeMounts:
- name: trusted-ca
mountPath: /etc/pki/ca-trust/extracted/pem
readOnly: true
volumes:
- name: trusted-ca
configMap:
name: config-trusted-cabundle
items:
- key: ca-bundle.crt
path: tls-ca-bundle.pem
{{- end }}
ssl.SSLCertVerificationError: certificate verify failed
kubectl exec -it <pod> -- cat /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem
Verify application is using the correct path
Consider using internal HTTP URL instead
Error: configmap "config-trusted-cabundle" not found
This shouldn't happen on OpenShift. Check if:
If the ConfigMap exists but is empty:
| Platform | CA Bundle Availability |
|---|---|
| OpenShift | Automatic (config-trusted-cabundle) |
| Kind | Not available (use internal URLs) |
| Vanilla k8s | Not available (manual configuration needed) |
auth:keycloak-confidential-clientauth:otel-oauth2-exporterNo reviews yet. Tell others what you thought.
No login needed. Share how it worked for you, ask a question, or note where it did not run.
No comments yet. Be the first to write one.
Authentication and authorization patterns for Rossoctl services
The English summary is being prepared. Showing the original description.
Create confidential OAuth2 clients in Keycloak for server-to-service authentication
The English summary is being prepared. Showing the original description.
Configure MLflow with mlflow-oidc-auth plugin for Keycloak OIDC authentication
The English summary is being prepared. Showing the original description.
Configure OpenTelemetry Collector with OAuth2 authentication for trace export
The English summary is being prepared. Showing the original description.
CI pipeline monitoring, status checks, and PR validation workflows
The English summary is being prepared. Showing the original description.
Monitor running CI jobs, wait for completion, create tasks for results
The English summary is being prepared. Showing the original description.