auto-update crds catalog

This commit is contained in:
Drone Shipper 2024-03-26 19:44:01 +00:00
parent 62a86ead09
commit c4018c9496
10 changed files with 150 additions and 78 deletions

View File

@ -20,6 +20,9 @@
}, },
{ {
"$ref": "https://gitea.rknet.org/infra/crds-catalog/raw/branch/catalog/metallb.io/l2advertisement_v1beta1.json" "$ref": "https://gitea.rknet.org/infra/crds-catalog/raw/branch/catalog/metallb.io/l2advertisement_v1beta1.json"
},
{
"$ref": "https://gitea.rknet.org/infra/crds-catalog/raw/branch/catalog/metallb.io/servicel2status_v1beta1.json"
} }
] ]
} }

View File

@ -20,6 +20,9 @@
}, },
{ {
"$ref": "https://gitea.rknet.org/infra/crds-catalog/raw/branch/catalog/metallb.io/l2advertisement_v1beta1.json" "$ref": "https://gitea.rknet.org/infra/crds-catalog/raw/branch/catalog/metallb.io/l2advertisement_v1beta1.json"
},
{
"$ref": "https://gitea.rknet.org/infra/crds-catalog/raw/branch/catalog/metallb.io/servicel2status_v1beta1.json"
} }
] ]
} }

View File

