114 lines
5.9 KiB
Go
114 lines
5.9 KiB
Go
/*
|
|
Copyright The Kubernetes Authors.
|
|
|
|
Licensed under the Apache License, Version 2.0 (the "License");
|
|
you may not use this file except in compliance with the License.
|
|
You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing, software
|
|
distributed under the License is distributed on an "AS IS" BASIS,
|
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
See the License for the specific language governing permissions and
|
|
limitations under the License.
|
|
*/
|
|
|
|
// Code generated by applyconfiguration-gen. DO NOT EDIT.
|
|
|
|
package v1beta1
|
|
|
|
import (
|
|
extensionsv1beta1 "k8s.io/api/extensions/v1beta1"
|
|
v1 "k8s.io/client-go/applyconfigurations/meta/v1"
|
|
)
|
|
|
|
// NetworkPolicySpecApplyConfiguration represents a declarative configuration of the NetworkPolicySpec type for use
|
|
// with apply.
|
|
//
|
|
// DEPRECATED 1.9 - This group version of NetworkPolicySpec is deprecated by networking/v1/NetworkPolicySpec.
|
|
type NetworkPolicySpecApplyConfiguration struct {
|
|
// 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.
|
|
PodSelector *v1.LabelSelectorApplyConfiguration `json:"podSelector,omitempty"`
|
|
// 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
|
|
// 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).
|
|
Ingress []NetworkPolicyIngressRuleApplyConfiguration `json:"ingress,omitempty"`
|
|
// 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
|
|
Egress []NetworkPolicyEgressRuleApplyConfiguration `json:"egress,omitempty"`
|
|
// 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
|
|
PolicyTypes []extensionsv1beta1.PolicyType `json:"policyTypes,omitempty"`
|
|
}
|
|
|
|
// NetworkPolicySpecApplyConfiguration constructs a declarative configuration of the NetworkPolicySpec type for use with
|
|
// apply.
|
|
func NetworkPolicySpec() *NetworkPolicySpecApplyConfiguration {
|
|
return &NetworkPolicySpecApplyConfiguration{}
|
|
}
|
|
|
|
// WithPodSelector sets the PodSelector field in the declarative configuration to the given value
|
|
// and returns the receiver, so that objects can be built by chaining "With" function invocations.
|
|
// If called multiple times, the PodSelector field is set to the value of the last call.
|
|
func (b *NetworkPolicySpecApplyConfiguration) WithPodSelector(value *v1.LabelSelectorApplyConfiguration) *NetworkPolicySpecApplyConfiguration {
|
|
b.PodSelector = value
|
|
return b
|
|
}
|
|
|
|
// WithIngress adds the given value to the Ingress field in the declarative configuration
|
|
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
// If called multiple times, values provided by each call will be appended to the Ingress field.
|
|
func (b *NetworkPolicySpecApplyConfiguration) WithIngress(values ...*NetworkPolicyIngressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration {
|
|
for i := range values {
|
|
if values[i] == nil {
|
|
panic("nil value passed to WithIngress")
|
|
}
|
|
b.Ingress = append(b.Ingress, *values[i])
|
|
}
|
|
return b
|
|
}
|
|
|
|
// WithEgress adds the given value to the Egress field in the declarative configuration
|
|
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
// If called multiple times, values provided by each call will be appended to the Egress field.
|
|
func (b *NetworkPolicySpecApplyConfiguration) WithEgress(values ...*NetworkPolicyEgressRuleApplyConfiguration) *NetworkPolicySpecApplyConfiguration {
|
|
for i := range values {
|
|
if values[i] == nil {
|
|
panic("nil value passed to WithEgress")
|
|
}
|
|
b.Egress = append(b.Egress, *values[i])
|
|
}
|
|
return b
|
|
}
|
|
|
|
// WithPolicyTypes adds the given value to the PolicyTypes field in the declarative configuration
|
|
// and returns the receiver, so that objects can be build by chaining "With" function invocations.
|
|
// If called multiple times, values provided by each call will be appended to the PolicyTypes field.
|
|
func (b *NetworkPolicySpecApplyConfiguration) WithPolicyTypes(values ...extensionsv1beta1.PolicyType) *NetworkPolicySpecApplyConfiguration {
|
|
for i := range values {
|
|
b.PolicyTypes = append(b.PolicyTypes, values[i])
|
|
}
|
|
return b
|
|
}
|