{ "slug": "core-networkpolicy", "kind": "kubernetes", "metadata": { "name": "Kubernetes NetworkPolicy", "description": "Creates a Kubernetes NetworkPolicy with targeted pod selection, optional ingress and egress policy types, and simple peer and port controls for common isolation patterns.", "tags": [], "icon": { "provider": "simple-icons", "id": "kubernetes" }, "draft": false, "version": { "name": "1.31.0", "source_dep_name": "manual/core-networkpolicy" } }, "variables": [ { "title": "General", "name": "general", "items": [ { "name": "resource_name", "type": "str", "title": "NetworkPolicy name", "required": false, "default": "app-networkpolicy", "config": { "placeholder": "app-networkpolicy" } }, { "name": "namespace", "type": "str", "title": "Namespace", "required": false, "default": "default", "config": { "placeholder": "default" } } ] }, { "title": "Target Pods", "name": "target", "items": [ { "name": "apply_to_all_pods", "type": "bool", "title": "Apply to all Pods", "required": false, "default": false, "description": "Target all Pods in the namespace instead of a specific label selector." }, { "name": "pod_selector_label_key", "type": "str", "title": "Pod selector label key", "required": false, "default": "app", "description": "Label key used to select target Pods.", "config": { "placeholder": "app" } }, { "name": "pod_selector_label_value", "type": "str", "title": "Pod selector label value", "required": false, "default": "app", "description": "Label value used to select target Pods.", "config": { "placeholder": "app" } } ] }, { "title": "Ingress", "name": "ingress", "items": [ { "name": "ingress_enabled", "type": "bool", "title": "Ingress policy", "required": false, "default": true }, { "name": "ingress_allow_same_namespace", "type": "bool", "title": "Allow same-namespace ingress", "required": false, "default": true, "description": "Allow ingress from any Pod in the same namespace." }, { "name": "ingress_namespace_selector_enabled", "type": "bool", "title": "Namespace selector", "required": false, "default": false, "description": "Allow ingress from namespaces matching one label selector." }, { "name": "ingress_namespace_selector_label_key", "type": "str", "title": "Namespace selector label key", "required": false, "default": "kubernetes.io/metadata.name", "description": "Namespace label key used for the ingress namespace selector.", "config": { "placeholder": "kubernetes.io/metadata.name" } }, { "name": "ingress_namespace_selector_label_value", "type": "str", "title": "Namespace selector label value", "required": false, "default": "ingress", "description": "Namespace label value used for the ingress namespace selector.", "config": { "placeholder": "ingress" } }, { "name": "ingress_ipblock_enabled", "type": "bool", "title": "IPBlock source", "required": false, "default": false, "description": "Allow ingress from one CIDR block." }, { "name": "ingress_ipblock_cidr", "type": "str", "title": "Ingress CIDR", "required": false, "default": "10.0.0.0/8", "description": "CIDR block allowed for ingress traffic.", "config": { "placeholder": "10.0.0.0/8" } }, { "name": "ingress_port_enabled", "type": "bool", "title": "Port restriction", "required": false, "default": false, "description": "Restrict ingress to one port." }, { "name": "ingress_port", "type": "int", "title": "Ingress port", "required": false, "default": 80, "description": "Port allowed for ingress traffic.", "config": { "placeholder": "80" } }, { "name": "ingress_port_protocol", "type": "enum", "title": "Ingress port protocol", "required": false, "default": "TCP", "config": { "options": [ "TCP", "UDP", "SCTP" ] } } ] }, { "title": "Egress", "name": "egress", "items": [ { "name": "egress_enabled", "type": "bool", "title": "Egress policy", "required": false, "default": false }, { "name": "egress_allow_same_namespace", "type": "bool", "title": "Allow same-namespace egress", "required": false, "default": false, "description": "Allow egress to any Pod in the same namespace." }, { "name": "egress_namespace_selector_enabled", "type": "bool", "title": "Namespace selector", "required": false, "default": false, "description": "Allow egress to namespaces matching one label selector." }, { "name": "egress_namespace_selector_label_key", "type": "str", "title": "Namespace selector label key", "required": false, "default": "kubernetes.io/metadata.name", "description": "Namespace label key used for the egress namespace selector.", "config": { "placeholder": "kubernetes.io/metadata.name" } }, { "name": "egress_namespace_selector_label_value", "type": "str", "title": "Namespace selector label value", "required": false, "default": "database", "description": "Namespace label value used for the egress namespace selector.", "config": { "placeholder": "database" } }, { "name": "egress_ipblock_enabled", "type": "bool", "title": "IPBlock destination", "required": false, "default": false, "description": "Allow egress to one CIDR block." }, { "name": "egress_ipblock_cidr", "type": "str", "title": "Egress CIDR", "required": false, "default": "0.0.0.0/0", "description": "CIDR block allowed for egress traffic.", "config": { "placeholder": "0.0.0.0/0" } }, { "name": "egress_port_enabled", "type": "bool", "title": "Port restriction", "required": false, "default": false, "description": "Restrict egress to one port." }, { "name": "egress_port", "type": "int", "title": "Egress port", "required": false, "default": 443, "description": "Port allowed for egress traffic.", "config": { "placeholder": "443" } }, { "name": "egress_port_protocol", "type": "enum", "title": "Egress port protocol", "required": false, "default": "TCP", "config": { "options": [ "TCP", "UDP", "SCTP" ] } } ] } ] }