metallb.yaml 84 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144
  1. ---
  2. # Source: metallb/templates/service-accounts.yaml
  3. apiVersion: v1
  4. kind: ServiceAccount
  5. metadata:
  6. name: metallb-controller
  7. namespace: "metallb-system"
  8. labels:
  9. helm.sh/chart: metallb-0.13.11
  10. app.kubernetes.io/name: metallb
  11. app.kubernetes.io/instance: metallb
  12. app.kubernetes.io/version: "v0.13.11"
  13. app.kubernetes.io/managed-by: Helm
  14. app.kubernetes.io/component: controller
  15. ---
  16. # Source: metallb/templates/service-accounts.yaml
  17. apiVersion: v1
  18. kind: ServiceAccount
  19. metadata:
  20. name: metallb-speaker
  21. namespace: "metallb-system"
  22. labels:
  23. helm.sh/chart: metallb-0.13.11
  24. app.kubernetes.io/name: metallb
  25. app.kubernetes.io/instance: metallb
  26. app.kubernetes.io/version: "v0.13.11"
  27. app.kubernetes.io/managed-by: Helm
  28. app.kubernetes.io/component: speaker
  29. ---
  30. # Source: metallb/templates/webhooks.yaml
  31. apiVersion: v1
  32. kind: Secret
  33. metadata:
  34. name: webhook-server-cert
  35. namespace: "metallb-system"
  36. labels:
  37. helm.sh/chart: metallb-0.13.11
  38. app.kubernetes.io/name: metallb
  39. app.kubernetes.io/instance: metallb
  40. app.kubernetes.io/version: "v0.13.11"
  41. app.kubernetes.io/managed-by: Helm
  42. ---
  43. # Source: metallb/templates/exclude-l2-config.yaml
  44. apiVersion: v1
  45. kind: ConfigMap
  46. metadata:
  47. name: metallb-excludel2
  48. namespace: "metallb-system"
  49. data:
  50. excludel2.yaml: |
  51. announcedInterfacesToExclude:
  52. - ^docker.*
  53. - ^cbr.*
  54. - ^dummy.*
  55. - ^virbr.*
  56. - ^lxcbr.*
  57. - ^veth.*
  58. - ^lo$
  59. - ^cali.*
  60. - ^tunl.*
  61. - ^flannel.*
  62. - ^kube-ipvs.*
  63. - ^cni.*
  64. - ^nodelocaldns.*
  65. ---
  66. # Source: metallb/templates/speaker.yaml
  67. # FRR expects to have these files owned by frr:frr on startup.
  68. # Having them in a ConfigMap allows us to modify behaviors: for example enabling more daemons on startup.
  69. apiVersion: v1
  70. kind: ConfigMap
  71. metadata:
  72. name: metallb-frr-startup
  73. namespace: "metallb-system"
  74. labels:
  75. helm.sh/chart: metallb-0.13.11
  76. app.kubernetes.io/name: metallb
  77. app.kubernetes.io/instance: metallb
  78. app.kubernetes.io/version: "v0.13.11"
  79. app.kubernetes.io/managed-by: Helm
  80. app.kubernetes.io/component: speaker
  81. data:
  82. daemons: |
  83. # This file tells the frr package which daemons to start.
  84. #
  85. # Sample configurations for these daemons can be found in
  86. # /usr/share/doc/frr/examples/.
  87. #
  88. # ATTENTION:
  89. #
  90. # When activating a daemon for the first time, a config file, even if it is
  91. # empty, has to be present *and* be owned by the user and group "frr", else
  92. # the daemon will not be started by /etc/init.d/frr. The permissions should
  93. # be u=rw,g=r,o=.
  94. # When using "vtysh" such a config file is also needed. It should be owned by
  95. # group "frrvty" and set to ug=rw,o= though. Check /etc/pam.d/frr, too.
  96. #
  97. # The watchfrr and zebra daemons are always started.
  98. #
  99. bgpd=yes
  100. ospfd=no
  101. ospf6d=no
  102. ripd=no
  103. ripngd=no
  104. isisd=no
  105. pimd=no
  106. ldpd=no
  107. nhrpd=no
  108. eigrpd=no
  109. babeld=no
  110. sharpd=no
  111. pbrd=no
  112. bfdd=yes
  113. fabricd=no
  114. vrrpd=no
  115. #
  116. # If this option is set the /etc/init.d/frr script automatically loads
  117. # the config via "vtysh -b" when the servers are started.
  118. # Check /etc/pam.d/frr if you intend to use "vtysh"!
  119. #
  120. vtysh_enable=yes
  121. zebra_options=" -A 127.0.0.1 -s 90000000"
  122. bgpd_options=" -A 127.0.0.1 -p 0"
  123. ospfd_options=" -A 127.0.0.1"
  124. ospf6d_options=" -A ::1"
  125. ripd_options=" -A 127.0.0.1"
  126. ripngd_options=" -A ::1"
  127. isisd_options=" -A 127.0.0.1"
  128. pimd_options=" -A 127.0.0.1"
  129. ldpd_options=" -A 127.0.0.1"
  130. nhrpd_options=" -A 127.0.0.1"
  131. eigrpd_options=" -A 127.0.0.1"
  132. babeld_options=" -A 127.0.0.1"
  133. sharpd_options=" -A 127.0.0.1"
  134. pbrd_options=" -A 127.0.0.1"
  135. staticd_options="-A 127.0.0.1"
  136. bfdd_options=" -A 127.0.0.1"
  137. fabricd_options="-A 127.0.0.1"
  138. vrrpd_options=" -A 127.0.0.1"
  139. # configuration profile
  140. #
  141. #frr_profile="traditional"
  142. #frr_profile="datacenter"
  143. #
  144. # This is the maximum number of FD's that will be available.
  145. # Upon startup this is read by the control files and ulimit
  146. # is called. Uncomment and use a reasonable value for your
  147. # setup if you are expecting a large number of peers in
  148. # say BGP.
  149. #MAX_FDS=1024
  150. # The list of daemons to watch is automatically generated by the init script.
  151. #watchfrr_options=""
  152. # for debugging purposes, you can specify a "wrap" command to start instead
  153. # of starting the daemon directly, e.g. to use valgrind on ospfd:
  154. # ospfd_wrap="/usr/bin/valgrind"
  155. # or you can use "all_wrap" for all daemons, e.g. to use perf record:
  156. # all_wrap="/usr/bin/perf record --call-graph -"
  157. # the normal daemon command is added to this at the end.
  158. vtysh.conf: |+
  159. service integrated-vtysh-config
  160. frr.conf: |+
  161. ! This file gets overriden the first time the speaker renders a config.
  162. ! So anything configured here is only temporary.
  163. frr version 7.5.1
  164. frr defaults traditional
  165. hostname Router
  166. line vty
  167. log file /etc/frr/frr.log informational
  168. ---
  169. # Source: metallb/charts/crds/templates/crds.yaml
  170. apiVersion: apiextensions.k8s.io/v1
  171. kind: CustomResourceDefinition
  172. metadata:
  173. annotations:
  174. controller-gen.kubebuilder.io/version: v0.7.0
  175. creationTimestamp: null
  176. name: addresspools.metallb.io
  177. spec:
  178. group: metallb.io
  179. names:
  180. kind: AddressPool
  181. listKind: AddressPoolList
  182. plural: addresspools
  183. singular: addresspool
  184. scope: Namespaced
  185. conversion:
  186. strategy: Webhook
  187. webhook:
  188. conversionReviewVersions: ["v1alpha1", "v1beta1"]
  189. clientConfig:
  190. # this is a valid pem format, otherwise the apiserver will reject the deletion of the crds
  191. # with "unable to parse bytes as PEM block", The controller will patch it with the right content after it starts
  192. caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQpNSUlGWlRDQ0EwMmdBd0lCQWdJVU5GRW1XcTM3MVpKdGkrMmlSQzk1WmpBV1MxZ3dEUVlKS29aSWh2Y05BUUVMDQpCUUF3UWpFTE1Ba0dBMVVFQmhNQ1dGZ3hGVEFUQmdOVkJBY01ERVJsWm1GMWJIUWdRMmwwZVRFY01Cb0dBMVVFDQpDZ3dUUkdWbVlYVnNkQ0JEYjIxd1lXNTVJRXgwWkRBZUZ3MHlNakEzTVRrd09UTXlNek5hRncweU1qQTRNVGd3DQpPVE15TXpOYU1FSXhDekFKQmdOVkJBWVRBbGhZTVJVd0V3WURWUVFIREF4RVpXWmhkV3gwSUVOcGRIa3hIREFhDQpCZ05WQkFvTUUwUmxabUYxYkhRZ1EyOXRjR0Z1ZVNCTWRHUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDDQpEd0F3Z2dJS0FvSUNBUUNxVFpxMWZRcC9vYkdlenhES0o3OVB3Ny94azJwellualNzMlkzb1ZYSm5sRmM4YjVlDQpma2ZZQnY2bndscW1keW5PL2phWFBaQmRQSS82aFdOUDBkdVhadEtWU0NCUUpyZzEyOGNXb3F0MGNTN3pLb1VpDQpvcU1tQ0QvRXVBeFFNZjhRZDF2c1gvVllkZ0poVTZBRXJLZEpIaXpFOUJtUkNkTDBGMW1OVW55Rk82UnRtWFZUDQpidkxsTDVYeTc2R0FaQVBLOFB4aVlDa0NtbDdxN0VnTWNiOXlLWldCYmlxQ3VkTXE5TGJLNmdKNzF6YkZnSXV4DQo1L1pXK2JraTB2RlplWk9ZODUxb1psckFUNzJvMDI4NHNTWW9uN0pHZVZkY3NoUnh5R1VpSFpSTzdkaXZVTDVTDQpmM2JmSDFYbWY1ZDQzT0NWTWRuUUV2NWVaOG8zeWVLa3ZrbkZQUGVJMU9BbjdGbDlFRVNNR2dhOGFaSG1URSttDQpsLzlMSmdDYjBnQmtPT0M0WnV4bWh2aERKV1EzWnJCS3pMQlNUZXN0NWlLNVlwcXRWVVk2THRyRW9FelVTK1lsDQpwWndXY2VQWHlHeHM5ZURsR3lNVmQraW15Y3NTU1UvVno2Mmx6MnZCS21NTXBkYldDQWhud0RsRTVqU2dyMjRRDQp0eGNXLys2N3d5KzhuQlI3UXdqVTFITndVRjBzeERWdEwrZ1NHVERnSEVZSlhZelYvT05zMy94TkpoVFNPSkxNDQpoeXNVdyttaGdackdhbUdXcHVIVU1DUitvTWJzMTc1UkcrQjJnUFFHVytPTjJnUTRyOXN2b0ZBNHBBQm8xd1dLDQpRYjRhY3pmeVVscElBOVFoSmFsZEY3S3dPSHVlV3gwRUNrNXg0T2tvVDBvWVp0dzFiR0JjRGtaSmF3SURBUUFCDQpvMU13VVRBZEJnTlZIUTRFRmdRVW90UlNIUm9IWTEyRFZ4R0NCdEhpb1g2ZmVFQXdId1lEVlIwakJCZ3dGb0FVDQpvdFJTSFJvSFkxMkRWeEdDQnRIaW9YNmZlRUF3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCDQpBUXNGQUFPQ0FnRUFSbkpsWWRjMTFHd0VxWnh6RDF2R3BDR2pDN2VWTlQ3aVY1d3IybXlybHdPYi9aUWFEa0xYDQpvVStaOVVXT1VlSXJTdzUydDdmQUpvVVAwSm5iYkMveVIrU1lqUGhvUXNiVHduOTc2ZldBWTduM3FMOXhCd1Y0DQphek41OXNjeUp0dlhMeUtOL2N5ak1ReDRLajBIMFg0bWJ6bzVZNUtzWWtYVU0vOEFPdWZMcEd0S1NGVGgrSEFDDQpab1Q5YnZHS25adnNHd0tYZFF0Wnh0akhaUjVqK3U3ZGtQOTJBT051RFNabS8rWVV4b2tBK09JbzdSR3BwSHNXDQo1ZTdNY0FTVXRtb1FORXd6dVFoVkJaRWQ1OGtKYjUrV0VWbGNzanlXNnRTbzErZ25tTWNqR1BsMWgxR2hVbjV4DQpFY0lWRnBIWXM5YWo1NmpBSjk1MVQvZjhMaWxmTlVnanBLQ0c1bnl0SUt3emxhOHNtdGlPdm1UNEpYbXBwSkI2DQo4bmdHRVluVjUrUTYwWFJ2OEhSSGp1VG9CRHVhaERrVDA2R1JGODU1d09FR2V4bkZpMXZYWUxLVllWb1V2MXRKDQo4dVdUR1pwNllDSVJldlBqbzg5ZytWTlJSaVFYUThJd0dybXE5c0RoVTlqTjA0SjdVL1RvRDFpNHE3VnlsRUc5DQorV1VGNkNLaEdBeTJIaEhwVncyTGFoOS9lUzdZMUZ1YURrWmhPZG1laG1BOCtqdHNZamJadnR5Mm1SWlF0UUZzDQpUU1VUUjREbUR2bVVPRVRmeStpRHdzK2RkWXVNTnJGeVVYV2dkMnpBQU4ydVl1UHFGY2pRcFNPODFzVTJTU3R3DQoxVzAyeUtYOGJEYmZFdjBzbUh3UzliQnFlSGo5NEM1Mjg0YXpsdTBmaUdpTm1OUEM4ckJLRmhBPQ0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==
  193. service:
  194. namespace: metallb-system
  195. name: metallb-webhook-service
  196. path: /convert
  197. versions:
  198. - deprecated: true
  199. deprecationWarning: metallb.io v1alpha1 AddressPool is deprecated
  200. name: v1alpha1
  201. schema:
  202. openAPIV3Schema:
  203. description: AddressPool is the Schema for the addresspools API.
  204. properties:
  205. apiVersion:
  206. description: 'APIVersion defines the versioned schema of this representation
  207. of an object. Servers should convert recognized schemas to the latest
  208. internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  209. type: string
  210. kind:
  211. description: 'Kind is a string value representing the REST resource this
  212. object represents. Servers may infer this from the endpoint the client
  213. submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  214. type: string
  215. metadata:
  216. type: object
  217. spec:
  218. description: AddressPoolSpec defines the desired state of AddressPool.
  219. properties:
  220. addresses:
  221. description: A list of IP address ranges over which MetalLB has authority.
  222. You can list multiple ranges in a single pool, they will all share
  223. the same settings. Each range can be either a CIDR prefix, or an
  224. explicit start-end range of IPs.
  225. items:
  226. type: string
  227. type: array
  228. autoAssign:
  229. default: true
  230. description: AutoAssign flag used to prevent MetallB from automatic
  231. allocation for a pool.
  232. type: boolean
  233. bgpAdvertisements:
  234. description: When an IP is allocated from this pool, how should it
  235. be translated into BGP announcements?
  236. items:
  237. properties:
  238. aggregationLength:
  239. default: 32
  240. description: The aggregation-length advertisement option lets
  241. you “roll up” the /32s into a larger prefix.
  242. format: int32
  243. minimum: 1
  244. type: integer
  245. aggregationLengthV6:
  246. default: 128
  247. description: Optional, defaults to 128 (i.e. no aggregation)
  248. if not specified.
  249. format: int32
  250. type: integer
  251. communities:
  252. description: BGP communities
  253. items:
  254. type: string
  255. type: array
  256. localPref:
  257. description: BGP LOCAL_PREF attribute which is used by BGP best
  258. path algorithm, Path with higher localpref is preferred over
  259. one with lower localpref.
  260. format: int32
  261. type: integer
  262. type: object
  263. type: array
  264. protocol:
  265. description: Protocol can be used to select how the announcement is
  266. done.
  267. enum:
  268. - layer2
  269. - bgp
  270. type: string
  271. required:
  272. - addresses
  273. - protocol
  274. type: object
  275. status:
  276. description: AddressPoolStatus defines the observed state of AddressPool.
  277. type: object
  278. required:
  279. - spec
  280. type: object
  281. served: true
  282. storage: false
  283. subresources:
  284. status: {}
  285. - deprecated: true
  286. deprecationWarning: metallb.io v1beta1 AddressPool is deprecated, consider using
  287. IPAddressPool
  288. name: v1beta1
  289. schema:
  290. openAPIV3Schema:
  291. description: AddressPool represents a pool of IP addresses that can be allocated
  292. to LoadBalancer services. AddressPool is deprecated and being replaced by
  293. IPAddressPool.
  294. properties:
  295. apiVersion:
  296. description: 'APIVersion defines the versioned schema of this representation
  297. of an object. Servers should convert recognized schemas to the latest
  298. internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  299. type: string
  300. kind:
  301. description: 'Kind is a string value representing the REST resource this
  302. object represents. Servers may infer this from the endpoint the client
  303. submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  304. type: string
  305. metadata:
  306. type: object
  307. spec:
  308. description: AddressPoolSpec defines the desired state of AddressPool.
  309. properties:
  310. addresses:
  311. description: A list of IP address ranges over which MetalLB has authority.
  312. You can list multiple ranges in a single pool, they will all share
  313. the same settings. Each range can be either a CIDR prefix, or an
  314. explicit start-end range of IPs.
  315. items:
  316. type: string
  317. type: array
  318. autoAssign:
  319. default: true
  320. description: AutoAssign flag used to prevent MetallB from automatic
  321. allocation for a pool.
  322. type: boolean
  323. bgpAdvertisements:
  324. description: Drives how an IP allocated from this pool should translated
  325. into BGP announcements.
  326. items:
  327. properties:
  328. aggregationLength:
  329. default: 32
  330. description: The aggregation-length advertisement option lets
  331. you “roll up” the /32s into a larger prefix.
  332. format: int32
  333. minimum: 1
  334. type: integer
  335. aggregationLengthV6:
  336. default: 128
  337. description: Optional, defaults to 128 (i.e. no aggregation)
  338. if not specified.
  339. format: int32
  340. type: integer
  341. communities:
  342. description: BGP communities to be associated with the given
  343. advertisement.
  344. items:
  345. type: string
  346. type: array
  347. localPref:
  348. description: BGP LOCAL_PREF attribute which is used by BGP best
  349. path algorithm, Path with higher localpref is preferred over
  350. one with lower localpref.
  351. format: int32
  352. type: integer
  353. type: object
  354. type: array
  355. protocol:
  356. description: Protocol can be used to select how the announcement is
  357. done.
  358. enum:
  359. - layer2
  360. - bgp
  361. type: string
  362. required:
  363. - addresses
  364. - protocol
  365. type: object
  366. status:
  367. description: AddressPoolStatus defines the observed state of AddressPool.
  368. type: object
  369. required:
  370. - spec
  371. type: object
  372. served: true
  373. storage: true
  374. subresources:
  375. status: {}
  376. status:
  377. acceptedNames:
  378. kind: ""
  379. plural: ""
  380. conditions: []
  381. storedVersions: []
  382. ---
  383. # Source: metallb/charts/crds/templates/crds.yaml
  384. apiVersion: apiextensions.k8s.io/v1
  385. kind: CustomResourceDefinition
  386. metadata:
  387. annotations:
  388. controller-gen.kubebuilder.io/version: v0.7.0
  389. creationTimestamp: null
  390. name: bfdprofiles.metallb.io
  391. spec:
  392. group: metallb.io
  393. names:
  394. kind: BFDProfile
  395. listKind: BFDProfileList
  396. plural: bfdprofiles
  397. singular: bfdprofile
  398. scope: Namespaced
  399. versions:
  400. - name: v1beta1
  401. schema:
  402. openAPIV3Schema:
  403. description: BFDProfile represents the settings of the bfd session that can
  404. be optionally associated with a BGP session.
  405. properties:
  406. apiVersion:
  407. description: 'APIVersion defines the versioned schema of this representation
  408. of an object. Servers should convert recognized schemas to the latest
  409. internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  410. type: string
  411. kind:
  412. description: 'Kind is a string value representing the REST resource this
  413. object represents. Servers may infer this from the endpoint the client
  414. submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  415. type: string
  416. metadata:
  417. type: object
  418. spec:
  419. description: BFDProfileSpec defines the desired state of BFDProfile.
  420. properties:
  421. detectMultiplier:
  422. description: Configures the detection multiplier to determine packet
  423. loss. The remote transmission interval will be multiplied by this
  424. value to determine the connection loss detection timer.
  425. format: int32
  426. maximum: 255
  427. minimum: 2
  428. type: integer
  429. echoInterval:
  430. description: Configures the minimal echo receive transmission interval
  431. that this system is capable of handling in milliseconds. Defaults
  432. to 50ms
  433. format: int32
  434. maximum: 60000
  435. minimum: 10
  436. type: integer
  437. echoMode:
  438. description: Enables or disables the echo transmission mode. This
  439. mode is disabled by default, and not supported on multi hops setups.
  440. type: boolean
  441. minimumTtl:
  442. description: 'For multi hop sessions only: configure the minimum expected
  443. TTL for an incoming BFD control packet.'
  444. format: int32
  445. maximum: 254
  446. minimum: 1
  447. type: integer
  448. passiveMode:
  449. description: 'Mark session as passive: a passive session will not
  450. attempt to start the connection and will wait for control packets
  451. from peer before it begins replying.'
  452. type: boolean
  453. receiveInterval:
  454. description: The minimum interval that this system is capable of receiving
  455. control packets in milliseconds. Defaults to 300ms.
  456. format: int32
  457. maximum: 60000
  458. minimum: 10
  459. type: integer
  460. transmitInterval:
  461. description: The minimum transmission interval (less jitter) that
  462. this system wants to use to send BFD control packets in milliseconds.
  463. Defaults to 300ms
  464. format: int32
  465. maximum: 60000
  466. minimum: 10
  467. type: integer
  468. type: object
  469. status:
  470. description: BFDProfileStatus defines the observed state of BFDProfile.
  471. type: object
  472. type: object
  473. served: true
  474. storage: true
  475. subresources:
  476. status: {}
  477. status:
  478. acceptedNames:
  479. kind: ""
  480. plural: ""
  481. conditions: []
  482. storedVersions: []
  483. ---
  484. # Source: metallb/charts/crds/templates/crds.yaml
  485. apiVersion: apiextensions.k8s.io/v1
  486. kind: CustomResourceDefinition
  487. metadata:
  488. annotations:
  489. controller-gen.kubebuilder.io/version: v0.7.0
  490. creationTimestamp: null
  491. name: bgpadvertisements.metallb.io
  492. spec:
  493. group: metallb.io
  494. names:
  495. kind: BGPAdvertisement
  496. listKind: BGPAdvertisementList
  497. plural: bgpadvertisements
  498. singular: bgpadvertisement
  499. scope: Namespaced
  500. versions:
  501. - name: v1beta1
  502. schema:
  503. openAPIV3Schema:
  504. description: BGPAdvertisement allows to advertise the IPs coming from the
  505. selected IPAddressPools via BGP, setting the parameters of the BGP Advertisement.
  506. properties:
  507. apiVersion:
  508. description: 'APIVersion defines the versioned schema of this representation
  509. of an object. Servers should convert recognized schemas to the latest
  510. internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  511. type: string
  512. kind:
  513. description: 'Kind is a string value representing the REST resource this
  514. object represents. Servers may infer this from the endpoint the client
  515. submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  516. type: string
  517. metadata:
  518. type: object
  519. spec:
  520. description: BGPAdvertisementSpec defines the desired state of BGPAdvertisement.
  521. properties:
  522. aggregationLength:
  523. default: 32
  524. description: The aggregation-length advertisement option lets you
  525. “roll up” the /32s into a larger prefix. Defaults to 32. Works for
  526. IPv4 addresses.
  527. format: int32
  528. minimum: 1
  529. type: integer
  530. aggregationLengthV6:
  531. default: 128
  532. description: The aggregation-length advertisement option lets you
  533. “roll up” the /128s into a larger prefix. Defaults to 128. Works
  534. for IPv6 addresses.
  535. format: int32
  536. type: integer
  537. communities:
  538. description: The BGP communities to be associated with the announcement.
  539. Each item can be a community of the form 1234:1234 or the name of
  540. an alias defined in the Community CRD.
  541. items:
  542. type: string
  543. type: array
  544. ipAddressPoolSelectors:
  545. description: A selector for the IPAddressPools which would get advertised
  546. via this advertisement. If no IPAddressPool is selected by this
  547. or by the list, the advertisement is applied to all the IPAddressPools.
  548. items:
  549. description: A label selector is a label query over a set of resources.
  550. The result of matchLabels and matchExpressions are ANDed. An empty
  551. label selector matches all objects. A null label selector matches
  552. no objects.
  553. properties:
  554. matchExpressions:
  555. description: matchExpressions is a list of label selector requirements.
  556. The requirements are ANDed.
  557. items:
  558. description: A label selector requirement is a selector that
  559. contains values, a key, and an operator that relates the
  560. key and values.
  561. properties:
  562. key:
  563. description: key is the label key that the selector applies
  564. to.
  565. type: string
  566. operator:
  567. description: operator represents a key's relationship
  568. to a set of values. Valid operators are In, NotIn, Exists
  569. and DoesNotExist.
  570. type: string
  571. values:
  572. description: values is an array of string values. If the
  573. operator is In or NotIn, the values array must be non-empty.
  574. If the operator is Exists or DoesNotExist, the values
  575. array must be empty. This array is replaced during a
  576. strategic merge patch.
  577. items:
  578. type: string
  579. type: array
  580. required:
  581. - key
  582. - operator
  583. type: object
  584. type: array
  585. matchLabels:
  586. additionalProperties:
  587. type: string
  588. description: matchLabels is a map of {key,value} pairs. A single
  589. {key,value} in the matchLabels map is equivalent to an element
  590. of matchExpressions, whose key field is "key", the operator
  591. is "In", and the values array contains only "value". The requirements
  592. are ANDed.
  593. type: object
  594. type: object
  595. type: array
  596. ipAddressPools:
  597. description: The list of IPAddressPools to advertise via this advertisement,
  598. selected by name.
  599. items:
  600. type: string
  601. type: array
  602. localPref:
  603. description: The BGP LOCAL_PREF attribute which is used by BGP best
  604. path algorithm, Path with higher localpref is preferred over one
  605. with lower localpref.
  606. format: int32
  607. type: integer
  608. nodeSelectors:
  609. description: NodeSelectors allows to limit the nodes to announce as
  610. next hops for the LoadBalancer IP. When empty, all the nodes having are
  611. announced as next hops.
  612. items:
  613. description: A label selector is a label query over a set of resources.
  614. The result of matchLabels and matchExpressions are ANDed. An empty
  615. label selector matches all objects. A null label selector matches
  616. no objects.
  617. properties:
  618. matchExpressions:
  619. description: matchExpressions is a list of label selector requirements.
  620. The requirements are ANDed.
  621. items:
  622. description: A label selector requirement is a selector that
  623. contains values, a key, and an operator that relates the
  624. key and values.
  625. properties:
  626. key:
  627. description: key is the label key that the selector applies
  628. to.
  629. type: string
  630. operator:
  631. description: operator represents a key's relationship
  632. to a set of values. Valid operators are In, NotIn, Exists
  633. and DoesNotExist.
  634. type: string
  635. values:
  636. description: values is an array of string values. If the
  637. operator is In or NotIn, the values array must be non-empty.
  638. If the operator is Exists or DoesNotExist, the values
  639. array must be empty. This array is replaced during a
  640. strategic merge patch.
  641. items:
  642. type: string
  643. type: array
  644. required:
  645. - key
  646. - operator
  647. type: object
  648. type: array
  649. matchLabels:
  650. additionalProperties:
  651. type: string
  652. description: matchLabels is a map of {key,value} pairs. A single
  653. {key,value} in the matchLabels map is equivalent to an element
  654. of matchExpressions, whose key field is "key", the operator
  655. is "In", and the values array contains only "value". The requirements
  656. are ANDed.
  657. type: object
  658. type: object
  659. type: array
  660. peers:
  661. description: Peers limits the bgppeer to advertise the ips of the
  662. selected pools to. When empty, the loadbalancer IP is announced
  663. to all the BGPPeers configured.
  664. items:
  665. type: string
  666. type: array
  667. type: object
  668. status:
  669. description: BGPAdvertisementStatus defines the observed state of BGPAdvertisement.
  670. type: object
  671. type: object
  672. served: true
  673. storage: true
  674. subresources:
  675. status: {}
  676. status:
  677. acceptedNames:
  678. kind: ""
  679. plural: ""
  680. conditions: []
  681. storedVersions: []
  682. ---
  683. # Source: metallb/charts/crds/templates/crds.yaml
  684. apiVersion: apiextensions.k8s.io/v1
  685. kind: CustomResourceDefinition
  686. metadata:
  687. annotations:
  688. controller-gen.kubebuilder.io/version: v0.7.0
  689. creationTimestamp: null
  690. name: bgppeers.metallb.io
  691. spec:
  692. group: metallb.io
  693. names:
  694. kind: BGPPeer
  695. listKind: BGPPeerList
  696. plural: bgppeers
  697. singular: bgppeer
  698. scope: Namespaced
  699. conversion:
  700. strategy: Webhook
  701. webhook:
  702. conversionReviewVersions: ["v1beta1", "v1beta2"]
  703. clientConfig:
  704. # this is a valid pem format, otherwise the apiserver will reject the deletion of the crds
  705. # with "unable to parse bytes as PEM block", The controller will patch it with the right content after it starts
  706. caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tDQpNSUlGWlRDQ0EwMmdBd0lCQWdJVU5GRW1XcTM3MVpKdGkrMmlSQzk1WmpBV1MxZ3dEUVlKS29aSWh2Y05BUUVMDQpCUUF3UWpFTE1Ba0dBMVVFQmhNQ1dGZ3hGVEFUQmdOVkJBY01ERVJsWm1GMWJIUWdRMmwwZVRFY01Cb0dBMVVFDQpDZ3dUUkdWbVlYVnNkQ0JEYjIxd1lXNTVJRXgwWkRBZUZ3MHlNakEzTVRrd09UTXlNek5hRncweU1qQTRNVGd3DQpPVE15TXpOYU1FSXhDekFKQmdOVkJBWVRBbGhZTVJVd0V3WURWUVFIREF4RVpXWmhkV3gwSUVOcGRIa3hIREFhDQpCZ05WQkFvTUUwUmxabUYxYkhRZ1EyOXRjR0Z1ZVNCTWRHUXdnZ0lpTUEwR0NTcUdTSWIzRFFFQkFRVUFBNElDDQpEd0F3Z2dJS0FvSUNBUUNxVFpxMWZRcC9vYkdlenhES0o3OVB3Ny94azJwellualNzMlkzb1ZYSm5sRmM4YjVlDQpma2ZZQnY2bndscW1keW5PL2phWFBaQmRQSS82aFdOUDBkdVhadEtWU0NCUUpyZzEyOGNXb3F0MGNTN3pLb1VpDQpvcU1tQ0QvRXVBeFFNZjhRZDF2c1gvVllkZ0poVTZBRXJLZEpIaXpFOUJtUkNkTDBGMW1OVW55Rk82UnRtWFZUDQpidkxsTDVYeTc2R0FaQVBLOFB4aVlDa0NtbDdxN0VnTWNiOXlLWldCYmlxQ3VkTXE5TGJLNmdKNzF6YkZnSXV4DQo1L1pXK2JraTB2RlplWk9ZODUxb1psckFUNzJvMDI4NHNTWW9uN0pHZVZkY3NoUnh5R1VpSFpSTzdkaXZVTDVTDQpmM2JmSDFYbWY1ZDQzT0NWTWRuUUV2NWVaOG8zeWVLa3ZrbkZQUGVJMU9BbjdGbDlFRVNNR2dhOGFaSG1URSttDQpsLzlMSmdDYjBnQmtPT0M0WnV4bWh2aERKV1EzWnJCS3pMQlNUZXN0NWlLNVlwcXRWVVk2THRyRW9FelVTK1lsDQpwWndXY2VQWHlHeHM5ZURsR3lNVmQraW15Y3NTU1UvVno2Mmx6MnZCS21NTXBkYldDQWhud0RsRTVqU2dyMjRRDQp0eGNXLys2N3d5KzhuQlI3UXdqVTFITndVRjBzeERWdEwrZ1NHVERnSEVZSlhZelYvT05zMy94TkpoVFNPSkxNDQpoeXNVdyttaGdackdhbUdXcHVIVU1DUitvTWJzMTc1UkcrQjJnUFFHVytPTjJnUTRyOXN2b0ZBNHBBQm8xd1dLDQpRYjRhY3pmeVVscElBOVFoSmFsZEY3S3dPSHVlV3gwRUNrNXg0T2tvVDBvWVp0dzFiR0JjRGtaSmF3SURBUUFCDQpvMU13VVRBZEJnTlZIUTRFRmdRVW90UlNIUm9IWTEyRFZ4R0NCdEhpb1g2ZmVFQXdId1lEVlIwakJCZ3dGb0FVDQpvdFJTSFJvSFkxMkRWeEdDQnRIaW9YNmZlRUF3RHdZRFZSMFRBUUgvQkFVd0F3RUIvekFOQmdrcWhraUc5dzBCDQpBUXNGQUFPQ0FnRUFSbkpsWWRjMTFHd0VxWnh6RDF2R3BDR2pDN2VWTlQ3aVY1d3IybXlybHdPYi9aUWFEa0xYDQpvVStaOVVXT1VlSXJTdzUydDdmQUpvVVAwSm5iYkMveVIrU1lqUGhvUXNiVHduOTc2ZldBWTduM3FMOXhCd1Y0DQphek41OXNjeUp0dlhMeUtOL2N5ak1ReDRLajBIMFg0bWJ6bzVZNUtzWWtYVU0vOEFPdWZMcEd0S1NGVGgrSEFDDQpab1Q5YnZHS25adnNHd0tYZFF0Wnh0akhaUjVqK3U3ZGtQOTJBT051RFNabS8rWVV4b2tBK09JbzdSR3BwSHNXDQo1ZTdNY0FTVXRtb1FORXd6dVFoVkJaRWQ1OGtKYjUrV0VWbGNzanlXNnRTbzErZ25tTWNqR1BsMWgxR2hVbjV4DQpFY0lWRnBIWXM5YWo1NmpBSjk1MVQvZjhMaWxmTlVnanBLQ0c1bnl0SUt3emxhOHNtdGlPdm1UNEpYbXBwSkI2DQo4bmdHRVluVjUrUTYwWFJ2OEhSSGp1VG9CRHVhaERrVDA2R1JGODU1d09FR2V4bkZpMXZYWUxLVllWb1V2MXRKDQo4dVdUR1pwNllDSVJldlBqbzg5ZytWTlJSaVFYUThJd0dybXE5c0RoVTlqTjA0SjdVL1RvRDFpNHE3VnlsRUc5DQorV1VGNkNLaEdBeTJIaEhwVncyTGFoOS9lUzdZMUZ1YURrWmhPZG1laG1BOCtqdHNZamJadnR5Mm1SWlF0UUZzDQpUU1VUUjREbUR2bVVPRVRmeStpRHdzK2RkWXVNTnJGeVVYV2dkMnpBQU4ydVl1UHFGY2pRcFNPODFzVTJTU3R3DQoxVzAyeUtYOGJEYmZFdjBzbUh3UzliQnFlSGo5NEM1Mjg0YXpsdTBmaUdpTm1OUEM4ckJLRmhBPQ0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQ==
  707. service:
  708. namespace: metallb-system
  709. name: metallb-webhook-service
  710. path: /convert
  711. versions:
  712. - name: v1beta1
  713. schema:
  714. openAPIV3Schema:
  715. description: BGPPeer is the Schema for the peers API.
  716. properties:
  717. apiVersion:
  718. description: 'APIVersion defines the versioned schema of this representation
  719. of an object. Servers should convert recognized schemas to the latest
  720. internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  721. type: string
  722. kind:
  723. description: 'Kind is a string value representing the REST resource this
  724. object represents. Servers may infer this from the endpoint the client
  725. submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  726. type: string
  727. metadata:
  728. type: object
  729. spec:
  730. description: BGPPeerSpec defines the desired state of Peer.
  731. properties:
  732. bfdProfile:
  733. type: string
  734. ebgpMultiHop:
  735. description: EBGP peer is multi-hops away
  736. type: boolean
  737. holdTime:
  738. description: Requested BGP hold time, per RFC4271.
  739. type: string
  740. keepaliveTime:
  741. description: Requested BGP keepalive time, per RFC4271.
  742. type: string
  743. myASN:
  744. description: AS number to use for the local end of the session.
  745. format: int32
  746. maximum: 4294967295
  747. minimum: 0
  748. type: integer
  749. nodeSelectors:
  750. description: Only connect to this peer on nodes that match one of
  751. these selectors.
  752. items:
  753. properties:
  754. matchExpressions:
  755. items:
  756. properties:
  757. key:
  758. type: string
  759. operator:
  760. type: string
  761. values:
  762. items:
  763. type: string
  764. minItems: 1
  765. type: array
  766. required:
  767. - key
  768. - operator
  769. - values
  770. type: object
  771. type: array
  772. matchLabels:
  773. additionalProperties:
  774. type: string
  775. type: object
  776. type: object
  777. type: array
  778. password:
  779. description: Authentication password for routers enforcing TCP MD5
  780. authenticated sessions
  781. type: string
  782. peerASN:
  783. description: AS number to expect from the remote end of the session.
  784. format: int32
  785. maximum: 4294967295
  786. minimum: 0
  787. type: integer
  788. peerAddress:
  789. description: Address to dial when establishing the session.
  790. type: string
  791. peerPort:
  792. description: Port to dial when establishing the session.
  793. maximum: 16384
  794. minimum: 0
  795. type: integer
  796. routerID:
  797. description: BGP router ID to advertise to the peer
  798. type: string
  799. sourceAddress:
  800. description: Source address to use when establishing the session.
  801. type: string
  802. required:
  803. - myASN
  804. - peerASN
  805. - peerAddress
  806. type: object
  807. status:
  808. description: BGPPeerStatus defines the observed state of Peer.
  809. type: object
  810. type: object
  811. served: true
  812. storage: false
  813. subresources:
  814. status: {}
  815. - name: v1beta2
  816. schema:
  817. openAPIV3Schema:
  818. description: BGPPeer is the Schema for the peers API.
  819. properties:
  820. apiVersion:
  821. description: 'APIVersion defines the versioned schema of this representation
  822. of an object. Servers should convert recognized schemas to the latest
  823. internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  824. type: string
  825. kind:
  826. description: 'Kind is a string value representing the REST resource this
  827. object represents. Servers may infer this from the endpoint the client
  828. submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  829. type: string
  830. metadata:
  831. type: object
  832. spec:
  833. description: BGPPeerSpec defines the desired state of Peer.
  834. properties:
  835. bfdProfile:
  836. description: The name of the BFD Profile to be used for the BFD session
  837. associated to the BGP session. If not set, the BFD session won't
  838. be set up.
  839. type: string
  840. ebgpMultiHop:
  841. description: To set if the BGPPeer is multi-hops away. Needed for
  842. FRR mode only.
  843. type: boolean
  844. holdTime:
  845. description: Requested BGP hold time, per RFC4271.
  846. type: string
  847. keepaliveTime:
  848. description: Requested BGP keepalive time, per RFC4271.
  849. type: string
  850. myASN:
  851. description: AS number to use for the local end of the session.
  852. format: int32
  853. maximum: 4294967295
  854. minimum: 0
  855. type: integer
  856. nodeSelectors:
  857. description: Only connect to this peer on nodes that match one of
  858. these selectors.
  859. items:
  860. description: A label selector is a label query over a set of resources.
  861. The result of matchLabels and matchExpressions are ANDed. An empty
  862. label selector matches all objects. A null label selector matches
  863. no objects.
  864. properties:
  865. matchExpressions:
  866. description: matchExpressions is a list of label selector requirements.
  867. The requirements are ANDed.
  868. items:
  869. description: A label selector requirement is a selector that
  870. contains values, a key, and an operator that relates the
  871. key and values.
  872. properties:
  873. key:
  874. description: key is the label key that the selector applies
  875. to.
  876. type: string
  877. operator:
  878. description: operator represents a key's relationship
  879. to a set of values. Valid operators are In, NotIn, Exists
  880. and DoesNotExist.
  881. type: string
  882. values:
  883. description: values is an array of string values. If the
  884. operator is In or NotIn, the values array must be non-empty.
  885. If the operator is Exists or DoesNotExist, the values
  886. array must be empty. This array is replaced during a
  887. strategic merge patch.
  888. items:
  889. type: string
  890. type: array
  891. required:
  892. - key
  893. - operator
  894. type: object
  895. type: array
  896. matchLabels:
  897. additionalProperties:
  898. type: string
  899. description: matchLabels is a map of {key,value} pairs. A single
  900. {key,value} in the matchLabels map is equivalent to an element
  901. of matchExpressions, whose key field is "key", the operator
  902. is "In", and the values array contains only "value". The requirements
  903. are ANDed.
  904. type: object
  905. type: object
  906. type: array
  907. password:
  908. description: Authentication password for routers enforcing TCP MD5
  909. authenticated sessions
  910. type: string
  911. passwordSecret:
  912. description: passwordSecret is name of the authentication secret for
  913. BGP Peer. the secret must be of type "kubernetes.io/basic-auth",
  914. and created in the same namespace as the MetalLB deployment. The
  915. password is stored in the secret as the key "password".
  916. properties:
  917. name:
  918. description: Name is unique within a namespace to reference a
  919. secret resource.
  920. type: string
  921. namespace:
  922. description: Namespace defines the space within which the secret
  923. name must be unique.
  924. type: string
  925. type: object
  926. peerASN:
  927. description: AS number to expect from the remote end of the session.
  928. format: int32
  929. maximum: 4294967295
  930. minimum: 0
  931. type: integer
  932. peerAddress:
  933. description: Address to dial when establishing the session.
  934. type: string
  935. peerPort:
  936. default: 179
  937. description: Port to dial when establishing the session.
  938. maximum: 16384
  939. minimum: 0
  940. type: integer
  941. routerID:
  942. description: BGP router ID to advertise to the peer
  943. type: string
  944. sourceAddress:
  945. description: Source address to use when establishing the session.
  946. type: string
  947. vrf:
  948. description: To set if we want to peer with the BGPPeer using an interface
  949. belonging to a host vrf
  950. type: string
  951. required:
  952. - myASN
  953. - peerASN
  954. - peerAddress
  955. type: object
  956. status:
  957. description: BGPPeerStatus defines the observed state of Peer.
  958. type: object
  959. type: object
  960. served: true
  961. storage: true
  962. subresources:
  963. status: {}
  964. status:
  965. acceptedNames:
  966. kind: ""
  967. plural: ""
  968. conditions: []
  969. storedVersions: []
  970. ---
  971. # Source: metallb/charts/crds/templates/crds.yaml
  972. ---
  973. apiVersion: apiextensions.k8s.io/v1
  974. kind: CustomResourceDefinition
  975. metadata:
  976. annotations:
  977. controller-gen.kubebuilder.io/version: v0.7.0
  978. creationTimestamp: null
  979. name: ipaddresspools.metallb.io
  980. spec:
  981. group: metallb.io
  982. names:
  983. kind: IPAddressPool
  984. listKind: IPAddressPoolList
  985. plural: ipaddresspools
  986. singular: ipaddresspool
  987. scope: Namespaced
  988. versions:
  989. - name: v1beta1
  990. schema:
  991. openAPIV3Schema:
  992. description: IPAddressPool represents a pool of IP addresses that can be allocated
  993. to LoadBalancer services.
  994. properties:
  995. apiVersion:
  996. description: 'APIVersion defines the versioned schema of this representation
  997. of an object. Servers should convert recognized schemas to the latest
  998. internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  999. type: string
  1000. kind:
  1001. description: 'Kind is a string value representing the REST resource this
  1002. object represents. Servers may infer this from the endpoint the client
  1003. submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1004. type: string
  1005. metadata:
  1006. type: object
  1007. spec:
  1008. description: IPAddressPoolSpec defines the desired state of IPAddressPool.
  1009. properties:
  1010. addresses:
  1011. description: A list of IP address ranges over which MetalLB has authority.
  1012. You can list multiple ranges in a single pool, they will all share
  1013. the same settings. Each range can be either a CIDR prefix, or an
  1014. explicit start-end range of IPs.
  1015. items:
  1016. type: string
  1017. type: array
  1018. autoAssign:
  1019. default: true
  1020. description: AutoAssign flag used to prevent MetallB from automatic
  1021. allocation for a pool.
  1022. type: boolean
  1023. avoidBuggyIPs:
  1024. default: false
  1025. description: AvoidBuggyIPs prevents addresses ending with .0 and .255
  1026. to be used by a pool.
  1027. type: boolean
  1028. serviceAllocation:
  1029. description: AllocateTo makes ip pool allocation to specific namespace
  1030. and/or service. The controller will use the pool with lowest value
  1031. of priority in case of multiple matches. A pool with no priority
  1032. set will be used only if the pools with priority can't be used.
  1033. If multiple matching IPAddressPools are available it will check
  1034. for the availability of IPs sorting the matching IPAddressPools
  1035. by priority, starting from the highest to the lowest. If multiple
  1036. IPAddressPools have the same priority, choice will be random.
  1037. properties:
  1038. namespaceSelectors:
  1039. description: NamespaceSelectors list of label selectors to select
  1040. namespace(s) for ip pool, an alternative to using namespace
  1041. list.
  1042. items:
  1043. description: A label selector is a label query over a set of
  1044. resources. The result of matchLabels and matchExpressions
  1045. are ANDed. An empty label selector matches all objects. A
  1046. null label selector matches no objects.
  1047. properties:
  1048. matchExpressions:
  1049. description: matchExpressions is a list of label selector
  1050. requirements. The requirements are ANDed.
  1051. items:
  1052. description: A label selector requirement is a selector
  1053. that contains values, a key, and an operator that relates
  1054. the key and values.
  1055. properties:
  1056. key:
  1057. description: key is the label key that the selector
  1058. applies to.
  1059. type: string
  1060. operator:
  1061. description: operator represents a key's relationship
  1062. to a set of values. Valid operators are In, NotIn,
  1063. Exists and DoesNotExist.
  1064. type: string
  1065. values:
  1066. description: values is an array of string values.
  1067. If the operator is In or NotIn, the values array
  1068. must be non-empty. If the operator is Exists or
  1069. DoesNotExist, the values array must be empty. This
  1070. array is replaced during a strategic merge patch.
  1071. items:
  1072. type: string
  1073. type: array
  1074. required:
  1075. - key
  1076. - operator
  1077. type: object
  1078. type: array
  1079. matchLabels:
  1080. additionalProperties:
  1081. type: string
  1082. description: matchLabels is a map of {key,value} pairs.
  1083. A single {key,value} in the matchLabels map is equivalent
  1084. to an element of matchExpressions, whose key field is
  1085. "key", the operator is "In", and the values array contains
  1086. only "value". The requirements are ANDed.
  1087. type: object
  1088. type: object
  1089. type: array
  1090. namespaces:
  1091. description: Namespaces list of namespace(s) on which ip pool
  1092. can be attached.
  1093. items:
  1094. type: string
  1095. type: array
  1096. priority:
  1097. description: Priority priority given for ip pool while ip allocation
  1098. on a service.
  1099. type: integer
  1100. serviceSelectors:
  1101. description: ServiceSelectors list of label selector to select
  1102. service(s) for which ip pool can be used for ip allocation.
  1103. items:
  1104. description: A label selector is a label query over a set of
  1105. resources. The result of matchLabels and matchExpressions
  1106. are ANDed. An empty label selector matches all objects. A
  1107. null label selector matches no objects.
  1108. properties:
  1109. matchExpressions:
  1110. description: matchExpressions is a list of label selector
  1111. requirements. The requirements are ANDed.
  1112. items:
  1113. description: A label selector requirement is a selector
  1114. that contains values, a key, and an operator that relates
  1115. the key and values.
  1116. properties:
  1117. key:
  1118. description: key is the label key that the selector
  1119. applies to.
  1120. type: string
  1121. operator:
  1122. description: operator represents a key's relationship
  1123. to a set of values. Valid operators are In, NotIn,
  1124. Exists and DoesNotExist.
  1125. type: string
  1126. values:
  1127. description: values is an array of string values.
  1128. If the operator is In or NotIn, the values array
  1129. must be non-empty. If the operator is Exists or
  1130. DoesNotExist, the values array must be empty. This
  1131. array is replaced during a strategic merge patch.
  1132. items:
  1133. type: string
  1134. type: array
  1135. required:
  1136. - key
  1137. - operator
  1138. type: object
  1139. type: array
  1140. matchLabels:
  1141. additionalProperties:
  1142. type: string
  1143. description: matchLabels is a map of {key,value} pairs.
  1144. A single {key,value} in the matchLabels map is equivalent
  1145. to an element of matchExpressions, whose key field is
  1146. "key", the operator is "In", and the values array contains
  1147. only "value". The requirements are ANDed.
  1148. type: object
  1149. type: object
  1150. type: array
  1151. type: object
  1152. required:
  1153. - addresses
  1154. type: object
  1155. status:
  1156. description: IPAddressPoolStatus defines the observed state of IPAddressPool.
  1157. type: object
  1158. required:
  1159. - spec
  1160. type: object
  1161. served: true
  1162. storage: true
  1163. subresources:
  1164. status: {}
  1165. status:
  1166. acceptedNames:
  1167. kind: ""
  1168. plural: ""
  1169. conditions: []
  1170. storedVersions: []
  1171. ---
  1172. # Source: metallb/charts/crds/templates/crds.yaml
  1173. apiVersion: apiextensions.k8s.io/v1
  1174. kind: CustomResourceDefinition
  1175. metadata:
  1176. annotations:
  1177. controller-gen.kubebuilder.io/version: v0.7.0
  1178. creationTimestamp: null
  1179. name: l2advertisements.metallb.io
  1180. spec:
  1181. group: metallb.io
  1182. names:
  1183. kind: L2Advertisement
  1184. listKind: L2AdvertisementList
  1185. plural: l2advertisements
  1186. singular: l2advertisement
  1187. scope: Namespaced
  1188. versions:
  1189. - name: v1beta1
  1190. schema:
  1191. openAPIV3Schema:
  1192. description: L2Advertisement allows to advertise the LoadBalancer IPs provided
  1193. by the selected pools via L2.
  1194. properties:
  1195. apiVersion:
  1196. description: 'APIVersion defines the versioned schema of this representation
  1197. of an object. Servers should convert recognized schemas to the latest
  1198. internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1199. type: string
  1200. kind:
  1201. description: 'Kind is a string value representing the REST resource this
  1202. object represents. Servers may infer this from the endpoint the client
  1203. submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1204. type: string
  1205. metadata:
  1206. type: object
  1207. spec:
  1208. description: L2AdvertisementSpec defines the desired state of L2Advertisement.
  1209. properties:
  1210. interfaces:
  1211. description: A list of interfaces to announce from. The LB IP will
  1212. be announced only from these interfaces. If the field is not set,
  1213. we advertise from all the interfaces on the host.
  1214. items:
  1215. type: string
  1216. type: array
  1217. ipAddressPoolSelectors:
  1218. description: A selector for the IPAddressPools which would get advertised
  1219. via this advertisement. If no IPAddressPool is selected by this
  1220. or by the list, the advertisement is applied to all the IPAddressPools.
  1221. items:
  1222. description: A label selector is a label query over a set of resources.
  1223. The result of matchLabels and matchExpressions are ANDed. An empty
  1224. label selector matches all objects. A null label selector matches
  1225. no objects.
  1226. properties:
  1227. matchExpressions:
  1228. description: matchExpressions is a list of label selector requirements.
  1229. The requirements are ANDed.
  1230. items:
  1231. description: A label selector requirement is a selector that
  1232. contains values, a key, and an operator that relates the
  1233. key and values.
  1234. properties:
  1235. key:
  1236. description: key is the label key that the selector applies
  1237. to.
  1238. type: string
  1239. operator:
  1240. description: operator represents a key's relationship
  1241. to a set of values. Valid operators are In, NotIn, Exists
  1242. and DoesNotExist.
  1243. type: string
  1244. values:
  1245. description: values is an array of string values. If the
  1246. operator is In or NotIn, the values array must be non-empty.
  1247. If the operator is Exists or DoesNotExist, the values
  1248. array must be empty. This array is replaced during a
  1249. strategic merge patch.
  1250. items:
  1251. type: string
  1252. type: array
  1253. required:
  1254. - key
  1255. - operator
  1256. type: object
  1257. type: array
  1258. matchLabels:
  1259. additionalProperties:
  1260. type: string
  1261. description: matchLabels is a map of {key,value} pairs. A single
  1262. {key,value} in the matchLabels map is equivalent to an element
  1263. of matchExpressions, whose key field is "key", the operator
  1264. is "In", and the values array contains only "value". The requirements
  1265. are ANDed.
  1266. type: object
  1267. type: object
  1268. type: array
  1269. ipAddressPools:
  1270. description: The list of IPAddressPools to advertise via this advertisement,
  1271. selected by name.
  1272. items:
  1273. type: string
  1274. type: array
  1275. nodeSelectors:
  1276. description: NodeSelectors allows to limit the nodes to announce as
  1277. next hops for the LoadBalancer IP. When empty, all the nodes having are
  1278. announced as next hops.
  1279. items:
  1280. description: A label selector is a label query over a set of resources.
  1281. The result of matchLabels and matchExpressions are ANDed. An empty
  1282. label selector matches all objects. A null label selector matches
  1283. no objects.
  1284. properties:
  1285. matchExpressions:
  1286. description: matchExpressions is a list of label selector requirements.
  1287. The requirements are ANDed.
  1288. items:
  1289. description: A label selector requirement is a selector that
  1290. contains values, a key, and an operator that relates the
  1291. key and values.
  1292. properties:
  1293. key:
  1294. description: key is the label key that the selector applies
  1295. to.
  1296. type: string
  1297. operator:
  1298. description: operator represents a key's relationship
  1299. to a set of values. Valid operators are In, NotIn, Exists
  1300. and DoesNotExist.
  1301. type: string
  1302. values:
  1303. description: values is an array of string values. If the
  1304. operator is In or NotIn, the values array must be non-empty.
  1305. If the operator is Exists or DoesNotExist, the values
  1306. array must be empty. This array is replaced during a
  1307. strategic merge patch.
  1308. items:
  1309. type: string
  1310. type: array
  1311. required:
  1312. - key
  1313. - operator
  1314. type: object
  1315. type: array
  1316. matchLabels:
  1317. additionalProperties:
  1318. type: string
  1319. description: matchLabels is a map of {key,value} pairs. A single
  1320. {key,value} in the matchLabels map is equivalent to an element
  1321. of matchExpressions, whose key field is "key", the operator
  1322. is "In", and the values array contains only "value". The requirements
  1323. are ANDed.
  1324. type: object
  1325. type: object
  1326. type: array
  1327. type: object
  1328. status:
  1329. description: L2AdvertisementStatus defines the observed state of L2Advertisement.
  1330. type: object
  1331. type: object
  1332. served: true
  1333. storage: true
  1334. subresources:
  1335. status: {}
  1336. status:
  1337. acceptedNames:
  1338. kind: ""
  1339. plural: ""
  1340. conditions: []
  1341. storedVersions: []
  1342. ---
  1343. # Source: metallb/charts/crds/templates/crds.yaml
  1344. apiVersion: apiextensions.k8s.io/v1
  1345. kind: CustomResourceDefinition
  1346. metadata:
  1347. annotations:
  1348. controller-gen.kubebuilder.io/version: v0.7.0
  1349. creationTimestamp: null
  1350. name: communities.metallb.io
  1351. spec:
  1352. group: metallb.io
  1353. names:
  1354. kind: Community
  1355. listKind: CommunityList
  1356. plural: communities
  1357. singular: community
  1358. scope: Namespaced
  1359. versions:
  1360. - name: v1beta1
  1361. schema:
  1362. openAPIV3Schema:
  1363. description: Community is a collection of aliases for communities. Users can
  1364. define named aliases to be used in the BGPPeer CRD.
  1365. properties:
  1366. apiVersion:
  1367. description: 'APIVersion defines the versioned schema of this representation
  1368. of an object. Servers should convert recognized schemas to the latest
  1369. internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources'
  1370. type: string
  1371. kind:
  1372. description: 'Kind is a string value representing the REST resource this
  1373. object represents. Servers may infer this from the endpoint the client
  1374. submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds'
  1375. type: string
  1376. metadata:
  1377. type: object
  1378. spec:
  1379. description: CommunitySpec defines the desired state of Community.
  1380. properties:
  1381. communities:
  1382. items:
  1383. properties:
  1384. name:
  1385. description: The name of the alias for the community.
  1386. type: string
  1387. value:
  1388. description: The BGP community value corresponding to the given
  1389. name.
  1390. type: string
  1391. type: object
  1392. type: array
  1393. type: object
  1394. status:
  1395. description: CommunityStatus defines the observed state of Community.
  1396. type: object
  1397. type: object
  1398. served: true
  1399. storage: true
  1400. subresources:
  1401. status: {}
  1402. status:
  1403. acceptedNames:
  1404. kind: ""
  1405. plural: ""
  1406. conditions: []
  1407. storedVersions: []
  1408. ---
  1409. # Source: metallb/templates/rbac.yaml
  1410. apiVersion: rbac.authorization.k8s.io/v1
  1411. kind: ClusterRole
  1412. metadata:
  1413. name: metallb:controller
  1414. labels:
  1415. helm.sh/chart: metallb-0.13.11
  1416. app.kubernetes.io/name: metallb
  1417. app.kubernetes.io/instance: metallb
  1418. app.kubernetes.io/version: "v0.13.11"
  1419. app.kubernetes.io/managed-by: Helm
  1420. rules:
  1421. - apiGroups: [""]
  1422. resources: ["services", "namespaces"]
  1423. verbs: ["get", "list", "watch"]
  1424. - apiGroups: [""]
  1425. resources: ["nodes"]
  1426. verbs: ["list"]
  1427. - apiGroups: [""]
  1428. resources: ["services/status"]
  1429. verbs: ["update"]
  1430. - apiGroups: [""]
  1431. resources: ["events"]
  1432. verbs: ["create", "patch"]
  1433. - apiGroups: ["admissionregistration.k8s.io"]
  1434. resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
  1435. resourceNames: ["metallb-webhook-configuration"]
  1436. verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
  1437. - apiGroups: ["admissionregistration.k8s.io"]
  1438. resources: ["validatingwebhookconfigurations", "mutatingwebhookconfigurations"]
  1439. verbs: ["list", "watch"]
  1440. - apiGroups: ["apiextensions.k8s.io"]
  1441. resources: ["customresourcedefinitions"]
  1442. resourceNames: ["addresspools.metallb.io","bfdprofiles.metallb.io","bgpadvertisements.metallb.io",
  1443. "bgppeers.metallb.io","ipaddresspools.metallb.io","l2advertisements.metallb.io","communities.metallb.io"]
  1444. verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
  1445. - apiGroups: ["apiextensions.k8s.io"]
  1446. resources: ["customresourcedefinitions"]
  1447. verbs: ["list", "watch"]
  1448. ---
  1449. # Source: metallb/templates/rbac.yaml
  1450. apiVersion: rbac.authorization.k8s.io/v1
  1451. kind: ClusterRole
  1452. metadata:
  1453. name: metallb:speaker
  1454. labels:
  1455. helm.sh/chart: metallb-0.13.11
  1456. app.kubernetes.io/name: metallb
  1457. app.kubernetes.io/instance: metallb
  1458. app.kubernetes.io/version: "v0.13.11"
  1459. app.kubernetes.io/managed-by: Helm
  1460. rules:
  1461. - apiGroups: [""]
  1462. resources: ["services", "endpoints", "nodes", "namespaces"]
  1463. verbs: ["get", "list", "watch"]
  1464. - apiGroups: ["discovery.k8s.io"]
  1465. resources: ["endpointslices"]
  1466. verbs: ["get", "list", "watch"]
  1467. - apiGroups: [""]
  1468. resources: ["events"]
  1469. verbs: ["create", "patch"]
  1470. ---
  1471. # Source: metallb/templates/rbac.yaml
  1472. apiVersion: rbac.authorization.k8s.io/v1
  1473. kind: ClusterRoleBinding
  1474. metadata:
  1475. name: metallb:controller
  1476. labels:
  1477. helm.sh/chart: metallb-0.13.11
  1478. app.kubernetes.io/name: metallb
  1479. app.kubernetes.io/instance: metallb
  1480. app.kubernetes.io/version: "v0.13.11"
  1481. app.kubernetes.io/managed-by: Helm
  1482. subjects:
  1483. - kind: ServiceAccount
  1484. name: metallb-controller
  1485. namespace: metallb-system
  1486. roleRef:
  1487. apiGroup: rbac.authorization.k8s.io
  1488. kind: ClusterRole
  1489. name: metallb:controller
  1490. ---
  1491. # Source: metallb/templates/rbac.yaml
  1492. apiVersion: rbac.authorization.k8s.io/v1
  1493. kind: ClusterRoleBinding
  1494. metadata:
  1495. name: metallb:speaker
  1496. labels:
  1497. helm.sh/chart: metallb-0.13.11
  1498. app.kubernetes.io/name: metallb
  1499. app.kubernetes.io/instance: metallb
  1500. app.kubernetes.io/version: "v0.13.11"
  1501. app.kubernetes.io/managed-by: Helm
  1502. subjects:
  1503. - kind: ServiceAccount
  1504. name: metallb-speaker
  1505. namespace: metallb-system
  1506. roleRef:
  1507. apiGroup: rbac.authorization.k8s.io
  1508. kind: ClusterRole
  1509. name: metallb:speaker
  1510. ---
  1511. # Source: metallb/templates/rbac.yaml
  1512. apiVersion: rbac.authorization.k8s.io/v1
  1513. kind: Role
  1514. metadata:
  1515. name: metallb-pod-lister
  1516. namespace: "metallb-system"
  1517. labels:
  1518. helm.sh/chart: metallb-0.13.11
  1519. app.kubernetes.io/name: metallb
  1520. app.kubernetes.io/instance: metallb
  1521. app.kubernetes.io/version: "v0.13.11"
  1522. app.kubernetes.io/managed-by: Helm
  1523. rules:
  1524. - apiGroups: [""]
  1525. resources: ["pods"]
  1526. verbs: ["list"]
  1527. - apiGroups: [""]
  1528. resources: ["secrets"]
  1529. verbs: ["get", "list", "watch"]
  1530. - apiGroups: [""]
  1531. resources: ["configmaps"]
  1532. verbs: ["get", "list", "watch"]
  1533. - apiGroups: ["metallb.io"]
  1534. resources: ["addresspools"]
  1535. verbs: ["get", "list", "watch"]
  1536. - apiGroups: ["metallb.io"]
  1537. resources: ["bfdprofiles"]
  1538. verbs: ["get", "list", "watch"]
  1539. - apiGroups: ["metallb.io"]
  1540. resources: ["bgppeers"]
  1541. verbs: ["get", "list", "watch"]
  1542. - apiGroups: ["metallb.io"]
  1543. resources: ["l2advertisements"]
  1544. verbs: ["get", "list", "watch"]
  1545. - apiGroups: ["metallb.io"]
  1546. resources: ["bgpadvertisements"]
  1547. verbs: ["get", "list", "watch"]
  1548. - apiGroups: ["metallb.io"]
  1549. resources: ["ipaddresspools"]
  1550. verbs: ["get", "list", "watch"]
  1551. - apiGroups: ["metallb.io"]
  1552. resources: ["communities"]
  1553. verbs: ["get", "list", "watch"]
  1554. ---
  1555. # Source: metallb/templates/rbac.yaml
  1556. apiVersion: rbac.authorization.k8s.io/v1
  1557. kind: Role
  1558. metadata:
  1559. name: metallb-controller
  1560. namespace: "metallb-system"
  1561. labels:
  1562. helm.sh/chart: metallb-0.13.11
  1563. app.kubernetes.io/name: metallb
  1564. app.kubernetes.io/instance: metallb
  1565. app.kubernetes.io/version: "v0.13.11"
  1566. app.kubernetes.io/managed-by: Helm
  1567. rules:
  1568. - apiGroups: [""]
  1569. resources: ["secrets"]
  1570. verbs: ["create", "get", "list", "watch"]
  1571. - apiGroups: [""]
  1572. resources: ["secrets"]
  1573. resourceNames: ["metallb-memberlist"]
  1574. verbs: ["list"]
  1575. - apiGroups: ["apps"]
  1576. resources: ["deployments"]
  1577. resourceNames: ["metallb-controller"]
  1578. verbs: ["get"]
  1579. - apiGroups: [""]
  1580. resources: ["secrets"]
  1581. verbs: ["create", "delete", "get", "list", "patch", "update", "watch"]
  1582. - apiGroups: ["metallb.io"]
  1583. resources: ["addresspools"]
  1584. verbs: ["get", "list", "watch"]
  1585. - apiGroups: ["metallb.io"]
  1586. resources: ["ipaddresspools"]
  1587. verbs: ["get", "list", "watch"]
  1588. - apiGroups: ["metallb.io"]
  1589. resources: ["bgppeers"]
  1590. verbs: ["get", "list"]
  1591. - apiGroups: ["metallb.io"]
  1592. resources: ["bgpadvertisements"]
  1593. verbs: ["get", "list"]
  1594. - apiGroups: ["metallb.io"]
  1595. resources: ["l2advertisements"]
  1596. verbs: ["get", "list"]
  1597. - apiGroups: ["metallb.io"]
  1598. resources: ["communities"]
  1599. verbs: ["get", "list","watch"]
  1600. - apiGroups: ["metallb.io"]
  1601. resources: ["bfdprofiles"]
  1602. verbs: ["get", "list","watch"]
  1603. ---
  1604. # Source: metallb/templates/rbac.yaml
  1605. apiVersion: rbac.authorization.k8s.io/v1
  1606. kind: RoleBinding
  1607. metadata:
  1608. name: metallb-pod-lister
  1609. namespace: "metallb-system"
  1610. labels:
  1611. helm.sh/chart: metallb-0.13.11
  1612. app.kubernetes.io/name: metallb
  1613. app.kubernetes.io/instance: metallb
  1614. app.kubernetes.io/version: "v0.13.11"
  1615. app.kubernetes.io/managed-by: Helm
  1616. roleRef:
  1617. apiGroup: rbac.authorization.k8s.io
  1618. kind: Role
  1619. name: metallb-pod-lister
  1620. subjects:
  1621. - kind: ServiceAccount
  1622. name: metallb-speaker
  1623. ---
  1624. # Source: metallb/templates/rbac.yaml
  1625. apiVersion: rbac.authorization.k8s.io/v1
  1626. kind: RoleBinding
  1627. metadata:
  1628. name: metallb-controller
  1629. namespace: "metallb-system"
  1630. labels:
  1631. helm.sh/chart: metallb-0.13.11
  1632. app.kubernetes.io/name: metallb
  1633. app.kubernetes.io/instance: metallb
  1634. app.kubernetes.io/version: "v0.13.11"
  1635. app.kubernetes.io/managed-by: Helm
  1636. roleRef:
  1637. apiGroup: rbac.authorization.k8s.io
  1638. kind: Role
  1639. name: metallb-controller
  1640. subjects:
  1641. - kind: ServiceAccount
  1642. name: metallb-controller
  1643. ---
  1644. # Source: metallb/templates/webhooks.yaml
  1645. apiVersion: v1
  1646. kind: Service
  1647. metadata:
  1648. name: metallb-webhook-service
  1649. namespace: "metallb-system"
  1650. labels:
  1651. helm.sh/chart: metallb-0.13.11
  1652. app.kubernetes.io/name: metallb
  1653. app.kubernetes.io/instance: metallb
  1654. app.kubernetes.io/version: "v0.13.11"
  1655. app.kubernetes.io/managed-by: Helm
  1656. spec:
  1657. ports:
  1658. - port: 443
  1659. targetPort: 9443
  1660. selector:
  1661. app.kubernetes.io/name: metallb
  1662. app.kubernetes.io/instance: metallb
  1663. app.kubernetes.io/component: controller
  1664. ---
  1665. # Source: metallb/templates/speaker.yaml
  1666. apiVersion: apps/v1
  1667. kind: DaemonSet
  1668. metadata:
  1669. name: metallb-speaker
  1670. namespace: "metallb-system"
  1671. labels:
  1672. helm.sh/chart: metallb-0.13.11
  1673. app.kubernetes.io/name: metallb
  1674. app.kubernetes.io/instance: metallb
  1675. app.kubernetes.io/version: "v0.13.11"
  1676. app.kubernetes.io/managed-by: Helm
  1677. app.kubernetes.io/component: speaker
  1678. spec:
  1679. updateStrategy:
  1680. type: RollingUpdate
  1681. selector:
  1682. matchLabels:
  1683. app.kubernetes.io/name: metallb
  1684. app.kubernetes.io/instance: metallb
  1685. app.kubernetes.io/component: speaker
  1686. template:
  1687. metadata:
  1688. labels:
  1689. app.kubernetes.io/name: metallb
  1690. app.kubernetes.io/instance: metallb
  1691. app.kubernetes.io/component: speaker
  1692. spec:
  1693. serviceAccountName: metallb-speaker
  1694. terminationGracePeriodSeconds: 0
  1695. hostNetwork: true
  1696. volumes:
  1697. - name: memberlist
  1698. secret:
  1699. secretName: metallb-memberlist
  1700. defaultMode: 420
  1701. - name: metallb-excludel2
  1702. configMap:
  1703. defaultMode: 256
  1704. name: metallb-excludel2
  1705. - name: frr-sockets
  1706. emptyDir: {}
  1707. - name: frr-startup
  1708. configMap:
  1709. name: metallb-frr-startup
  1710. - name: frr-conf
  1711. emptyDir: {}
  1712. - name: reloader
  1713. emptyDir: {}
  1714. - name: metrics
  1715. emptyDir: {}
  1716. initContainers:
  1717. # Copies the initial config files with the right permissions to the shared volume.
  1718. - name: cp-frr-files
  1719. image: quay.io/frrouting/frr:8.5.2
  1720. securityContext:
  1721. runAsUser: 100
  1722. runAsGroup: 101
  1723. command: ["/bin/sh", "-c", "cp -rLf /tmp/frr/* /etc/frr/"]
  1724. volumeMounts:
  1725. - name: frr-startup
  1726. mountPath: /tmp/frr
  1727. - name: frr-conf
  1728. mountPath: /etc/frr
  1729. # Copies the reloader to the shared volume between the speaker and reloader.
  1730. - name: cp-reloader
  1731. image: quay.io/metallb/speaker:v0.13.11
  1732. command: ["/bin/sh", "-c", "cp -f /frr-reloader.sh /etc/frr_reloader/"]
  1733. volumeMounts:
  1734. - name: reloader
  1735. mountPath: /etc/frr_reloader
  1736. # Copies the metrics exporter
  1737. - name: cp-metrics
  1738. image: quay.io/metallb/speaker:v0.13.11
  1739. command: ["/bin/sh", "-c", "cp -f /frr-metrics /etc/frr_metrics/"]
  1740. volumeMounts:
  1741. - name: metrics
  1742. mountPath: /etc/frr_metrics
  1743. shareProcessNamespace: true
  1744. containers:
  1745. - name: speaker
  1746. image: quay.io/metallb/speaker:v0.13.11
  1747. args:
  1748. - --port=7472
  1749. - --log-level=info
  1750. env:
  1751. - name: METALLB_NODE_NAME
  1752. valueFrom:
  1753. fieldRef:
  1754. fieldPath: spec.nodeName
  1755. - name: METALLB_HOST
  1756. valueFrom:
  1757. fieldRef:
  1758. fieldPath: status.hostIP
  1759. - name: METALLB_ML_BIND_ADDR
  1760. valueFrom:
  1761. fieldRef:
  1762. fieldPath: status.podIP
  1763. - name: METALLB_ML_LABELS
  1764. value: "app.kubernetes.io/name=metallb,app.kubernetes.io/component=speaker"
  1765. - name: METALLB_ML_BIND_PORT
  1766. value: "7946"
  1767. - name: METALLB_ML_SECRET_KEY_PATH
  1768. value: "/etc/ml_secret_key"
  1769. - name: FRR_CONFIG_FILE
  1770. value: /etc/frr_reloader/frr.conf
  1771. - name: FRR_RELOADER_PID_FILE
  1772. value: /etc/frr_reloader/reloader.pid
  1773. - name: METALLB_BGP_TYPE
  1774. value: frr
  1775. ports:
  1776. - name: monitoring
  1777. containerPort: 7472
  1778. - name: memberlist-tcp
  1779. containerPort: 7946
  1780. protocol: TCP
  1781. - name: memberlist-udp
  1782. containerPort: 7946
  1783. protocol: UDP
  1784. livenessProbe:
  1785. httpGet:
  1786. path: /metrics
  1787. port: monitoring
  1788. initialDelaySeconds: 10
  1789. periodSeconds: 10
  1790. timeoutSeconds: 1
  1791. successThreshold: 1
  1792. failureThreshold: 3
  1793. readinessProbe:
  1794. httpGet:
  1795. path: /metrics
  1796. port: monitoring
  1797. initialDelaySeconds: 10
  1798. periodSeconds: 10
  1799. timeoutSeconds: 1
  1800. successThreshold: 1
  1801. failureThreshold: 3
  1802. securityContext:
  1803. allowPrivilegeEscalation: false
  1804. readOnlyRootFilesystem: true
  1805. capabilities:
  1806. drop:
  1807. - ALL
  1808. add:
  1809. - NET_RAW
  1810. volumeMounts:
  1811. - name: memberlist
  1812. mountPath: /etc/ml_secret_key
  1813. - name: reloader
  1814. mountPath: /etc/frr_reloader
  1815. - name: metallb-excludel2
  1816. mountPath: /etc/metallb
  1817. - name: frr
  1818. securityContext:
  1819. capabilities:
  1820. add:
  1821. - NET_ADMIN
  1822. - NET_RAW
  1823. - SYS_ADMIN
  1824. - NET_BIND_SERVICE
  1825. image: quay.io/frrouting/frr:8.5.2
  1826. env:
  1827. - name: TINI_SUBREAPER
  1828. value: "true"
  1829. volumeMounts:
  1830. - name: frr-sockets
  1831. mountPath: /var/run/frr
  1832. - name: frr-conf
  1833. mountPath: /etc/frr
  1834. # The command is FRR's default entrypoint & waiting for the log file to appear and tailing it.
  1835. # If the log file isn't created in 60 seconds the tail fails and the container is restarted.
  1836. # This workaround is needed to have the frr logs as part of kubectl logs -c frr < speaker_pod_name >.
  1837. command:
  1838. - /bin/sh
  1839. - -c
  1840. - |
  1841. /sbin/tini -- /usr/lib/frr/docker-start &
  1842. attempts=0
  1843. until [[ -f /etc/frr/frr.log || $attempts -eq 60 ]]; do
  1844. sleep 1
  1845. attempts=$(( $attempts + 1 ))
  1846. done
  1847. tail -f /etc/frr/frr.log
  1848. livenessProbe:
  1849. httpGet:
  1850. path: /livez
  1851. port: 7473
  1852. initialDelaySeconds: 10
  1853. periodSeconds: 10
  1854. timeoutSeconds: 1
  1855. successThreshold: 1
  1856. failureThreshold: 3
  1857. startupProbe:
  1858. httpGet:
  1859. path: /livez
  1860. port: 7473
  1861. failureThreshold: 30
  1862. periodSeconds: 5
  1863. - name: reloader
  1864. image: quay.io/frrouting/frr:8.5.2
  1865. command: ["/etc/frr_reloader/frr-reloader.sh"]
  1866. volumeMounts:
  1867. - name: frr-sockets
  1868. mountPath: /var/run/frr
  1869. - name: frr-conf
  1870. mountPath: /etc/frr
  1871. - name: reloader
  1872. mountPath: /etc/frr_reloader
  1873. - name: frr-metrics
  1874. image: quay.io/frrouting/frr:8.5.2
  1875. command: ["/etc/frr_metrics/frr-metrics"]
  1876. args:
  1877. - --metrics-port=7473
  1878. ports:
  1879. - containerPort: 7473
  1880. name: monitoring
  1881. volumeMounts:
  1882. - name: frr-sockets
  1883. mountPath: /var/run/frr
  1884. - name: frr-conf
  1885. mountPath: /etc/frr
  1886. - name: metrics
  1887. mountPath: /etc/frr_metrics
  1888. nodeSelector:
  1889. "kubernetes.io/os": linux
  1890. tolerations:
  1891. - key: node-role.kubernetes.io/master
  1892. effect: NoSchedule
  1893. operator: Exists
  1894. - key: node-role.kubernetes.io/control-plane
  1895. effect: NoSchedule
  1896. operator: Exists
  1897. ---
  1898. # Source: metallb/templates/controller.yaml
  1899. apiVersion: apps/v1
  1900. kind: Deployment
  1901. metadata:
  1902. name: metallb-controller
  1903. namespace: "metallb-system"
  1904. labels:
  1905. helm.sh/chart: metallb-0.13.11
  1906. app.kubernetes.io/name: metallb
  1907. app.kubernetes.io/instance: metallb
  1908. app.kubernetes.io/version: "v0.13.11"
  1909. app.kubernetes.io/managed-by: Helm
  1910. app.kubernetes.io/component: controller
  1911. spec:
  1912. strategy:
  1913. type: RollingUpdate
  1914. selector:
  1915. matchLabels:
  1916. app.kubernetes.io/name: metallb
  1917. app.kubernetes.io/instance: metallb
  1918. app.kubernetes.io/component: controller
  1919. template:
  1920. metadata:
  1921. labels:
  1922. app.kubernetes.io/name: metallb
  1923. app.kubernetes.io/instance: metallb
  1924. app.kubernetes.io/component: controller
  1925. spec:
  1926. serviceAccountName: metallb-controller
  1927. terminationGracePeriodSeconds: 0
  1928. securityContext:
  1929. fsGroup: 65534
  1930. runAsNonRoot: true
  1931. runAsUser: 65534
  1932. containers:
  1933. - name: controller
  1934. image: quay.io/metallb/controller:v0.13.11
  1935. args:
  1936. - --port=7472
  1937. - --log-level=info
  1938. - --cert-service-name=metallb-webhook-service
  1939. env:
  1940. - name: METALLB_ML_SECRET_NAME
  1941. value: metallb-memberlist
  1942. - name: METALLB_DEPLOYMENT
  1943. value: metallb-controller
  1944. - name: METALLB_BGP_TYPE
  1945. value: frr
  1946. ports:
  1947. - name: monitoring
  1948. containerPort: 7472
  1949. - containerPort: 9443
  1950. name: webhook-server
  1951. protocol: TCP
  1952. volumeMounts:
  1953. - mountPath: /tmp/k8s-webhook-server/serving-certs
  1954. name: cert
  1955. readOnly: true
  1956. livenessProbe:
  1957. httpGet:
  1958. path: /metrics
  1959. port: monitoring
  1960. initialDelaySeconds: 10
  1961. periodSeconds: 10
  1962. timeoutSeconds: 1
  1963. successThreshold: 1
  1964. failureThreshold: 3
  1965. readinessProbe:
  1966. httpGet:
  1967. path: /metrics
  1968. port: monitoring
  1969. initialDelaySeconds: 10
  1970. periodSeconds: 10
  1971. timeoutSeconds: 1
  1972. successThreshold: 1
  1973. failureThreshold: 3
  1974. securityContext:
  1975. allowPrivilegeEscalation: false
  1976. readOnlyRootFilesystem: true
  1977. capabilities:
  1978. drop:
  1979. - ALL
  1980. nodeSelector:
  1981. "kubernetes.io/os": linux
  1982. volumes:
  1983. - name: cert
  1984. secret:
  1985. defaultMode: 420
  1986. secretName: webhook-server-cert
  1987. ---
  1988. # Source: metallb/templates/webhooks.yaml
  1989. apiVersion: admissionregistration.k8s.io/v1
  1990. kind: ValidatingWebhookConfiguration
  1991. metadata:
  1992. name: metallb-webhook-configuration
  1993. labels:
  1994. helm.sh/chart: metallb-0.13.11
  1995. app.kubernetes.io/name: metallb
  1996. app.kubernetes.io/instance: metallb
  1997. app.kubernetes.io/version: "v0.13.11"
  1998. app.kubernetes.io/managed-by: Helm
  1999. webhooks:
  2000. - admissionReviewVersions:
  2001. - v1
  2002. clientConfig:
  2003. service:
  2004. name: metallb-webhook-service
  2005. namespace: metallb-system
  2006. path: /validate-metallb-io-v1beta1-addresspool
  2007. failurePolicy: Fail
  2008. name: addresspoolvalidationwebhook.metallb.io
  2009. rules:
  2010. - apiGroups:
  2011. - metallb.io
  2012. apiVersions:
  2013. - v1beta1
  2014. operations:
  2015. - CREATE
  2016. - UPDATE
  2017. resources:
  2018. - addresspools
  2019. sideEffects: None
  2020. - admissionReviewVersions:
  2021. - v1
  2022. clientConfig:
  2023. service:
  2024. name: metallb-webhook-service
  2025. namespace: metallb-system
  2026. path: /validate-metallb-io-v1beta2-bgppeer
  2027. failurePolicy: Fail
  2028. name: bgppeervalidationwebhook.metallb.io
  2029. rules:
  2030. - apiGroups:
  2031. - metallb.io
  2032. apiVersions:
  2033. - v1beta2
  2034. operations:
  2035. - CREATE
  2036. - UPDATE
  2037. resources:
  2038. - bgppeers
  2039. sideEffects: None
  2040. - admissionReviewVersions:
  2041. - v1
  2042. clientConfig:
  2043. service:
  2044. name: metallb-webhook-service
  2045. namespace: metallb-system
  2046. path: /validate-metallb-io-v1beta1-ipaddresspool
  2047. failurePolicy: Fail
  2048. name: ipaddresspoolvalidationwebhook.metallb.io
  2049. rules:
  2050. - apiGroups:
  2051. - metallb.io
  2052. apiVersions:
  2053. - v1beta1
  2054. operations:
  2055. - CREATE
  2056. - UPDATE
  2057. resources:
  2058. - ipaddresspools
  2059. sideEffects: None
  2060. - admissionReviewVersions:
  2061. - v1
  2062. clientConfig:
  2063. service:
  2064. name: metallb-webhook-service
  2065. namespace: metallb-system
  2066. path: /validate-metallb-io-v1beta1-bgpadvertisement
  2067. failurePolicy: Fail
  2068. name: bgpadvertisementvalidationwebhook.metallb.io
  2069. rules:
  2070. - apiGroups:
  2071. - metallb.io
  2072. apiVersions:
  2073. - v1beta1
  2074. operations:
  2075. - CREATE
  2076. - UPDATE
  2077. resources:
  2078. - bgpadvertisements
  2079. sideEffects: None
  2080. - admissionReviewVersions:
  2081. - v1
  2082. clientConfig:
  2083. service:
  2084. name: metallb-webhook-service
  2085. namespace: metallb-system
  2086. path: /validate-metallb-io-v1beta1-community
  2087. failurePolicy: Fail
  2088. name: communityvalidationwebhook.metallb.io
  2089. rules:
  2090. - apiGroups:
  2091. - metallb.io
  2092. apiVersions:
  2093. - v1beta1
  2094. operations:
  2095. - CREATE
  2096. - UPDATE
  2097. resources:
  2098. - communities
  2099. sideEffects: None
  2100. - admissionReviewVersions:
  2101. - v1
  2102. clientConfig:
  2103. service:
  2104. name: metallb-webhook-service
  2105. namespace: metallb-system
  2106. path: /validate-metallb-io-v1beta1-bfdprofile
  2107. failurePolicy: Fail
  2108. name: bfdprofilevalidationwebhook.metallb.io
  2109. rules:
  2110. - apiGroups:
  2111. - metallb.io
  2112. apiVersions:
  2113. - v1beta1
  2114. operations:
  2115. - CREATE
  2116. - DELETE
  2117. resources:
  2118. - bfdprofiles
  2119. sideEffects: None
  2120. - admissionReviewVersions:
  2121. - v1
  2122. clientConfig:
  2123. service:
  2124. name: metallb-webhook-service
  2125. namespace: metallb-system
  2126. path: /validate-metallb-io-v1beta1-l2advertisement
  2127. failurePolicy: Fail
  2128. name: l2advertisementvalidationwebhook.metallb.io
  2129. rules:
  2130. - apiGroups:
  2131. - metallb.io
  2132. apiVersions:
  2133. - v1beta1
  2134. operations:
  2135. - CREATE
  2136. - UPDATE
  2137. resources:
  2138. - l2advertisements
  2139. sideEffects: None