Render Kubernetes TLS from an IdM certificate
When To Use This
Use this to render TLS Secret manifests from certificate material without applying them by default.
Required Authority
IdM CA owns certificate issuance. Kubernetes enforces only after apply.
Safety Boundary
This workflow is render-only. Confirm that this is the intended boundary before placing it in a scheduled job or AAP workflow.
Inputs
- Named target objects
- Credentials with the required IdM or platform authority
- A reviewed output path or downstream task
Steps
- Confirm the target objects and authority before running.
- Run the command or task with review-friendly output.
- Inspect the returned evidence before continuing to any mutating step.
ansible-playbook playbooks/render-kubernetes-tls-secret-from-idm-cert.yml
Example TLS Secret Rendering
This vars file renders a redacted TLS Secret manifest from certificate material that was already issued and reviewed.
render-tls-secret-vars.yml
---
eigenstate_k8s_tls_secret_name: app-tls
eigenstate_k8s_tls_namespace: payments
eigenstate_k8s_tls_certificate: "{{ lookup('file', 'artifacts/app.pem') }}"
eigenstate_k8s_tls_private_key: "{{ lookup('file', 'private/app.key') }}"
eigenstate_k8s_tls_output_dir: ./artifacts
eigenstate_k8s_tls_render_only: true
eigenstate_k8s_tls_apply: false
eigenstate_k8s_tls_render_review_manifest: true
eigenstate_k8s_tls_write_payload_manifest: false
Run It
ansible-playbook playbooks/render-kubernetes-tls-secret-from-idm-cert.yml \
-e @render-tls-secret-vars.yml
Expected Evidence
The role renders a review-only TLS Secret manifest with redacted certificate fields. A captured render run produced:
PLAY [Render Kubernetes TLS Secret manifest from IdM certificate material]
TASK [eigenstate.ipa.kubernetes_tls_from_idm_cert : Render reviewable Kubernetes TLS Secret manifest] ***
changed: [localhost]
PLAY RECAP ************************************************************
localhost : ok=5 changed=2 unreachable=0 failed=0 skipped=4 rescued=0 ignored=0
The review artifact redacts both TLS fields:
apiVersion: v1
kind: Secret
metadata:
name: "idm-tls-secret"
namespace: "default"
annotations:
eigenstate.ipa/payload: "redacted-in-review-manifest"
eigenstate.ipa/source: "idm-cert"
type: kubernetes.io/tls
stringData:
tls.crt: "REDACTED"
tls.key: "REDACTED"
Troubleshooting
- Permission failure: verify the account and delegated authority.
- Unexpected empty result: verify target names and source records.
- Unsafe output: redact payloads and add
no_log: truewhere secret material is present.