| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144 | ---# Source: metallb/templates/service-accounts.yamlapiVersion: v1kind: ServiceAccountmetadata:  name: metallb-controller  namespace: "metallb-system"  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: Helm    app.kubernetes.io/component: controller---# Source: metallb/templates/service-accounts.yamlapiVersion: v1kind: ServiceAccountmetadata:  name: metallb-speaker  namespace: "metallb-system"  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: Helm    app.kubernetes.io/component: speaker---# Source: metallb/templates/webhooks.yamlapiVersion: v1kind: Secretmetadata:  name: webhook-server-cert  namespace: "metallb-system"  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: Helm---# Source: metallb/templates/exclude-l2-config.yamlapiVersion: v1kind: ConfigMapmetadata:  name: metallb-excludel2  namespace: "metallb-system"data:  excludel2.yaml: |    announcedInterfacesToExclude:    - ^docker.*    - ^cbr.*    - ^dummy.*    - ^virbr.*    - ^lxcbr.*    - ^veth.*    - ^lo$    - ^cali.*    - ^tunl.*    - ^flannel.*    - ^kube-ipvs.*    - ^cni.*    - ^nodelocaldns.*---# Source: metallb/templates/speaker.yaml# FRR expects to have these files owned by frr:frr on startup.# Having them in a ConfigMap allows us to modify behaviors: for example enabling more daemons on startup.apiVersion: v1kind: ConfigMapmetadata:  name: metallb-frr-startup  namespace: "metallb-system"  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: Helm    app.kubernetes.io/component: speakerdata:  daemons: |    # This file tells the frr package which daemons to start.    #    # Sample configurations for these daemons can be found in    # /usr/share/doc/frr/examples/.    #    # ATTENTION:    #    # When activating a daemon for the first time, a config file, even if it is    # empty, has to be present *and* be owned by the user and group "frr", else    # the daemon will not be started by /etc/init.d/frr. The permissions should    # be u=rw,g=r,o=.    # When using "vtysh" such a config file is also needed. It should be owned by    # group "frrvty" and set to ug=rw,o= though. Check /etc/pam.d/frr, too.    #    # The watchfrr and zebra daemons are always started.    #    bgpd=yes    ospfd=no    ospf6d=no    ripd=no    ripngd=no    isisd=no    pimd=no    ldpd=no    nhrpd=no    eigrpd=no    babeld=no    sharpd=no    pbrd=no    bfdd=yes    fabricd=no    vrrpd=no    #    # If this option is set the /etc/init.d/frr script automatically loads    # the config via "vtysh -b" when the servers are started.    # Check /etc/pam.d/frr if you intend to use "vtysh"!    #    vtysh_enable=yes    zebra_options="  -A 127.0.0.1 -s 90000000"    bgpd_options="   -A 127.0.0.1 -p 0"    ospfd_options="  -A 127.0.0.1"    ospf6d_options=" -A ::1"    ripd_options="   -A 127.0.0.1"    ripngd_options=" -A ::1"    isisd_options="  -A 127.0.0.1"    pimd_options="   -A 127.0.0.1"    ldpd_options="   -A 127.0.0.1"    nhrpd_options="  -A 127.0.0.1"    eigrpd_options=" -A 127.0.0.1"    babeld_options=" -A 127.0.0.1"    sharpd_options=" -A 127.0.0.1"    pbrd_options="   -A 127.0.0.1"    staticd_options="-A 127.0.0.1"    bfdd_options="   -A 127.0.0.1"    fabricd_options="-A 127.0.0.1"    vrrpd_options="  -A 127.0.0.1"    # configuration profile    #    #frr_profile="traditional"    #frr_profile="datacenter"    #    # This is the maximum number of FD's that will be available.    # Upon startup this is read by the control files and ulimit    # is called. Uncomment and use a reasonable value for your    # setup if you are expecting a large number of peers in    # say BGP.    #MAX_FDS=1024    # The list of daemons to watch is automatically generated by the init script.    #watchfrr_options=""    # for debugging purposes, you can specify a "wrap" command to start instead    # of starting the daemon directly, e.g. to use valgrind on ospfd:    #   ospfd_wrap="/usr/bin/valgrind"    # or you can use "all_wrap" for all daemons, e.g. to use perf record:    #   all_wrap="/usr/bin/perf record --call-graph -"    # the normal daemon command is added to this at the end.  vtysh.conf: |+    service integrated-vtysh-config  frr.conf: |+    ! This file gets overriden the first time the speaker renders a config.    ! So anything configured here is only temporary.    frr version 7.5.1    frr defaults traditional    hostname Router    line vty    log file /etc/frr/frr.log informational---# Source: metallb/charts/crds/templates/crds.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: v0.7.0  creationTimestamp: null  name: addresspools.metallb.iospec:  group: metallb.io  names:    kind: AddressPool    listKind: AddressPoolList    plural: addresspools    singular: addresspool  scope: Namespaced  conversion:    strategy: Webhook    webhook:      conversionReviewVersions: ["v1alpha1", "v1beta1"]      clientConfig:        # this is a valid pem format, otherwise the apiserver will reject the deletion of the crds        # with "unable to parse bytes as PEM block", The controller will patch it with the right content after it starts        caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQpNSUlGWlRDQ0EwMmdBd0lCQWdJVU5GRW1XcTM3MVpKdGkrMmlSQzk1WmpBV1MxZ3dEUVlKS29aSWh2Y05BUUVMDQpCUUF3UWpFTE1Ba0dBMVVFQmhNQ1dGZ3hGVEFUQmdOVkJBY01ERVJsWm1GMWJIUWdRMmwwZVRFY01Cb0dBMVVFDQpDZ3dUUkdWbVlYVnNkQ0JEYjIxd1lXNTVJRXgwWkRBZUZ3MHlNakEzTVRrd09UTXlNek5hRncweU1qQTRNVGd3DQpPVE15TXpOYU1FSXhDekFKQmdOVkJBWVRBbGhZTVJVd0V3WURWUVFIREF4RVpXWmhkV3gwSUVOcGRIa3hIREFhDQpCZ05WQkFvTUUwUmxabUYxYkhRZ1EyOXRjR0Z1ZVNCTWRHUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDDQpEd0F3Z2dJS0FvSUNBUUNxVFpxMWZRcC9vYkdlenhES0o3OVB3Ny94azJwellualNzMlkzb1ZYSm5sRmM4YjVlDQpma2ZZQnY2bndscW1keW5PL2phWFBaQmRQSS82aFdOUDBkdVhadEtWU0NCUUpyZzEyOGNXb3F0MGNTN3pLb1VpDQpvcU1tQ0QvRXVBeFFNZjhRZDF2c1gvVllkZ0poVTZBRXJLZEpIaXpFOUJtUkNkTDBGMW1OVW55Rk82UnRtWFZUDQpidkxsTDVYeTc2R0FaQVBLOFB4aVlDa0NtbDdxN0VnTWNiOXlLWldCYmlxQ3VkTXE5TGJLNmdKNzF6YkZnSXV4DQo1L1pXK2JraTB2RlplWk9ZODUxb1psckFUNzJvMDI4NHNTWW9uN0pHZVZkY3NoUnh5R1VpSFpSTzdkaXZVTDVTDQpmM2JmSDFYbWY1ZDQzT0NWTWRuUUV2NWVaOG8zeWVLa3ZrbkZQUGVJMU9BbjdGbDlFRVNNR2dhOGFaSG1URSttDQpsLzlMSmdDYjBnQmtPT0M0WnV4bWh2aERKV1EzWnJCS3pMQlNUZXN0NWlLNVlwcXRWVVk2THRyRW9FelVTK1lsDQpwWndXY2VQWHlHeHM5ZURsR3lNVmQraW15Y3NTU1UvVno2Mmx6MnZCS21NTXBkYldDQWhud0RsRTVqU2dyMjRRDQp0eGNXLys2N3d5KzhuQlI3UXdqVTFITndVRjBzeERWdEwrZ1NHVERnSEVZSlhZelYvT05zMy94TkpoVFNPSkxNDQpoeXNVdyttaGdackdhbUdXcHVIVU1DUitvTWJzMTc1UkcrQjJnUFFHVytPTjJnUTRyOXN2b0ZBNHBBQm8xd1dLDQpRYjRhY3pmeVVscElBOVFoSmFsZEY3S3dPSHVlV3gwRUNrNXg0T2tvVDBvWVp0dzFiR0JjRGtaSmF3SURBUUFCDQpvMU13VVRBZEJnTlZIUTRFRmdRVW90UlNIUm9IWTEyRFZ4R0NCdEhpb1g2ZmVFQXdId1lEVlIwakJCZ3dGb0FVDQpvdFJTSFJvSFkxMkRWeEdDQnRIaW9YNmZlRUF3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCDQpBUXNGQUFPQ0FnRUFSbkpsWWRjMTFHd0VxWnh6RDF2R3BDR2pDN2VWTlQ3aVY1d3IybXlybHdPYi9aUWFEa0xYDQpvVStaOVVXT1VlSXJTdzUydDdmQUpvVVAwSm5iYkMveVIrU1lqUGhvUXNiVHduOTc2ZldBWTduM3FMOXhCd1Y0DQphek41OXNjeUp0dlhMeUtOL2N5ak1ReDRLajBIMFg0bWJ6bzVZNUtzWWtYVU0vOEFPdWZMcEd0S1NGVGgrSEFDDQpab1Q5YnZHS25adnNHd0tYZFF0Wnh0akhaUjVqK3U3ZGtQOTJBT051RFNabS8rWVV4b2tBK09JbzdSR3BwSHNXDQo1ZTdNY0FTVXRtb1FORXd6dVFoVkJaRWQ1OGtKYjUrV0VWbGNzanlXNnRTbzErZ25tTWNqR1BsMWgxR2hVbjV4DQpFY0lWRnBIWXM5YWo1NmpBSjk1MVQvZjhMaWxmTlVnanBLQ0c1bnl0SUt3emxhOHNtdGlPdm1UNEpYbXBwSkI2DQo4bmdHRVluVjUrUTYwWFJ2OEhSSGp1VG9CRHVhaERrVDA2R1JGODU1d09FR2V4bkZpMXZYWUxLVllWb1V2MXRKDQo4dVdUR1pwNllDSVJldlBqbzg5ZytWTlJSaVFYUThJd0dybXE5c0RoVTlqTjA0SjdVL1RvRDFpNHE3VnlsRUc5DQorV1VGNkNLaEdBeTJIaEhwVncyTGFoOS9lUzdZMUZ1YURrWmhPZG1laG1BOCtqdHNZamJadnR5Mm1SWlF0UUZzDQpUU1VUUjREbUR2bVVPRVRmeStpRHdzK2RkWXVNTnJGeVVYV2dkMnpBQU4ydVl1UHFGY2pRcFNPODFzVTJTU3R3DQoxVzAyeUtYOGJEYmZFdjBzbUh3UzliQnFlSGo5NEM1Mjg0YXpsdTBmaUdpTm1OUEM4ckJLRmhBPQ0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==        service:          namespace: metallb-system          name: metallb-webhook-service          path: /convert  versions:  - deprecated: true    deprecationWarning: metallb.io v1alpha1 AddressPool is deprecated    name: v1alpha1    schema:      openAPIV3Schema:        description: AddressPool is the Schema for the addresspools 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: AddressPoolSpec defines the desired state of AddressPool.            properties:              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.                items:                  type: string                type: array              autoAssign:                default: true                description: AutoAssign flag used to prevent MetallB from automatic                  allocation for a pool.                type: boolean              bgpAdvertisements:                description: When an IP is allocated from this pool, how should it                  be translated into BGP announcements?                items:                  properties:                    aggregationLength:                      default: 32                      description: The aggregation-length advertisement option lets                        you “roll up” the /32s into a larger prefix.                      format: int32                      minimum: 1                      type: integer                    aggregationLengthV6:                      default: 128                      description: Optional, defaults to 128 (i.e. no aggregation)                        if not specified.                      format: int32                      type: integer                    communities:                      description: BGP communities                      items:                        type: string                      type: array                    localPref:                      description: 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                  type: object                type: array              protocol:                description: Protocol can be used to select how the announcement is                  done.                enum:                - layer2                - bgp                type: string            required:            - addresses            - protocol            type: object          status:            description: AddressPoolStatus defines the observed state of AddressPool.            type: object        required:        - spec        type: object    served: true    storage: false    subresources:      status: {}  - deprecated: true    deprecationWarning: metallb.io v1beta1 AddressPool is deprecated, consider using      IPAddressPool    name: v1beta1    schema:      openAPIV3Schema:        description: AddressPool represents a pool of IP addresses that can be allocated          to LoadBalancer services. AddressPool is deprecated and being replaced by          IPAddressPool.        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: AddressPoolSpec defines the desired state of AddressPool.            properties:              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.                items:                  type: string                type: array              autoAssign:                default: true                description: AutoAssign flag used to prevent MetallB from automatic                  allocation for a pool.                type: boolean              bgpAdvertisements:                description: Drives how an IP allocated from this pool should translated                  into BGP announcements.                items:                  properties:                    aggregationLength:                      default: 32                      description: The aggregation-length advertisement option lets                        you “roll up” the /32s into a larger prefix.                      format: int32                      minimum: 1                      type: integer                    aggregationLengthV6:                      default: 128                      description: Optional, defaults to 128 (i.e. no aggregation)                        if not specified.                      format: int32                      type: integer                    communities:                      description: BGP communities to be associated with the given                        advertisement.                      items:                        type: string                      type: array                    localPref:                      description: 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                  type: object                type: array              protocol:                description: Protocol can be used to select how the announcement is                  done.                enum:                - layer2                - bgp                type: string            required:            - addresses            - protocol            type: object          status:            description: AddressPoolStatus defines the observed state of AddressPool.            type: object        required:        - spec        type: object    served: true    storage: true    subresources:      status: {}status:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: metallb/charts/crds/templates/crds.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: v0.7.0  creationTimestamp: null  name: bfdprofiles.metallb.iospec:  group: metallb.io  names:    kind: BFDProfile    listKind: BFDProfileList    plural: bfdprofiles    singular: bfdprofile  scope: Namespaced  versions:  - name: v1beta1    schema:      openAPIV3Schema:        description: BFDProfile represents the settings of the bfd session that can          be optionally associated with a BGP session.        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: BFDProfileSpec defines the desired state of BFDProfile.            properties:              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.                format: int32                maximum: 255                minimum: 2                type: integer              echoInterval:                description: Configures the minimal echo receive transmission interval                  that this system is capable of handling in milliseconds. Defaults                  to 50ms                format: int32                maximum: 60000                minimum: 10                type: integer              echoMode:                description: Enables or disables the echo transmission mode. This                  mode is disabled by default, and not supported on multi hops setups.                type: boolean              minimumTtl:                description: 'For multi hop sessions only: configure the minimum expected                  TTL for an incoming BFD control packet.'                format: int32                maximum: 254                minimum: 1                type: integer              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.'                type: boolean              receiveInterval:                description: The minimum interval that this system is capable of receiving                  control packets in milliseconds. Defaults to 300ms.                format: int32                maximum: 60000                minimum: 10                type: integer              transmitInterval:                description: The minimum transmission interval (less jitter) that                  this system wants to use to send BFD control packets in milliseconds.                  Defaults to 300ms                format: int32                maximum: 60000                minimum: 10                type: integer            type: object          status:            description: BFDProfileStatus defines the observed state of BFDProfile.            type: object        type: object    served: true    storage: true    subresources:      status: {}status:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: metallb/charts/crds/templates/crds.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: v0.7.0  creationTimestamp: null  name: bgpadvertisements.metallb.iospec:  group: metallb.io  names:    kind: BGPAdvertisement    listKind: BGPAdvertisementList    plural: bgpadvertisements    singular: bgpadvertisement  scope: Namespaced  versions:  - 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 community of the form 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                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                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: {}status:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: metallb/charts/crds/templates/crds.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: v0.7.0  creationTimestamp: null  name: bgppeers.metallb.iospec:  group: metallb.io  names:    kind: BGPPeer    listKind: BGPPeerList    plural: bgppeers    singular: bgppeer  scope: Namespaced  conversion:    strategy: Webhook    webhook:      conversionReviewVersions: ["v1beta1", "v1beta2"]      clientConfig:        # this is a valid pem format, otherwise the apiserver will reject the deletion of the crds        # with "unable to parse bytes as PEM block", The controller will patch it with the right content after it starts        caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQpNSUlGWlRDQ0EwMmdBd0lCQWdJVU5GRW1XcTM3MVpKdGkrMmlSQzk1WmpBV1MxZ3dEUVlKS29aSWh2Y05BUUVMDQpCUUF3UWpFTE1Ba0dBMVVFQmhNQ1dGZ3hGVEFUQmdOVkJBY01ERVJsWm1GMWJIUWdRMmwwZVRFY01Cb0dBMVVFDQpDZ3dUUkdWbVlYVnNkQ0JEYjIxd1lXNTVJRXgwWkRBZUZ3MHlNakEzTVRrd09UTXlNek5hRncweU1qQTRNVGd3DQpPVE15TXpOYU1FSXhDekFKQmdOVkJBWVRBbGhZTVJVd0V3WURWUVFIREF4RVpXWmhkV3gwSUVOcGRIa3hIREFhDQpCZ05WQkFvTUUwUmxabUYxYkhRZ1EyOXRjR0Z1ZVNCTWRHUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDDQpEd0F3Z2dJS0FvSUNBUUNxVFpxMWZRcC9vYkdlenhES0o3OVB3Ny94azJwellualNzMlkzb1ZYSm5sRmM4YjVlDQpma2ZZQnY2bndscW1keW5PL2phWFBaQmRQSS82aFdOUDBkdVhadEtWU0NCUUpyZzEyOGNXb3F0MGNTN3pLb1VpDQpvcU1tQ0QvRXVBeFFNZjhRZDF2c1gvVllkZ0poVTZBRXJLZEpIaXpFOUJtUkNkTDBGMW1OVW55Rk82UnRtWFZUDQpidkxsTDVYeTc2R0FaQVBLOFB4aVlDa0NtbDdxN0VnTWNiOXlLWldCYmlxQ3VkTXE5TGJLNmdKNzF6YkZnSXV4DQo1L1pXK2JraTB2RlplWk9ZODUxb1psckFUNzJvMDI4NHNTWW9uN0pHZVZkY3NoUnh5R1VpSFpSTzdkaXZVTDVTDQpmM2JmSDFYbWY1ZDQzT0NWTWRuUUV2NWVaOG8zeWVLa3ZrbkZQUGVJMU9BbjdGbDlFRVNNR2dhOGFaSG1URSttDQpsLzlMSmdDYjBnQmtPT0M0WnV4bWh2aERKV1EzWnJCS3pMQlNUZXN0NWlLNVlwcXRWVVk2THRyRW9FelVTK1lsDQpwWndXY2VQWHlHeHM5ZURsR3lNVmQraW15Y3NTU1UvVno2Mmx6MnZCS21NTXBkYldDQWhud0RsRTVqU2dyMjRRDQp0eGNXLys2N3d5KzhuQlI3UXdqVTFITndVRjBzeERWdEwrZ1NHVERnSEVZSlhZelYvT05zMy94TkpoVFNPSkxNDQpoeXNVdyttaGdackdhbUdXcHVIVU1DUitvTWJzMTc1UkcrQjJnUFFHVytPTjJnUTRyOXN2b0ZBNHBBQm8xd1dLDQpRYjRhY3pmeVVscElBOVFoSmFsZEY3S3dPSHVlV3gwRUNrNXg0T2tvVDBvWVp0dzFiR0JjRGtaSmF3SURBUUFCDQpvMU13VVRBZEJnTlZIUTRFRmdRVW90UlNIUm9IWTEyRFZ4R0NCdEhpb1g2ZmVFQXdId1lEVlIwakJCZ3dGb0FVDQpvdFJTSFJvSFkxMkRWeEdDQnRIaW9YNmZlRUF3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCDQpBUXNGQUFPQ0FnRUFSbkpsWWRjMTFHd0VxWnh6RDF2R3BDR2pDN2VWTlQ3aVY1d3IybXlybHdPYi9aUWFEa0xYDQpvVStaOVVXT1VlSXJTdzUydDdmQUpvVVAwSm5iYkMveVIrU1lqUGhvUXNiVHduOTc2ZldBWTduM3FMOXhCd1Y0DQphek41OXNjeUp0dlhMeUtOL2N5ak1ReDRLajBIMFg0bWJ6bzVZNUtzWWtYVU0vOEFPdWZMcEd0S1NGVGgrSEFDDQpab1Q5YnZHS25adnNHd0tYZFF0Wnh0akhaUjVqK3U3ZGtQOTJBT051RFNabS8rWVV4b2tBK09JbzdSR3BwSHNXDQo1ZTdNY0FTVXRtb1FORXd6dVFoVkJaRWQ1OGtKYjUrV0VWbGNzanlXNnRTbzErZ25tTWNqR1BsMWgxR2hVbjV4DQpFY0lWRnBIWXM5YWo1NmpBSjk1MVQvZjhMaWxmTlVnanBLQ0c1bnl0SUt3emxhOHNtdGlPdm1UNEpYbXBwSkI2DQo4bmdHRVluVjUrUTYwWFJ2OEhSSGp1VG9CRHVhaERrVDA2R1JGODU1d09FR2V4bkZpMXZYWUxLVllWb1V2MXRKDQo4dVdUR1pwNllDSVJldlBqbzg5ZytWTlJSaVFYUThJd0dybXE5c0RoVTlqTjA0SjdVL1RvRDFpNHE3VnlsRUc5DQorV1VGNkNLaEdBeTJIaEhwVncyTGFoOS9lUzdZMUZ1YURrWmhPZG1laG1BOCtqdHNZamJadnR5Mm1SWlF0UUZzDQpUU1VUUjREbUR2bVVPRVRmeStpRHdzK2RkWXVNTnJGeVVYV2dkMnpBQU4ydVl1UHFGY2pRcFNPODFzVTJTU3R3DQoxVzAyeUtYOGJEYmZFdjBzbUh3UzliQnFlSGo5NEM1Mjg0YXpsdTBmaUdpTm1OUEM4ckJLRmhBPQ0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==        service:          namespace: metallb-system          name: metallb-webhook-service          path: /convert  versions:  - 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: {}  - 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                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              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: {}status:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: metallb/charts/crds/templates/crds.yaml---apiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: v0.7.0  creationTimestamp: null  name: ipaddresspools.metallb.iospec:  group: metallb.io  names:    kind: IPAddressPool    listKind: IPAddressPoolList    plural: ipaddresspools    singular: ipaddresspool  scope: Namespaced  versions:  - name: v1beta1    schema:      openAPIV3Schema:        description: IPAddressPool represents a pool of IP addresses that can be allocated          to LoadBalancer services.        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: IPAddressPoolSpec defines the desired state of IPAddressPool.            properties:              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.                items:                  type: string                type: array              autoAssign:                default: true                description: AutoAssign flag used to prevent MetallB from automatic                  allocation for a pool.                type: boolean              avoidBuggyIPs:                default: false                description: AvoidBuggyIPs prevents addresses ending with .0 and .255                  to be used by a pool.                type: boolean              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.                properties:                  namespaceSelectors:                    description: NamespaceSelectors list of label selectors to select                      namespace(s) for ip pool, an alternative to using namespace                      list.                    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                    type: array                  namespaces:                    description: Namespaces list of namespace(s) on which ip pool                      can be attached.                    items:                      type: string                    type: array                  priority:                    description: Priority priority given for ip pool while ip allocation                      on a service.                    type: integer                  serviceSelectors:                    description: ServiceSelectors list of label selector to select                      service(s) for which ip pool can be used for ip allocation.                    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                    type: array                type: object            required:            - addresses            type: object          status:            description: IPAddressPoolStatus defines the observed state of IPAddressPool.            type: object        required:        - spec        type: object    served: true    storage: true    subresources:      status: {}status:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: metallb/charts/crds/templates/crds.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: v0.7.0  creationTimestamp: null  name: l2advertisements.metallb.iospec:  group: metallb.io  names:    kind: L2Advertisement    listKind: L2AdvertisementList    plural: l2advertisements    singular: l2advertisement  scope: Namespaced  versions:  - name: v1beta1    schema:      openAPIV3Schema:        description: L2Advertisement allows to advertise the LoadBalancer IPs provided          by the selected pools via L2.        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: L2AdvertisementSpec defines the desired state of L2Advertisement.            properties:              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.                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                type: array              ipAddressPools:                description: The list of IPAddressPools to advertise via this advertisement,                  selected by name.                items:                  type: string                type: array              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                type: array            type: object          status:            description: L2AdvertisementStatus defines the observed state of L2Advertisement.            type: object        type: object    served: true    storage: true    subresources:      status: {}status:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: metallb/charts/crds/templates/crds.yamlapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  annotations:    controller-gen.kubebuilder.io/version: v0.7.0  creationTimestamp: null  name: communities.metallb.iospec:  group: metallb.io  names:    kind: Community    listKind: CommunityList    plural: communities    singular: community  scope: Namespaced  versions:  - name: v1beta1    schema:      openAPIV3Schema:        description: Community is a collection of aliases for communities. Users can          define named aliases to be used in the BGPPeer CRD.        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: CommunitySpec defines the desired state of Community.            properties:              communities:                items:                  properties:                    name:                      description: The name of the alias for the community.                      type: string                    value:                      description: The BGP community value corresponding to the given                        name.                      type: string                  type: object                type: array            type: object          status:            description: CommunityStatus defines the observed state of Community.            type: object        type: object    served: true    storage: true    subresources:      status: {}status:  acceptedNames:    kind: ""    plural: ""  conditions: []  storedVersions: []---# Source: metallb/templates/rbac.yamlapiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:  name: metallb:controller  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: Helmrules:- apiGroups: [""]  resources: ["services", "namespaces"]  verbs: ["get", "list", "watch"]- apiGroups: [""]  resources: ["nodes"]  verbs: ["list"]- apiGroups: [""]  resources: ["services/status"]  verbs: ["update"]- apiGroups: [""]  resources: ["events"]  verbs: ["create", "patch"]- apiGroups: ["admissionregistration.k8s.io"]  resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]  resourceNames: ["metallb-webhook-configuration"]  verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]- apiGroups: ["admissionregistration.k8s.io"]  resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]  verbs: ["list", "watch"]- apiGroups: ["apiextensions.k8s.io"]  resources: ["customresourcedefinitions"]  resourceNames: ["addresspools.metallb.io","bfdprofiles.metallb.io","bgpadvertisements.metallb.io",    "bgppeers.metallb.io","ipaddresspools.metallb.io","l2advertisements.metallb.io","communities.metallb.io"]  verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]- apiGroups: ["apiextensions.k8s.io"]  resources: ["customresourcedefinitions"]  verbs: ["list", "watch"]---# Source: metallb/templates/rbac.yamlapiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:  name: metallb:speaker  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: Helmrules:- apiGroups: [""]  resources: ["services", "endpoints", "nodes", "namespaces"]  verbs: ["get", "list", "watch"]- apiGroups: ["discovery.k8s.io"]  resources: ["endpointslices"]  verbs: ["get", "list", "watch"]- apiGroups: [""]  resources: ["events"]  verbs: ["create", "patch"]---# Source: metallb/templates/rbac.yamlapiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  name: metallb:controller  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: Helmsubjects:- kind: ServiceAccount  name: metallb-controller  namespace: metallb-systemroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: metallb:controller---# Source: metallb/templates/rbac.yamlapiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  name: metallb:speaker  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: Helmsubjects:- kind: ServiceAccount  name: metallb-speaker  namespace: metallb-systemroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: metallb:speaker---# Source: metallb/templates/rbac.yamlapiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata:  name: metallb-pod-lister  namespace: "metallb-system"  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: Helmrules:- apiGroups: [""]  resources: ["pods"]  verbs: ["list"]- apiGroups: [""]  resources: ["secrets"]  verbs: ["get", "list", "watch"]- apiGroups: [""]  resources: ["configmaps"]  verbs: ["get", "list", "watch"]- apiGroups: ["metallb.io"]  resources: ["addresspools"]  verbs: ["get", "list", "watch"]- apiGroups: ["metallb.io"]  resources: ["bfdprofiles"]  verbs: ["get", "list", "watch"]- apiGroups: ["metallb.io"]  resources: ["bgppeers"]  verbs: ["get", "list", "watch"]- apiGroups: ["metallb.io"]  resources: ["l2advertisements"]  verbs: ["get", "list", "watch"]- apiGroups: ["metallb.io"]  resources: ["bgpadvertisements"]  verbs: ["get", "list", "watch"]- apiGroups: ["metallb.io"]  resources: ["ipaddresspools"]  verbs: ["get", "list", "watch"]- apiGroups: ["metallb.io"]  resources: ["communities"]  verbs: ["get", "list", "watch"]---# Source: metallb/templates/rbac.yamlapiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata:  name: metallb-controller  namespace: "metallb-system"  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: Helmrules:- apiGroups: [""]  resources: ["secrets"]  verbs: ["create", "get", "list", "watch"]- apiGroups: [""]  resources: ["secrets"]  resourceNames: ["metallb-memberlist"]  verbs: ["list"]- apiGroups: ["apps"]  resources: ["deployments"]  resourceNames: ["metallb-controller"]  verbs: ["get"]- apiGroups: [""]  resources: ["secrets"]  verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]- apiGroups: ["metallb.io"]  resources: ["addresspools"]  verbs: ["get", "list", "watch"]- apiGroups: ["metallb.io"]  resources: ["ipaddresspools"]  verbs: ["get", "list", "watch"]- apiGroups: ["metallb.io"]  resources: ["bgppeers"]  verbs: ["get", "list"]- apiGroups: ["metallb.io"]  resources: ["bgpadvertisements"]  verbs: ["get", "list"]- apiGroups: ["metallb.io"]  resources: ["l2advertisements"]  verbs: ["get", "list"]- apiGroups: ["metallb.io"]  resources: ["communities"]  verbs: ["get", "list","watch"]- apiGroups: ["metallb.io"]  resources: ["bfdprofiles"]  verbs: ["get", "list","watch"]---# Source: metallb/templates/rbac.yamlapiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata:  name: metallb-pod-lister  namespace: "metallb-system"  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: HelmroleRef:  apiGroup: rbac.authorization.k8s.io  kind: Role  name: metallb-pod-listersubjects:- kind: ServiceAccount  name: metallb-speaker---# Source: metallb/templates/rbac.yamlapiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata:  name: metallb-controller  namespace: "metallb-system"  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: HelmroleRef:  apiGroup: rbac.authorization.k8s.io  kind: Role  name: metallb-controllersubjects:- kind: ServiceAccount  name: metallb-controller---# Source: metallb/templates/webhooks.yamlapiVersion: v1kind: Servicemetadata:  name: metallb-webhook-service  namespace: "metallb-system"  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: Helmspec:  ports:  - port: 443    targetPort: 9443  selector:    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/component: controller---# Source: metallb/templates/speaker.yamlapiVersion: apps/v1kind: DaemonSetmetadata:  name: metallb-speaker  namespace: "metallb-system"  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: Helm    app.kubernetes.io/component: speakerspec:  updateStrategy:    type: RollingUpdate  selector:    matchLabels:      app.kubernetes.io/name: metallb      app.kubernetes.io/instance: metallb      app.kubernetes.io/component: speaker  template:    metadata:      labels:        app.kubernetes.io/name: metallb        app.kubernetes.io/instance: metallb        app.kubernetes.io/component: speaker    spec:      serviceAccountName: metallb-speaker      terminationGracePeriodSeconds: 0      hostNetwork: true      volumes:        - name: memberlist          secret:            secretName: metallb-memberlist            defaultMode: 420        - name: metallb-excludel2          configMap:            defaultMode: 256            name: metallb-excludel2        - name: frr-sockets          emptyDir: {}        - name: frr-startup          configMap:            name: metallb-frr-startup        - name: frr-conf          emptyDir: {}        - name: reloader          emptyDir: {}        - name: metrics          emptyDir: {}      initContainers:        # Copies the initial config files with the right permissions to the shared volume.        - name: cp-frr-files          image: quay.io/frrouting/frr:8.5.2          securityContext:            runAsUser: 100            runAsGroup: 101          command: ["/bin/sh", "-c", "cp -rLf /tmp/frr/* /etc/frr/"]          volumeMounts:            - name: frr-startup              mountPath: /tmp/frr            - name: frr-conf              mountPath: /etc/frr        # Copies the reloader to the shared volume between the speaker and reloader.        - name: cp-reloader          image: quay.io/metallb/speaker:v0.13.11          command: ["/bin/sh", "-c", "cp -f /frr-reloader.sh /etc/frr_reloader/"]          volumeMounts:            - name: reloader              mountPath: /etc/frr_reloader        # Copies the metrics exporter        - name: cp-metrics          image: quay.io/metallb/speaker:v0.13.11          command: ["/bin/sh", "-c", "cp -f /frr-metrics /etc/frr_metrics/"]          volumeMounts:            - name: metrics              mountPath: /etc/frr_metrics      shareProcessNamespace: true      containers:      - name: speaker        image: quay.io/metallb/speaker:v0.13.11        args:        - --port=7472        - --log-level=info        env:        - name: METALLB_NODE_NAME          valueFrom:            fieldRef:              fieldPath: spec.nodeName        - name: METALLB_HOST          valueFrom:            fieldRef:              fieldPath: status.hostIP        - name: METALLB_ML_BIND_ADDR          valueFrom:            fieldRef:              fieldPath: status.podIP        - name: METALLB_ML_LABELS          value: "app.kubernetes.io/name=metallb,app.kubernetes.io/component=speaker"        - name: METALLB_ML_BIND_PORT          value: "7946"        - name: METALLB_ML_SECRET_KEY_PATH          value: "/etc/ml_secret_key"        - name: FRR_CONFIG_FILE          value: /etc/frr_reloader/frr.conf        - name: FRR_RELOADER_PID_FILE          value: /etc/frr_reloader/reloader.pid        - name: METALLB_BGP_TYPE          value: frr        ports:        - name: monitoring          containerPort: 7472        - name: memberlist-tcp          containerPort: 7946          protocol: TCP        - name: memberlist-udp          containerPort: 7946          protocol: UDP        livenessProbe:          httpGet:            path: /metrics            port: monitoring          initialDelaySeconds: 10          periodSeconds: 10          timeoutSeconds: 1          successThreshold: 1          failureThreshold: 3        readinessProbe:          httpGet:            path: /metrics            port: monitoring          initialDelaySeconds: 10          periodSeconds: 10          timeoutSeconds: 1          successThreshold: 1          failureThreshold: 3        securityContext:          allowPrivilegeEscalation: false          readOnlyRootFilesystem: true          capabilities:            drop:            - ALL            add:            - NET_RAW        volumeMounts:          - name: memberlist             mountPath: /etc/ml_secret_key          - name: reloader            mountPath: /etc/frr_reloader          - name: metallb-excludel2            mountPath: /etc/metallb      - name: frr        securityContext:          capabilities:            add:            - NET_ADMIN            - NET_RAW            - SYS_ADMIN            - NET_BIND_SERVICE        image: quay.io/frrouting/frr:8.5.2        env:          - name: TINI_SUBREAPER            value: "true"        volumeMounts:          - name: frr-sockets            mountPath: /var/run/frr          - name: frr-conf            mountPath: /etc/frr        # The command is FRR's default entrypoint & waiting for the log file to appear and tailing it.        # If the log file isn't created in 60 seconds the tail fails and the container is restarted.        # This workaround is needed to have the frr logs as part of kubectl logs -c frr < speaker_pod_name >.        command:          - /bin/sh          - -c          - |            /sbin/tini -- /usr/lib/frr/docker-start &            attempts=0            until [[ -f /etc/frr/frr.log || $attempts -eq 60 ]]; do              sleep 1              attempts=$(( $attempts + 1 ))            done            tail -f /etc/frr/frr.log        livenessProbe:          httpGet:            path: /livez            port: 7473          initialDelaySeconds: 10          periodSeconds: 10          timeoutSeconds: 1          successThreshold: 1          failureThreshold: 3        startupProbe:          httpGet:            path: /livez            port: 7473          failureThreshold: 30          periodSeconds: 5      - name: reloader        image: quay.io/frrouting/frr:8.5.2        command: ["/etc/frr_reloader/frr-reloader.sh"]        volumeMounts:          - name: frr-sockets            mountPath: /var/run/frr          - name: frr-conf            mountPath: /etc/frr          - name: reloader            mountPath: /etc/frr_reloader      - name: frr-metrics        image: quay.io/frrouting/frr:8.5.2        command: ["/etc/frr_metrics/frr-metrics"]        args:          - --metrics-port=7473        ports:          - containerPort: 7473            name: monitoring        volumeMounts:          - name: frr-sockets            mountPath: /var/run/frr          - name: frr-conf            mountPath: /etc/frr          - name: metrics            mountPath: /etc/frr_metrics      nodeSelector:        "kubernetes.io/os": linux      tolerations:      - key: node-role.kubernetes.io/master        effect: NoSchedule        operator: Exists      - key: node-role.kubernetes.io/control-plane        effect: NoSchedule        operator: Exists---# Source: metallb/templates/controller.yamlapiVersion: apps/v1kind: Deploymentmetadata:  name: metallb-controller  namespace: "metallb-system"  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: Helm    app.kubernetes.io/component: controllerspec:  strategy:    type: RollingUpdate  selector:    matchLabels:      app.kubernetes.io/name: metallb      app.kubernetes.io/instance: metallb      app.kubernetes.io/component: controller  template:    metadata:      labels:        app.kubernetes.io/name: metallb        app.kubernetes.io/instance: metallb        app.kubernetes.io/component: controller    spec:      serviceAccountName: metallb-controller      terminationGracePeriodSeconds: 0      securityContext:        fsGroup: 65534        runAsNonRoot: true        runAsUser: 65534      containers:      - name: controller        image: quay.io/metallb/controller:v0.13.11        args:        - --port=7472        - --log-level=info        - --cert-service-name=metallb-webhook-service        env:        - name: METALLB_ML_SECRET_NAME          value: metallb-memberlist        - name: METALLB_DEPLOYMENT          value: metallb-controller        - name: METALLB_BGP_TYPE          value: frr        ports:        - name: monitoring          containerPort: 7472        - containerPort: 9443          name: webhook-server          protocol: TCP        volumeMounts:        - mountPath: /tmp/k8s-webhook-server/serving-certs          name: cert          readOnly: true        livenessProbe:          httpGet:            path: /metrics            port: monitoring          initialDelaySeconds: 10          periodSeconds: 10          timeoutSeconds: 1          successThreshold: 1          failureThreshold: 3        readinessProbe:          httpGet:            path: /metrics            port: monitoring          initialDelaySeconds: 10          periodSeconds: 10          timeoutSeconds: 1          successThreshold: 1          failureThreshold: 3        securityContext:          allowPrivilegeEscalation: false          readOnlyRootFilesystem: true          capabilities:            drop:            - ALL      nodeSelector:        "kubernetes.io/os": linux      volumes:      - name: cert        secret:          defaultMode: 420          secretName: webhook-server-cert---# Source: metallb/templates/webhooks.yamlapiVersion: admissionregistration.k8s.io/v1kind: ValidatingWebhookConfigurationmetadata:  name: metallb-webhook-configuration  labels:    helm.sh/chart: metallb-0.13.11    app.kubernetes.io/name: metallb    app.kubernetes.io/instance: metallb    app.kubernetes.io/version: "v0.13.11"    app.kubernetes.io/managed-by: Helmwebhooks:- admissionReviewVersions:  - v1  clientConfig:    service:      name: metallb-webhook-service      namespace: metallb-system      path: /validate-metallb-io-v1beta1-addresspool  failurePolicy: Fail  name: addresspoolvalidationwebhook.metallb.io  rules:  - apiGroups:    - metallb.io    apiVersions:    - v1beta1    operations:    - CREATE    - UPDATE    resources:    - addresspools  sideEffects: None- admissionReviewVersions:  - v1  clientConfig:    service:      name: metallb-webhook-service      namespace: metallb-system      path: /validate-metallb-io-v1beta2-bgppeer  failurePolicy: Fail  name: bgppeervalidationwebhook.metallb.io  rules:  - apiGroups:    - metallb.io    apiVersions:    - v1beta2    operations:    - CREATE    - UPDATE    resources:    - bgppeers  sideEffects: None- admissionReviewVersions:  - v1  clientConfig:    service:      name: metallb-webhook-service      namespace: metallb-system      path: /validate-metallb-io-v1beta1-ipaddresspool  failurePolicy: Fail  name: ipaddresspoolvalidationwebhook.metallb.io  rules:  - apiGroups:    - metallb.io    apiVersions:    - v1beta1    operations:    - CREATE    - UPDATE    resources:    - ipaddresspools  sideEffects: None- admissionReviewVersions:  - v1  clientConfig:    service:      name: metallb-webhook-service      namespace: metallb-system      path: /validate-metallb-io-v1beta1-bgpadvertisement  failurePolicy: Fail  name: bgpadvertisementvalidationwebhook.metallb.io  rules:  - apiGroups:    - metallb.io    apiVersions:    - v1beta1    operations:    - CREATE    - UPDATE    resources:    - bgpadvertisements  sideEffects: None- admissionReviewVersions:  - v1  clientConfig:    service:      name: metallb-webhook-service      namespace: metallb-system      path: /validate-metallb-io-v1beta1-community  failurePolicy: Fail  name: communityvalidationwebhook.metallb.io  rules:  - apiGroups:    - metallb.io    apiVersions:    - v1beta1    operations:    - CREATE    - UPDATE    resources:    - communities  sideEffects: None- admissionReviewVersions:  - v1  clientConfig:    service:      name: metallb-webhook-service      namespace: metallb-system      path: /validate-metallb-io-v1beta1-bfdprofile  failurePolicy: Fail  name: bfdprofilevalidationwebhook.metallb.io  rules:  - apiGroups:    - metallb.io    apiVersions:    - v1beta1    operations:    - CREATE    - DELETE    resources:    - bfdprofiles  sideEffects: None- admissionReviewVersions:  - v1  clientConfig:    service:      name: metallb-webhook-service      namespace: metallb-system      path: /validate-metallb-io-v1beta1-l2advertisement  failurePolicy: Fail  name: l2advertisementvalidationwebhook.metallb.io  rules:  - apiGroups:    - metallb.io    apiVersions:    - v1beta1    operations:    - CREATE    - UPDATE    resources:    - l2advertisements  sideEffects: None
 |