dotfiles/terranix/main/kubernetes/generated/metallb/default.CustomResourceDefinition.bgppeers.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

338 lines
17 KiB
Nix

{
apiVersion = "apiextensions.k8s.io/v1";
kind = "CustomResourceDefinition";
metadata = {
annotations = {"controller-gen.kubebuilder.io/version" = "v0.11.1";};
creationTimestamp = null;
name = "bgppeers.metallb.io";
};
spec = {
conversion = {
strategy = "Webhook";
webhook = {
clientConfig = {
caBundle = "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQpNSUlGWlRDQ0EwMmdBd0lCQWdJVU5GRW1XcTM3MVpKdGkrMmlSQzk1WmpBV1MxZ3dEUVlKS29aSWh2Y05BUUVMDQpCUUF3UWpFTE1Ba0dBMVVFQmhNQ1dGZ3hGVEFUQmdOVkJBY01ERVJsWm1GMWJIUWdRMmwwZVRFY01Cb0dBMVVFDQpDZ3dUUkdWbVlYVnNkQ0JEYjIxd1lXNTVJRXgwWkRBZUZ3MHlNakEzTVRrd09UTXlNek5hRncweU1qQTRNVGd3DQpPVE15TXpOYU1FSXhDekFKQmdOVkJBWVRBbGhZTVJVd0V3WURWUVFIREF4RVpXWmhkV3gwSUVOcGRIa3hIREFhDQpCZ05WQkFvTUUwUmxabUYxYkhRZ1EyOXRjR0Z1ZVNCTWRHUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDDQpEd0F3Z2dJS0FvSUNBUUNxVFpxMWZRcC9vYkdlenhES0o3OVB3Ny94azJwellualNzMlkzb1ZYSm5sRmM4YjVlDQpma2ZZQnY2bndscW1keW5PL2phWFBaQmRQSS82aFdOUDBkdVhadEtWU0NCUUpyZzEyOGNXb3F0MGNTN3pLb1VpDQpvcU1tQ0QvRXVBeFFNZjhRZDF2c1gvVllkZ0poVTZBRXJLZEpIaXpFOUJtUkNkTDBGMW1OVW55Rk82UnRtWFZUDQpidkxsTDVYeTc2R0FaQVBLOFB4aVlDa0NtbDdxN0VnTWNiOXlLWldCYmlxQ3VkTXE5TGJLNmdKNzF6YkZnSXV4DQo1L1pXK2JraTB2RlplWk9ZODUxb1psckFUNzJvMDI4NHNTWW9uN0pHZVZkY3NoUnh5R1VpSFpSTzdkaXZVTDVTDQpmM2JmSDFYbWY1ZDQzT0NWTWRuUUV2NWVaOG8zeWVLa3ZrbkZQUGVJMU9BbjdGbDlFRVNNR2dhOGFaSG1URSttDQpsLzlMSmdDYjBnQmtPT0M0WnV4bWh2aERKV1EzWnJCS3pMQlNUZXN0NWlLNVlwcXRWVVk2THRyRW9FelVTK1lsDQpwWndXY2VQWHlHeHM5ZURsR3lNVmQraW15Y3NTU1UvVno2Mmx6MnZCS21NTXBkYldDQWhud0RsRTVqU2dyMjRRDQp0eGNXLys2N3d5KzhuQlI3UXdqVTFITndVRjBzeERWdEwrZ1NHVERnSEVZSlhZelYvT05zMy94TkpoVFNPSkxNDQpoeXNVdyttaGdackdhbUdXcHVIVU1DUitvTWJzMTc1UkcrQjJnUFFHVytPTjJnUTRyOXN2b0ZBNHBBQm8xd1dLDQpRYjRhY3pmeVVscElBOVFoSmFsZEY3S3dPSHVlV3gwRUNrNXg0T2tvVDBvWVp0dzFiR0JjRGtaSmF3SURBUUFCDQpvMU13VVRBZEJnTlZIUTRFRmdRVW90UlNIUm9IWTEyRFZ4R0NCdEhpb1g2ZmVFQXdId1lEVlIwakJCZ3dGb0FVDQpvdFJTSFJvSFkxMkRWeEdDQnRIaW9YNmZlRUF3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCDQpBUXNGQUFPQ0FnRUFSbkpsWWRjMTFHd0VxWnh6RDF2R3BDR2pDN2VWTlQ3aVY1d3IybXlybHdPYi9aUWFEa0xYDQpvVStaOVVXT1VlSXJTdzUydDdmQUpvVVAwSm5iYkMveVIrU1lqUGhvUXNiVHduOTc2ZldBWTduM3FMOXhCd1Y0DQphek41OXNjeUp0dlhMeUtOL2N5ak1ReDRLajBIMFg0bWJ6bzVZNUtzWWtYVU0vOEFPdWZMcEd0S1NGVGgrSEFDDQpab1Q5YnZHS25adnNHd0tYZFF0Wnh0akhaUjVqK3U3ZGtQOTJBT051RFNabS8rWVV4b2tBK09JbzdSR3BwSHNXDQo1ZTdNY0FTVXRtb1FORXd6dVFoVkJaRWQ1OGtKYjUrV0VWbGNzanlXNnRTbzErZ25tTWNqR1BsMWgxR2hVbjV4DQpFY0lWRnBIWXM5YWo1NmpBSjk1MVQvZjhMaWxmTlVnanBLQ0c1bnl0SUt3emxhOHNtdGlPdm1UNEpYbXBwSkI2DQo4bmdHRVluVjUrUTYwWFJ2OEhSSGp1VG9CRHVhaERrVDA2R1JGODU1d09FR2V4bkZpMXZYWUxLVllWb1V2MXRKDQo4dVdUR1pwNllDSVJldlBqbzg5ZytWTlJSaVFYUThJd0dybXE5c0RoVTlqTjA0SjdVL1RvRDFpNHE3VnlsRUc5DQorV1VGNkNLaEdBeTJIaEhwVncyTGFoOS9lUzdZMUZ1YURrWmhPZG1laG1BOCtqdHNZamJadnR5Mm1SWlF0UUZzDQpUU1VUUjREbUR2bVVPRVRmeStpRHdzK2RkWXVNTnJGeVVYV2dkMnpBQU4ydVl1UHFGY2pRcFNPODFzVTJTU3R3DQoxVzAyeUtYOGJEYmZFdjBzbUh3UzliQnFlSGo5NEM1Mjg0YXpsdTBmaUdpTm1OUEM4ckJLRmhBPQ0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==";
service = {
name = "webhook-service";
namespace = "metallb-system";
path = "/convert";
};
};
conversionReviewVersions = ["v1beta1" "v1beta2"];
};
};
group = "metallb.io";
names = {
kind = "BGPPeer";
listKind = "BGPPeerList";
plural = "bgppeers";
singular = "bgppeer";
};
scope = "Namespaced";
versions = [
{
additionalPrinterColumns = [
{
jsonPath = ".spec.peerAddress";
name = "Address";
type = "string";
}
{
jsonPath = ".spec.peerASN";
name = "ASN";
type = "string";
}
{
jsonPath = ".spec.bfdProfile";
name = "BFD Profile";
type = "string";
}
{
jsonPath = ".spec.ebgpMultiHop";
name = "Multi Hops";
type = "string";
}
];
name = "v1beta1";
schema = {
openAPIV3Schema = {
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 = {type = "string";};
ebgpMultiHop = {
description = "EBGP peer is multi-hops away";
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 = {
properties = {
matchExpressions = {
items = {
properties = {
key = {type = "string";};
operator = {type = "string";};
values = {
items = {type = "string";};
minItems = 1;
type = "array";
};
};
required = ["key" "operator" "values"];
type = "object";
};
type = "array";
};
matchLabels = {
additionalProperties = {type = "string";};
type = "object";
};
};
type = "object";
};
type = "array";
};
password = {
description = "Authentication password for routers enforcing TCP MD5 authenticated sessions";
type = "string";
};
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 = {
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";
};
};
required = ["myASN" "peerASN" "peerAddress"];
type = "object";
};
status = {
description = "BGPPeerStatus defines the observed state of Peer.";
type = "object";
};
};
type = "object";
};
};
served = true;
storage = false;
subresources = {status = {};};
}
{
additionalPrinterColumns = [
{
jsonPath = ".spec.peerAddress";
name = "Address";
type = "string";
}
{
jsonPath = ".spec.peerASN";
name = "ASN";
type = "string";
}
{
jsonPath = ".spec.bfdProfile";
name = "BFD Profile";
type = "string";
}
{
jsonPath = ".spec.ebgpMultiHop";
name = "Multi Hops";
type = "string";
}
];
name = "v1beta2";
schema = {
openAPIV3Schema = {
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";
};
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";
};
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";
};
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";
};
status = {
description = "BGPPeerStatus defines the observed state of Peer.";
type = "object";
};
};
type = "object";
};
};
served = true;
storage = true;
subresources = {status = {};};
}
];
};
}