Skip to content

Commit 52c930a

Browse files
Martin Jacksoncursoragent
andcommitted
feat(k8s_secret_utils): bootstrap inject summary and change counts
Per early-phase inject run: reset counters, increment on real k8s namespace/secret changes, then debug counts only (no secret values). kubernetes.core.k8s tasks stay no_log; recap still reflects module changed state. Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent e88542d commit 52c930a

4 files changed

Lines changed: 41 additions & 0 deletions

File tree

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
---
22
# secrets_install_phase: early|late — set by load_secrets/process_secrets include_role vars, or by parse_secrets in this role.
3+
# bootstrap_phase_*_changed: counts for early-phase summary (set during inject_k8s_secrets; not secret material).
34
secrets_ns: 'validated-patterns-secrets'

roles/k8s_secret_utils/tasks/ensure_one_bootstrap_namespace.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,13 @@
1616
kind: Namespace
1717
metadata:
1818
name: "{{ bootstrap_target_namespace }}"
19+
register: _bootstrap_ns_create_result
20+
21+
- name: Record bootstrap namespace change count
22+
ansible.builtin.set_fact:
23+
bootstrap_phase_namespaces_changed: "{{ (bootstrap_phase_namespaces_changed | default(0)) | int + 1 }}"
24+
when:
25+
- (secrets_install_phase | default(secrets_phase | default('late'))) == 'early'
26+
- _bootstrap_ns_create_result is defined
27+
- not (_bootstrap_ns_create_result.skipped | default(false))
28+
- _bootstrap_ns_create_result.changed | default(false)

roles/k8s_secret_utils/tasks/inject_k8s_secret.yml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,3 +14,13 @@
1414
no_log: '{{ hide_sensitive_output | default(True) }}'
1515
kubernetes.core.k8s:
1616
definition: '{{ _k8s_secret_object }}'
17+
register: _k8s_secret_apply_result
18+
19+
- name: Record bootstrap secret change count
20+
ansible.builtin.set_fact:
21+
bootstrap_phase_secrets_changed: "{{ (bootstrap_phase_secrets_changed | default(0)) | int + 1 }}"
22+
when:
23+
- (secrets_install_phase | default(secrets_phase | default('late'))) == 'early'
24+
- _k8s_secret_apply_result is defined
25+
- not (_k8s_secret_apply_result.skipped | default(false))
26+
- _k8s_secret_apply_result.changed | default(false)

roles/k8s_secret_utils/tasks/inject_k8s_secrets.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,18 @@
22
# Early phase only: create each bootstrap secret target namespace if absent (never replace an existing NS).
33
# Late phase expects namespaces from the pattern/operator; inject_k8s_secret.yml waits until they exist.
44
# secrets_install_phase is passed from load_secrets/process_secrets or set in parse_secrets for this role.
5+
- name: Initialize bootstrap phase change counters for this inject run
6+
ansible.builtin.set_fact:
7+
bootstrap_phase_namespaces_changed: 0
8+
bootstrap_phase_secrets_changed: 0
9+
when: (secrets_install_phase | default(secrets_phase | default('late'))) == 'early'
10+
11+
- name: Clear bootstrap phase counters before late-phase inject
12+
ansible.builtin.set_fact:
13+
bootstrap_phase_namespaces_changed: 0
14+
bootstrap_phase_secrets_changed: 0
15+
when: (secrets_install_phase | default(secrets_phase | default('late'))) != 'early'
16+
517
- name: Create missing bootstrap target namespaces
618
ansible.builtin.include_tasks: ensure_one_bootstrap_namespace.yml
719
loop: "{{ kubernetes_secret_objects | map(attribute='metadata') | map(attribute='namespace') | unique | list }}"
@@ -18,3 +30,11 @@
1830
loop_control:
1931
loop_var: _k8s_secret_object
2032
label: "{{ _k8s_secret_object.metadata.namespace }}/{{ _k8s_secret_object.metadata.name }}"
33+
34+
- name: Report bootstrap phase Kubernetes apply summary (counts only)
35+
ansible.builtin.debug:
36+
msg: >-
37+
Bootstrap phase: {{ bootstrap_phase_namespaces_changed | default(0) }} namespace(s) created or updated,
38+
{{ bootstrap_phase_secrets_changed | default(0) }} secret(s) created or updated in the cluster.
39+
when: (secrets_install_phase | default(secrets_phase | default('late'))) == 'early'
40+
changed_when: false

0 commit comments

Comments
 (0)