import { IObjectMeta } from "@soft-stech/apimachinery/apis/meta/v1/ObjectMeta"; import { Model, ModelData } from "@soft-stech/base"; /** * CiliumBGPPeeringPolicy is a Kubernetes third-party resource for instructing Cilium's BGP control plane to create virtual BGP routers. */ export interface ICiliumBGPPeeringPolicy { /** * APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources */ "apiVersion": "cilium.io/v2alpha1"; /** * Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds */ "kind": "CiliumBGPPeeringPolicy"; "metadata": IObjectMeta; /** * Spec is a human readable description of a BGP peering policy */ "spec"?: { /** * NodeSelector selects a group of nodes where this BGP Peering Policy applies. * If empty / nil this policy applies to all nodes. */ "nodeSelector"?: { /** * matchExpressions is a list of label selector requirements. The requirements are ANDed. */ "matchExpressions"?: Array<{ /** * key is the label key that the selector applies to. */ "key": string; /** * operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. */ "operator": "In" | "NotIn" | "Exists" | "DoesNotExist"; /** * values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. */ "values"?: Array; }>; /** * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. */ "matchLabels"?: Record; }; /** * A list of CiliumBGPVirtualRouter(s) which instructs the BGP control plane how to instantiate virtual BGP routers. */ "virtualRouters": Array<{ /** * ExportPodCIDR determines whether to export the Node's private CIDR block to the configured neighbors. */ "exportPodCIDR"?: boolean; /** * LocalASN is the ASN of this virtual router. Supports extended 32bit ASNs * @maximum 4294967295 */ "localASN": number; /** * Neighbors is a list of neighboring BGP peers for this virtual router */ "neighbors": Array<{ /** * ConnectRetryTimeSeconds defines the initial value for the BGP ConnectRetryTimer (RFC 4271, Section 8). * @default 120 * @minimum 1 * @maximum 2147483647 * @format int32 */ "connectRetryTimeSeconds"?: number; /** * EBGPMultihopTTL controls the multi-hop feature for eBGP peers. Its value defines the Time To Live (TTL) value used in BGP packets sent to the neighbor. The value 1 implies that eBGP multi-hop feature is disabled (only a single hop is allowed). This field is ignored for iBGP peers. * @default 1 * @minimum 1 * @maximum 255 * @format int32 */ "eBGPMultihopTTL"?: number; /** * GracefulRestart defines graceful restart parameters which are negotiated with this neighbor. If empty / nil, the graceful restart capability is disabled. */ "gracefulRestart"?: { /** * Enabled flag, when set enables graceful restart capability. */ "enabled": boolean; /** * RestartTimeSeconds is the estimated time it will take for the BGP session to be re-established with peer after a restart. After this period, peer will remove stale routes. This is described RFC 4724 section 4.2. * @default 120 * @minimum 1 * @maximum 4095 * @format int32 */ "restartTimeSeconds"?: number; }; /** * HoldTimeSeconds defines the initial value for the BGP HoldTimer (RFC 4271, Section 4.2). Updating this value will cause a session reset. * @default 90 * @minimum 3 * @maximum 65535 * @format int32 */ "holdTimeSeconds"?: number; /** * KeepaliveTimeSeconds defines the initial value for the BGP KeepaliveTimer (RFC 4271, Section 8). It can not be larger than HoldTimeSeconds. Updating this value will cause a session reset. * @default 30 * @minimum 1 * @maximum 65535 * @format int32 */ "keepAliveTimeSeconds"?: number; /** * PeerASN is the ASN of the peer BGP router. Supports extended 32bit ASNs * @maximum 4294967295 */ "peerASN": number; /** * PeerAddress is the IP address of the peer. This must be in CIDR notation and use a /32 to express a single host. * @format cidr */ "peerAddress": string; /** * PeerPort is the TCP port of the peer. 1-65535 is the range of valid port numbers that can be specified. If unset, defaults to 179. * @default 179 * @minimum 1 * @maximum 65535 * @format int32 */ "peerPort"?: number; }>; /** * ServiceSelector selects a group of load balancer services which this virtual router will announce. * If empty / nil no services will be announced. */ "serviceSelector"?: { /** * matchExpressions is a list of label selector requirements. The requirements are ANDed. */ "matchExpressions"?: Array<{ /** * key is the label key that the selector applies to. */ "key": string; /** * operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist. */ "operator": "In" | "NotIn" | "Exists" | "DoesNotExist"; /** * values is an array of string values. If the operator is In or NotIn, the values array must be non-empty. If the operator is Exists or DoesNotExist, the values array must be empty. This array is replaced during a strategic merge patch. */ "values"?: Array; }>; /** * matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels map is equivalent to an element of matchExpressions, whose key field is "key", the operator is "In", and the values array contains only "value". The requirements are ANDed. */ "matchLabels"?: Record; }; }>; }; } /** * CiliumBGPPeeringPolicy is a Kubernetes third-party resource for instructing Cilium's BGP control plane to create virtual BGP routers. */ export declare class CiliumBGPPeeringPolicy extends Model implements ICiliumBGPPeeringPolicy { "apiVersion": ICiliumBGPPeeringPolicy["apiVersion"]; "kind": ICiliumBGPPeeringPolicy["kind"]; "metadata": ICiliumBGPPeeringPolicy["metadata"]; "spec"?: ICiliumBGPPeeringPolicy["spec"]; static apiVersion: ICiliumBGPPeeringPolicy["apiVersion"]; static kind: ICiliumBGPPeeringPolicy["kind"]; static is: import("@soft-stech/base").TypeMetaGuard; constructor(data?: ModelData); }