@ -1,12 +1,12 @@
{ {
"description": "BFDProfile represents the settings of the bfd session that can be optionally associated with a BGP session.", "description": "BFDProfile represents the settings of the bfd session that can be\noptionally associated with a BGP session.",
"properties": { "properties": {
"apiVersion": { "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", "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" "type": "string"
}, },
"kind": { "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", "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" "type": "string"
}, },
"metadata": { "metadata": {
@ -16,43 +16,43 @@
"description": "BFDProfileSpec defines the desired state of BFDProfile.", "description": "BFDProfileSpec defines the desired state of BFDProfile.",
"properties": { "properties": {
"detectMultiplier": { "detectMultiplier": {
"description": "Configures the detection multiplier to determine packet loss. The remote transmission interval will be multiplied by this value to determine the connection loss detection timer.", "description": "Configures the detection multiplier to determine\npacket loss. The remote transmission interval will be multiplied\nby this value to determine the connection loss detection timer.",
"format": "int32", "format": "int32",
"maximum": 255, "maximum": 255,
"minimum": 2, "minimum": 2,
"type": "integer" "type": "integer"
}, },
"echoInterval": { "echoInterval": {
"description": "Configures the minimal echo receive transmission interval that this system is capable of handling in milliseconds. Defaults to 50ms", "description": "Configures the minimal echo receive transmission\ninterval that this system is capable of handling in milliseconds.\nDefaults to 50ms",
"format": "int32", "format": "int32",
"maximum": 60000, "maximum": 60000,
"minimum": 10, "minimum": 10,
"type": "integer" "type": "integer"
}, },
"echoMode": { "echoMode": {
"description": "Enables or disables the echo transmission mode. This mode is disabled by default, and not supported on multi hops setups.", "description": "Enables or disables the echo transmission mode.\nThis mode is disabled by default, and not supported on multi\nhops setups.",
"type": "boolean" "type": "boolean"
}, },
"minimumTtl": { "minimumTtl": {
"description": "For multi hop sessions only: configure the minimum expected TTL for an incoming BFD control packet.", "description": "For multi hop sessions only: configure the minimum\nexpected TTL for an incoming BFD control packet.",
"format": "int32", "format": "int32",
"maximum": 254, "maximum": 254,
"minimum": 1, "minimum": 1,
"type": "integer" "type": "integer"
}, },
"passiveMode": { "passiveMode": {
"description": "Mark session as passive: a passive session will not attempt to start the connection and will wait for control packets from peer before it begins replying.", "description": "Mark session as passive: a passive session will not\nattempt to start the connection and will wait for control packets\nfrom peer before it begins replying.",
"type": "boolean" "type": "boolean"
}, },
"receiveInterval": { "receiveInterval": {
"description": "The minimum interval that this system is capable of receiving control packets in milliseconds. Defaults to 300ms.", "description": "The minimum interval that this system is capable of\nreceiving control packets in milliseconds.\nDefaults to 300ms.",
"format": "int32", "format": "int32",
"maximum": 60000, "maximum": 60000,
"minimum": 10, "minimum": 10,
"type": "integer" "type": "integer"
}, },
"transmitInterval": { "transmitInterval": {
"description": "The minimum transmission interval (less jitter) that this system wants to use to send BFD control packets in milliseconds. Defaults to 300ms", "description": "The minimum transmission interval (less jitter)\nthat this system wants to use to send BFD control packets in\nmilliseconds. Defaults to 300ms",
"format": "int32", "format": "int32",
"maximum": 60000, "maximum": 60000,
"minimum": 10, "minimum": 10,

View File

@ -1,12 +1,12 @@
{ {
"description": "BGPAdvertisement allows to advertise the IPs coming from the selected IPAddressPools via BGP, setting the parameters of the BGP Advertisement.", "description": "BGPAdvertisement allows to advertise the IPs coming\nfrom the selected IPAddressPools via BGP, setting the parameters of the\nBGP Advertisement.",
"properties": { "properties": {
"apiVersion": { "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", "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" "type": "string"
}, },
"kind": { "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", "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" "type": "string"
}, },
"metadata": { "metadata": {
@ -29,32 +29,32 @@
"type": "integer" "type": "integer"
}, },
"communities": { "communities": {
"description": "The BGP communities to be associated with the announcement. Each item can be a standard community of the form 1234:1234, a large community of the form large:1234:1234:1234 or the name of an alias defined in the Community CRD.", "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": { "items": {
"type": "string" "type": "string"
}, },
"type": "array" "type": "array"
}, },
"ipAddressPoolSelectors": { "ipAddressPoolSelectors": {
"description": "A selector for the IPAddressPools which would get advertised via this advertisement. If no IPAddressPool is selected by this or by the list, the advertisement is applied to all the IPAddressPools.", "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": { "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.", "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": { "properties": {
"matchExpressions": { "matchExpressions": {
"description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
"items": { "items": {
"description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", "description": "A label selector requirement is a selector that contains values, a key, and an operator that\nrelates the key and values.",
"properties": { "properties": {
"key": { "key": {
"description": "key is the label key that the selector applies to.", "description": "key is the label key that the selector applies to.",
"type": "string" "type": "string"
}, },
"operator": { "operator": {
"description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", "description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.",
"type": "string" "type": "string"
}, },
"values": { "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.", "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": { "items": {
"type": "string" "type": "string"
}, },
@ -74,7 +74,7 @@
"additionalProperties": { "additionalProperties": {
"type": "string" "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.", "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"
} }
}, },
@ -92,30 +92,30 @@
"type": "array" "type": "array"
}, },
"localPref": { "localPref": {
"description": "The BGP LOCAL_PREF attribute which is used by BGP best path algorithm, Path with higher localpref is preferred over one with lower 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", "format": "int32",
"type": "integer" "type": "integer"
}, },
"nodeSelectors": { "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.", "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": { "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.", "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": { "properties": {
"matchExpressions": { "matchExpressions": {
"description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
"items": { "items": {
"description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", "description": "A label selector requirement is a selector that contains values, a key, and an operator that\nrelates the key and values.",
"properties": { "properties": {
"key": { "key": {
"description": "key is the label key that the selector applies to.", "description": "key is the label key that the selector applies to.",
"type": "string" "type": "string"
}, },
"operator": { "operator": {
"description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", "description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.",
"type": "string" "type": "string"
}, },
"values": { "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.", "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": { "items": {
"type": "string" "type": "string"
}, },
@ -135,7 +135,7 @@
"additionalProperties": { "additionalProperties": {
"type": "string" "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.", "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"
} }
}, },
@ -146,7 +146,7 @@
"type": "array" "type": "array"
}, },
"peers": { "peers": {
"description": "Peers limits the bgppeer to advertise the ips of the selected pools to. When empty, the loadbalancer IP is announced to all the BGPPeers configured.", "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": { "items": {
"type": "string" "type": "string"
}, },

View File

@ -2,11 +2,11 @@
"description": "BGPPeer is the Schema for the peers API.", "description": "BGPPeer is the Schema for the peers API.",
"properties": { "properties": {
"apiVersion": { "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", "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" "type": "string"
}, },
"kind": { "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", "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" "type": "string"
}, },
"metadata": { "metadata": {
@ -38,7 +38,7 @@
"type": "integer" "type": "integer"
}, },
"nodeSelectors": { "nodeSelectors": {
"description": "Only connect to this peer on nodes that match one of these selectors.", "description": "Only connect to this peer on nodes that match one of these\nselectors.",
"items": { "items": {
"properties": { "properties": {
"matchExpressions": { "matchExpressions": {

View File

@ -2,11 +2,11 @@
"description": "BGPPeer is the Schema for the peers API.", "description": "BGPPeer is the Schema for the peers API.",
"properties": { "properties": {
"apiVersion": { "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", "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" "type": "string"
}, },
"kind": { "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", "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" "type": "string"
}, },
"metadata": { "metadata": {
@ -19,6 +19,25 @@
"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.", "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" "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": { "ebgpMultiHop": {
"description": "To set if the BGPPeer is multi-hops away. Needed for FRR mode only.", "description": "To set if the BGPPeer is multi-hops away. Needed for FRR mode only.",
"type": "boolean" "type": "boolean"
@ -39,25 +58,25 @@
"type": "integer" "type": "integer"
}, },
"nodeSelectors": { "nodeSelectors": {
"description": "Only connect to this peer on nodes that match one of these selectors.", "description": "Only connect to this peer on nodes that match one of these\nselectors.",
"items": { "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.", "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": { "properties": {
"matchExpressions": { "matchExpressions": {
"description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
"items": { "items": {
"description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", "description": "A label selector requirement is a selector that contains values, a key, and an operator that\nrelates the key and values.",
"properties": { "properties": {
"key": { "key": {
"description": "key is the label key that the selector applies to.", "description": "key is the label key that the selector applies to.",
"type": "string" "type": "string"
}, },
"operator": { "operator": {
"description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", "description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.",
"type": "string" "type": "string"
}, },
"values": { "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.", "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": { "items": {
"type": "string" "type": "string"
}, },
@ -77,7 +96,7 @@
"additionalProperties": { "additionalProperties": {
"type": "string" "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.", "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"
} }
}, },
@ -92,7 +111,7 @@
"type": "string" "type": "string"
}, },
"passwordSecret": { "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\".", "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": { "properties": {
"name": { "name": {
"description": "name is unique within a namespace to reference a secret resource.", "description": "name is unique within a namespace to reference a secret resource.",
@ -134,7 +153,7 @@
"type": "string" "type": "string"
}, },
"vrf": { "vrf": {
"description": "To set if we want to peer with the BGPPeer using an interface belonging to a host vrf", "description": "To set if we want to peer with the BGPPeer using an interface belonging to\na host vrf",
"type": "string" "type": "string"
} }
}, },

View File

@ -1,12 +1,12 @@
{ {
"description": "Community is a collection of aliases for communities. Users can define named aliases to be used in the BGPPeer CRD.", "description": "Community is a collection of aliases for communities.\nUsers can define named aliases to be used in the BGPPeer CRD.",
"properties": { "properties": {
"apiVersion": { "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", "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" "type": "string"
}, },
"kind": { "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", "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" "type": "string"
}, },
"metadata": { "metadata": {
@ -23,7 +23,7 @@
"type": "string" "type": "string"
}, },
"value": { "value": {
"description": "The BGP community value corresponding to the given name. Can be a standard community of the form 1234:1234 or a large community of the form large:1234:1234:1234.", "description": "The BGP community value corresponding to the given name. Can be a standard community of the form 1234:1234\nor a large community of the form large:1234:1234:1234.",
"type": "string" "type": "string"
} }
}, },

View File

@ -1,12 +1,12 @@
{ {
"description": "IPAddressPool represents a pool of IP addresses that can be allocated to LoadBalancer services.", "description": "IPAddressPool represents a pool of IP addresses that can be allocated\nto LoadBalancer services.",
"properties": { "properties": {
"apiVersion": { "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", "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" "type": "string"
}, },
"kind": { "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", "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" "type": "string"
}, },
"metadata": { "metadata": {
@ -16,7 +16,7 @@
"description": "IPAddressPoolSpec defines the desired state of IPAddressPool.", "description": "IPAddressPoolSpec defines the desired state of IPAddressPool.",
"properties": { "properties": {
"addresses": { "addresses": {
"description": "A list of IP address ranges over which MetalLB has authority. You can list multiple ranges in a single pool, they will all share the same settings. Each range can be either a CIDR prefix, or an explicit start-end range of IPs.", "description": "A list of IP address ranges over which MetalLB has authority.\nYou can list multiple ranges in a single pool, they will all share the\nsame settings. Each range can be either a CIDR prefix, or an explicit\nstart-end range of IPs.",
"items": { "items": {
"type": "string" "type": "string"
}, },
@ -24,37 +24,37 @@
}, },
"autoAssign": { "autoAssign": {
"default": true, "default": true,
"description": "AutoAssign flag used to prevent MetallB from automatic allocation for a pool.", "description": "AutoAssign flag used to prevent MetallB from automatic allocation\nfor a pool.",
"type": "boolean" "type": "boolean"
}, },
"avoidBuggyIPs": { "avoidBuggyIPs": {
"default": false, "default": false,
"description": "AvoidBuggyIPs prevents addresses ending with .0 and .255 to be used by a pool.", "description": "AvoidBuggyIPs prevents addresses ending with .0 and .255\nto be used by a pool.",
"type": "boolean" "type": "boolean"
}, },
"serviceAllocation": { "serviceAllocation": {
"description": "AllocateTo makes ip pool allocation to specific namespace and/or service. The controller will use the pool with lowest value of priority in case of multiple matches. A pool with no priority set will be used only if the pools with priority can't be used. If multiple matching IPAddressPools are available it will check for the availability of IPs sorting the matching IPAddressPools by priority, starting from the highest to the lowest. If multiple IPAddressPools have the same priority, choice will be random.", "description": "AllocateTo makes ip pool allocation to specific namespace and/or service.\nThe controller will use the pool with lowest value of priority in case of\nmultiple matches. A pool with no priority set will be used only if the\npools with priority can't be used. If multiple matching IPAddressPools are\navailable it will check for the availability of IPs sorting the matching\nIPAddressPools by priority, starting from the highest to the lowest. If\nmultiple IPAddressPools have the same priority, choice will be random.",
"properties": { "properties": {
"namespaceSelectors": { "namespaceSelectors": {
"description": "NamespaceSelectors list of label selectors to select namespace(s) for ip pool, an alternative to using namespace list.", "description": "NamespaceSelectors list of label selectors to select namespace(s) for ip pool,\nan alternative to using namespace list.",
"items": { "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.", "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": { "properties": {
"matchExpressions": { "matchExpressions": {
"description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
"items": { "items": {
"description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", "description": "A label selector requirement is a selector that contains values, a key, and an operator that\nrelates the key and values.",
"properties": { "properties": {
"key": { "key": {
"description": "key is the label key that the selector applies to.", "description": "key is the label key that the selector applies to.",
"type": "string" "type": "string"
}, },
"operator": { "operator": {
"description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", "description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.",
"type": "string" "type": "string"
}, },
"values": { "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.", "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": { "items": {
"type": "string" "type": "string"
}, },
@ -74,7 +74,7 @@
"additionalProperties": { "additionalProperties": {
"type": "string" "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.", "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"
} }
}, },
@ -96,25 +96,25 @@
"type": "integer" "type": "integer"
}, },
"serviceSelectors": { "serviceSelectors": {
"description": "ServiceSelectors list of label selector to select service(s) for which ip pool can be used for ip allocation.", "description": "ServiceSelectors list of label selector to select service(s) for which ip pool\ncan be used for ip allocation.",
"items": { "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.", "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": { "properties": {
"matchExpressions": { "matchExpressions": {
"description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
"items": { "items": {
"description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", "description": "A label selector requirement is a selector that contains values, a key, and an operator that\nrelates the key and values.",
"properties": { "properties": {
"key": { "key": {
"description": "key is the label key that the selector applies to.", "description": "key is the label key that the selector applies to.",
"type": "string" "type": "string"
}, },
"operator": { "operator": {
"description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", "description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.",
"type": "string" "type": "string"
}, },
"values": { "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.", "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": { "items": {
"type": "string" "type": "string"
}, },
@ -134,7 +134,7 @@
"additionalProperties": { "additionalProperties": {
"type": "string" "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.", "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"
} }
}, },

View File

@ -1,12 +1,12 @@
{ {
"description": "L2Advertisement allows to advertise the LoadBalancer IPs provided by the selected pools via L2.", "description": "L2Advertisement allows to advertise the LoadBalancer IPs provided\nby the selected pools via L2.",
"properties": { "properties": {
"apiVersion": { "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", "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" "type": "string"
}, },
"kind": { "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", "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" "type": "string"
}, },
"metadata": { "metadata": {
@ -16,32 +16,32 @@
"description": "L2AdvertisementSpec defines the desired state of L2Advertisement.", "description": "L2AdvertisementSpec defines the desired state of L2Advertisement.",
"properties": { "properties": {
"interfaces": { "interfaces": {
"description": "A list of interfaces to announce from. The LB IP will be announced only from these interfaces. If the field is not set, we advertise from all the interfaces on the host.", "description": "A list of interfaces to announce from. The LB IP will be announced only from these interfaces.\nIf the field is not set, we advertise from all the interfaces on the host.",
"items": { "items": {
"type": "string" "type": "string"
}, },
"type": "array" "type": "array"
}, },
"ipAddressPoolSelectors": { "ipAddressPoolSelectors": {
"description": "A selector for the IPAddressPools which would get advertised via this advertisement. If no IPAddressPool is selected by this or by the list, the advertisement is applied to all the IPAddressPools.", "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": { "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.", "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": { "properties": {
"matchExpressions": { "matchExpressions": {
"description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
"items": { "items": {
"description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", "description": "A label selector requirement is a selector that contains values, a key, and an operator that\nrelates the key and values.",
"properties": { "properties": {
"key": { "key": {
"description": "key is the label key that the selector applies to.", "description": "key is the label key that the selector applies to.",
"type": "string" "type": "string"
}, },
"operator": { "operator": {
"description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", "description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.",
"type": "string" "type": "string"
}, },
"values": { "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.", "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": { "items": {
"type": "string" "type": "string"
}, },
@ -61,7 +61,7 @@
"additionalProperties": { "additionalProperties": {
"type": "string" "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.", "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"
} }
}, },
@ -81,23 +81,23 @@
"nodeSelectors": { "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.", "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": { "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.", "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": { "properties": {
"matchExpressions": { "matchExpressions": {
"description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.", "description": "matchExpressions is a list of label selector requirements. The requirements are ANDed.",
"items": { "items": {
"description": "A label selector requirement is a selector that contains values, a key, and an operator that relates the key and values.", "description": "A label selector requirement is a selector that contains values, a key, and an operator that\nrelates the key and values.",
"properties": { "properties": {
"key": { "key": {
"description": "key is the label key that the selector applies to.", "description": "key is the label key that the selector applies to.",
"type": "string" "type": "string"
}, },
"operator": { "operator": {
"description": "operator represents a key's relationship to a set of values. Valid operators are In, NotIn, Exists and DoesNotExist.", "description": "operator represents a key's relationship to a set of values.\nValid operators are In, NotIn, Exists and DoesNotExist.",
"type": "string" "type": "string"
}, },
"values": { "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.", "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": { "items": {
"type": "string" "type": "string"
}, },
@ -117,7 +117,7 @@
"additionalProperties": { "additionalProperties": {
"type": "string" "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.", "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"
} }
}, },

View File

@ -0,0 +1,47 @@
{
"description": "ServiceL2Status reveals the actual traffic status of loadbalancer services in layer2 mode.",
"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": "ServiceL2StatusSpec defines the desired state of ServiceL2Status.",
"type": "object"
},
"status": {
"description": "MetalLBServiceL2Status defines the observed state of ServiceL2Status.",
"properties": {
"interfaces": {
"description": "Interfaces indicates the interfaces that receive the directed traffic",
"items": {
"description": "InterfaceInfo defines interface info of layer2 announcement.",
"properties": {
"name": {
"description": "Name the name of network interface card",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"type": "array"
},
"node": {
"description": "Node indicates the node that receives the directed traffic",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
}
},
"type": "object"
}