170 lines
8.6 KiB
JSON
170 lines
8.6 KiB
JSON
{
|
|
"description": "BGPAdvertisement allows to advertise the IPs coming\nfrom the selected IPAddressPools via BGP, setting the parameters of the\nBGP Advertisement.",
|
|
"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": "BGPAdvertisementSpec defines the desired state of BGPAdvertisement.",
|
|
"properties": {
|
|
"aggregationLength": {
|
|
"default": 32,
|
|
"description": "The aggregation-length advertisement option lets you \u201croll up\u201d the /32s into a larger prefix. Defaults to 32. Works for IPv4 addresses.",
|
|
"format": "int32",
|
|
"minimum": 1,
|
|
"type": "integer"
|
|
},
|
|
"aggregationLengthV6": {
|
|
"default": 128,
|
|
"description": "The aggregation-length advertisement option lets you \u201croll up\u201d the /128s into a larger prefix. Defaults to 128. Works for IPv6 addresses.",
|
|
"format": "int32",
|
|
"type": "integer"
|
|
},
|
|
"communities": {
|
|
"description": "The BGP communities to be associated with the announcement. Each item can be a standard community of the\nform 1234:1234, a large community of the form large:1234:1234:1234 or the name of an alias defined in the\nCommunity CRD.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"ipAddressPoolSelectors": {
|
|
"description": "A selector for the IPAddressPools which would get advertised via this advertisement.\nIf no IPAddressPool is selected by this or by the list, the advertisement is applied to all the IPAddressPools.",
|
|
"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",
|
|
"x-kubernetes-list-type": "atomic"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"operator"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"type": "array",
|
|
"x-kubernetes-list-type": "atomic"
|
|
},
|
|
"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"
|
|
},
|
|
"ipAddressPools": {
|
|
"description": "The list of IPAddressPools to advertise via this advertisement, selected by name.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"localPref": {
|
|
"description": "The BGP LOCAL_PREF attribute which is used by BGP best path algorithm,\nPath with higher localpref is preferred over one with lower localpref.",
|
|
"format": "int32",
|
|
"type": "integer"
|
|
},
|
|
"nodeSelectors": {
|
|
"description": "NodeSelectors allows to limit the nodes to announce as next hops for the LoadBalancer IP. When empty, all the nodes having are announced as next hops.",
|
|
"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",
|
|
"x-kubernetes-list-type": "atomic"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"operator"
|
|
],
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"type": "array",
|
|
"x-kubernetes-list-type": "atomic"
|
|
},
|
|
"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"
|
|
},
|
|
"peers": {
|
|
"description": "Peers limits the bgppeer to advertise the ips of the selected pools to.\nWhen empty, the loadbalancer IP is announced to all the BGPPeers configured.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
},
|
|
"type": "object",
|
|
"additionalProperties": false
|
|
},
|
|
"status": {
|
|
"description": "BGPAdvertisementStatus defines the observed state of BGPAdvertisement.",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|