crds-catalog/metallb.io/bgppeer_v1beta2.json

175 lines
7.5 KiB
JSON

{
"description": "BGPPeer is the Schema for the peers API.",
"properties": {
"apiVersion": {
"description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
"type": "string"
},
"kind": {
"description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"metadata": {
"type": "object"
},
"spec": {
"description": "BGPPeerSpec defines the desired state of Peer.",
"properties": {
"bfdProfile": {
"description": "The name of the BFD Profile to be used for the BFD session associated to the BGP session. If not set, the BFD session won't be set up.",
"type": "string"
},
"connectTime": {
"description": "Requested BGP connect time, controls how long BGP waits between connection attempts to a neighbor.",
"type": "string",
"x-kubernetes-validations": [
{
"message": "connect time should be between 1 seconds to 65535",
"rule": "duration(self).getSeconds() >= 1 && duration(self).getSeconds() <= 65535"
},
{
"message": "connect time should contain a whole number of seconds",
"rule": "duration(self).getMilliseconds() % 1000 == 0"
}
]
},
"disableMP": {
"default": false,
"description": "To set if we want to disable MP BGP that will separate IPv4 and IPv6 route exchanges into distinct BGP sessions.",
"type": "boolean"
},
"ebgpMultiHop": {
"description": "To set if the BGPPeer is multi-hops away. Needed for FRR mode only.",
"type": "boolean"
},
"holdTime": {
"description": "Requested BGP hold time, per RFC4271.",
"type": "string"
},
"keepaliveTime": {
"description": "Requested BGP keepalive time, per RFC4271.",
"type": "string"
},
"myASN": {
"description": "AS number to use for the local end of the session.",
"format": "int32",
"maximum": 4294967295,
"minimum": 0,
"type": "integer"
},
"nodeSelectors": {
"description": "Only connect to this peer on nodes that match one of these\nselectors.",
"items": {
"description": "A label selector is a label query over a set of resources. The result of matchLabels and\nmatchExpressions are ANDed. An empty label selector matches all objects. A null\nlabel selector matches no objects.",
"properties": {
"matchExpressions": {
"description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
"items": {
"description": "A label selector requirement is a selector that contains values, a key, and an operator that\nrelates the key and values.",
"properties": {
"key": {
"description": "key is the label key that the selector applies to.",
"type": "string"
},
"operator": {
"description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.",
"type": "string"
},
"values": {
"description": "values is an array of string values. If the operator is In or NotIn,\nthe values array must be non-empty. If the operator is Exists or DoesNotExist,\nthe values array must be empty. This array is replaced during a strategic\nmerge patch.",
"items": {
"type": "string"
},
"type": "array"
}
},
"required": [
"key",
"operator"
],
"type": "object",
"additionalProperties": false
},
"type": "array"
},
"matchLabels": {
"additionalProperties": {
"type": "string"
},
"description": "matchLabels is a map of {key,value} pairs. A single {key,value} in the matchLabels\nmap is equivalent to an element of matchExpressions, whose key field is \"key\", the\noperator is \"In\", and the values array contains only \"value\". The requirements are ANDed.",
"type": "object"
}
},
"type": "object",
"x-kubernetes-map-type": "atomic",
"additionalProperties": false
},
"type": "array"
},
"password": {
"description": "Authentication password for routers enforcing TCP MD5 authenticated sessions",
"type": "string"
},
"passwordSecret": {
"description": "passwordSecret is name of the authentication secret for BGP Peer.\nthe secret must be of type \"kubernetes.io/basic-auth\", and created in the\nsame namespace as the MetalLB deployment. The password is stored in the\nsecret as the key \"password\".",
"properties": {
"name": {
"description": "name is unique within a namespace to reference a secret resource.",
"type": "string"
},
"namespace": {
"description": "namespace defines the space within which the secret name must be unique.",
"type": "string"
}
},
"type": "object",
"x-kubernetes-map-type": "atomic",
"additionalProperties": false
},
"peerASN": {
"description": "AS number to expect from the remote end of the session.",
"format": "int32",
"maximum": 4294967295,
"minimum": 0,
"type": "integer"
},
"peerAddress": {
"description": "Address to dial when establishing the session.",
"type": "string"
},
"peerPort": {
"default": 179,
"description": "Port to dial when establishing the session.",
"maximum": 16384,
"minimum": 0,
"type": "integer"
},
"routerID": {
"description": "BGP router ID to advertise to the peer",
"type": "string"
},
"sourceAddress": {
"description": "Source address to use when establishing the session.",
"type": "string"
},
"vrf": {
"description": "To set if we want to peer with the BGPPeer using an interface belonging to\na host vrf",
"type": "string"
}
},
"required": [
"myASN",
"peerASN",
"peerAddress"
],
"type": "object",
"additionalProperties": false
},
"status": {
"description": "BGPPeerStatus defines the observed state of Peer.",
"type": "object"
}
},
"type": "object"
}