dotfiles/terranix/main/kubernetes/generated/metallb/default.CustomResourceDefinition.bgpadvertisements.metallb.io.nix
magic_rb 03b54bd52b
Use helm2nix2terraform to create nix files from helm charts
Signed-off-by: magic_rb <magic_rb@redalder.org>
2024-04-07 13:24:08 +02:00

191 lines
10 KiB
Nix

{
apiVersion = "apiextensions.k8s.io/v1";
kind = "CustomResourceDefinition";
metadata = {
annotations = {"controller-gen.kubebuilder.io/version" = "v0.11.1";};
creationTimestamp = null;
name = "bgpadvertisements.metallb.io";
};
spec = {
group = "metallb.io";
names = {
kind = "BGPAdvertisement";
listKind = "BGPAdvertisementList";
plural = "bgpadvertisements";
singular = "bgpadvertisement";
};
scope = "Namespaced";
versions = [
{
additionalPrinterColumns = [
{
jsonPath = ".spec.ipAddressPools";
name = "IPAddressPools";
type = "string";
}
{
jsonPath = ".spec.ipAddressPoolSelectors";
name = "IPAddressPool Selectors";
type = "string";
}
{
jsonPath = ".spec.peers";
name = "Peers";
type = "string";
}
{
jsonPath = ".spec.nodeSelectors";
name = "Node Selectors";
priority = 10;
type = "string";
}
];
name = "v1beta1";
schema = {
openAPIV3Schema = {
description = "BGPAdvertisement allows to advertise the IPs coming from the selected IPAddressPools via BGP, setting the parameters of the BGP Advertisement.";
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 = "BGPAdvertisementSpec defines the desired state of BGPAdvertisement.";
properties = {
aggregationLength = {
default = 32;
description = "The aggregation-length advertisement option lets you roll up 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 roll up 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 form 1234:1234, a large community of the form large:1234:1234:1234 or the name of an alias defined in the Community CRD.";
items = {type = "string";};
type = "array";
};
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.";
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";
};
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";
};
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, Path 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 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";
};
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";
};
type = "array";
};
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.";
items = {type = "string";};
type = "array";
};
};
type = "object";
};
status = {
description = "BGPAdvertisementStatus defines the observed state of BGPAdvertisement.";
type = "object";
};
};
type = "object";
};
};
served = true;
storage = true;
subresources = {status = {};};
}
];
};
}