New to Kestra?
Use blueprints to kickstart your first workflows.
Scans active workloads in Istio-enabled namespaces to detect pods running without Envoy proxy sidecars, alerting SecOps teams on Slack before traffic bypasses.
Audits active workloads across Kubernetes namespaces designated for Istio service mesh participation, detecting pods operating without the mandatory Envoy sidecar proxy (istio-proxy), preventing plaintext unencrypted communication and security policy bypasses.
flowchart TD
A[periodic_istio_audit Schedule Trigger] --> B[scan_unmeshed_workloads Python Script]
B --> C[check_unmeshed_pod_count Flowable If]
C -- Threshold Breached --> D[notify_slack_mesh_alert Webhook]
C -- Metrics Nominal --> E[log_nominal_mesh_state Log]
D --> E
E --> F[export_mesh_manifest Return]
periodic_istio_audit): Drives scheduled recurring surveillance cycles without human intervention.scan_unmeshed_workloads): Queries target APIs and structures diagnostic indicators via Kestra outputs.check_unmeshed_pod_count): Evaluates operational safety boundaries using deterministic boolean branching.notify_slack_mesh_alert): Dispatches rich, actionable incident messages directly to team channels.export_mesh_manifest): Emits structured compliance payloads for SIEM and analytics records.istio-injection=enabled) or pod template annotation overridessidecar.istio.io/inject: false attempting to bypass security gates.| Name | Type | Default | Description |
|---|---|---|---|
target_namespaces |
STRING |
production,payments,customer-api |
Comma-separated list of Kubernetes namespaces with mandatory Istio sidecar injection. |
sidecar_container_name |
STRING |
istio-proxy |
Expected name of the Envoy proxy container injected into workload pods. |
omission_threshold |
INT |
1 |
Threshold count of unmeshed pods that triggers an automated security alert. |
alert_on_omission |
BOOL |
True |
Toggle whether Slack webhook alerts are dispatched upon detecting pods running without sidecars. |
{{ outputs.scan_unmeshed_workloads.vars.total_pods_scanned }}: Total number of active Kubernetes pods inspected across audited namespaces.{{ outputs.scan_unmeshed_workloads.vars.unmeshed_pod_count }}: Total count of active pods missing the mandatory Envoy proxy sidecar container.{{ outputs.scan_unmeshed_workloads.vars.unmeshed_pod_names }}: Comma-separated list of namespace/pod identifiers running without mesh sidecars.{{ outputs.scan_unmeshed_workloads.vars.is_alerting }}: Boolean flag indicating whether unmeshed pod count breached configured alert thresholds.KUBECONFIG_DATA: Vault secret required for authenticated API execution and notifications.SLACK_WEBHOOK_URL: Vault secret required for authenticated API execution and notifications.company.security namespace.