--- - name: Ensure Tailscale operator namespace exists command: >- kubectl create namespace {{ tailscale_operator_namespace | default('tailscale-system') }} --dry-run=client -o yaml register: tailscale_namespace_manifest changed_when: false when: - tailscale_oauth_client_id | default('') | length > 0 - tailscale_oauth_client_secret | default('') | length > 0 - name: Apply Tailscale operator namespace command: kubectl apply -f - args: stdin: "{{ tailscale_namespace_manifest.stdout }}" changed_when: true when: - tailscale_oauth_client_id | default('') | length > 0 - tailscale_oauth_client_secret | default('') | length > 0 - name: Apply Tailscale operator OAuth secret shell: >- kubectl -n {{ tailscale_operator_namespace | default('tailscale-system') }} create secret generic operator-oauth --from-literal=client_id='{{ tailscale_oauth_client_id }}' --from-literal=client_secret='{{ tailscale_oauth_client_secret }}' --dry-run=client -o yaml | kubectl apply -f - changed_when: true no_log: true when: - tailscale_oauth_client_id | default('') | length > 0 - tailscale_oauth_client_secret | default('') | length > 0