NetworkPolicy

    apiVersion: networking.k8s.io/v1

    import "k8s.io/api/networking/v1"

    NetworkPolicy describes what network traffic is allowed for a set of Pods


    NetworkPolicySpec provides the specification of a NetworkPolicy


    • podSelector (), required

      podSelector selects the pods to which this NetworkPolicy object applies. The array of ingress rules is applied to any pods selected by this field. Multiple network policies can select the same set of pods. In this case, the ingress rules for each are combined additively. This field is NOT optional and follows standard label selector semantics. An empty podSelector matches all pods in this namespace.

    • policyTypes ([]string)

      policyTypes is a list of rule types that the NetworkPolicy relates to. Valid options are [“Ingress”], [“Egress”], or [“Ingress”, “Egress”]. If this field is not specified, it will default based on the existence of ingress or egress rules; policies that contain an egress section are assumed to affect egress, and all policies (whether or not they contain an ingress section) are assumed to affect ingress. If you want to write an egress-only policy, you must explicitly specify policyTypes [ “Egress” ]. Likewise, if you want to write a policy that specifies that no egress is allowed, you must specify a policyTypes value that include “Egress” (since such a policy would not include an egress section and would otherwise default to just [ “Ingress” ]). This field is beta-level in 1.8

    • ingress ([]NetworkPolicyIngressRule)

      ingress is a list of ingress rules to be applied to the selected pods. Traffic is allowed to a pod if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic source is the pod’s local node, OR if the traffic matches at least one ingress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy does not allow any traffic (and serves solely to ensure that the pods it selects are isolated by default)

      NetworkPolicyIngressRule describes a particular set of traffic that is allowed to the pods matched by a NetworkPolicySpec’s podSelector. The traffic must match both ports and from.

      • ingress.ports ([]NetworkPolicyPort)

        ports is a list of ports which should be made accessible on the pods selected for this rule. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.

        NetworkPolicyPort describes a port to allow traffic on

        • ingress.ports.port (IntOrString)

          port represents the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.

          IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.

        • ingress.ports.endPort (int32)

          endPort indicates that the range of ports from port to endPort if set, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.

        • ingress.ports.protocol (string)

          protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.

    • egress ([]NetworkPolicyEgressRule)

      egress is a list of egress rules to be applied to the selected pods. Outgoing traffic is allowed if there are no NetworkPolicies selecting the pod (and cluster policy otherwise allows the traffic), OR if the traffic matches at least one egress rule across all of the NetworkPolicy objects whose podSelector matches the pod. If this field is empty then this NetworkPolicy limits all outgoing traffic (and serves solely to ensure that the pods it selects are isolated by default). This field is beta-level in 1.8

      NetworkPolicyEgressRule describes a particular set of traffic that is allowed out of pods matched by a NetworkPolicySpec’s podSelector. The traffic must match both ports and to. This type is beta-level in 1.8

      • egress.to ([]NetworkPolicyPeer)

        to is a list of destinations for outgoing traffic of pods selected for this rule. Items in this list are combined using a logical OR operation. If this field is empty or missing, this rule matches all destinations (traffic not restricted by destination). If this field is present and contains at least one item, this rule allows traffic only if the traffic matches at least one item in the to list.

        NetworkPolicyPeer describes a peer to allow traffic to/from. Only certain combinations of fields are allowed

        • egress.to.ipBlock (IPBlock)

          ipBlock defines policy on a particular IPBlock. If this field is set then neither of the other fields can be.

          IPBlock describes a particular CIDR (Ex. “192.168.1.0/24”,”2001:db8::/64”) that is allowed to the pods matched by a NetworkPolicySpec’s podSelector. The except entry describes CIDRs that should not be included within this rule.

          • egress.to.ipBlock.cidr (string), required

            cidr is a string representing the IPBlock Valid examples are “192.168.1.0/24” or “2001:db8::/64”

          • egress.to.ipBlock.except ([]string)

            except is a slice of CIDRs that should not be included within an IPBlock Valid examples are “192.168.1.0/24” or “2001:db8::/64” Except values will be rejected if they are outside the cidr range

        • egress.to.namespaceSelector (LabelSelector)

          namespaceSelector selects namespaces using cluster-scoped labels. This field follows standard label selector semantics; if present but empty, it selects all namespaces.

          If podSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the namespaces selected by namespaceSelector. Otherwise it selects all pods in the namespaces selected by namespaceSelector.

        • egress.to.podSelector ()

          podSelector is a label selector which selects pods. This field follows standard label selector semantics; if present but empty, it selects all pods.

          If namespaceSelector is also set, then the NetworkPolicyPeer as a whole selects the pods matching podSelector in the Namespaces selected by NamespaceSelector. Otherwise it selects the pods matching podSelector in the policy’s own namespace.

      • egress.ports ([]NetworkPolicyPort)

        ports is a list of destination ports for outgoing traffic. Each item in this list is combined using a logical OR. If this field is empty or missing, this rule matches all ports (traffic not restricted by port). If this field is present and contains at least one item, then this rule allows traffic only if the traffic matches at least one port in the list.

        NetworkPolicyPort describes a port to allow traffic on

        • egress.ports.port (IntOrString)

          port represents the port on the given protocol. This can either be a numerical or named port on a pod. If this field is not provided, this matches all port names and numbers. If present, only traffic on the specified protocol AND port will be matched.

          IntOrString is a type that can hold an int32 or a string. When used in JSON or YAML marshalling and unmarshalling, it produces or consumes the inner type. This allows you to have, for example, a JSON field that can accept a name or number.

        • egress.ports.endPort (int32)

          endPort indicates that the range of ports from port to endPort if set, inclusive, should be allowed by the policy. This field cannot be defined if the port field is not defined or if the port field is defined as a named (string) port. The endPort must be equal or greater than port.

        • egress.ports.protocol (string)

          protocol represents the protocol (TCP, UDP, or SCTP) which traffic must match. If not specified, this field defaults to TCP.

    NetworkPolicyStatus describes the current state of the NetworkPolicy.


    • conditions ([]Condition)

      Patch strategy: merge on key type

      Map: unique values on key type will be kept during a merge

      conditions holds an array of metav1.Condition that describe the state of the NetworkPolicy. Current service state

      Condition contains details for one aspect of the current state of this API Resource.

      • conditions.lastTransitionTime (Time), required

        lastTransitionTime is the last time the condition transitioned from one status to another. This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.

        Time is a wrapper around time.Time which supports correct marshaling to YAML and JSON. Wrappers are provided for many of the factory methods that the time package offers.

      • conditions.message (string), required

        message is a human readable message indicating details about the transition. This may be an empty string.

      • conditions.reason (string), required

        reason contains a programmatic identifier indicating the reason for the condition’s last transition. Producers of specific condition types may define expected values and meanings for this field, and whether the values are considered a guaranteed API. The value should be a CamelCase string. This field may not be empty.

      • conditions.status (string), required

        status of the condition, one of True, False, Unknown.

      • conditions.type (string), required

        type of condition in CamelCase or in foo.example.com/CamelCase.

      • conditions.observedGeneration (int64)

        observedGeneration represents the .metadata.generation that the condition was set based upon. For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date with respect to the current state of the instance.

    NetworkPolicyList is a list of NetworkPolicy objects.


    • apiVersion: networking.k8s.io/v1

    • kind: NetworkPolicyList

    • metadata (ListMeta)

      Standard list metadata. More info:

    • items ([]NetworkPolicy), required

      items is a list of schema objects.


    HTTP Request

    GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}

    Parameters

    • name of the NetworkPolicy

    • namespace (in path): string, required

    • pretty (in query): string

      pretty

    Response

    200 (NetworkPolicy): OK

    401: Unauthorized

    get read status of the specified NetworkPolicy

    HTTP Request

    GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}/status

    Parameters

    • name (in path): string, required

      name of the NetworkPolicy

    • namespace (in path): string, required

      namespace

    • pretty (in query): string

    Response

    200 (): OK

    401: Unauthorized

    list or watch objects of kind NetworkPolicy

    HTTP Request

    GET /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies

    Parameters

    • namespace (in path): string, required

    • allowWatchBookmarks (in query): boolean

      allowWatchBookmarks

    • continue (in query): string

    • fieldSelector (in query): string

      fieldSelector

    • labelSelector (in query): string

    • limit (in query): integer

      limit

    • pretty (in query): string

    • resourceVersion (in query): string

      resourceVersion

    • resourceVersionMatch (in query): string

    • sendInitialEvents (in query): boolean

      sendInitialEvents

    • timeoutSeconds (in query): integer

    • watch (in query): boolean

      watch

    Response

    200 (NetworkPolicyList): OK

    401: Unauthorized

    HTTP Request

    GET /apis/networking.k8s.io/v1/networkpolicies

    Parameters

    • allowWatchBookmarks (in query): boolean

      allowWatchBookmarks

    • continue (in query): string

    • fieldSelector (in query): string

      fieldSelector

    • labelSelector (in query): string

    • limit (in query): integer

      limit

    • pretty (in query): string

    • resourceVersion (in query): string

      resourceVersion

    • resourceVersionMatch (in query): string

    • timeoutSeconds (in query): integer

      timeoutSeconds

    • watch (in query): boolean

    Response

    200 (): OK

    401: Unauthorized

    create create a NetworkPolicy

    HTTP Request

    POST /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies

    Parameters

    • namespace (in path): string, required

    • body: NetworkPolicy, required

    • dryRun (in query): string

    • fieldManager (in query): string

      fieldManager

    • fieldValidation (in query): string

    • pretty (in query): string

      pretty

    Response

    200 (NetworkPolicy): OK

    201 (): Created

    202 (NetworkPolicy): Accepted

    401: Unauthorized

    update replace the specified NetworkPolicy

    HTTP Request

    PUT /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}

    Parameters

    • name (in path): string, required

      name of the NetworkPolicy

    • namespace (in path): string, required

      namespace

    • body: , required

    • dryRun (in query): string

      dryRun

    • fieldManager (in query): string

    • fieldValidation (in query): string

      fieldValidation

    • pretty (in query): string

    Response

    200 (): OK

    201 (NetworkPolicy): Created

    401: Unauthorized

    HTTP Request

    Parameters

    • name (in path): string, required

      name of the NetworkPolicy

    • namespace (in path): string, required

      namespace

    • body: , required

    • dryRun (in query): string

      dryRun

    • fieldManager (in query): string

    • fieldValidation (in query): string

      fieldValidation

    • pretty (in query): string

    Response

    200 (): OK

    201 (NetworkPolicy): Created

    401: Unauthorized

    patch partially update the specified NetworkPolicy

    HTTP Request

    PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}

    Parameters

    • name (in path): string, required

      name of the NetworkPolicy

    • namespace (in path): string, required

      namespace

    • body: , required

    • dryRun (in query): string

      dryRun

    • fieldManager (in query): string

    • fieldValidation (in query): string

      fieldValidation

    • force (in query): boolean

    • pretty (in query): string

      pretty

    Response

    200 (NetworkPolicy): OK

    201 (): Created

    401: Unauthorized

    patch partially update status of the specified NetworkPolicy

    HTTP Request

    PATCH /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}/status

    Parameters

    • name (in path): string, required

      name of the NetworkPolicy

    • namespace (in path): string, required

    • body: Patch, required

    • dryRun (in query): string

    • fieldManager (in query): string

      fieldManager

    • fieldValidation (in query): string

    • force (in query): boolean

      force

    • pretty (in query): string

    Response

    200 (): OK

    201 (NetworkPolicy): Created

    401: Unauthorized

    HTTP Request

    DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies/{name}

    Parameters

    • name (in path): string, required

      name of the NetworkPolicy

    • namespace (in path): string, required

      namespace

    • body:

    • dryRun (in query): string

      dryRun

    • gracePeriodSeconds (in query): integer

    • pretty (in query): string

      pretty

    • propagationPolicy (in query): string

    Response

    200 (): OK

    202 (Status): Accepted

    401: Unauthorized

    delete collection of NetworkPolicy

    HTTP Request

    DELETE /apis/networking.k8s.io/v1/namespaces/{namespace}/networkpolicies

    Parameters

    • namespace (in path): string, required

      namespace

    • body:

    • continue (in query): string

      continue

    • dryRun (in query): string

    • fieldSelector (in query): string

      fieldSelector

    • gracePeriodSeconds (in query): integer

    • labelSelector (in query): string

      labelSelector

    • limit (in query): integer

    • pretty (in query): string

      pretty

    • propagationPolicy (in query): string

    • resourceVersion (in query): string

      resourceVersion

    • resourceVersionMatch (in query): string

    • timeoutSeconds (in query): integer

      timeoutSeconds

    Response

    200 (Status): OK

    401: Unauthorized