Files
Compose-Files/kubernetes/core-networkpolicy/template.json
T
2026-07-20 09:23:17 -04:00

289 lines
8.1 KiB
JSON

{
"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"
]
}
}
]
}
]
}