156 lines
6.6 KiB
JSON
156 lines
6.6 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. 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",
|
|
"type": "string"
|
|
},
|
|
"kind": {
|
|
"description": "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",
|
|
"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"
|
|
},
|
|
"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 selectors.",
|
|
"items": {
|
|
"description": "A label selector is a label query over a set of resources. The result of matchLabels and matchExpressions are ANDed. An empty label selector matches all objects. A null label 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 relates 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. Valid 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, 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.",
|
|
"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 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.",
|
|
"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. the secret must be of type \"kubernetes.io/basic-auth\", and created in the same namespace as the MetalLB deployment. The password is stored in the secret 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 a 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"
|
|
}
|