Skip to content

Commit f7ac38c

Browse files
committed
oidc: change approach from init container to static CM
1 parent d0d4d8b commit f7ac38c

1 file changed

Lines changed: 6 additions & 62 deletions

File tree

components/keystone/values.yaml

Lines changed: 6 additions & 62 deletions
Original file line numberDiff line numberDiff line change
@@ -134,16 +134,6 @@ pod:
134134
timeoutSeconds: 15
135135
mounts:
136136
keystone_api:
137-
init_container:
138-
- name: oidc-gen-providers
139-
mountPath: /scripts
140-
readOnly: true
141-
- name: oidc-gen-output
142-
mountPath: /srv/generated
143-
# - name: custom-config-generator
144-
# image: ghcr.io/rackerlabs/understack/keystone:2025.2
145-
# command: ["python3", "/scripts/generate_configs.py"]
146-
# volumeMounts:
147137
keystone_api:
148138
volumeMounts:
149139
- name: keystone-sso
@@ -152,24 +142,19 @@ pod:
152142
- name: oidc-secret
153143
mountPath: /etc/oidc-secret
154144
readOnly: true
155-
- name: oidc-gen-providers
156-
mountPath: /scripts
145+
- name: oidc-metadata
157146
readOnly: true
158-
- name: oidc-gen-output
159-
mountPath: /etc/mod_auth_openidc/metadata
160147
volumes:
161148
- name: keystone-sso
162149
secret:
163150
secretName: keystone-sso
164151
- name: oidc-secret
165152
secret:
166153
secretName: sso-passphrase
167-
- name: oidc-gen-output
154+
- name: oidc-metadata
168155
configMap:
169-
name: keystone-gen-oidc-metadata
156+
name: keystone-oidc-metadata
170157
defaultMode: 0555
171-
- name: oidc-gen-providers
172-
emptyDir: {}
173158
keystone_bootstrap:
174159
keystone_bootstrap:
175160
volumeMounts:
@@ -423,53 +408,12 @@ annotations:
423408
# relies on services to be up so it can remain post
424409
argocd.argoproj.io/hook-delete-policy: BeforeHookCreation
425410
argocd.argoproj.io/sync-options: Force=true
411+
426412
extraObjects:
427413
- apiVersion: v1
428414
kind: ConfigMap
429415
metadata:
430-
name: keystone-gen-oidc-metadata
416+
name: keystone-oidc-metadata
431417
namespace: openstack
432418
data:
433-
generate_configs.py: |
434-
#!/usr/bin/env python3
435-
436-
import json
437-
import ssl
438-
import urllib.parse
439-
import urllib.request
440-
from pathlib import Path
441-
442-
METADATA_DIR = Path("/srv/generated")
443-
CLIENT_ID = "https://kubernetes.default.svc.cluster.local"
444-
445-
CLUSTERS = {
446-
"rax-dev-iad3-dev": "https://uc-iad.dev.undercloud.rackspace.net:6443",
447-
"rax-dev-global": "https://uc-dev-global.k8s-api.pvceng.rax.io:443",
448-
}
449-
450-
METADATA_DIR.mkdir(parents=True, exist_ok=True)
451-
452-
# Skip TLS verification — replace with a real SSLContext if you have the CA bundles
453-
ctx = ssl._create_unverified_context()
454-
455-
for site, issuer in CLUSTERS.items():
456-
encoded = urllib.parse.quote(issuer, safe="")
457-
base = METADATA_DIR / encoded
458-
459-
print(f"Generating metadata for {site} ({issuer})")
460-
461-
discovery_url = f"{issuer}/.well-known/openid-configuration"
462-
with urllib.request.urlopen(discovery_url, context=ctx) as resp:
463-
provider_metadata = json.load(resp)
464-
465-
(base.with_suffix(".provider")).write_text(json.dumps(provider_metadata, indent=2))
466-
467-
(base.with_suffix(".client")).write_text(json.dumps({
468-
"client_id": CLIENT_ID,
469-
"client_secret": "not-used",
470-
}, indent=2))
471-
472-
(base.with_suffix(".conf")).write_text(json.dumps({
473-
"response_type": "id_token",
474-
"scope": "openid",
475-
}, indent=2))
419+
# Define your OIDC providers metadata in deploy repo

0 commit comments

Comments
 (0)