| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414441544164417441844194420442144224423442444254426442744284429443044314432443344344435443644374438443944404441444244434444444544464447444844494450445144524453445444554456445744584459446044614462446344644465446644674468446944704471447244734474447544764477447844794480448144824483448444854486448744884489449044914492449344944495449644974498449945004501450245034504450545064507450845094510451145124513451445154516451745184519452045214522452345244525452645274528452945304531453245334534453545364537453845394540454145424543454445454546454745484549455045514552455345544555455645574558455945604561456245634564456545664567456845694570457145724573457445754576457745784579458045814582458345844585458645874588458945904591459245934594459545964597459845994600460146024603460446054606460746084609461046114612461346144615461646174618461946204621462246234624462546264627462846294630463146324633463446354636463746384639464046414642464346444645464646474648464946504651465246534654465546564657465846594660466146624663466446654666466746684669467046714672467346744675467646774678467946804681468246834684468546864687468846894690469146924693469446954696469746984699470047014702470347044705470647074708470947104711471247134714471547164717471847194720472147224723472447254726472747284729473047314732473347344735473647374738473947404741474247434744474547464747474847494750475147524753475447554756475747584759476047614762476347644765476647674768476947704771477247734774477547764777477847794780478147824783478447854786478747884789479047914792479347944795479647974798479948004801480248034804480548064807480848094810481148124813481448154816481748184819482048214822482348244825482648274828482948304831483248334834483548364837483848394840484148424843484448454846484748484849485048514852485348544855485648574858485948604861486248634864486548664867486848694870487148724873487448754876487748784879488048814882488348844885488648874888488948904891489248934894489548964897489848994900490149024903490449054906490749084909491049114912491349144915491649174918491949204921492249234924492549264927492849294930493149324933493449354936493749384939494049414942494349444945494649474948494949504951495249534954495549564957495849594960496149624963496449654966496749684969497049714972497349744975497649774978497949804981498249834984498549864987498849894990499149924993499449954996499749984999500050015002500350045005500650075008500950105011501250135014501550165017501850195020502150225023502450255026502750285029503050315032503350345035503650375038503950405041504250435044504550465047504850495050505150525053505450555056505750585059506050615062506350645065506650675068506950705071507250735074507550765077507850795080508150825083508450855086508750885089509050915092509350945095509650975098509951005101510251035104510551065107510851095110511151125113511451155116511751185119512051215122512351245125512651275128512951305131513251335134513551365137513851395140514151425143514451455146514751485149515051515152515351545155515651575158515951605161516251635164516551665167516851695170517151725173517451755176517751785179518051815182518351845185518651875188518951905191519251935194519551965197519851995200520152025203520452055206520752085209521052115212521352145215521652175218521952205221522252235224522552265227522852295230523152325233523452355236523752385239524052415242524352445245524652475248524952505251525252535254525552565257525852595260526152625263526452655266526752685269527052715272527352745275527652775278527952805281528252835284528552865287528852895290529152925293529452955296529752985299530053015302530353045305530653075308530953105311531253135314531553165317531853195320532153225323532453255326532753285329533053315332533353345335533653375338533953405341534253435344534553465347534853495350535153525353535453555356535753585359536053615362536353645365536653675368536953705371537253735374537553765377537853795380538153825383538453855386538753885389539053915392539353945395539653975398539954005401540254035404540554065407540854095410541154125413541454155416541754185419542054215422542354245425542654275428542954305431543254335434543554365437543854395440544154425443544454455446544754485449545054515452545354545455545654575458545954605461546254635464546554665467546854695470547154725473547454755476547754785479548054815482548354845485548654875488548954905491549254935494549554965497549854995500550155025503550455055506550755085509551055115512551355145515551655175518551955205521552255235524552555265527552855295530553155325533553455355536553755385539554055415542554355445545554655475548554955505551555255535554555555565557555855595560556155625563556455655566556755685569557055715572557355745575557655775578557955805581558255835584558555865587558855895590559155925593559455955596559755985599560056015602560356045605560656075608560956105611561256135614561556165617561856195620562156225623562456255626562756285629563056315632563356345635563656375638563956405641564256435644564556465647564856495650565156525653565456555656565756585659566056615662566356645665566656675668566956705671567256735674567556765677567856795680568156825683568456855686568756885689569056915692569356945695569656975698569957005701570257035704570557065707570857095710571157125713571457155716571757185719572057215722572357245725572657275728572957305731573257335734573557365737573857395740574157425743574457455746574757485749575057515752575357545755575657575758575957605761576257635764576557665767576857695770577157725773577457755776577757785779578057815782578357845785578657875788578957905791579257935794579557965797579857995800580158025803580458055806580758085809581058115812581358145815581658175818581958205821582258235824582558265827582858295830583158325833583458355836583758385839584058415842584358445845584658475848584958505851585258535854585558565857585858595860586158625863586458655866586758685869587058715872587358745875587658775878587958805881588258835884588558865887588858895890589158925893589458955896589758985899590059015902590359045905590659075908590959105911591259135914591559165917591859195920592159225923592459255926592759285929593059315932593359345935593659375938593959405941594259435944594559465947594859495950595159525953595459555956595759585959596059615962596359645965596659675968596959705971597259735974597559765977597859795980598159825983598459855986598759885989599059915992599359945995599659975998599960006001600260036004600560066007600860096010601160126013601460156016601760186019602060216022602360246025602660276028602960306031603260336034603560366037603860396040604160426043604460456046604760486049605060516052605360546055605660576058605960606061606260636064606560666067606860696070607160726073607460756076607760786079608060816082608360846085608660876088608960906091609260936094609560966097609860996100610161026103610461056106610761086109611061116112611361146115611661176118611961206121612261236124612561266127612861296130613161326133613461356136613761386139614061416142614361446145614661476148614961506151615261536154615561566157615861596160616161626163616461656166616761686169617061716172617361746175617661776178617961806181618261836184618561866187618861896190619161926193619461956196619761986199620062016202620362046205620662076208620962106211621262136214621562166217621862196220622162226223622462256226622762286229623062316232623362346235623662376238623962406241624262436244624562466247624862496250625162526253625462556256625762586259626062616262626362646265626662676268626962706271627262736274627562766277627862796280628162826283628462856286628762886289629062916292629362946295629662976298629963006301630263036304630563066307630863096310631163126313631463156316631763186319632063216322632363246325632663276328632963306331633263336334633563366337633863396340634163426343634463456346634763486349635063516352635363546355635663576358635963606361636263636364636563666367636863696370637163726373637463756376637763786379638063816382638363846385638663876388638963906391639263936394639563966397639863996400640164026403640464056406640764086409641064116412641364146415641664176418641964206421642264236424642564266427642864296430643164326433643464356436643764386439644064416442644364446445644664476448644964506451645264536454645564566457645864596460646164626463646464656466646764686469647064716472647364746475647664776478647964806481648264836484648564866487648864896490649164926493649464956496649764986499650065016502650365046505650665076508650965106511651265136514651565166517651865196520652165226523652465256526652765286529653065316532653365346535653665376538653965406541654265436544654565466547654865496550655165526553655465556556655765586559656065616562656365646565656665676568656965706571657265736574657565766577657865796580658165826583658465856586658765886589659065916592659365946595659665976598659966006601660266036604660566066607660866096610661166126613661466156616661766186619662066216622662366246625662666276628662966306631663266336634663566366637663866396640664166426643664466456646664766486649665066516652665366546655665666576658665966606661666266636664666566666667666866696670667166726673667466756676667766786679668066816682668366846685668666876688668966906691669266936694669566966697669866996700670167026703670467056706670767086709671067116712671367146715671667176718671967206721672267236724672567266727672867296730673167326733673467356736673767386739674067416742674367446745674667476748674967506751675267536754675567566757675867596760676167626763676467656766676767686769677067716772677367746775677667776778677967806781678267836784678567866787678867896790679167926793679467956796679767986799680068016802680368046805680668076808680968106811681268136814681568166817681868196820682168226823682468256826682768286829683068316832683368346835683668376838683968406841684268436844684568466847684868496850685168526853685468556856685768586859686068616862686368646865686668676868686968706871687268736874687568766877687868796880688168826883688468856886688768886889689068916892689368946895689668976898689969006901690269036904690569066907690869096910691169126913691469156916691769186919692069216922692369246925692669276928692969306931693269336934693569366937693869396940694169426943694469456946694769486949695069516952695369546955695669576958695969606961696269636964696569666967696869696970697169726973697469756976697769786979698069816982698369846985698669876988698969906991699269936994699569966997699869997000700170027003700470057006700770087009701070117012701370147015701670177018701970207021702270237024702570267027702870297030703170327033703470357036703770387039704070417042704370447045704670477048704970507051705270537054705570567057705870597060706170627063706470657066706770687069707070717072707370747075707670777078707970807081708270837084708570867087708870897090709170927093709470957096709770987099710071017102710371047105710671077108710971107111711271137114711571167117711871197120712171227123712471257126712771287129713071317132713371347135713671377138713971407141714271437144714571467147714871497150715171527153715471557156715771587159716071617162716371647165716671677168716971707171717271737174717571767177717871797180718171827183718471857186718771887189719071917192719371947195719671977198719972007201720272037204720572067207720872097210721172127213721472157216721772187219722072217222722372247225722672277228722972307231723272337234723572367237723872397240724172427243724472457246724772487249725072517252725372547255725672577258725972607261726272637264726572667267726872697270727172727273727472757276727772787279728072817282728372847285728672877288728972907291729272937294729572967297729872997300730173027303730473057306730773087309731073117312731373147315731673177318731973207321732273237324732573267327732873297330733173327333733473357336733773387339734073417342734373447345734673477348734973507351735273537354735573567357735873597360736173627363736473657366736773687369737073717372737373747375737673777378737973807381738273837384738573867387738873897390739173927393739473957396739773987399740074017402740374047405740674077408740974107411741274137414741574167417741874197420742174227423742474257426742774287429743074317432743374347435743674377438743974407441744274437444744574467447744874497450745174527453745474557456745774587459746074617462746374647465746674677468746974707471747274737474747574767477747874797480748174827483748474857486748774887489749074917492749374947495749674977498749975007501750275037504750575067507750875097510751175127513751475157516751775187519752075217522752375247525752675277528752975307531753275337534753575367537753875397540754175427543754475457546754775487549755075517552755375547555755675577558755975607561756275637564756575667567756875697570757175727573757475757576757775787579758075817582758375847585758675877588758975907591759275937594759575967597759875997600760176027603760476057606760776087609761076117612761376147615761676177618761976207621762276237624762576267627762876297630763176327633763476357636763776387639764076417642764376447645764676477648764976507651765276537654765576567657765876597660766176627663766476657666766776687669767076717672767376747675767676777678767976807681768276837684768576867687768876897690769176927693769476957696769776987699770077017702770377047705770677077708770977107711771277137714771577167717771877197720772177227723772477257726772777287729773077317732773377347735773677377738773977407741774277437744774577467747774877497750775177527753775477557756775777587759776077617762776377647765776677677768776977707771777277737774777577767777777877797780778177827783778477857786778777887789779077917792779377947795779677977798779978007801780278037804780578067807780878097810781178127813781478157816781778187819782078217822782378247825782678277828782978307831783278337834783578367837783878397840784178427843784478457846784778487849785078517852785378547855785678577858785978607861786278637864786578667867786878697870787178727873787478757876787778787879788078817882788378847885788678877888788978907891789278937894789578967897789878997900790179027903790479057906790779087909791079117912791379147915791679177918791979207921792279237924792579267927792879297930793179327933793479357936793779387939794079417942794379447945794679477948794979507951795279537954795579567957795879597960796179627963796479657966796779687969797079717972797379747975797679777978797979807981798279837984798579867987798879897990799179927993799479957996799779987999800080018002800380048005800680078008800980108011801280138014801580168017801880198020802180228023802480258026802780288029803080318032803380348035803680378038803980408041804280438044804580468047804880498050805180528053805480558056805780588059806080618062806380648065806680678068806980708071807280738074807580768077807880798080808180828083808480858086808780888089809080918092809380948095809680978098809981008101810281038104810581068107810881098110811181128113811481158116811781188119812081218122812381248125812681278128812981308131813281338134813581368137813881398140814181428143814481458146814781488149815081518152815381548155815681578158815981608161816281638164816581668167816881698170817181728173817481758176817781788179818081818182818381848185818681878188818981908191819281938194819581968197819881998200820182028203820482058206820782088209821082118212821382148215821682178218821982208221822282238224822582268227822882298230823182328233823482358236823782388239824082418242824382448245824682478248824982508251825282538254825582568257825882598260826182628263826482658266826782688269827082718272827382748275827682778278827982808281828282838284828582868287828882898290829182928293829482958296829782988299830083018302830383048305830683078308830983108311831283138314831583168317831883198320832183228323832483258326832783288329833083318332833383348335833683378338833983408341834283438344834583468347834883498350835183528353835483558356835783588359836083618362836383648365836683678368836983708371837283738374837583768377837883798380838183828383838483858386838783888389839083918392839383948395839683978398839984008401840284038404840584068407840884098410841184128413841484158416841784188419842084218422842384248425842684278428842984308431843284338434843584368437843884398440844184428443844484458446844784488449845084518452845384548455845684578458845984608461846284638464846584668467846884698470847184728473847484758476847784788479848084818482848384848485848684878488848984908491849284938494849584968497849884998500850185028503850485058506850785088509851085118512851385148515851685178518851985208521852285238524852585268527852885298530853185328533853485358536853785388539854085418542854385448545854685478548854985508551855285538554855585568557855885598560856185628563856485658566856785688569857085718572857385748575857685778578857985808581858285838584858585868587858885898590859185928593859485958596859785988599860086018602860386048605860686078608860986108611861286138614861586168617861886198620862186228623862486258626862786288629863086318632863386348635863686378638863986408641864286438644864586468647864886498650865186528653865486558656865786588659866086618662866386648665866686678668866986708671867286738674867586768677867886798680868186828683868486858686868786888689869086918692869386948695869686978698869987008701870287038704870587068707870887098710871187128713871487158716871787188719872087218722872387248725872687278728872987308731873287338734873587368737873887398740874187428743874487458746874787488749875087518752875387548755875687578758875987608761876287638764876587668767876887698770877187728773877487758776877787788779878087818782878387848785878687878788878987908791879287938794879587968797879887998800880188028803880488058806880788088809881088118812881388148815881688178818881988208821882288238824882588268827882888298830883188328833883488358836883788388839884088418842884388448845884688478848884988508851885288538854885588568857885888598860886188628863886488658866886788688869887088718872887388748875887688778878887988808881888288838884888588868887888888898890889188928893889488958896889788988899890089018902890389048905890689078908890989108911891289138914891589168917891889198920892189228923892489258926892789288929893089318932893389348935893689378938893989408941894289438944894589468947894889498950895189528953895489558956895789588959896089618962896389648965896689678968896989708971897289738974897589768977897889798980898189828983898489858986898789888989899089918992899389948995899689978998899990009001900290039004900590069007900890099010901190129013901490159016901790189019902090219022902390249025902690279028902990309031903290339034903590369037903890399040904190429043904490459046904790489049905090519052905390549055905690579058905990609061906290639064906590669067906890699070907190729073907490759076907790789079908090819082908390849085908690879088908990909091909290939094909590969097909890999100910191029103910491059106910791089109911091119112911391149115911691179118911991209121912291239124912591269127912891299130913191329133913491359136913791389139914091419142914391449145914691479148914991509151915291539154915591569157915891599160916191629163916491659166916791689169917091719172917391749175917691779178917991809181918291839184918591869187918891899190919191929193919491959196919791989199920092019202920392049205920692079208920992109211921292139214921592169217921892199220922192229223922492259226922792289229923092319232923392349235923692379238923992409241924292439244924592469247924892499250925192529253925492559256925792589259926092619262926392649265926692679268926992709271927292739274927592769277927892799280928192829283928492859286928792889289929092919292929392949295929692979298929993009301930293039304930593069307930893099310931193129313931493159316931793189319932093219322932393249325932693279328932993309331933293339334933593369337933893399340934193429343934493459346934793489349935093519352935393549355935693579358935993609361936293639364936593669367936893699370937193729373937493759376937793789379938093819382938393849385938693879388938993909391939293939394939593969397939893999400940194029403940494059406940794089409941094119412941394149415941694179418941994209421942294239424942594269427942894299430943194329433943494359436943794389439944094419442944394449445944694479448944994509451945294539454945594569457945894599460946194629463946494659466946794689469947094719472947394749475947694779478947994809481948294839484948594869487948894899490949194929493949494959496949794989499950095019502950395049505950695079508950995109511951295139514951595169517951895199520952195229523952495259526952795289529953095319532953395349535953695379538953995409541954295439544954595469547954895499550955195529553955495559556955795589559956095619562956395649565956695679568956995709571957295739574957595769577957895799580958195829583958495859586958795889589959095919592959395949595959695979598959996009601960296039604960596069607960896099610961196129613961496159616961796189619962096219622962396249625962696279628962996309631963296339634963596369637963896399640964196429643964496459646964796489649965096519652965396549655965696579658965996609661966296639664966596669667966896699670967196729673967496759676967796789679968096819682968396849685968696879688968996909691969296939694969596969697969896999700970197029703970497059706970797089709971097119712971397149715971697179718971997209721972297239724972597269727972897299730973197329733973497359736973797389739974097419742974397449745974697479748974997509751975297539754975597569757975897599760976197629763976497659766976797689769977097719772977397749775977697779778977997809781978297839784978597869787978897899790979197929793979497959796979797989799980098019802980398049805980698079808980998109811981298139814981598169817981898199820982198229823982498259826982798289829983098319832983398349835983698379838983998409841984298439844984598469847984898499850985198529853985498559856985798589859986098619862986398649865986698679868986998709871987298739874987598769877987898799880988198829883988498859886988798889889989098919892989398949895989698979898989999009901990299039904990599069907990899099910991199129913991499159916991799189919992099219922992399249925992699279928992999309931993299339934993599369937993899399940994199429943994499459946994799489949995099519952995399549955995699579958995999609961996299639964996599669967996899699970997199729973997499759976997799789979998099819982998399849985998699879988998999909991999299939994999599969997999899991000010001100021000310004100051000610007100081000910010100111001210013100141001510016100171001810019100201002110022100231002410025100261002710028100291003010031100321003310034100351003610037100381003910040100411004210043100441004510046100471004810049100501005110052100531005410055100561005710058100591006010061100621006310064100651006610067100681006910070100711007210073100741007510076100771007810079100801008110082100831008410085100861008710088100891009010091100921009310094100951009610097100981009910100101011010210103101041010510106101071010810109101101011110112101131011410115101161011710118101191012010121101221012310124101251012610127101281012910130101311013210133101341013510136101371013810139101401014110142101431014410145101461014710148101491015010151101521015310154101551015610157101581015910160101611016210163101641016510166101671016810169101701017110172101731017410175101761017710178101791018010181101821018310184101851018610187101881018910190101911019210193101941019510196101971019810199102001020110202102031020410205102061020710208102091021010211102121021310214102151021610217102181021910220102211022210223102241022510226102271022810229102301023110232102331023410235102361023710238102391024010241102421024310244102451024610247102481024910250102511025210253102541025510256102571025810259102601026110262102631026410265102661026710268102691027010271102721027310274102751027610277102781027910280102811028210283102841028510286102871028810289102901029110292102931029410295102961029710298102991030010301103021030310304103051030610307103081030910310103111031210313103141031510316103171031810319103201032110322103231032410325103261032710328103291033010331103321033310334103351033610337103381033910340103411034210343103441034510346103471034810349103501035110352103531035410355103561035710358103591036010361103621036310364103651036610367103681036910370103711037210373103741037510376103771037810379103801038110382103831038410385103861038710388103891039010391103921039310394103951039610397103981039910400104011040210403104041040510406104071040810409104101041110412104131041410415104161041710418104191042010421104221042310424104251042610427104281042910430104311043210433104341043510436104371043810439104401044110442104431044410445104461044710448104491045010451104521045310454104551045610457104581045910460104611046210463104641046510466104671046810469104701047110472104731047410475104761047710478104791048010481104821048310484104851048610487104881048910490104911049210493104941049510496104971049810499105001050110502105031050410505105061050710508105091051010511105121051310514105151051610517105181051910520105211052210523105241052510526105271052810529105301053110532105331053410535105361053710538105391054010541105421054310544105451054610547105481054910550105511055210553105541055510556105571055810559105601056110562105631056410565105661056710568105691057010571105721057310574105751057610577105781057910580105811058210583105841058510586105871058810589105901059110592105931059410595105961059710598105991060010601106021060310604106051060610607106081060910610106111061210613106141061510616106171061810619106201062110622106231062410625106261062710628106291063010631106321063310634106351063610637106381063910640106411064210643106441064510646106471064810649106501065110652106531065410655106561065710658106591066010661106621066310664106651066610667106681066910670106711067210673106741067510676106771067810679106801068110682106831068410685106861068710688106891069010691106921069310694106951069610697106981069910700107011070210703107041070510706107071070810709107101071110712107131071410715107161071710718107191072010721107221072310724107251072610727107281072910730107311073210733107341073510736107371073810739107401074110742107431074410745107461074710748107491075010751107521075310754107551075610757107581075910760107611076210763107641076510766107671076810769107701077110772107731077410775107761077710778107791078010781107821078310784107851078610787107881078910790107911079210793107941079510796107971079810799108001080110802108031080410805108061080710808108091081010811108121081310814108151081610817108181081910820108211082210823108241082510826108271082810829108301083110832108331083410835108361083710838108391084010841108421084310844108451084610847108481084910850108511085210853108541085510856108571085810859108601086110862108631086410865108661086710868108691087010871108721087310874108751087610877108781087910880108811088210883108841088510886108871088810889108901089110892108931089410895108961089710898108991090010901109021090310904109051090610907109081090910910109111091210913109141091510916109171091810919109201092110922109231092410925109261092710928109291093010931109321093310934109351093610937109381093910940109411094210943109441094510946109471094810949109501095110952109531095410955109561095710958109591096010961109621096310964109651096610967109681096910970109711097210973109741097510976109771097810979109801098110982109831098410985109861098710988109891099010991109921099310994109951099610997109981099911000110011100211003110041100511006110071100811009110101101111012110131101411015110161101711018110191102011021110221102311024110251102611027110281102911030110311103211033110341103511036110371103811039110401104111042110431104411045110461104711048110491105011051110521105311054110551105611057110581105911060110611106211063110641106511066110671106811069110701107111072110731107411075110761107711078110791108011081110821108311084110851108611087110881108911090110911109211093110941109511096110971109811099111001110111102111031110411105111061110711108111091111011111111121111311114111151111611117111181111911120111211112211123111241112511126111271112811129111301113111132111331113411135111361113711138111391114011141111421114311144111451114611147111481114911150111511115211153111541115511156111571115811159111601116111162111631116411165111661116711168111691117011171111721117311174111751117611177111781117911180111811118211183111841118511186111871118811189111901119111192111931119411195111961119711198111991120011201112021120311204112051120611207112081120911210112111121211213112141121511216112171121811219112201122111222112231122411225112261122711228112291123011231112321123311234112351123611237112381123911240112411124211243112441124511246112471124811249112501125111252112531125411255112561125711258112591126011261112621126311264112651126611267112681126911270112711127211273112741127511276112771127811279112801128111282112831128411285112861128711288112891129011291112921129311294112951129611297112981129911300113011130211303113041130511306113071130811309113101131111312113131131411315113161131711318113191132011321113221132311324113251132611327113281132911330113311133211333113341133511336113371133811339113401134111342113431134411345113461134711348113491135011351113521135311354113551135611357113581135911360113611136211363113641136511366113671136811369113701137111372113731137411375113761137711378113791138011381113821138311384113851138611387113881138911390113911139211393113941139511396113971139811399114001140111402114031140411405114061140711408114091141011411114121141311414114151141611417114181141911420114211142211423114241142511426114271142811429114301143111432114331143411435114361143711438114391144011441114421144311444114451144611447114481144911450114511145211453114541145511456114571145811459114601146111462114631146411465114661146711468114691147011471114721147311474114751147611477114781147911480114811148211483114841148511486114871148811489114901149111492114931149411495114961149711498114991150011501115021150311504115051150611507115081150911510115111151211513115141151511516115171151811519115201152111522115231152411525115261152711528115291153011531115321153311534115351153611537115381153911540115411154211543115441154511546115471154811549115501155111552115531155411555115561155711558115591156011561115621156311564115651156611567115681156911570115711157211573115741157511576115771157811579115801158111582115831158411585115861158711588115891159011591115921159311594115951159611597115981159911600116011160211603116041160511606116071160811609116101161111612116131161411615116161161711618116191162011621116221162311624116251162611627116281162911630116311163211633116341163511636116371163811639116401164111642116431164411645116461164711648116491165011651116521165311654116551165611657116581165911660116611166211663116641166511666116671166811669116701167111672116731167411675116761167711678116791168011681116821168311684116851168611687116881168911690116911169211693116941169511696116971169811699117001170111702117031170411705117061170711708117091171011711117121171311714117151171611717117181171911720117211172211723117241172511726117271172811729117301173111732117331173411735117361173711738117391174011741117421174311744117451174611747117481174911750117511175211753117541175511756117571175811759117601176111762117631176411765117661176711768117691177011771117721177311774117751177611777117781177911780117811178211783117841178511786117871178811789117901179111792117931179411795117961179711798117991180011801118021180311804118051180611807118081180911810118111181211813118141181511816118171181811819118201182111822118231182411825118261182711828118291183011831118321183311834118351183611837118381183911840118411184211843118441184511846118471184811849118501185111852118531185411855118561185711858118591186011861118621186311864118651186611867118681186911870118711187211873118741187511876118771187811879118801188111882118831188411885118861188711888118891189011891118921189311894118951189611897118981189911900119011190211903119041190511906119071190811909119101191111912119131191411915119161191711918119191192011921119221192311924119251192611927119281192911930119311193211933119341193511936119371193811939119401194111942119431194411945119461194711948119491195011951119521195311954119551195611957119581195911960119611196211963119641196511966119671196811969119701197111972119731197411975119761197711978119791198011981119821198311984119851198611987119881198911990119911199211993119941199511996119971199811999120001200112002120031200412005120061200712008120091201012011120121201312014120151201612017120181201912020120211202212023120241202512026120271202812029120301203112032120331203412035120361203712038120391204012041120421204312044120451204612047120481204912050120511205212053120541205512056120571205812059120601206112062120631206412065120661206712068120691207012071120721207312074120751207612077120781207912080120811208212083120841208512086120871208812089120901209112092120931209412095120961209712098120991210012101121021210312104121051210612107121081210912110121111211212113121141211512116121171211812119121201212112122121231212412125121261212712128121291213012131121321213312134121351213612137121381213912140121411214212143121441214512146121471214812149121501215112152121531215412155121561215712158121591216012161121621216312164121651216612167121681216912170121711217212173121741217512176121771217812179121801218112182121831218412185121861218712188121891219012191121921219312194121951219612197121981219912200122011220212203122041220512206122071220812209122101221112212122131221412215122161221712218122191222012221122221222312224122251222612227122281222912230122311223212233122341223512236122371223812239122401224112242122431224412245122461224712248122491225012251122521225312254122551225612257122581225912260122611226212263122641226512266122671226812269122701227112272122731227412275122761227712278122791228012281122821228312284122851228612287122881228912290122911229212293122941229512296122971229812299123001230112302123031230412305123061230712308123091231012311123121231312314123151231612317123181231912320123211232212323123241232512326123271232812329123301233112332123331233412335123361233712338123391234012341123421234312344123451234612347123481234912350123511235212353123541235512356123571235812359123601236112362123631236412365123661236712368123691237012371123721237312374123751237612377123781237912380123811238212383123841238512386123871238812389123901239112392123931239412395123961239712398123991240012401124021240312404124051240612407124081240912410124111241212413124141241512416124171241812419124201242112422124231242412425124261242712428124291243012431124321243312434124351243612437124381243912440124411244212443124441244512446124471244812449124501245112452124531245412455124561245712458124591246012461124621246312464124651246612467124681246912470124711247212473124741247512476124771247812479124801248112482124831248412485124861248712488124891249012491124921249312494124951249612497124981249912500125011250212503125041250512506125071250812509125101251112512125131251412515125161251712518125191252012521125221252312524125251252612527125281252912530125311253212533125341253512536125371253812539125401254112542125431254412545125461254712548125491255012551125521255312554125551255612557125581255912560125611256212563125641256512566125671256812569125701257112572125731257412575125761257712578125791258012581125821258312584125851258612587125881258912590125911259212593125941259512596125971259812599126001260112602126031260412605126061260712608126091261012611126121261312614126151261612617126181261912620126211262212623126241262512626126271262812629126301263112632126331263412635126361263712638126391264012641126421264312644126451264612647126481264912650126511265212653126541265512656126571265812659126601266112662126631266412665126661266712668126691267012671126721267312674126751267612677126781267912680126811268212683126841268512686126871268812689126901269112692126931269412695 | # This is an auto-generated file. DO NOT EDITapiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  labels:    app.kubernetes.io/name: applications.argoproj.io    app.kubernetes.io/part-of: argocd  name: applications.argoproj.iospec:  group: argoproj.io  names:    kind: Application    listKind: ApplicationList    plural: applications    shortNames:    - app    - apps    singular: application  scope: Namespaced  versions:  - additionalPrinterColumns:    - jsonPath: .status.sync.status      name: Sync Status      type: string    - jsonPath: .status.health.status      name: Health Status      type: string    - jsonPath: .status.sync.revision      name: Revision      priority: 10      type: string    name: v1alpha1    schema:      openAPIV3Schema:        description: Application is a definition of Application resource.        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          operation:            description: Operation contains information about a requested or running              operation            properties:              info:                description: Info is a list of informational items for this operation                items:                  properties:                    name:                      type: string                    value:                      type: string                  required:                  - name                  - value                  type: object                type: array              initiatedBy:                description: InitiatedBy contains information about who initiated                  the operations                properties:                  automated:                    description: Automated is set to true if operation was initiated                      automatically by the application controller.                    type: boolean                  username:                    description: Username contains the name of a user who started                      operation                    type: string                type: object              retry:                description: Retry controls the strategy to apply if a sync fails                properties:                  backoff:                    description: Backoff controls how to backoff on subsequent retries                      of failed syncs                    properties:                      duration:                        description: Duration is the amount to back off. Default unit                          is seconds, but could also be a duration (e.g. "2m", "1h")                        type: string                      factor:                        description: Factor is a factor to multiply the base duration                          after each failed retry                        format: int64                        type: integer                      maxDuration:                        description: MaxDuration is the maximum amount of time allowed                          for the backoff strategy                        type: string                    type: object                  limit:                    description: Limit is the maximum number of attempts for retrying                      a failed sync. If set to 0, no retries will be performed.                    format: int64                    type: integer                type: object              sync:                description: Sync contains parameters for the operation                properties:                  dryRun:                    description: DryRun specifies to perform a `kubectl apply --dry-run`                      without actually performing the sync                    type: boolean                  manifests:                    description: Manifests is an optional field that overrides sync                      source with a local directory for development                    items:                      type: string                    type: array                  prune:                    description: Prune specifies to delete resources from the cluster                      that are no longer tracked in git                    type: boolean                  resources:                    description: Resources describes which resources shall be part                      of the sync                    items:                      description: SyncOperationResource contains resources to sync.                      properties:                        group:                          type: string                        kind:                          type: string                        name:                          type: string                        namespace:                          type: string                      required:                      - kind                      - name                      type: object                    type: array                  revision:                    description: Revision is the revision (Git) or chart version (Helm)                      which to sync the application to If omitted, will use the revision                      specified in app spec.                    type: string                  source:                    description: Source overrides the source definition set in the                      application. This is typically set in a Rollback operation and                      is nil during a Sync operation                    properties:                      chart:                        description: Chart is a Helm chart name, and must be specified                          for applications sourced from a Helm repo.                        type: string                      directory:                        description: Directory holds path/directory specific options                        properties:                          exclude:                            description: Exclude contains a glob pattern to match                              paths against that should be explicitly excluded from                              being used during manifest generation                            type: string                          include:                            description: Include contains a glob pattern to match                              paths against that should be explicitly included during                              manifest generation                            type: string                          jsonnet:                            description: Jsonnet holds options specific to Jsonnet                            properties:                              extVars:                                description: ExtVars is a list of Jsonnet External                                  Variables                                items:                                  description: JsonnetVar represents a variable to                                    be passed to jsonnet during manifest generation                                  properties:                                    code:                                      type: boolean                                    name:                                      type: string                                    value:                                      type: string                                  required:                                  - name                                  - value                                  type: object                                type: array                              libs:                                description: Additional library search dirs                                items:                                  type: string                                type: array                              tlas:                                description: TLAS is a list of Jsonnet Top-level Arguments                                items:                                  description: JsonnetVar represents a variable to                                    be passed to jsonnet during manifest generation                                  properties:                                    code:                                      type: boolean                                    name:                                      type: string                                    value:                                      type: string                                  required:                                  - name                                  - value                                  type: object                                type: array                            type: object                          recurse:                            description: Recurse specifies whether to scan a directory                              recursively for manifests                            type: boolean                        type: object                      helm:                        description: Helm holds helm specific options                        properties:                          fileParameters:                            description: FileParameters are file parameters to the                              helm template                            items:                              description: HelmFileParameter is a file parameter that's                                passed to helm template during manifest generation                              properties:                                name:                                  description: Name is the name of the Helm parameter                                  type: string                                path:                                  description: Path is the path to the file containing                                    the values for the Helm parameter                                  type: string                              type: object                            type: array                          ignoreMissingValueFiles:                            description: IgnoreMissingValueFiles prevents helm template                              from failing when valueFiles do not exist locally by                              not appending them to helm template --values                            type: boolean                          parameters:                            description: Parameters is a list of Helm parameters which                              are passed to the helm template command upon manifest                              generation                            items:                              description: HelmParameter is a parameter that's passed                                to helm template during manifest generation                              properties:                                forceString:                                  description: ForceString determines whether to tell                                    Helm to interpret booleans and numbers as strings                                  type: boolean                                name:                                  description: Name is the name of the Helm parameter                                  type: string                                value:                                  description: Value is the value for the Helm parameter                                  type: string                              type: object                            type: array                          passCredentials:                            description: PassCredentials pass credentials to all domains                              (Helm's --pass-credentials)                            type: boolean                          releaseName:                            description: ReleaseName is the Helm release name to use.                              If omitted it will use the application name                            type: string                          skipCrds:                            description: SkipCrds skips custom resource definition                              installation step (Helm's --skip-crds)                            type: boolean                          valueFiles:                            description: ValuesFiles is a list of Helm value files                              to use when generating a template                            items:                              type: string                            type: array                          values:                            description: Values specifies Helm values to be passed                              to helm template, typically defined as a block                            type: string                          version:                            description: Version is the Helm version to use for templating                              ("3")                            type: string                        type: object                      kustomize:                        description: Kustomize holds kustomize specific options                        properties:                          commonAnnotations:                            additionalProperties:                              type: string                            description: CommonAnnotations is a list of additional                              annotations to add to rendered manifests                            type: object                          commonLabels:                            additionalProperties:                              type: string                            description: CommonLabels is a list of additional labels                              to add to rendered manifests                            type: object                          forceCommonAnnotations:                            description: ForceCommonAnnotations specifies whether                              to force applying common annotations to resources for                              Kustomize apps                            type: boolean                          forceCommonLabels:                            description: ForceCommonLabels specifies whether to force                              applying common labels to resources for Kustomize apps                            type: boolean                          images:                            description: Images is a list of Kustomize image override                              specifications                            items:                              description: KustomizeImage represents a Kustomize image                                definition in the format [old_image_name=]<image_name>:<image_tag>                              type: string                            type: array                          namePrefix:                            description: NamePrefix is a prefix appended to resources                              for Kustomize apps                            type: string                          nameSuffix:                            description: NameSuffix is a suffix appended to resources                              for Kustomize apps                            type: string                          version:                            description: Version controls which version of Kustomize                              to use for rendering manifests                            type: string                        type: object                      path:                        description: Path is a directory path within the Git repository,                          and is only valid for applications sourced from Git.                        type: string                      plugin:                        description: Plugin holds config management plugin specific                          options                        properties:                          env:                            description: Env is a list of environment variable entries                            items:                              description: EnvEntry represents an entry in the application's                                environment                              properties:                                name:                                  description: Name is the name of the variable, usually                                    expressed in uppercase                                  type: string                                value:                                  description: Value is the value of the variable                                  type: string                              required:                              - name                              - value                              type: object                            type: array                          name:                            type: string                        type: object                      repoURL:                        description: RepoURL is the URL to the repository (Git or                          Helm) that contains the application manifests                        type: string                      targetRevision:                        description: TargetRevision defines the revision of the source                          to sync the application to. In case of Git, this can be                          commit, tag, or branch. If omitted, will equal to HEAD.                          In case of Helm, this is a semver tag for the Chart's version.                        type: string                    required:                    - repoURL                    type: object                  syncOptions:                    description: SyncOptions provide per-sync sync-options, e.g. Validate=false                    items:                      type: string                    type: array                  syncStrategy:                    description: SyncStrategy describes how to perform the sync                    properties:                      apply:                        description: Apply will perform a `kubectl apply` to perform                          the sync.                        properties:                          force:                            description: Force indicates whether or not to supply                              the --force flag to `kubectl apply`. The --force flag                              deletes and re-create the resource, when PATCH encounters                              conflict and has retried for 5 times.                            type: boolean                        type: object                      hook:                        description: Hook will submit any referenced resources to                          perform the sync. This is the default strategy                        properties:                          force:                            description: Force indicates whether or not to supply                              the --force flag to `kubectl apply`. The --force flag                              deletes and re-create the resource, when PATCH encounters                              conflict and has retried for 5 times.                            type: boolean                        type: object                    type: object                type: object            type: object          spec:            description: ApplicationSpec represents desired application state. Contains              link to repository with application definition and additional parameters              link definition revision.            properties:              destination:                description: Destination is a reference to the target Kubernetes server                  and namespace                properties:                  name:                    description: Name is an alternate way of specifying the target                      cluster by its symbolic name                    type: string                  namespace:                    description: Namespace specifies the target namespace for the                      application's resources. The namespace will only be set for                      namespace-scoped resources that have not set a value for .metadata.namespace                    type: string                  server:                    description: Server specifies the URL of the target cluster and                      must be set to the Kubernetes control plane API                    type: string                type: object              ignoreDifferences:                description: IgnoreDifferences is a list of resources and their fields                  which should be ignored during comparison                items:                  description: ResourceIgnoreDifferences contains resource filter                    and list of json paths which should be ignored during comparison                    with live state.                  properties:                    group:                      type: string                    jqPathExpressions:                      items:                        type: string                      type: array                    jsonPointers:                      items:                        type: string                      type: array                    kind:                      type: string                    managedFieldsManagers:                      description: ManagedFieldsManagers is a list of trusted managers.                        Fields mutated by those managers will take precedence over                        the desired state defined in the SCM and won't be displayed                        in diffs                      items:                        type: string                      type: array                    name:                      type: string                    namespace:                      type: string                  required:                  - kind                  type: object                type: array              info:                description: Info contains a list of information (URLs, email addresses,                  and plain text) that relates to the application                items:                  properties:                    name:                      type: string                    value:                      type: string                  required:                  - name                  - value                  type: object                type: array              project:                description: Project is a reference to the project this application                  belongs to. The empty string means that application belongs to the                  'default' project.                type: string              revisionHistoryLimit:                description: RevisionHistoryLimit limits the number of items kept                  in the application's revision history, which is used for informational                  purposes as well as for rollbacks to previous versions. This should                  only be changed in exceptional circumstances. Setting to zero will                  store no history. This will reduce storage used. Increasing will                  increase the space used to store the history, so we do not recommend                  increasing it. Default is 10.                format: int64                type: integer              source:                description: Source is a reference to the location of the application's                  manifests or chart                properties:                  chart:                    description: Chart is a Helm chart name, and must be specified                      for applications sourced from a Helm repo.                    type: string                  directory:                    description: Directory holds path/directory specific options                    properties:                      exclude:                        description: Exclude contains a glob pattern to match paths                          against that should be explicitly excluded from being used                          during manifest generation                        type: string                      include:                        description: Include contains a glob pattern to match paths                          against that should be explicitly included during manifest                          generation                        type: string                      jsonnet:                        description: Jsonnet holds options specific to Jsonnet                        properties:                          extVars:                            description: ExtVars is a list of Jsonnet External Variables                            items:                              description: JsonnetVar represents a variable to be                                passed to jsonnet during manifest generation                              properties:                                code:                                  type: boolean                                name:                                  type: string                                value:                                  type: string                              required:                              - name                              - value                              type: object                            type: array                          libs:                            description: Additional library search dirs                            items:                              type: string                            type: array                          tlas:                            description: TLAS is a list of Jsonnet Top-level Arguments                            items:                              description: JsonnetVar represents a variable to be                                passed to jsonnet during manifest generation                              properties:                                code:                                  type: boolean                                name:                                  type: string                                value:                                  type: string                              required:                              - name                              - value                              type: object                            type: array                        type: object                      recurse:                        description: Recurse specifies whether to scan a directory                          recursively for manifests                        type: boolean                    type: object                  helm:                    description: Helm holds helm specific options                    properties:                      fileParameters:                        description: FileParameters are file parameters to the helm                          template                        items:                          description: HelmFileParameter is a file parameter that's                            passed to helm template during manifest generation                          properties:                            name:                              description: Name is the name of the Helm parameter                              type: string                            path:                              description: Path is the path to the file containing                                the values for the Helm parameter                              type: string                          type: object                        type: array                      ignoreMissingValueFiles:                        description: IgnoreMissingValueFiles prevents helm template                          from failing when valueFiles do not exist locally by not                          appending them to helm template --values                        type: boolean                      parameters:                        description: Parameters is a list of Helm parameters which                          are passed to the helm template command upon manifest generation                        items:                          description: HelmParameter is a parameter that's passed                            to helm template during manifest generation                          properties:                            forceString:                              description: ForceString determines whether to tell                                Helm to interpret booleans and numbers as strings                              type: boolean                            name:                              description: Name is the name of the Helm parameter                              type: string                            value:                              description: Value is the value for the Helm parameter                              type: string                          type: object                        type: array                      passCredentials:                        description: PassCredentials pass credentials to all domains                          (Helm's --pass-credentials)                        type: boolean                      releaseName:                        description: ReleaseName is the Helm release name to use.                          If omitted it will use the application name                        type: string                      skipCrds:                        description: SkipCrds skips custom resource definition installation                          step (Helm's --skip-crds)                        type: boolean                      valueFiles:                        description: ValuesFiles is a list of Helm value files to                          use when generating a template                        items:                          type: string                        type: array                      values:                        description: Values specifies Helm values to be passed to                          helm template, typically defined as a block                        type: string                      version:                        description: Version is the Helm version to use for templating                          ("3")                        type: string                    type: object                  kustomize:                    description: Kustomize holds kustomize specific options                    properties:                      commonAnnotations:                        additionalProperties:                          type: string                        description: CommonAnnotations is a list of additional annotations                          to add to rendered manifests                        type: object                      commonLabels:                        additionalProperties:                          type: string                        description: CommonLabels is a list of additional labels to                          add to rendered manifests                        type: object                      forceCommonAnnotations:                        description: ForceCommonAnnotations specifies whether to force                          applying common annotations to resources for Kustomize apps                        type: boolean                      forceCommonLabels:                        description: ForceCommonLabels specifies whether to force                          applying common labels to resources for Kustomize apps                        type: boolean                      images:                        description: Images is a list of Kustomize image override                          specifications                        items:                          description: KustomizeImage represents a Kustomize image                            definition in the format [old_image_name=]<image_name>:<image_tag>                          type: string                        type: array                      namePrefix:                        description: NamePrefix is a prefix appended to resources                          for Kustomize apps                        type: string                      nameSuffix:                        description: NameSuffix is a suffix appended to resources                          for Kustomize apps                        type: string                      version:                        description: Version controls which version of Kustomize to                          use for rendering manifests                        type: string                    type: object                  path:                    description: Path is a directory path within the Git repository,                      and is only valid for applications sourced from Git.                    type: string                  plugin:                    description: Plugin holds config management plugin specific options                    properties:                      env:                        description: Env is a list of environment variable entries                        items:                          description: EnvEntry represents an entry in the application's                            environment                          properties:                            name:                              description: Name is the name of the variable, usually                                expressed in uppercase                              type: string                            value:                              description: Value is the value of the variable                              type: string                          required:                          - name                          - value                          type: object                        type: array                      name:                        type: string                    type: object                  repoURL:                    description: RepoURL is the URL to the repository (Git or Helm)                      that contains the application manifests                    type: string                  targetRevision:                    description: TargetRevision defines the revision of the source                      to sync the application to. In case of Git, this can be commit,                      tag, or branch. If omitted, will equal to HEAD. In case of Helm,                      this is a semver tag for the Chart's version.                    type: string                required:                - repoURL                type: object              syncPolicy:                description: SyncPolicy controls when and how a sync will be performed                properties:                  automated:                    description: Automated will keep an application synced to the                      target revision                    properties:                      allowEmpty:                        description: 'AllowEmpty allows apps have zero live resources                          (default: false)'                        type: boolean                      prune:                        description: 'Prune specifies whether to delete resources                          from the cluster that are not found in the sources anymore                          as part of automated sync (default: false)'                        type: boolean                      selfHeal:                        description: 'SelfHeal specifes whether to revert resources                          back to their desired state upon modification in the cluster                          (default: false)'                        type: boolean                    type: object                  managedNamespaceMetadata:                    description: ManagedNamespaceMetadata controls metadata in the                      given namespace (if CreateNamespace=true)                    properties:                      annotations:                        additionalProperties:                          type: string                        type: object                      labels:                        additionalProperties:                          type: string                        type: object                    type: object                  retry:                    description: Retry controls failed sync retry behavior                    properties:                      backoff:                        description: Backoff controls how to backoff on subsequent                          retries of failed syncs                        properties:                          duration:                            description: Duration is the amount to back off. Default                              unit is seconds, but could also be a duration (e.g.                              "2m", "1h")                            type: string                          factor:                            description: Factor is a factor to multiply the base duration                              after each failed retry                            format: int64                            type: integer                          maxDuration:                            description: MaxDuration is the maximum amount of time                              allowed for the backoff strategy                            type: string                        type: object                      limit:                        description: Limit is the maximum number of attempts for retrying                          a failed sync. If set to 0, no retries will be performed.                        format: int64                        type: integer                    type: object                  syncOptions:                    description: Options allow you to specify whole app sync-options                    items:                      type: string                    type: array                type: object            required:            - destination            - project            - source            type: object          status:            description: ApplicationStatus contains status information for the application            properties:              conditions:                description: Conditions is a list of currently observed application                  conditions                items:                  description: ApplicationCondition contains details about an application                    condition, which is usally an error or warning                  properties:                    lastTransitionTime:                      description: LastTransitionTime is the time the condition was                        last observed                      format: date-time                      type: string                    message:                      description: Message contains human-readable message indicating                        details about condition                      type: string                    type:                      description: Type is an application condition type                      type: string                  required:                  - message                  - type                  type: object                type: array              health:                description: Health contains information about the application's current                  health status                properties:                  message:                    description: Message is a human-readable informational message                      describing the health status                    type: string                  status:                    description: Status holds the status code of the application or                      resource                    type: string                type: object              history:                description: History contains information about the application's                  sync history                items:                  description: RevisionHistory contains history information about                    a previous sync                  properties:                    deployStartedAt:                      description: DeployStartedAt holds the time the sync operation                        started                      format: date-time                      type: string                    deployedAt:                      description: DeployedAt holds the time the sync operation completed                      format: date-time                      type: string                    id:                      description: ID is an auto incrementing identifier of the RevisionHistory                      format: int64                      type: integer                    revision:                      description: Revision holds the revision the sync was performed                        against                      type: string                    source:                      description: Source is a reference to the application source                        used for the sync operation                      properties:                        chart:                          description: Chart is a Helm chart name, and must be specified                            for applications sourced from a Helm repo.                          type: string                        directory:                          description: Directory holds path/directory specific options                          properties:                            exclude:                              description: Exclude contains a glob pattern to match                                paths against that should be explicitly excluded from                                being used during manifest generation                              type: string                            include:                              description: Include contains a glob pattern to match                                paths against that should be explicitly included during                                manifest generation                              type: string                            jsonnet:                              description: Jsonnet holds options specific to Jsonnet                              properties:                                extVars:                                  description: ExtVars is a list of Jsonnet External                                    Variables                                  items:                                    description: JsonnetVar represents a variable                                      to be passed to jsonnet during manifest generation                                    properties:                                      code:                                        type: boolean                                      name:                                        type: string                                      value:                                        type: string                                    required:                                    - name                                    - value                                    type: object                                  type: array                                libs:                                  description: Additional library search dirs                                  items:                                    type: string                                  type: array                                tlas:                                  description: TLAS is a list of Jsonnet Top-level                                    Arguments                                  items:                                    description: JsonnetVar represents a variable                                      to be passed to jsonnet during manifest generation                                    properties:                                      code:                                        type: boolean                                      name:                                        type: string                                      value:                                        type: string                                    required:                                    - name                                    - value                                    type: object                                  type: array                              type: object                            recurse:                              description: Recurse specifies whether to scan a directory                                recursively for manifests                              type: boolean                          type: object                        helm:                          description: Helm holds helm specific options                          properties:                            fileParameters:                              description: FileParameters are file parameters to the                                helm template                              items:                                description: HelmFileParameter is a file parameter                                  that's passed to helm template during manifest generation                                properties:                                  name:                                    description: Name is the name of the Helm parameter                                    type: string                                  path:                                    description: Path is the path to the file containing                                      the values for the Helm parameter                                    type: string                                type: object                              type: array                            ignoreMissingValueFiles:                              description: IgnoreMissingValueFiles prevents helm template                                from failing when valueFiles do not exist locally                                by not appending them to helm template --values                              type: boolean                            parameters:                              description: Parameters is a list of Helm parameters                                which are passed to the helm template command upon                                manifest generation                              items:                                description: HelmParameter is a parameter that's passed                                  to helm template during manifest generation                                properties:                                  forceString:                                    description: ForceString determines whether to                                      tell Helm to interpret booleans and numbers                                      as strings                                    type: boolean                                  name:                                    description: Name is the name of the Helm parameter                                    type: string                                  value:                                    description: Value is the value for the Helm parameter                                    type: string                                type: object                              type: array                            passCredentials:                              description: PassCredentials pass credentials to all                                domains (Helm's --pass-credentials)                              type: boolean                            releaseName:                              description: ReleaseName is the Helm release name to                                use. If omitted it will use the application name                              type: string                            skipCrds:                              description: SkipCrds skips custom resource definition                                installation step (Helm's --skip-crds)                              type: boolean                            valueFiles:                              description: ValuesFiles is a list of Helm value files                                to use when generating a template                              items:                                type: string                              type: array                            values:                              description: Values specifies Helm values to be passed                                to helm template, typically defined as a block                              type: string                            version:                              description: Version is the Helm version to use for                                templating ("3")                              type: string                          type: object                        kustomize:                          description: Kustomize holds kustomize specific options                          properties:                            commonAnnotations:                              additionalProperties:                                type: string                              description: CommonAnnotations is a list of additional                                annotations to add to rendered manifests                              type: object                            commonLabels:                              additionalProperties:                                type: string                              description: CommonLabels is a list of additional labels                                to add to rendered manifests                              type: object                            forceCommonAnnotations:                              description: ForceCommonAnnotations specifies whether                                to force applying common annotations to resources                                for Kustomize apps                              type: boolean                            forceCommonLabels:                              description: ForceCommonLabels specifies whether to                                force applying common labels to resources for Kustomize                                apps                              type: boolean                            images:                              description: Images is a list of Kustomize image override                                specifications                              items:                                description: KustomizeImage represents a Kustomize                                  image definition in the format [old_image_name=]<image_name>:<image_tag>                                type: string                              type: array                            namePrefix:                              description: NamePrefix is a prefix appended to resources                                for Kustomize apps                              type: string                            nameSuffix:                              description: NameSuffix is a suffix appended to resources                                for Kustomize apps                              type: string                            version:                              description: Version controls which version of Kustomize                                to use for rendering manifests                              type: string                          type: object                        path:                          description: Path is a directory path within the Git repository,                            and is only valid for applications sourced from Git.                          type: string                        plugin:                          description: Plugin holds config management plugin specific                            options                          properties:                            env:                              description: Env is a list of environment variable entries                              items:                                description: EnvEntry represents an entry in the application's                                  environment                                properties:                                  name:                                    description: Name is the name of the variable,                                      usually expressed in uppercase                                    type: string                                  value:                                    description: Value is the value of the variable                                    type: string                                required:                                - name                                - value                                type: object                              type: array                            name:                              type: string                          type: object                        repoURL:                          description: RepoURL is the URL to the repository (Git or                            Helm) that contains the application manifests                          type: string                        targetRevision:                          description: TargetRevision defines the revision of the                            source to sync the application to. In case of Git, this                            can be commit, tag, or branch. If omitted, will equal                            to HEAD. In case of Helm, this is a semver tag for the                            Chart's version.                          type: string                      required:                      - repoURL                      type: object                  required:                  - deployedAt                  - id                  - revision                  type: object                type: array              observedAt:                description: 'ObservedAt indicates when the application state was                  updated without querying latest git state Deprecated: controller                  no longer updates ObservedAt field'                format: date-time                type: string              operationState:                description: OperationState contains information about any ongoing                  operations, such as a sync                properties:                  finishedAt:                    description: FinishedAt contains time of operation completion                    format: date-time                    type: string                  message:                    description: Message holds any pertinent messages when attempting                      to perform operation (typically errors).                    type: string                  operation:                    description: Operation is the original requested operation                    properties:                      info:                        description: Info is a list of informational items for this                          operation                        items:                          properties:                            name:                              type: string                            value:                              type: string                          required:                          - name                          - value                          type: object                        type: array                      initiatedBy:                        description: InitiatedBy contains information about who initiated                          the operations                        properties:                          automated:                            description: Automated is set to true if operation was                              initiated automatically by the application controller.                            type: boolean                          username:                            description: Username contains the name of a user who                              started operation                            type: string                        type: object                      retry:                        description: Retry controls the strategy to apply if a sync                          fails                        properties:                          backoff:                            description: Backoff controls how to backoff on subsequent                              retries of failed syncs                            properties:                              duration:                                description: Duration is the amount to back off. Default                                  unit is seconds, but could also be a duration (e.g.                                  "2m", "1h")                                type: string                              factor:                                description: Factor is a factor to multiply the base                                  duration after each failed retry                                format: int64                                type: integer                              maxDuration:                                description: MaxDuration is the maximum amount of                                  time allowed for the backoff strategy                                type: string                            type: object                          limit:                            description: Limit is the maximum number of attempts for                              retrying a failed sync. If set to 0, no retries will                              be performed.                            format: int64                            type: integer                        type: object                      sync:                        description: Sync contains parameters for the operation                        properties:                          dryRun:                            description: DryRun specifies to perform a `kubectl apply                              --dry-run` without actually performing the sync                            type: boolean                          manifests:                            description: Manifests is an optional field that overrides                              sync source with a local directory for development                            items:                              type: string                            type: array                          prune:                            description: Prune specifies to delete resources from                              the cluster that are no longer tracked in git                            type: boolean                          resources:                            description: Resources describes which resources shall                              be part of the sync                            items:                              description: SyncOperationResource contains resources                                to sync.                              properties:                                group:                                  type: string                                kind:                                  type: string                                name:                                  type: string                                namespace:                                  type: string                              required:                              - kind                              - name                              type: object                            type: array                          revision:                            description: Revision is the revision (Git) or chart version                              (Helm) which to sync the application to If omitted,                              will use the revision specified in app spec.                            type: string                          source:                            description: Source overrides the source definition set                              in the application. This is typically set in a Rollback                              operation and is nil during a Sync operation                            properties:                              chart:                                description: Chart is a Helm chart name, and must                                  be specified for applications sourced from a Helm                                  repo.                                type: string                              directory:                                description: Directory holds path/directory specific                                  options                                properties:                                  exclude:                                    description: Exclude contains a glob pattern to                                      match paths against that should be explicitly                                      excluded from being used during manifest generation                                    type: string                                  include:                                    description: Include contains a glob pattern to                                      match paths against that should be explicitly                                      included during manifest generation                                    type: string                                  jsonnet:                                    description: Jsonnet holds options specific to                                      Jsonnet                                    properties:                                      extVars:                                        description: ExtVars is a list of Jsonnet                                          External Variables                                        items:                                          description: JsonnetVar represents a variable                                            to be passed to jsonnet during manifest                                            generation                                          properties:                                            code:                                              type: boolean                                            name:                                              type: string                                            value:                                              type: string                                          required:                                          - name                                          - value                                          type: object                                        type: array                                      libs:                                        description: Additional library search dirs                                        items:                                          type: string                                        type: array                                      tlas:                                        description: TLAS is a list of Jsonnet Top-level                                          Arguments                                        items:                                          description: JsonnetVar represents a variable                                            to be passed to jsonnet during manifest                                            generation                                          properties:                                            code:                                              type: boolean                                            name:                                              type: string                                            value:                                              type: string                                          required:                                          - name                                          - value                                          type: object                                        type: array                                    type: object                                  recurse:                                    description: Recurse specifies whether to scan                                      a directory recursively for manifests                                    type: boolean                                type: object                              helm:                                description: Helm holds helm specific options                                properties:                                  fileParameters:                                    description: FileParameters are file parameters                                      to the helm template                                    items:                                      description: HelmFileParameter is a file parameter                                        that's passed to helm template during manifest                                        generation                                      properties:                                        name:                                          description: Name is the name of the Helm                                            parameter                                          type: string                                        path:                                          description: Path is the path to the file                                            containing the values for the Helm parameter                                          type: string                                      type: object                                    type: array                                  ignoreMissingValueFiles:                                    description: IgnoreMissingValueFiles prevents                                      helm template from failing when valueFiles do                                      not exist locally by not appending them to helm                                      template --values                                    type: boolean                                  parameters:                                    description: Parameters is a list of Helm parameters                                      which are passed to the helm template command                                      upon manifest generation                                    items:                                      description: HelmParameter is a parameter that's                                        passed to helm template during manifest generation                                      properties:                                        forceString:                                          description: ForceString determines whether                                            to tell Helm to interpret booleans and                                            numbers as strings                                          type: boolean                                        name:                                          description: Name is the name of the Helm                                            parameter                                          type: string                                        value:                                          description: Value is the value for the                                            Helm parameter                                          type: string                                      type: object                                    type: array                                  passCredentials:                                    description: PassCredentials pass credentials                                      to all domains (Helm's --pass-credentials)                                    type: boolean                                  releaseName:                                    description: ReleaseName is the Helm release name                                      to use. If omitted it will use the application                                      name                                    type: string                                  skipCrds:                                    description: SkipCrds skips custom resource definition                                      installation step (Helm's --skip-crds)                                    type: boolean                                  valueFiles:                                    description: ValuesFiles is a list of Helm value                                      files to use when generating a template                                    items:                                      type: string                                    type: array                                  values:                                    description: Values specifies Helm values to be                                      passed to helm template, typically defined as                                      a block                                    type: string                                  version:                                    description: Version is the Helm version to use                                      for templating ("3")                                    type: string                                type: object                              kustomize:                                description: Kustomize holds kustomize specific options                                properties:                                  commonAnnotations:                                    additionalProperties:                                      type: string                                    description: CommonAnnotations is a list of additional                                      annotations to add to rendered manifests                                    type: object                                  commonLabels:                                    additionalProperties:                                      type: string                                    description: CommonLabels is a list of additional                                      labels to add to rendered manifests                                    type: object                                  forceCommonAnnotations:                                    description: ForceCommonAnnotations specifies                                      whether to force applying common annotations                                      to resources for Kustomize apps                                    type: boolean                                  forceCommonLabels:                                    description: ForceCommonLabels specifies whether                                      to force applying common labels to resources                                      for Kustomize apps                                    type: boolean                                  images:                                    description: Images is a list of Kustomize image                                      override specifications                                    items:                                      description: KustomizeImage represents a Kustomize                                        image definition in the format [old_image_name=]<image_name>:<image_tag>                                      type: string                                    type: array                                  namePrefix:                                    description: NamePrefix is a prefix appended to                                      resources for Kustomize apps                                    type: string                                  nameSuffix:                                    description: NameSuffix is a suffix appended to                                      resources for Kustomize apps                                    type: string                                  version:                                    description: Version controls which version of                                      Kustomize to use for rendering manifests                                    type: string                                type: object                              path:                                description: Path is a directory path within the Git                                  repository, and is only valid for applications sourced                                  from Git.                                type: string                              plugin:                                description: Plugin holds config management plugin                                  specific options                                properties:                                  env:                                    description: Env is a list of environment variable                                      entries                                    items:                                      description: EnvEntry represents an entry in                                        the application's environment                                      properties:                                        name:                                          description: Name is the name of the variable,                                            usually expressed in uppercase                                          type: string                                        value:                                          description: Value is the value of the variable                                          type: string                                      required:                                      - name                                      - value                                      type: object                                    type: array                                  name:                                    type: string                                type: object                              repoURL:                                description: RepoURL is the URL to the repository                                  (Git or Helm) that contains the application manifests                                type: string                              targetRevision:                                description: TargetRevision defines the revision of                                  the source to sync the application to. In case of                                  Git, this can be commit, tag, or branch. If omitted,                                  will equal to HEAD. In case of Helm, this is a semver                                  tag for the Chart's version.                                type: string                            required:                            - repoURL                            type: object                          syncOptions:                            description: SyncOptions provide per-sync sync-options,                              e.g. Validate=false                            items:                              type: string                            type: array                          syncStrategy:                            description: SyncStrategy describes how to perform the                              sync                            properties:                              apply:                                description: Apply will perform a `kubectl apply`                                  to perform the sync.                                properties:                                  force:                                    description: Force indicates whether or not to                                      supply the --force flag to `kubectl apply`.                                      The --force flag deletes and re-create the resource,                                      when PATCH encounters conflict and has retried                                      for 5 times.                                    type: boolean                                type: object                              hook:                                description: Hook will submit any referenced resources                                  to perform the sync. This is the default strategy                                properties:                                  force:                                    description: Force indicates whether or not to                                      supply the --force flag to `kubectl apply`.                                      The --force flag deletes and re-create the resource,                                      when PATCH encounters conflict and has retried                                      for 5 times.                                    type: boolean                                type: object                            type: object                        type: object                    type: object                  phase:                    description: Phase is the current phase of the operation                    type: string                  retryCount:                    description: RetryCount contains time of operation retries                    format: int64                    type: integer                  startedAt:                    description: StartedAt contains time of operation start                    format: date-time                    type: string                  syncResult:                    description: SyncResult is the result of a Sync operation                    properties:                      resources:                        description: Resources contains a list of sync result items                          for each individual resource in a sync operation                        items:                          description: ResourceResult holds the operation result details                            of a specific resource                          properties:                            group:                              description: Group specifies the API group of the resource                              type: string                            hookPhase:                              description: HookPhase contains the state of any operation                                associated with this resource OR hook This can also                                contain values for non-hook resources.                              type: string                            hookType:                              description: HookType specifies the type of the hook.                                Empty for non-hook resources                              type: string                            kind:                              description: Kind specifies the API kind of the resource                              type: string                            message:                              description: Message contains an informational or error                                message for the last sync OR operation                              type: string                            name:                              description: Name specifies the name of the resource                              type: string                            namespace:                              description: Namespace specifies the target namespace                                of the resource                              type: string                            status:                              description: Status holds the final result of the sync.                                Will be empty if the resources is yet to be applied/pruned                                and is always zero-value for hooks                              type: string                            syncPhase:                              description: SyncPhase indicates the particular phase                                of the sync that this result was acquired in                              type: string                            version:                              description: Version specifies the API version of the                                resource                              type: string                          required:                          - group                          - kind                          - name                          - namespace                          - version                          type: object                        type: array                      revision:                        description: Revision holds the revision this sync operation                          was performed to                        type: string                      source:                        description: Source records the application source information                          of the sync, used for comparing auto-sync                        properties:                          chart:                            description: Chart is a Helm chart name, and must be specified                              for applications sourced from a Helm repo.                            type: string                          directory:                            description: Directory holds path/directory specific options                            properties:                              exclude:                                description: Exclude contains a glob pattern to match                                  paths against that should be explicitly excluded                                  from being used during manifest generation                                type: string                              include:                                description: Include contains a glob pattern to match                                  paths against that should be explicitly included                                  during manifest generation                                type: string                              jsonnet:                                description: Jsonnet holds options specific to Jsonnet                                properties:                                  extVars:                                    description: ExtVars is a list of Jsonnet External                                      Variables                                    items:                                      description: JsonnetVar represents a variable                                        to be passed to jsonnet during manifest generation                                      properties:                                        code:                                          type: boolean                                        name:                                          type: string                                        value:                                          type: string                                      required:                                      - name                                      - value                                      type: object                                    type: array                                  libs:                                    description: Additional library search dirs                                    items:                                      type: string                                    type: array                                  tlas:                                    description: TLAS is a list of Jsonnet Top-level                                      Arguments                                    items:                                      description: JsonnetVar represents a variable                                        to be passed to jsonnet during manifest generation                                      properties:                                        code:                                          type: boolean                                        name:                                          type: string                                        value:                                          type: string                                      required:                                      - name                                      - value                                      type: object                                    type: array                                type: object                              recurse:                                description: Recurse specifies whether to scan a directory                                  recursively for manifests                                type: boolean                            type: object                          helm:                            description: Helm holds helm specific options                            properties:                              fileParameters:                                description: FileParameters are file parameters to                                  the helm template                                items:                                  description: HelmFileParameter is a file parameter                                    that's passed to helm template during manifest                                    generation                                  properties:                                    name:                                      description: Name is the name of the Helm parameter                                      type: string                                    path:                                      description: Path is the path to the file containing                                        the values for the Helm parameter                                      type: string                                  type: object                                type: array                              ignoreMissingValueFiles:                                description: IgnoreMissingValueFiles prevents helm                                  template from failing when valueFiles do not exist                                  locally by not appending them to helm template --values                                type: boolean                              parameters:                                description: Parameters is a list of Helm parameters                                  which are passed to the helm template command upon                                  manifest generation                                items:                                  description: HelmParameter is a parameter that's                                    passed to helm template during manifest generation                                  properties:                                    forceString:                                      description: ForceString determines whether                                        to tell Helm to interpret booleans and numbers                                        as strings                                      type: boolean                                    name:                                      description: Name is the name of the Helm parameter                                      type: string                                    value:                                      description: Value is the value for the Helm                                        parameter                                      type: string                                  type: object                                type: array                              passCredentials:                                description: PassCredentials pass credentials to all                                  domains (Helm's --pass-credentials)                                type: boolean                              releaseName:                                description: ReleaseName is the Helm release name                                  to use. If omitted it will use the application name                                type: string                              skipCrds:                                description: SkipCrds skips custom resource definition                                  installation step (Helm's --skip-crds)                                type: boolean                              valueFiles:                                description: ValuesFiles is a list of Helm value files                                  to use when generating a template                                items:                                  type: string                                type: array                              values:                                description: Values specifies Helm values to be passed                                  to helm template, typically defined as a block                                type: string                              version:                                description: Version is the Helm version to use for                                  templating ("3")                                type: string                            type: object                          kustomize:                            description: Kustomize holds kustomize specific options                            properties:                              commonAnnotations:                                additionalProperties:                                  type: string                                description: CommonAnnotations is a list of additional                                  annotations to add to rendered manifests                                type: object                              commonLabels:                                additionalProperties:                                  type: string                                description: CommonLabels is a list of additional                                  labels to add to rendered manifests                                type: object                              forceCommonAnnotations:                                description: ForceCommonAnnotations specifies whether                                  to force applying common annotations to resources                                  for Kustomize apps                                type: boolean                              forceCommonLabels:                                description: ForceCommonLabels specifies whether to                                  force applying common labels to resources for Kustomize                                  apps                                type: boolean                              images:                                description: Images is a list of Kustomize image override                                  specifications                                items:                                  description: KustomizeImage represents a Kustomize                                    image definition in the format [old_image_name=]<image_name>:<image_tag>                                  type: string                                type: array                              namePrefix:                                description: NamePrefix is a prefix appended to resources                                  for Kustomize apps                                type: string                              nameSuffix:                                description: NameSuffix is a suffix appended to resources                                  for Kustomize apps                                type: string                              version:                                description: Version controls which version of Kustomize                                  to use for rendering manifests                                type: string                            type: object                          path:                            description: Path is a directory path within the Git repository,                              and is only valid for applications sourced from Git.                            type: string                          plugin:                            description: Plugin holds config management plugin specific                              options                            properties:                              env:                                description: Env is a list of environment variable                                  entries                                items:                                  description: EnvEntry represents an entry in the                                    application's environment                                  properties:                                    name:                                      description: Name is the name of the variable,                                        usually expressed in uppercase                                      type: string                                    value:                                      description: Value is the value of the variable                                      type: string                                  required:                                  - name                                  - value                                  type: object                                type: array                              name:                                type: string                            type: object                          repoURL:                            description: RepoURL is the URL to the repository (Git                              or Helm) that contains the application manifests                            type: string                          targetRevision:                            description: TargetRevision defines the revision of the                              source to sync the application to. In case of Git, this                              can be commit, tag, or branch. If omitted, will equal                              to HEAD. In case of Helm, this is a semver tag for the                              Chart's version.                            type: string                        required:                        - repoURL                        type: object                    required:                    - revision                    type: object                required:                - operation                - phase                - startedAt                type: object              reconciledAt:                description: ReconciledAt indicates when the application state was                  reconciled using the latest git version                format: date-time                type: string              resourceHealthSource:                description: 'ResourceHealthSource indicates where the resource health                  status is stored: inline if not set or appTree'                type: string              resources:                description: Resources is a list of Kubernetes resources managed by                  this application                items:                  description: 'ResourceStatus holds the current sync and health status                    of a resource TODO: describe members of this type'                  properties:                    group:                      type: string                    health:                      description: HealthStatus contains information about the currently                        observed health state of an application or resource                      properties:                        message:                          description: Message is a human-readable informational message                            describing the health status                          type: string                        status:                          description: Status holds the status code of the application                            or resource                          type: string                      type: object                    hook:                      type: boolean                    kind:                      type: string                    name:                      type: string                    namespace:                      type: string                    requiresPruning:                      type: boolean                    status:                      description: SyncStatusCode is a type which represents possible                        comparison results                      type: string                    syncWave:                      format: int64                      type: integer                    version:                      type: string                  type: object                type: array              sourceType:                description: SourceType specifies the type of this application                type: string              summary:                description: Summary contains a list of URLs and container images                  used by this application                properties:                  externalURLs:                    description: ExternalURLs holds all external URLs of application                      child resources.                    items:                      type: string                    type: array                  images:                    description: Images holds all images of application child resources.                    items:                      type: string                    type: array                type: object              sync:                description: Sync contains information about the application's current                  sync status                properties:                  comparedTo:                    description: ComparedTo contains information about what has been                      compared                    properties:                      destination:                        description: Destination is a reference to the application's                          destination used for comparison                        properties:                          name:                            description: Name is an alternate way of specifying the                              target cluster by its symbolic name                            type: string                          namespace:                            description: Namespace specifies the target namespace                              for the application's resources. The namespace will                              only be set for namespace-scoped resources that have                              not set a value for .metadata.namespace                            type: string                          server:                            description: Server specifies the URL of the target cluster                              and must be set to the Kubernetes control plane API                            type: string                        type: object                      source:                        description: Source is a reference to the application's source                          used for comparison                        properties:                          chart:                            description: Chart is a Helm chart name, and must be specified                              for applications sourced from a Helm repo.                            type: string                          directory:                            description: Directory holds path/directory specific options                            properties:                              exclude:                                description: Exclude contains a glob pattern to match                                  paths against that should be explicitly excluded                                  from being used during manifest generation                                type: string                              include:                                description: Include contains a glob pattern to match                                  paths against that should be explicitly included                                  during manifest generation                                type: string                              jsonnet:                                description: Jsonnet holds options specific to Jsonnet                                properties:                                  extVars:                                    description: ExtVars is a list of Jsonnet External                                      Variables                                    items:                                      description: JsonnetVar represents a variable                                        to be passed to jsonnet during manifest generation                                      properties:                                        code:                                          type: boolean                                        name:                                          type: string                                        value:                                          type: string                                      required:                                      - name                                      - value                                      type: object                                    type: array                                  libs:                                    description: Additional library search dirs                                    items:                                      type: string                                    type: array                                  tlas:                                    description: TLAS is a list of Jsonnet Top-level                                      Arguments                                    items:                                      description: JsonnetVar represents a variable                                        to be passed to jsonnet during manifest generation                                      properties:                                        code:                                          type: boolean                                        name:                                          type: string                                        value:                                          type: string                                      required:                                      - name                                      - value                                      type: object                                    type: array                                type: object                              recurse:                                description: Recurse specifies whether to scan a directory                                  recursively for manifests                                type: boolean                            type: object                          helm:                            description: Helm holds helm specific options                            properties:                              fileParameters:                                description: FileParameters are file parameters to                                  the helm template                                items:                                  description: HelmFileParameter is a file parameter                                    that's passed to helm template during manifest                                    generation                                  properties:                                    name:                                      description: Name is the name of the Helm parameter                                      type: string                                    path:                                      description: Path is the path to the file containing                                        the values for the Helm parameter                                      type: string                                  type: object                                type: array                              ignoreMissingValueFiles:                                description: IgnoreMissingValueFiles prevents helm                                  template from failing when valueFiles do not exist                                  locally by not appending them to helm template --values                                type: boolean                              parameters:                                description: Parameters is a list of Helm parameters                                  which are passed to the helm template command upon                                  manifest generation                                items:                                  description: HelmParameter is a parameter that's                                    passed to helm template during manifest generation                                  properties:                                    forceString:                                      description: ForceString determines whether                                        to tell Helm to interpret booleans and numbers                                        as strings                                      type: boolean                                    name:                                      description: Name is the name of the Helm parameter                                      type: string                                    value:                                      description: Value is the value for the Helm                                        parameter                                      type: string                                  type: object                                type: array                              passCredentials:                                description: PassCredentials pass credentials to all                                  domains (Helm's --pass-credentials)                                type: boolean                              releaseName:                                description: ReleaseName is the Helm release name                                  to use. If omitted it will use the application name                                type: string                              skipCrds:                                description: SkipCrds skips custom resource definition                                  installation step (Helm's --skip-crds)                                type: boolean                              valueFiles:                                description: ValuesFiles is a list of Helm value files                                  to use when generating a template                                items:                                  type: string                                type: array                              values:                                description: Values specifies Helm values to be passed                                  to helm template, typically defined as a block                                type: string                              version:                                description: Version is the Helm version to use for                                  templating ("3")                                type: string                            type: object                          kustomize:                            description: Kustomize holds kustomize specific options                            properties:                              commonAnnotations:                                additionalProperties:                                  type: string                                description: CommonAnnotations is a list of additional                                  annotations to add to rendered manifests                                type: object                              commonLabels:                                additionalProperties:                                  type: string                                description: CommonLabels is a list of additional                                  labels to add to rendered manifests                                type: object                              forceCommonAnnotations:                                description: ForceCommonAnnotations specifies whether                                  to force applying common annotations to resources                                  for Kustomize apps                                type: boolean                              forceCommonLabels:                                description: ForceCommonLabels specifies whether to                                  force applying common labels to resources for Kustomize                                  apps                                type: boolean                              images:                                description: Images is a list of Kustomize image override                                  specifications                                items:                                  description: KustomizeImage represents a Kustomize                                    image definition in the format [old_image_name=]<image_name>:<image_tag>                                  type: string                                type: array                              namePrefix:                                description: NamePrefix is a prefix appended to resources                                  for Kustomize apps                                type: string                              nameSuffix:                                description: NameSuffix is a suffix appended to resources                                  for Kustomize apps                                type: string                              version:                                description: Version controls which version of Kustomize                                  to use for rendering manifests                                type: string                            type: object                          path:                            description: Path is a directory path within the Git repository,                              and is only valid for applications sourced from Git.                            type: string                          plugin:                            description: Plugin holds config management plugin specific                              options                            properties:                              env:                                description: Env is a list of environment variable                                  entries                                items:                                  description: EnvEntry represents an entry in the                                    application's environment                                  properties:                                    name:                                      description: Name is the name of the variable,                                        usually expressed in uppercase                                      type: string                                    value:                                      description: Value is the value of the variable                                      type: string                                  required:                                  - name                                  - value                                  type: object                                type: array                              name:                                type: string                            type: object                          repoURL:                            description: RepoURL is the URL to the repository (Git                              or Helm) that contains the application manifests                            type: string                          targetRevision:                            description: TargetRevision defines the revision of the                              source to sync the application to. In case of Git, this                              can be commit, tag, or branch. If omitted, will equal                              to HEAD. In case of Helm, this is a semver tag for the                              Chart's version.                            type: string                        required:                        - repoURL                        type: object                    required:                    - destination                    - source                    type: object                  revision:                    description: Revision contains information about the revision                      the comparison has been performed to                    type: string                  status:                    description: Status is the sync state of the comparison                    type: string                required:                - status                type: object            type: object        required:        - metadata        - spec        type: object    served: true    storage: true    subresources: {}---apiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  labels:    app.kubernetes.io/name: applicationsets.argoproj.io    app.kubernetes.io/part-of: argocd  name: applicationsets.argoproj.iospec:  group: argoproj.io  names:    kind: ApplicationSet    listKind: ApplicationSetList    plural: applicationsets    shortNames:    - appset    - appsets    singular: applicationset  scope: Namespaced  versions:  - name: v1alpha1    schema:      openAPIV3Schema:        properties:          apiVersion:            type: string          kind:            type: string          metadata:            type: object          spec:            properties:              generators:                items:                  properties:                    clusterDecisionResource:                      properties:                        configMapRef:                          type: string                        labelSelector:                          properties:                            matchExpressions:                              items:                                properties:                                  key:                                    type: string                                  operator:                                    type: string                                  values:                                    items:                                      type: string                                    type: array                                required:                                - key                                - operator                                type: object                              type: array                            matchLabels:                              additionalProperties:                                type: string                              type: object                          type: object                        name:                          type: string                        requeueAfterSeconds:                          format: int64                          type: integer                        template:                          properties:                            metadata:                              properties:                                annotations:                                  additionalProperties:                                    type: string                                  type: object                                finalizers:                                  items:                                    type: string                                  type: array                                labels:                                  additionalProperties:                                    type: string                                  type: object                                name:                                  type: string                                namespace:                                  type: string                              type: object                            spec:                              properties:                                destination:                                  properties:                                    name:                                      type: string                                    namespace:                                      type: string                                    server:                                      type: string                                  type: object                                ignoreDifferences:                                  items:                                    properties:                                      group:                                        type: string                                      jqPathExpressions:                                        items:                                          type: string                                        type: array                                      jsonPointers:                                        items:                                          type: string                                        type: array                                      kind:                                        type: string                                      managedFieldsManagers:                                        items:                                          type: string                                        type: array                                      name:                                        type: string                                      namespace:                                        type: string                                    required:                                    - kind                                    type: object                                  type: array                                info:                                  items:                                    properties:                                      name:                                        type: string                                      value:                                        type: string                                    required:                                    - name                                    - value                                    type: object                                  type: array                                project:                                  type: string                                revisionHistoryLimit:                                  format: int64                                  type: integer                                source:                                  properties:                                    chart:                                      type: string                                    directory:                                      properties:                                        exclude:                                          type: string                                        include:                                          type: string                                        jsonnet:                                          properties:                                            extVars:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                            libs:                                              items:                                                type: string                                              type: array                                            tlas:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                          type: object                                        recurse:                                          type: boolean                                      type: object                                    helm:                                      properties:                                        fileParameters:                                          items:                                            properties:                                              name:                                                type: string                                              path:                                                type: string                                            type: object                                          type: array                                        ignoreMissingValueFiles:                                          type: boolean                                        parameters:                                          items:                                            properties:                                              forceString:                                                type: boolean                                              name:                                                type: string                                              value:                                                type: string                                            type: object                                          type: array                                        passCredentials:                                          type: boolean                                        releaseName:                                          type: string                                        skipCrds:                                          type: boolean                                        valueFiles:                                          items:                                            type: string                                          type: array                                        values:                                          type: string                                        version:                                          type: string                                      type: object                                    kustomize:                                      properties:                                        commonAnnotations:                                          additionalProperties:                                            type: string                                          type: object                                        commonLabels:                                          additionalProperties:                                            type: string                                          type: object                                        forceCommonAnnotations:                                          type: boolean                                        forceCommonLabels:                                          type: boolean                                        images:                                          items:                                            type: string                                          type: array                                        namePrefix:                                          type: string                                        nameSuffix:                                          type: string                                        version:                                          type: string                                      type: object                                    path:                                      type: string                                    plugin:                                      properties:                                        env:                                          items:                                            properties:                                              name:                                                type: string                                              value:                                                type: string                                            required:                                            - name                                            - value                                            type: object                                          type: array                                        name:                                          type: string                                      type: object                                    repoURL:                                      type: string                                    targetRevision:                                      type: string                                  required:                                  - repoURL                                  type: object                                syncPolicy:                                  properties:                                    automated:                                      properties:                                        allowEmpty:                                          type: boolean                                        prune:                                          type: boolean                                        selfHeal:                                          type: boolean                                      type: object                                    managedNamespaceMetadata:                                      properties:                                        annotations:                                          additionalProperties:                                            type: string                                          type: object                                        labels:                                          additionalProperties:                                            type: string                                          type: object                                      type: object                                    retry:                                      properties:                                        backoff:                                          properties:                                            duration:                                              type: string                                            factor:                                              format: int64                                              type: integer                                            maxDuration:                                              type: string                                          type: object                                        limit:                                          format: int64                                          type: integer                                      type: object                                    syncOptions:                                      items:                                        type: string                                      type: array                                  type: object                              required:                              - destination                              - project                              - source                              type: object                          required:                          - metadata                          - spec                          type: object                        values:                          additionalProperties:                            type: string                          type: object                      required:                      - configMapRef                      type: object                    clusters:                      properties:                        selector:                          properties:                            matchExpressions:                              items:                                properties:                                  key:                                    type: string                                  operator:                                    type: string                                  values:                                    items:                                      type: string                                    type: array                                required:                                - key                                - operator                                type: object                              type: array                            matchLabels:                              additionalProperties:                                type: string                              type: object                          type: object                        template:                          properties:                            metadata:                              properties:                                annotations:                                  additionalProperties:                                    type: string                                  type: object                                finalizers:                                  items:                                    type: string                                  type: array                                labels:                                  additionalProperties:                                    type: string                                  type: object                                name:                                  type: string                                namespace:                                  type: string                              type: object                            spec:                              properties:                                destination:                                  properties:                                    name:                                      type: string                                    namespace:                                      type: string                                    server:                                      type: string                                  type: object                                ignoreDifferences:                                  items:                                    properties:                                      group:                                        type: string                                      jqPathExpressions:                                        items:                                          type: string                                        type: array                                      jsonPointers:                                        items:                                          type: string                                        type: array                                      kind:                                        type: string                                      managedFieldsManagers:                                        items:                                          type: string                                        type: array                                      name:                                        type: string                                      namespace:                                        type: string                                    required:                                    - kind                                    type: object                                  type: array                                info:                                  items:                                    properties:                                      name:                                        type: string                                      value:                                        type: string                                    required:                                    - name                                    - value                                    type: object                                  type: array                                project:                                  type: string                                revisionHistoryLimit:                                  format: int64                                  type: integer                                source:                                  properties:                                    chart:                                      type: string                                    directory:                                      properties:                                        exclude:                                          type: string                                        include:                                          type: string                                        jsonnet:                                          properties:                                            extVars:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                            libs:                                              items:                                                type: string                                              type: array                                            tlas:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                          type: object                                        recurse:                                          type: boolean                                      type: object                                    helm:                                      properties:                                        fileParameters:                                          items:                                            properties:                                              name:                                                type: string                                              path:                                                type: string                                            type: object                                          type: array                                        ignoreMissingValueFiles:                                          type: boolean                                        parameters:                                          items:                                            properties:                                              forceString:                                                type: boolean                                              name:                                                type: string                                              value:                                                type: string                                            type: object                                          type: array                                        passCredentials:                                          type: boolean                                        releaseName:                                          type: string                                        skipCrds:                                          type: boolean                                        valueFiles:                                          items:                                            type: string                                          type: array                                        values:                                          type: string                                        version:                                          type: string                                      type: object                                    kustomize:                                      properties:                                        commonAnnotations:                                          additionalProperties:                                            type: string                                          type: object                                        commonLabels:                                          additionalProperties:                                            type: string                                          type: object                                        forceCommonAnnotations:                                          type: boolean                                        forceCommonLabels:                                          type: boolean                                        images:                                          items:                                            type: string                                          type: array                                        namePrefix:                                          type: string                                        nameSuffix:                                          type: string                                        version:                                          type: string                                      type: object                                    path:                                      type: string                                    plugin:                                      properties:                                        env:                                          items:                                            properties:                                              name:                                                type: string                                              value:                                                type: string                                            required:                                            - name                                            - value                                            type: object                                          type: array                                        name:                                          type: string                                      type: object                                    repoURL:                                      type: string                                    targetRevision:                                      type: string                                  required:                                  - repoURL                                  type: object                                syncPolicy:                                  properties:                                    automated:                                      properties:                                        allowEmpty:                                          type: boolean                                        prune:                                          type: boolean                                        selfHeal:                                          type: boolean                                      type: object                                    managedNamespaceMetadata:                                      properties:                                        annotations:                                          additionalProperties:                                            type: string                                          type: object                                        labels:                                          additionalProperties:                                            type: string                                          type: object                                      type: object                                    retry:                                      properties:                                        backoff:                                          properties:                                            duration:                                              type: string                                            factor:                                              format: int64                                              type: integer                                            maxDuration:                                              type: string                                          type: object                                        limit:                                          format: int64                                          type: integer                                      type: object                                    syncOptions:                                      items:                                        type: string                                      type: array                                  type: object                              required:                              - destination                              - project                              - source                              type: object                          required:                          - metadata                          - spec                          type: object                        values:                          additionalProperties:                            type: string                          type: object                      type: object                    git:                      properties:                        directories:                          items:                            properties:                              exclude:                                type: boolean                              path:                                type: string                            required:                            - path                            type: object                          type: array                        files:                          items:                            properties:                              path:                                type: string                            required:                            - path                            type: object                          type: array                        repoURL:                          type: string                        requeueAfterSeconds:                          format: int64                          type: integer                        revision:                          type: string                        template:                          properties:                            metadata:                              properties:                                annotations:                                  additionalProperties:                                    type: string                                  type: object                                finalizers:                                  items:                                    type: string                                  type: array                                labels:                                  additionalProperties:                                    type: string                                  type: object                                name:                                  type: string                                namespace:                                  type: string                              type: object                            spec:                              properties:                                destination:                                  properties:                                    name:                                      type: string                                    namespace:                                      type: string                                    server:                                      type: string                                  type: object                                ignoreDifferences:                                  items:                                    properties:                                      group:                                        type: string                                      jqPathExpressions:                                        items:                                          type: string                                        type: array                                      jsonPointers:                                        items:                                          type: string                                        type: array                                      kind:                                        type: string                                      managedFieldsManagers:                                        items:                                          type: string                                        type: array                                      name:                                        type: string                                      namespace:                                        type: string                                    required:                                    - kind                                    type: object                                  type: array                                info:                                  items:                                    properties:                                      name:                                        type: string                                      value:                                        type: string                                    required:                                    - name                                    - value                                    type: object                                  type: array                                project:                                  type: string                                revisionHistoryLimit:                                  format: int64                                  type: integer                                source:                                  properties:                                    chart:                                      type: string                                    directory:                                      properties:                                        exclude:                                          type: string                                        include:                                          type: string                                        jsonnet:                                          properties:                                            extVars:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                            libs:                                              items:                                                type: string                                              type: array                                            tlas:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                          type: object                                        recurse:                                          type: boolean                                      type: object                                    helm:                                      properties:                                        fileParameters:                                          items:                                            properties:                                              name:                                                type: string                                              path:                                                type: string                                            type: object                                          type: array                                        ignoreMissingValueFiles:                                          type: boolean                                        parameters:                                          items:                                            properties:                                              forceString:                                                type: boolean                                              name:                                                type: string                                              value:                                                type: string                                            type: object                                          type: array                                        passCredentials:                                          type: boolean                                        releaseName:                                          type: string                                        skipCrds:                                          type: boolean                                        valueFiles:                                          items:                                            type: string                                          type: array                                        values:                                          type: string                                        version:                                          type: string                                      type: object                                    kustomize:                                      properties:                                        commonAnnotations:                                          additionalProperties:                                            type: string                                          type: object                                        commonLabels:                                          additionalProperties:                                            type: string                                          type: object                                        forceCommonAnnotations:                                          type: boolean                                        forceCommonLabels:                                          type: boolean                                        images:                                          items:                                            type: string                                          type: array                                        namePrefix:                                          type: string                                        nameSuffix:                                          type: string                                        version:                                          type: string                                      type: object                                    path:                                      type: string                                    plugin:                                      properties:                                        env:                                          items:                                            properties:                                              name:                                                type: string                                              value:                                                type: string                                            required:                                            - name                                            - value                                            type: object                                          type: array                                        name:                                          type: string                                      type: object                                    repoURL:                                      type: string                                    targetRevision:                                      type: string                                  required:                                  - repoURL                                  type: object                                syncPolicy:                                  properties:                                    automated:                                      properties:                                        allowEmpty:                                          type: boolean                                        prune:                                          type: boolean                                        selfHeal:                                          type: boolean                                      type: object                                    managedNamespaceMetadata:                                      properties:                                        annotations:                                          additionalProperties:                                            type: string                                          type: object                                        labels:                                          additionalProperties:                                            type: string                                          type: object                                      type: object                                    retry:                                      properties:                                        backoff:                                          properties:                                            duration:                                              type: string                                            factor:                                              format: int64                                              type: integer                                            maxDuration:                                              type: string                                          type: object                                        limit:                                          format: int64                                          type: integer                                      type: object                                    syncOptions:                                      items:                                        type: string                                      type: array                                  type: object                              required:                              - destination                              - project                              - source                              type: object                          required:                          - metadata                          - spec                          type: object                      required:                      - repoURL                      - revision                      type: object                    list:                      properties:                        elements:                          items:                            x-kubernetes-preserve-unknown-fields: true                          type: array                        template:                          properties:                            metadata:                              properties:                                annotations:                                  additionalProperties:                                    type: string                                  type: object                                finalizers:                                  items:                                    type: string                                  type: array                                labels:                                  additionalProperties:                                    type: string                                  type: object                                name:                                  type: string                                namespace:                                  type: string                              type: object                            spec:                              properties:                                destination:                                  properties:                                    name:                                      type: string                                    namespace:                                      type: string                                    server:                                      type: string                                  type: object                                ignoreDifferences:                                  items:                                    properties:                                      group:                                        type: string                                      jqPathExpressions:                                        items:                                          type: string                                        type: array                                      jsonPointers:                                        items:                                          type: string                                        type: array                                      kind:                                        type: string                                      managedFieldsManagers:                                        items:                                          type: string                                        type: array                                      name:                                        type: string                                      namespace:                                        type: string                                    required:                                    - kind                                    type: object                                  type: array                                info:                                  items:                                    properties:                                      name:                                        type: string                                      value:                                        type: string                                    required:                                    - name                                    - value                                    type: object                                  type: array                                project:                                  type: string                                revisionHistoryLimit:                                  format: int64                                  type: integer                                source:                                  properties:                                    chart:                                      type: string                                    directory:                                      properties:                                        exclude:                                          type: string                                        include:                                          type: string                                        jsonnet:                                          properties:                                            extVars:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                            libs:                                              items:                                                type: string                                              type: array                                            tlas:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                          type: object                                        recurse:                                          type: boolean                                      type: object                                    helm:                                      properties:                                        fileParameters:                                          items:                                            properties:                                              name:                                                type: string                                              path:                                                type: string                                            type: object                                          type: array                                        ignoreMissingValueFiles:                                          type: boolean                                        parameters:                                          items:                                            properties:                                              forceString:                                                type: boolean                                              name:                                                type: string                                              value:                                                type: string                                            type: object                                          type: array                                        passCredentials:                                          type: boolean                                        releaseName:                                          type: string                                        skipCrds:                                          type: boolean                                        valueFiles:                                          items:                                            type: string                                          type: array                                        values:                                          type: string                                        version:                                          type: string                                      type: object                                    kustomize:                                      properties:                                        commonAnnotations:                                          additionalProperties:                                            type: string                                          type: object                                        commonLabels:                                          additionalProperties:                                            type: string                                          type: object                                        forceCommonAnnotations:                                          type: boolean                                        forceCommonLabels:                                          type: boolean                                        images:                                          items:                                            type: string                                          type: array                                        namePrefix:                                          type: string                                        nameSuffix:                                          type: string                                        version:                                          type: string                                      type: object                                    path:                                      type: string                                    plugin:                                      properties:                                        env:                                          items:                                            properties:                                              name:                                                type: string                                              value:                                                type: string                                            required:                                            - name                                            - value                                            type: object                                          type: array                                        name:                                          type: string                                      type: object                                    repoURL:                                      type: string                                    targetRevision:                                      type: string                                  required:                                  - repoURL                                  type: object                                syncPolicy:                                  properties:                                    automated:                                      properties:                                        allowEmpty:                                          type: boolean                                        prune:                                          type: boolean                                        selfHeal:                                          type: boolean                                      type: object                                    managedNamespaceMetadata:                                      properties:                                        annotations:                                          additionalProperties:                                            type: string                                          type: object                                        labels:                                          additionalProperties:                                            type: string                                          type: object                                      type: object                                    retry:                                      properties:                                        backoff:                                          properties:                                            duration:                                              type: string                                            factor:                                              format: int64                                              type: integer                                            maxDuration:                                              type: string                                          type: object                                        limit:                                          format: int64                                          type: integer                                      type: object                                    syncOptions:                                      items:                                        type: string                                      type: array                                  type: object                              required:                              - destination                              - project                              - source                              type: object                          required:                          - metadata                          - spec                          type: object                      required:                      - elements                      type: object                    matrix:                      properties:                        generators:                          items:                            properties:                              clusterDecisionResource:                                properties:                                  configMapRef:                                    type: string                                  labelSelector:                                    properties:                                      matchExpressions:                                        items:                                          properties:                                            key:                                              type: string                                            operator:                                              type: string                                            values:                                              items:                                                type: string                                              type: array                                          required:                                          - key                                          - operator                                          type: object                                        type: array                                      matchLabels:                                        additionalProperties:                                          type: string                                        type: object                                    type: object                                  name:                                    type: string                                  requeueAfterSeconds:                                    format: int64                                    type: integer                                  template:                                    properties:                                      metadata:                                        properties:                                          annotations:                                            additionalProperties:                                              type: string                                            type: object                                          finalizers:                                            items:                                              type: string                                            type: array                                          labels:                                            additionalProperties:                                              type: string                                            type: object                                          name:                                            type: string                                          namespace:                                            type: string                                        type: object                                      spec:                                        properties:                                          destination:                                            properties:                                              name:                                                type: string                                              namespace:                                                type: string                                              server:                                                type: string                                            type: object                                          ignoreDifferences:                                            items:                                              properties:                                                group:                                                  type: string                                                jqPathExpressions:                                                  items:                                                    type: string                                                  type: array                                                jsonPointers:                                                  items:                                                    type: string                                                  type: array                                                kind:                                                  type: string                                                managedFieldsManagers:                                                  items:                                                    type: string                                                  type: array                                                name:                                                  type: string                                                namespace:                                                  type: string                                              required:                                              - kind                                              type: object                                            type: array                                          info:                                            items:                                              properties:                                                name:                                                  type: string                                                value:                                                  type: string                                              required:                                              - name                                              - value                                              type: object                                            type: array                                          project:                                            type: string                                          revisionHistoryLimit:                                            format: int64                                            type: integer                                          source:                                            properties:                                              chart:                                                type: string                                              directory:                                                properties:                                                  exclude:                                                    type: string                                                  include:                                                    type: string                                                  jsonnet:                                                    properties:                                                      extVars:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                      libs:                                                        items:                                                          type: string                                                        type: array                                                      tlas:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                    type: object                                                  recurse:                                                    type: boolean                                                type: object                                              helm:                                                properties:                                                  fileParameters:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        path:                                                          type: string                                                      type: object                                                    type: array                                                  ignoreMissingValueFiles:                                                    type: boolean                                                  parameters:                                                    items:                                                      properties:                                                        forceString:                                                          type: boolean                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      type: object                                                    type: array                                                  passCredentials:                                                    type: boolean                                                  releaseName:                                                    type: string                                                  skipCrds:                                                    type: boolean                                                  valueFiles:                                                    items:                                                      type: string                                                    type: array                                                  values:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              kustomize:                                                properties:                                                  commonAnnotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  commonLabels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  forceCommonAnnotations:                                                    type: boolean                                                  forceCommonLabels:                                                    type: boolean                                                  images:                                                    items:                                                      type: string                                                    type: array                                                  namePrefix:                                                    type: string                                                  nameSuffix:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              path:                                                type: string                                              plugin:                                                properties:                                                  env:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      required:                                                      - name                                                      - value                                                      type: object                                                    type: array                                                  name:                                                    type: string                                                type: object                                              repoURL:                                                type: string                                              targetRevision:                                                type: string                                            required:                                            - repoURL                                            type: object                                          syncPolicy:                                            properties:                                              automated:                                                properties:                                                  allowEmpty:                                                    type: boolean                                                  prune:                                                    type: boolean                                                  selfHeal:                                                    type: boolean                                                type: object                                              managedNamespaceMetadata:                                                properties:                                                  annotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  labels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                type: object                                              retry:                                                properties:                                                  backoff:                                                    properties:                                                      duration:                                                        type: string                                                      factor:                                                        format: int64                                                        type: integer                                                      maxDuration:                                                        type: string                                                    type: object                                                  limit:                                                    format: int64                                                    type: integer                                                type: object                                              syncOptions:                                                items:                                                  type: string                                                type: array                                            type: object                                        required:                                        - destination                                        - project                                        - source                                        type: object                                    required:                                    - metadata                                    - spec                                    type: object                                  values:                                    additionalProperties:                                      type: string                                    type: object                                required:                                - configMapRef                                type: object                              clusters:                                properties:                                  selector:                                    properties:                                      matchExpressions:                                        items:                                          properties:                                            key:                                              type: string                                            operator:                                              type: string                                            values:                                              items:                                                type: string                                              type: array                                          required:                                          - key                                          - operator                                          type: object                                        type: array                                      matchLabels:                                        additionalProperties:                                          type: string                                        type: object                                    type: object                                  template:                                    properties:                                      metadata:                                        properties:                                          annotations:                                            additionalProperties:                                              type: string                                            type: object                                          finalizers:                                            items:                                              type: string                                            type: array                                          labels:                                            additionalProperties:                                              type: string                                            type: object                                          name:                                            type: string                                          namespace:                                            type: string                                        type: object                                      spec:                                        properties:                                          destination:                                            properties:                                              name:                                                type: string                                              namespace:                                                type: string                                              server:                                                type: string                                            type: object                                          ignoreDifferences:                                            items:                                              properties:                                                group:                                                  type: string                                                jqPathExpressions:                                                  items:                                                    type: string                                                  type: array                                                jsonPointers:                                                  items:                                                    type: string                                                  type: array                                                kind:                                                  type: string                                                managedFieldsManagers:                                                  items:                                                    type: string                                                  type: array                                                name:                                                  type: string                                                namespace:                                                  type: string                                              required:                                              - kind                                              type: object                                            type: array                                          info:                                            items:                                              properties:                                                name:                                                  type: string                                                value:                                                  type: string                                              required:                                              - name                                              - value                                              type: object                                            type: array                                          project:                                            type: string                                          revisionHistoryLimit:                                            format: int64                                            type: integer                                          source:                                            properties:                                              chart:                                                type: string                                              directory:                                                properties:                                                  exclude:                                                    type: string                                                  include:                                                    type: string                                                  jsonnet:                                                    properties:                                                      extVars:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                      libs:                                                        items:                                                          type: string                                                        type: array                                                      tlas:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                    type: object                                                  recurse:                                                    type: boolean                                                type: object                                              helm:                                                properties:                                                  fileParameters:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        path:                                                          type: string                                                      type: object                                                    type: array                                                  ignoreMissingValueFiles:                                                    type: boolean                                                  parameters:                                                    items:                                                      properties:                                                        forceString:                                                          type: boolean                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      type: object                                                    type: array                                                  passCredentials:                                                    type: boolean                                                  releaseName:                                                    type: string                                                  skipCrds:                                                    type: boolean                                                  valueFiles:                                                    items:                                                      type: string                                                    type: array                                                  values:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              kustomize:                                                properties:                                                  commonAnnotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  commonLabels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  forceCommonAnnotations:                                                    type: boolean                                                  forceCommonLabels:                                                    type: boolean                                                  images:                                                    items:                                                      type: string                                                    type: array                                                  namePrefix:                                                    type: string                                                  nameSuffix:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              path:                                                type: string                                              plugin:                                                properties:                                                  env:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      required:                                                      - name                                                      - value                                                      type: object                                                    type: array                                                  name:                                                    type: string                                                type: object                                              repoURL:                                                type: string                                              targetRevision:                                                type: string                                            required:                                            - repoURL                                            type: object                                          syncPolicy:                                            properties:                                              automated:                                                properties:                                                  allowEmpty:                                                    type: boolean                                                  prune:                                                    type: boolean                                                  selfHeal:                                                    type: boolean                                                type: object                                              managedNamespaceMetadata:                                                properties:                                                  annotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  labels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                type: object                                              retry:                                                properties:                                                  backoff:                                                    properties:                                                      duration:                                                        type: string                                                      factor:                                                        format: int64                                                        type: integer                                                      maxDuration:                                                        type: string                                                    type: object                                                  limit:                                                    format: int64                                                    type: integer                                                type: object                                              syncOptions:                                                items:                                                  type: string                                                type: array                                            type: object                                        required:                                        - destination                                        - project                                        - source                                        type: object                                    required:                                    - metadata                                    - spec                                    type: object                                  values:                                    additionalProperties:                                      type: string                                    type: object                                type: object                              git:                                properties:                                  directories:                                    items:                                      properties:                                        exclude:                                          type: boolean                                        path:                                          type: string                                      required:                                      - path                                      type: object                                    type: array                                  files:                                    items:                                      properties:                                        path:                                          type: string                                      required:                                      - path                                      type: object                                    type: array                                  repoURL:                                    type: string                                  requeueAfterSeconds:                                    format: int64                                    type: integer                                  revision:                                    type: string                                  template:                                    properties:                                      metadata:                                        properties:                                          annotations:                                            additionalProperties:                                              type: string                                            type: object                                          finalizers:                                            items:                                              type: string                                            type: array                                          labels:                                            additionalProperties:                                              type: string                                            type: object                                          name:                                            type: string                                          namespace:                                            type: string                                        type: object                                      spec:                                        properties:                                          destination:                                            properties:                                              name:                                                type: string                                              namespace:                                                type: string                                              server:                                                type: string                                            type: object                                          ignoreDifferences:                                            items:                                              properties:                                                group:                                                  type: string                                                jqPathExpressions:                                                  items:                                                    type: string                                                  type: array                                                jsonPointers:                                                  items:                                                    type: string                                                  type: array                                                kind:                                                  type: string                                                managedFieldsManagers:                                                  items:                                                    type: string                                                  type: array                                                name:                                                  type: string                                                namespace:                                                  type: string                                              required:                                              - kind                                              type: object                                            type: array                                          info:                                            items:                                              properties:                                                name:                                                  type: string                                                value:                                                  type: string                                              required:                                              - name                                              - value                                              type: object                                            type: array                                          project:                                            type: string                                          revisionHistoryLimit:                                            format: int64                                            type: integer                                          source:                                            properties:                                              chart:                                                type: string                                              directory:                                                properties:                                                  exclude:                                                    type: string                                                  include:                                                    type: string                                                  jsonnet:                                                    properties:                                                      extVars:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                      libs:                                                        items:                                                          type: string                                                        type: array                                                      tlas:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                    type: object                                                  recurse:                                                    type: boolean                                                type: object                                              helm:                                                properties:                                                  fileParameters:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        path:                                                          type: string                                                      type: object                                                    type: array                                                  ignoreMissingValueFiles:                                                    type: boolean                                                  parameters:                                                    items:                                                      properties:                                                        forceString:                                                          type: boolean                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      type: object                                                    type: array                                                  passCredentials:                                                    type: boolean                                                  releaseName:                                                    type: string                                                  skipCrds:                                                    type: boolean                                                  valueFiles:                                                    items:                                                      type: string                                                    type: array                                                  values:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              kustomize:                                                properties:                                                  commonAnnotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  commonLabels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  forceCommonAnnotations:                                                    type: boolean                                                  forceCommonLabels:                                                    type: boolean                                                  images:                                                    items:                                                      type: string                                                    type: array                                                  namePrefix:                                                    type: string                                                  nameSuffix:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              path:                                                type: string                                              plugin:                                                properties:                                                  env:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      required:                                                      - name                                                      - value                                                      type: object                                                    type: array                                                  name:                                                    type: string                                                type: object                                              repoURL:                                                type: string                                              targetRevision:                                                type: string                                            required:                                            - repoURL                                            type: object                                          syncPolicy:                                            properties:                                              automated:                                                properties:                                                  allowEmpty:                                                    type: boolean                                                  prune:                                                    type: boolean                                                  selfHeal:                                                    type: boolean                                                type: object                                              managedNamespaceMetadata:                                                properties:                                                  annotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  labels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                type: object                                              retry:                                                properties:                                                  backoff:                                                    properties:                                                      duration:                                                        type: string                                                      factor:                                                        format: int64                                                        type: integer                                                      maxDuration:                                                        type: string                                                    type: object                                                  limit:                                                    format: int64                                                    type: integer                                                type: object                                              syncOptions:                                                items:                                                  type: string                                                type: array                                            type: object                                        required:                                        - destination                                        - project                                        - source                                        type: object                                    required:                                    - metadata                                    - spec                                    type: object                                required:                                - repoURL                                - revision                                type: object                              list:                                properties:                                  elements:                                    items:                                      x-kubernetes-preserve-unknown-fields: true                                    type: array                                  template:                                    properties:                                      metadata:                                        properties:                                          annotations:                                            additionalProperties:                                              type: string                                            type: object                                          finalizers:                                            items:                                              type: string                                            type: array                                          labels:                                            additionalProperties:                                              type: string                                            type: object                                          name:                                            type: string                                          namespace:                                            type: string                                        type: object                                      spec:                                        properties:                                          destination:                                            properties:                                              name:                                                type: string                                              namespace:                                                type: string                                              server:                                                type: string                                            type: object                                          ignoreDifferences:                                            items:                                              properties:                                                group:                                                  type: string                                                jqPathExpressions:                                                  items:                                                    type: string                                                  type: array                                                jsonPointers:                                                  items:                                                    type: string                                                  type: array                                                kind:                                                  type: string                                                managedFieldsManagers:                                                  items:                                                    type: string                                                  type: array                                                name:                                                  type: string                                                namespace:                                                  type: string                                              required:                                              - kind                                              type: object                                            type: array                                          info:                                            items:                                              properties:                                                name:                                                  type: string                                                value:                                                  type: string                                              required:                                              - name                                              - value                                              type: object                                            type: array                                          project:                                            type: string                                          revisionHistoryLimit:                                            format: int64                                            type: integer                                          source:                                            properties:                                              chart:                                                type: string                                              directory:                                                properties:                                                  exclude:                                                    type: string                                                  include:                                                    type: string                                                  jsonnet:                                                    properties:                                                      extVars:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                      libs:                                                        items:                                                          type: string                                                        type: array                                                      tlas:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                    type: object                                                  recurse:                                                    type: boolean                                                type: object                                              helm:                                                properties:                                                  fileParameters:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        path:                                                          type: string                                                      type: object                                                    type: array                                                  ignoreMissingValueFiles:                                                    type: boolean                                                  parameters:                                                    items:                                                      properties:                                                        forceString:                                                          type: boolean                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      type: object                                                    type: array                                                  passCredentials:                                                    type: boolean                                                  releaseName:                                                    type: string                                                  skipCrds:                                                    type: boolean                                                  valueFiles:                                                    items:                                                      type: string                                                    type: array                                                  values:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              kustomize:                                                properties:                                                  commonAnnotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  commonLabels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  forceCommonAnnotations:                                                    type: boolean                                                  forceCommonLabels:                                                    type: boolean                                                  images:                                                    items:                                                      type: string                                                    type: array                                                  namePrefix:                                                    type: string                                                  nameSuffix:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              path:                                                type: string                                              plugin:                                                properties:                                                  env:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      required:                                                      - name                                                      - value                                                      type: object                                                    type: array                                                  name:                                                    type: string                                                type: object                                              repoURL:                                                type: string                                              targetRevision:                                                type: string                                            required:                                            - repoURL                                            type: object                                          syncPolicy:                                            properties:                                              automated:                                                properties:                                                  allowEmpty:                                                    type: boolean                                                  prune:                                                    type: boolean                                                  selfHeal:                                                    type: boolean                                                type: object                                              managedNamespaceMetadata:                                                properties:                                                  annotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  labels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                type: object                                              retry:                                                properties:                                                  backoff:                                                    properties:                                                      duration:                                                        type: string                                                      factor:                                                        format: int64                                                        type: integer                                                      maxDuration:                                                        type: string                                                    type: object                                                  limit:                                                    format: int64                                                    type: integer                                                type: object                                              syncOptions:                                                items:                                                  type: string                                                type: array                                            type: object                                        required:                                        - destination                                        - project                                        - source                                        type: object                                    required:                                    - metadata                                    - spec                                    type: object                                required:                                - elements                                type: object                              matrix:                                x-kubernetes-preserve-unknown-fields: true                              merge:                                x-kubernetes-preserve-unknown-fields: true                              pullRequest:                                properties:                                  bitbucketServer:                                    properties:                                      api:                                        type: string                                      basicAuth:                                        properties:                                          passwordRef:                                            properties:                                              key:                                                type: string                                              secretName:                                                type: string                                            required:                                            - key                                            - secretName                                            type: object                                          username:                                            type: string                                        required:                                        - passwordRef                                        - username                                        type: object                                      project:                                        type: string                                      repo:                                        type: string                                    required:                                    - api                                    - project                                    - repo                                    type: object                                  filters:                                    items:                                      properties:                                        branchMatch:                                          type: string                                      type: object                                    type: array                                  gitea:                                    properties:                                      api:                                        type: string                                      insecure:                                        type: boolean                                      owner:                                        type: string                                      repo:                                        type: string                                      tokenRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                    required:                                    - api                                    - owner                                    - repo                                    type: object                                  github:                                    properties:                                      api:                                        type: string                                      appSecretName:                                        type: string                                      labels:                                        items:                                          type: string                                        type: array                                      owner:                                        type: string                                      repo:                                        type: string                                      tokenRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                    required:                                    - owner                                    - repo                                    type: object                                  gitlab:                                    properties:                                      api:                                        type: string                                      labels:                                        items:                                          type: string                                        type: array                                      project:                                        type: string                                      pullRequestState:                                        type: string                                      tokenRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                    required:                                    - project                                    type: object                                  requeueAfterSeconds:                                    format: int64                                    type: integer                                  template:                                    properties:                                      metadata:                                        properties:                                          annotations:                                            additionalProperties:                                              type: string                                            type: object                                          finalizers:                                            items:                                              type: string                                            type: array                                          labels:                                            additionalProperties:                                              type: string                                            type: object                                          name:                                            type: string                                          namespace:                                            type: string                                        type: object                                      spec:                                        properties:                                          destination:                                            properties:                                              name:                                                type: string                                              namespace:                                                type: string                                              server:                                                type: string                                            type: object                                          ignoreDifferences:                                            items:                                              properties:                                                group:                                                  type: string                                                jqPathExpressions:                                                  items:                                                    type: string                                                  type: array                                                jsonPointers:                                                  items:                                                    type: string                                                  type: array                                                kind:                                                  type: string                                                managedFieldsManagers:                                                  items:                                                    type: string                                                  type: array                                                name:                                                  type: string                                                namespace:                                                  type: string                                              required:                                              - kind                                              type: object                                            type: array                                          info:                                            items:                                              properties:                                                name:                                                  type: string                                                value:                                                  type: string                                              required:                                              - name                                              - value                                              type: object                                            type: array                                          project:                                            type: string                                          revisionHistoryLimit:                                            format: int64                                            type: integer                                          source:                                            properties:                                              chart:                                                type: string                                              directory:                                                properties:                                                  exclude:                                                    type: string                                                  include:                                                    type: string                                                  jsonnet:                                                    properties:                                                      extVars:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                      libs:                                                        items:                                                          type: string                                                        type: array                                                      tlas:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                    type: object                                                  recurse:                                                    type: boolean                                                type: object                                              helm:                                                properties:                                                  fileParameters:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        path:                                                          type: string                                                      type: object                                                    type: array                                                  ignoreMissingValueFiles:                                                    type: boolean                                                  parameters:                                                    items:                                                      properties:                                                        forceString:                                                          type: boolean                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      type: object                                                    type: array                                                  passCredentials:                                                    type: boolean                                                  releaseName:                                                    type: string                                                  skipCrds:                                                    type: boolean                                                  valueFiles:                                                    items:                                                      type: string                                                    type: array                                                  values:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              kustomize:                                                properties:                                                  commonAnnotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  commonLabels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  forceCommonAnnotations:                                                    type: boolean                                                  forceCommonLabels:                                                    type: boolean                                                  images:                                                    items:                                                      type: string                                                    type: array                                                  namePrefix:                                                    type: string                                                  nameSuffix:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              path:                                                type: string                                              plugin:                                                properties:                                                  env:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      required:                                                      - name                                                      - value                                                      type: object                                                    type: array                                                  name:                                                    type: string                                                type: object                                              repoURL:                                                type: string                                              targetRevision:                                                type: string                                            required:                                            - repoURL                                            type: object                                          syncPolicy:                                            properties:                                              automated:                                                properties:                                                  allowEmpty:                                                    type: boolean                                                  prune:                                                    type: boolean                                                  selfHeal:                                                    type: boolean                                                type: object                                              managedNamespaceMetadata:                                                properties:                                                  annotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  labels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                type: object                                              retry:                                                properties:                                                  backoff:                                                    properties:                                                      duration:                                                        type: string                                                      factor:                                                        format: int64                                                        type: integer                                                      maxDuration:                                                        type: string                                                    type: object                                                  limit:                                                    format: int64                                                    type: integer                                                type: object                                              syncOptions:                                                items:                                                  type: string                                                type: array                                            type: object                                        required:                                        - destination                                        - project                                        - source                                        type: object                                    required:                                    - metadata                                    - spec                                    type: object                                type: object                              scmProvider:                                properties:                                  azureDevOps:                                    properties:                                      accessTokenRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                      allBranches:                                        type: boolean                                      api:                                        type: string                                      organization:                                        type: string                                      teamProject:                                        type: string                                    required:                                    - accessTokenRef                                    - organization                                    - teamProject                                    type: object                                  bitbucket:                                    properties:                                      allBranches:                                        type: boolean                                      appPasswordRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                      owner:                                        type: string                                      user:                                        type: string                                    required:                                    - appPasswordRef                                    - owner                                    - user                                    type: object                                  bitbucketServer:                                    properties:                                      allBranches:                                        type: boolean                                      api:                                        type: string                                      basicAuth:                                        properties:                                          passwordRef:                                            properties:                                              key:                                                type: string                                              secretName:                                                type: string                                            required:                                            - key                                            - secretName                                            type: object                                          username:                                            type: string                                        required:                                        - passwordRef                                        - username                                        type: object                                      project:                                        type: string                                    required:                                    - api                                    - project                                    type: object                                  cloneProtocol:                                    type: string                                  filters:                                    items:                                      properties:                                        branchMatch:                                          type: string                                        labelMatch:                                          type: string                                        pathsDoNotExist:                                          items:                                            type: string                                          type: array                                        pathsExist:                                          items:                                            type: string                                          type: array                                        repositoryMatch:                                          type: string                                      type: object                                    type: array                                  gitea:                                    properties:                                      allBranches:                                        type: boolean                                      api:                                        type: string                                      insecure:                                        type: boolean                                      owner:                                        type: string                                      tokenRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                    required:                                    - api                                    - owner                                    type: object                                  github:                                    properties:                                      allBranches:                                        type: boolean                                      api:                                        type: string                                      appSecretName:                                        type: string                                      organization:                                        type: string                                      tokenRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                    required:                                    - organization                                    type: object                                  gitlab:                                    properties:                                      allBranches:                                        type: boolean                                      api:                                        type: string                                      group:                                        type: string                                      includeSubgroups:                                        type: boolean                                      tokenRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                    required:                                    - group                                    type: object                                  requeueAfterSeconds:                                    format: int64                                    type: integer                                  template:                                    properties:                                      metadata:                                        properties:                                          annotations:                                            additionalProperties:                                              type: string                                            type: object                                          finalizers:                                            items:                                              type: string                                            type: array                                          labels:                                            additionalProperties:                                              type: string                                            type: object                                          name:                                            type: string                                          namespace:                                            type: string                                        type: object                                      spec:                                        properties:                                          destination:                                            properties:                                              name:                                                type: string                                              namespace:                                                type: string                                              server:                                                type: string                                            type: object                                          ignoreDifferences:                                            items:                                              properties:                                                group:                                                  type: string                                                jqPathExpressions:                                                  items:                                                    type: string                                                  type: array                                                jsonPointers:                                                  items:                                                    type: string                                                  type: array                                                kind:                                                  type: string                                                managedFieldsManagers:                                                  items:                                                    type: string                                                  type: array                                                name:                                                  type: string                                                namespace:                                                  type: string                                              required:                                              - kind                                              type: object                                            type: array                                          info:                                            items:                                              properties:                                                name:                                                  type: string                                                value:                                                  type: string                                              required:                                              - name                                              - value                                              type: object                                            type: array                                          project:                                            type: string                                          revisionHistoryLimit:                                            format: int64                                            type: integer                                          source:                                            properties:                                              chart:                                                type: string                                              directory:                                                properties:                                                  exclude:                                                    type: string                                                  include:                                                    type: string                                                  jsonnet:                                                    properties:                                                      extVars:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                      libs:                                                        items:                                                          type: string                                                        type: array                                                      tlas:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                    type: object                                                  recurse:                                                    type: boolean                                                type: object                                              helm:                                                properties:                                                  fileParameters:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        path:                                                          type: string                                                      type: object                                                    type: array                                                  ignoreMissingValueFiles:                                                    type: boolean                                                  parameters:                                                    items:                                                      properties:                                                        forceString:                                                          type: boolean                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      type: object                                                    type: array                                                  passCredentials:                                                    type: boolean                                                  releaseName:                                                    type: string                                                  skipCrds:                                                    type: boolean                                                  valueFiles:                                                    items:                                                      type: string                                                    type: array                                                  values:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              kustomize:                                                properties:                                                  commonAnnotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  commonLabels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  forceCommonAnnotations:                                                    type: boolean                                                  forceCommonLabels:                                                    type: boolean                                                  images:                                                    items:                                                      type: string                                                    type: array                                                  namePrefix:                                                    type: string                                                  nameSuffix:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              path:                                                type: string                                              plugin:                                                properties:                                                  env:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      required:                                                      - name                                                      - value                                                      type: object                                                    type: array                                                  name:                                                    type: string                                                type: object                                              repoURL:                                                type: string                                              targetRevision:                                                type: string                                            required:                                            - repoURL                                            type: object                                          syncPolicy:                                            properties:                                              automated:                                                properties:                                                  allowEmpty:                                                    type: boolean                                                  prune:                                                    type: boolean                                                  selfHeal:                                                    type: boolean                                                type: object                                              managedNamespaceMetadata:                                                properties:                                                  annotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  labels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                type: object                                              retry:                                                properties:                                                  backoff:                                                    properties:                                                      duration:                                                        type: string                                                      factor:                                                        format: int64                                                        type: integer                                                      maxDuration:                                                        type: string                                                    type: object                                                  limit:                                                    format: int64                                                    type: integer                                                type: object                                              syncOptions:                                                items:                                                  type: string                                                type: array                                            type: object                                        required:                                        - destination                                        - project                                        - source                                        type: object                                    required:                                    - metadata                                    - spec                                    type: object                                type: object                              selector:                                properties:                                  matchExpressions:                                    items:                                      properties:                                        key:                                          type: string                                        operator:                                          type: string                                        values:                                          items:                                            type: string                                          type: array                                      required:                                      - key                                      - operator                                      type: object                                    type: array                                  matchLabels:                                    additionalProperties:                                      type: string                                    type: object                                type: object                            type: object                          type: array                        template:                          properties:                            metadata:                              properties:                                annotations:                                  additionalProperties:                                    type: string                                  type: object                                finalizers:                                  items:                                    type: string                                  type: array                                labels:                                  additionalProperties:                                    type: string                                  type: object                                name:                                  type: string                                namespace:                                  type: string                              type: object                            spec:                              properties:                                destination:                                  properties:                                    name:                                      type: string                                    namespace:                                      type: string                                    server:                                      type: string                                  type: object                                ignoreDifferences:                                  items:                                    properties:                                      group:                                        type: string                                      jqPathExpressions:                                        items:                                          type: string                                        type: array                                      jsonPointers:                                        items:                                          type: string                                        type: array                                      kind:                                        type: string                                      managedFieldsManagers:                                        items:                                          type: string                                        type: array                                      name:                                        type: string                                      namespace:                                        type: string                                    required:                                    - kind                                    type: object                                  type: array                                info:                                  items:                                    properties:                                      name:                                        type: string                                      value:                                        type: string                                    required:                                    - name                                    - value                                    type: object                                  type: array                                project:                                  type: string                                revisionHistoryLimit:                                  format: int64                                  type: integer                                source:                                  properties:                                    chart:                                      type: string                                    directory:                                      properties:                                        exclude:                                          type: string                                        include:                                          type: string                                        jsonnet:                                          properties:                                            extVars:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                            libs:                                              items:                                                type: string                                              type: array                                            tlas:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                          type: object                                        recurse:                                          type: boolean                                      type: object                                    helm:                                      properties:                                        fileParameters:                                          items:                                            properties:                                              name:                                                type: string                                              path:                                                type: string                                            type: object                                          type: array                                        ignoreMissingValueFiles:                                          type: boolean                                        parameters:                                          items:                                            properties:                                              forceString:                                                type: boolean                                              name:                                                type: string                                              value:                                                type: string                                            type: object                                          type: array                                        passCredentials:                                          type: boolean                                        releaseName:                                          type: string                                        skipCrds:                                          type: boolean                                        valueFiles:                                          items:                                            type: string                                          type: array                                        values:                                          type: string                                        version:                                          type: string                                      type: object                                    kustomize:                                      properties:                                        commonAnnotations:                                          additionalProperties:                                            type: string                                          type: object                                        commonLabels:                                          additionalProperties:                                            type: string                                          type: object                                        forceCommonAnnotations:                                          type: boolean                                        forceCommonLabels:                                          type: boolean                                        images:                                          items:                                            type: string                                          type: array                                        namePrefix:                                          type: string                                        nameSuffix:                                          type: string                                        version:                                          type: string                                      type: object                                    path:                                      type: string                                    plugin:                                      properties:                                        env:                                          items:                                            properties:                                              name:                                                type: string                                              value:                                                type: string                                            required:                                            - name                                            - value                                            type: object                                          type: array                                        name:                                          type: string                                      type: object                                    repoURL:                                      type: string                                    targetRevision:                                      type: string                                  required:                                  - repoURL                                  type: object                                syncPolicy:                                  properties:                                    automated:                                      properties:                                        allowEmpty:                                          type: boolean                                        prune:                                          type: boolean                                        selfHeal:                                          type: boolean                                      type: object                                    managedNamespaceMetadata:                                      properties:                                        annotations:                                          additionalProperties:                                            type: string                                          type: object                                        labels:                                          additionalProperties:                                            type: string                                          type: object                                      type: object                                    retry:                                      properties:                                        backoff:                                          properties:                                            duration:                                              type: string                                            factor:                                              format: int64                                              type: integer                                            maxDuration:                                              type: string                                          type: object                                        limit:                                          format: int64                                          type: integer                                      type: object                                    syncOptions:                                      items:                                        type: string                                      type: array                                  type: object                              required:                              - destination                              - project                              - source                              type: object                          required:                          - metadata                          - spec                          type: object                      required:                      - generators                      type: object                    merge:                      properties:                        generators:                          items:                            properties:                              clusterDecisionResource:                                properties:                                  configMapRef:                                    type: string                                  labelSelector:                                    properties:                                      matchExpressions:                                        items:                                          properties:                                            key:                                              type: string                                            operator:                                              type: string                                            values:                                              items:                                                type: string                                              type: array                                          required:                                          - key                                          - operator                                          type: object                                        type: array                                      matchLabels:                                        additionalProperties:                                          type: string                                        type: object                                    type: object                                  name:                                    type: string                                  requeueAfterSeconds:                                    format: int64                                    type: integer                                  template:                                    properties:                                      metadata:                                        properties:                                          annotations:                                            additionalProperties:                                              type: string                                            type: object                                          finalizers:                                            items:                                              type: string                                            type: array                                          labels:                                            additionalProperties:                                              type: string                                            type: object                                          name:                                            type: string                                          namespace:                                            type: string                                        type: object                                      spec:                                        properties:                                          destination:                                            properties:                                              name:                                                type: string                                              namespace:                                                type: string                                              server:                                                type: string                                            type: object                                          ignoreDifferences:                                            items:                                              properties:                                                group:                                                  type: string                                                jqPathExpressions:                                                  items:                                                    type: string                                                  type: array                                                jsonPointers:                                                  items:                                                    type: string                                                  type: array                                                kind:                                                  type: string                                                managedFieldsManagers:                                                  items:                                                    type: string                                                  type: array                                                name:                                                  type: string                                                namespace:                                                  type: string                                              required:                                              - kind                                              type: object                                            type: array                                          info:                                            items:                                              properties:                                                name:                                                  type: string                                                value:                                                  type: string                                              required:                                              - name                                              - value                                              type: object                                            type: array                                          project:                                            type: string                                          revisionHistoryLimit:                                            format: int64                                            type: integer                                          source:                                            properties:                                              chart:                                                type: string                                              directory:                                                properties:                                                  exclude:                                                    type: string                                                  include:                                                    type: string                                                  jsonnet:                                                    properties:                                                      extVars:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                      libs:                                                        items:                                                          type: string                                                        type: array                                                      tlas:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                    type: object                                                  recurse:                                                    type: boolean                                                type: object                                              helm:                                                properties:                                                  fileParameters:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        path:                                                          type: string                                                      type: object                                                    type: array                                                  ignoreMissingValueFiles:                                                    type: boolean                                                  parameters:                                                    items:                                                      properties:                                                        forceString:                                                          type: boolean                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      type: object                                                    type: array                                                  passCredentials:                                                    type: boolean                                                  releaseName:                                                    type: string                                                  skipCrds:                                                    type: boolean                                                  valueFiles:                                                    items:                                                      type: string                                                    type: array                                                  values:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              kustomize:                                                properties:                                                  commonAnnotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  commonLabels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  forceCommonAnnotations:                                                    type: boolean                                                  forceCommonLabels:                                                    type: boolean                                                  images:                                                    items:                                                      type: string                                                    type: array                                                  namePrefix:                                                    type: string                                                  nameSuffix:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              path:                                                type: string                                              plugin:                                                properties:                                                  env:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      required:                                                      - name                                                      - value                                                      type: object                                                    type: array                                                  name:                                                    type: string                                                type: object                                              repoURL:                                                type: string                                              targetRevision:                                                type: string                                            required:                                            - repoURL                                            type: object                                          syncPolicy:                                            properties:                                              automated:                                                properties:                                                  allowEmpty:                                                    type: boolean                                                  prune:                                                    type: boolean                                                  selfHeal:                                                    type: boolean                                                type: object                                              managedNamespaceMetadata:                                                properties:                                                  annotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  labels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                type: object                                              retry:                                                properties:                                                  backoff:                                                    properties:                                                      duration:                                                        type: string                                                      factor:                                                        format: int64                                                        type: integer                                                      maxDuration:                                                        type: string                                                    type: object                                                  limit:                                                    format: int64                                                    type: integer                                                type: object                                              syncOptions:                                                items:                                                  type: string                                                type: array                                            type: object                                        required:                                        - destination                                        - project                                        - source                                        type: object                                    required:                                    - metadata                                    - spec                                    type: object                                  values:                                    additionalProperties:                                      type: string                                    type: object                                required:                                - configMapRef                                type: object                              clusters:                                properties:                                  selector:                                    properties:                                      matchExpressions:                                        items:                                          properties:                                            key:                                              type: string                                            operator:                                              type: string                                            values:                                              items:                                                type: string                                              type: array                                          required:                                          - key                                          - operator                                          type: object                                        type: array                                      matchLabels:                                        additionalProperties:                                          type: string                                        type: object                                    type: object                                  template:                                    properties:                                      metadata:                                        properties:                                          annotations:                                            additionalProperties:                                              type: string                                            type: object                                          finalizers:                                            items:                                              type: string                                            type: array                                          labels:                                            additionalProperties:                                              type: string                                            type: object                                          name:                                            type: string                                          namespace:                                            type: string                                        type: object                                      spec:                                        properties:                                          destination:                                            properties:                                              name:                                                type: string                                              namespace:                                                type: string                                              server:                                                type: string                                            type: object                                          ignoreDifferences:                                            items:                                              properties:                                                group:                                                  type: string                                                jqPathExpressions:                                                  items:                                                    type: string                                                  type: array                                                jsonPointers:                                                  items:                                                    type: string                                                  type: array                                                kind:                                                  type: string                                                managedFieldsManagers:                                                  items:                                                    type: string                                                  type: array                                                name:                                                  type: string                                                namespace:                                                  type: string                                              required:                                              - kind                                              type: object                                            type: array                                          info:                                            items:                                              properties:                                                name:                                                  type: string                                                value:                                                  type: string                                              required:                                              - name                                              - value                                              type: object                                            type: array                                          project:                                            type: string                                          revisionHistoryLimit:                                            format: int64                                            type: integer                                          source:                                            properties:                                              chart:                                                type: string                                              directory:                                                properties:                                                  exclude:                                                    type: string                                                  include:                                                    type: string                                                  jsonnet:                                                    properties:                                                      extVars:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                      libs:                                                        items:                                                          type: string                                                        type: array                                                      tlas:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                    type: object                                                  recurse:                                                    type: boolean                                                type: object                                              helm:                                                properties:                                                  fileParameters:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        path:                                                          type: string                                                      type: object                                                    type: array                                                  ignoreMissingValueFiles:                                                    type: boolean                                                  parameters:                                                    items:                                                      properties:                                                        forceString:                                                          type: boolean                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      type: object                                                    type: array                                                  passCredentials:                                                    type: boolean                                                  releaseName:                                                    type: string                                                  skipCrds:                                                    type: boolean                                                  valueFiles:                                                    items:                                                      type: string                                                    type: array                                                  values:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              kustomize:                                                properties:                                                  commonAnnotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  commonLabels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  forceCommonAnnotations:                                                    type: boolean                                                  forceCommonLabels:                                                    type: boolean                                                  images:                                                    items:                                                      type: string                                                    type: array                                                  namePrefix:                                                    type: string                                                  nameSuffix:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              path:                                                type: string                                              plugin:                                                properties:                                                  env:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      required:                                                      - name                                                      - value                                                      type: object                                                    type: array                                                  name:                                                    type: string                                                type: object                                              repoURL:                                                type: string                                              targetRevision:                                                type: string                                            required:                                            - repoURL                                            type: object                                          syncPolicy:                                            properties:                                              automated:                                                properties:                                                  allowEmpty:                                                    type: boolean                                                  prune:                                                    type: boolean                                                  selfHeal:                                                    type: boolean                                                type: object                                              managedNamespaceMetadata:                                                properties:                                                  annotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  labels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                type: object                                              retry:                                                properties:                                                  backoff:                                                    properties:                                                      duration:                                                        type: string                                                      factor:                                                        format: int64                                                        type: integer                                                      maxDuration:                                                        type: string                                                    type: object                                                  limit:                                                    format: int64                                                    type: integer                                                type: object                                              syncOptions:                                                items:                                                  type: string                                                type: array                                            type: object                                        required:                                        - destination                                        - project                                        - source                                        type: object                                    required:                                    - metadata                                    - spec                                    type: object                                  values:                                    additionalProperties:                                      type: string                                    type: object                                type: object                              git:                                properties:                                  directories:                                    items:                                      properties:                                        exclude:                                          type: boolean                                        path:                                          type: string                                      required:                                      - path                                      type: object                                    type: array                                  files:                                    items:                                      properties:                                        path:                                          type: string                                      required:                                      - path                                      type: object                                    type: array                                  repoURL:                                    type: string                                  requeueAfterSeconds:                                    format: int64                                    type: integer                                  revision:                                    type: string                                  template:                                    properties:                                      metadata:                                        properties:                                          annotations:                                            additionalProperties:                                              type: string                                            type: object                                          finalizers:                                            items:                                              type: string                                            type: array                                          labels:                                            additionalProperties:                                              type: string                                            type: object                                          name:                                            type: string                                          namespace:                                            type: string                                        type: object                                      spec:                                        properties:                                          destination:                                            properties:                                              name:                                                type: string                                              namespace:                                                type: string                                              server:                                                type: string                                            type: object                                          ignoreDifferences:                                            items:                                              properties:                                                group:                                                  type: string                                                jqPathExpressions:                                                  items:                                                    type: string                                                  type: array                                                jsonPointers:                                                  items:                                                    type: string                                                  type: array                                                kind:                                                  type: string                                                managedFieldsManagers:                                                  items:                                                    type: string                                                  type: array                                                name:                                                  type: string                                                namespace:                                                  type: string                                              required:                                              - kind                                              type: object                                            type: array                                          info:                                            items:                                              properties:                                                name:                                                  type: string                                                value:                                                  type: string                                              required:                                              - name                                              - value                                              type: object                                            type: array                                          project:                                            type: string                                          revisionHistoryLimit:                                            format: int64                                            type: integer                                          source:                                            properties:                                              chart:                                                type: string                                              directory:                                                properties:                                                  exclude:                                                    type: string                                                  include:                                                    type: string                                                  jsonnet:                                                    properties:                                                      extVars:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                      libs:                                                        items:                                                          type: string                                                        type: array                                                      tlas:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                    type: object                                                  recurse:                                                    type: boolean                                                type: object                                              helm:                                                properties:                                                  fileParameters:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        path:                                                          type: string                                                      type: object                                                    type: array                                                  ignoreMissingValueFiles:                                                    type: boolean                                                  parameters:                                                    items:                                                      properties:                                                        forceString:                                                          type: boolean                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      type: object                                                    type: array                                                  passCredentials:                                                    type: boolean                                                  releaseName:                                                    type: string                                                  skipCrds:                                                    type: boolean                                                  valueFiles:                                                    items:                                                      type: string                                                    type: array                                                  values:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              kustomize:                                                properties:                                                  commonAnnotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  commonLabels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  forceCommonAnnotations:                                                    type: boolean                                                  forceCommonLabels:                                                    type: boolean                                                  images:                                                    items:                                                      type: string                                                    type: array                                                  namePrefix:                                                    type: string                                                  nameSuffix:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              path:                                                type: string                                              plugin:                                                properties:                                                  env:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      required:                                                      - name                                                      - value                                                      type: object                                                    type: array                                                  name:                                                    type: string                                                type: object                                              repoURL:                                                type: string                                              targetRevision:                                                type: string                                            required:                                            - repoURL                                            type: object                                          syncPolicy:                                            properties:                                              automated:                                                properties:                                                  allowEmpty:                                                    type: boolean                                                  prune:                                                    type: boolean                                                  selfHeal:                                                    type: boolean                                                type: object                                              managedNamespaceMetadata:                                                properties:                                                  annotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  labels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                type: object                                              retry:                                                properties:                                                  backoff:                                                    properties:                                                      duration:                                                        type: string                                                      factor:                                                        format: int64                                                        type: integer                                                      maxDuration:                                                        type: string                                                    type: object                                                  limit:                                                    format: int64                                                    type: integer                                                type: object                                              syncOptions:                                                items:                                                  type: string                                                type: array                                            type: object                                        required:                                        - destination                                        - project                                        - source                                        type: object                                    required:                                    - metadata                                    - spec                                    type: object                                required:                                - repoURL                                - revision                                type: object                              list:                                properties:                                  elements:                                    items:                                      x-kubernetes-preserve-unknown-fields: true                                    type: array                                  template:                                    properties:                                      metadata:                                        properties:                                          annotations:                                            additionalProperties:                                              type: string                                            type: object                                          finalizers:                                            items:                                              type: string                                            type: array                                          labels:                                            additionalProperties:                                              type: string                                            type: object                                          name:                                            type: string                                          namespace:                                            type: string                                        type: object                                      spec:                                        properties:                                          destination:                                            properties:                                              name:                                                type: string                                              namespace:                                                type: string                                              server:                                                type: string                                            type: object                                          ignoreDifferences:                                            items:                                              properties:                                                group:                                                  type: string                                                jqPathExpressions:                                                  items:                                                    type: string                                                  type: array                                                jsonPointers:                                                  items:                                                    type: string                                                  type: array                                                kind:                                                  type: string                                                managedFieldsManagers:                                                  items:                                                    type: string                                                  type: array                                                name:                                                  type: string                                                namespace:                                                  type: string                                              required:                                              - kind                                              type: object                                            type: array                                          info:                                            items:                                              properties:                                                name:                                                  type: string                                                value:                                                  type: string                                              required:                                              - name                                              - value                                              type: object                                            type: array                                          project:                                            type: string                                          revisionHistoryLimit:                                            format: int64                                            type: integer                                          source:                                            properties:                                              chart:                                                type: string                                              directory:                                                properties:                                                  exclude:                                                    type: string                                                  include:                                                    type: string                                                  jsonnet:                                                    properties:                                                      extVars:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                      libs:                                                        items:                                                          type: string                                                        type: array                                                      tlas:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                    type: object                                                  recurse:                                                    type: boolean                                                type: object                                              helm:                                                properties:                                                  fileParameters:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        path:                                                          type: string                                                      type: object                                                    type: array                                                  ignoreMissingValueFiles:                                                    type: boolean                                                  parameters:                                                    items:                                                      properties:                                                        forceString:                                                          type: boolean                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      type: object                                                    type: array                                                  passCredentials:                                                    type: boolean                                                  releaseName:                                                    type: string                                                  skipCrds:                                                    type: boolean                                                  valueFiles:                                                    items:                                                      type: string                                                    type: array                                                  values:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              kustomize:                                                properties:                                                  commonAnnotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  commonLabels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  forceCommonAnnotations:                                                    type: boolean                                                  forceCommonLabels:                                                    type: boolean                                                  images:                                                    items:                                                      type: string                                                    type: array                                                  namePrefix:                                                    type: string                                                  nameSuffix:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              path:                                                type: string                                              plugin:                                                properties:                                                  env:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      required:                                                      - name                                                      - value                                                      type: object                                                    type: array                                                  name:                                                    type: string                                                type: object                                              repoURL:                                                type: string                                              targetRevision:                                                type: string                                            required:                                            - repoURL                                            type: object                                          syncPolicy:                                            properties:                                              automated:                                                properties:                                                  allowEmpty:                                                    type: boolean                                                  prune:                                                    type: boolean                                                  selfHeal:                                                    type: boolean                                                type: object                                              managedNamespaceMetadata:                                                properties:                                                  annotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  labels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                type: object                                              retry:                                                properties:                                                  backoff:                                                    properties:                                                      duration:                                                        type: string                                                      factor:                                                        format: int64                                                        type: integer                                                      maxDuration:                                                        type: string                                                    type: object                                                  limit:                                                    format: int64                                                    type: integer                                                type: object                                              syncOptions:                                                items:                                                  type: string                                                type: array                                            type: object                                        required:                                        - destination                                        - project                                        - source                                        type: object                                    required:                                    - metadata                                    - spec                                    type: object                                required:                                - elements                                type: object                              matrix:                                x-kubernetes-preserve-unknown-fields: true                              merge:                                x-kubernetes-preserve-unknown-fields: true                              pullRequest:                                properties:                                  bitbucketServer:                                    properties:                                      api:                                        type: string                                      basicAuth:                                        properties:                                          passwordRef:                                            properties:                                              key:                                                type: string                                              secretName:                                                type: string                                            required:                                            - key                                            - secretName                                            type: object                                          username:                                            type: string                                        required:                                        - passwordRef                                        - username                                        type: object                                      project:                                        type: string                                      repo:                                        type: string                                    required:                                    - api                                    - project                                    - repo                                    type: object                                  filters:                                    items:                                      properties:                                        branchMatch:                                          type: string                                      type: object                                    type: array                                  gitea:                                    properties:                                      api:                                        type: string                                      insecure:                                        type: boolean                                      owner:                                        type: string                                      repo:                                        type: string                                      tokenRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                    required:                                    - api                                    - owner                                    - repo                                    type: object                                  github:                                    properties:                                      api:                                        type: string                                      appSecretName:                                        type: string                                      labels:                                        items:                                          type: string                                        type: array                                      owner:                                        type: string                                      repo:                                        type: string                                      tokenRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                    required:                                    - owner                                    - repo                                    type: object                                  gitlab:                                    properties:                                      api:                                        type: string                                      labels:                                        items:                                          type: string                                        type: array                                      project:                                        type: string                                      pullRequestState:                                        type: string                                      tokenRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                    required:                                    - project                                    type: object                                  requeueAfterSeconds:                                    format: int64                                    type: integer                                  template:                                    properties:                                      metadata:                                        properties:                                          annotations:                                            additionalProperties:                                              type: string                                            type: object                                          finalizers:                                            items:                                              type: string                                            type: array                                          labels:                                            additionalProperties:                                              type: string                                            type: object                                          name:                                            type: string                                          namespace:                                            type: string                                        type: object                                      spec:                                        properties:                                          destination:                                            properties:                                              name:                                                type: string                                              namespace:                                                type: string                                              server:                                                type: string                                            type: object                                          ignoreDifferences:                                            items:                                              properties:                                                group:                                                  type: string                                                jqPathExpressions:                                                  items:                                                    type: string                                                  type: array                                                jsonPointers:                                                  items:                                                    type: string                                                  type: array                                                kind:                                                  type: string                                                managedFieldsManagers:                                                  items:                                                    type: string                                                  type: array                                                name:                                                  type: string                                                namespace:                                                  type: string                                              required:                                              - kind                                              type: object                                            type: array                                          info:                                            items:                                              properties:                                                name:                                                  type: string                                                value:                                                  type: string                                              required:                                              - name                                              - value                                              type: object                                            type: array                                          project:                                            type: string                                          revisionHistoryLimit:                                            format: int64                                            type: integer                                          source:                                            properties:                                              chart:                                                type: string                                              directory:                                                properties:                                                  exclude:                                                    type: string                                                  include:                                                    type: string                                                  jsonnet:                                                    properties:                                                      extVars:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                      libs:                                                        items:                                                          type: string                                                        type: array                                                      tlas:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                    type: object                                                  recurse:                                                    type: boolean                                                type: object                                              helm:                                                properties:                                                  fileParameters:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        path:                                                          type: string                                                      type: object                                                    type: array                                                  ignoreMissingValueFiles:                                                    type: boolean                                                  parameters:                                                    items:                                                      properties:                                                        forceString:                                                          type: boolean                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      type: object                                                    type: array                                                  passCredentials:                                                    type: boolean                                                  releaseName:                                                    type: string                                                  skipCrds:                                                    type: boolean                                                  valueFiles:                                                    items:                                                      type: string                                                    type: array                                                  values:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              kustomize:                                                properties:                                                  commonAnnotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  commonLabels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  forceCommonAnnotations:                                                    type: boolean                                                  forceCommonLabels:                                                    type: boolean                                                  images:                                                    items:                                                      type: string                                                    type: array                                                  namePrefix:                                                    type: string                                                  nameSuffix:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              path:                                                type: string                                              plugin:                                                properties:                                                  env:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      required:                                                      - name                                                      - value                                                      type: object                                                    type: array                                                  name:                                                    type: string                                                type: object                                              repoURL:                                                type: string                                              targetRevision:                                                type: string                                            required:                                            - repoURL                                            type: object                                          syncPolicy:                                            properties:                                              automated:                                                properties:                                                  allowEmpty:                                                    type: boolean                                                  prune:                                                    type: boolean                                                  selfHeal:                                                    type: boolean                                                type: object                                              managedNamespaceMetadata:                                                properties:                                                  annotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  labels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                type: object                                              retry:                                                properties:                                                  backoff:                                                    properties:                                                      duration:                                                        type: string                                                      factor:                                                        format: int64                                                        type: integer                                                      maxDuration:                                                        type: string                                                    type: object                                                  limit:                                                    format: int64                                                    type: integer                                                type: object                                              syncOptions:                                                items:                                                  type: string                                                type: array                                            type: object                                        required:                                        - destination                                        - project                                        - source                                        type: object                                    required:                                    - metadata                                    - spec                                    type: object                                type: object                              scmProvider:                                properties:                                  azureDevOps:                                    properties:                                      accessTokenRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                      allBranches:                                        type: boolean                                      api:                                        type: string                                      organization:                                        type: string                                      teamProject:                                        type: string                                    required:                                    - accessTokenRef                                    - organization                                    - teamProject                                    type: object                                  bitbucket:                                    properties:                                      allBranches:                                        type: boolean                                      appPasswordRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                      owner:                                        type: string                                      user:                                        type: string                                    required:                                    - appPasswordRef                                    - owner                                    - user                                    type: object                                  bitbucketServer:                                    properties:                                      allBranches:                                        type: boolean                                      api:                                        type: string                                      basicAuth:                                        properties:                                          passwordRef:                                            properties:                                              key:                                                type: string                                              secretName:                                                type: string                                            required:                                            - key                                            - secretName                                            type: object                                          username:                                            type: string                                        required:                                        - passwordRef                                        - username                                        type: object                                      project:                                        type: string                                    required:                                    - api                                    - project                                    type: object                                  cloneProtocol:                                    type: string                                  filters:                                    items:                                      properties:                                        branchMatch:                                          type: string                                        labelMatch:                                          type: string                                        pathsDoNotExist:                                          items:                                            type: string                                          type: array                                        pathsExist:                                          items:                                            type: string                                          type: array                                        repositoryMatch:                                          type: string                                      type: object                                    type: array                                  gitea:                                    properties:                                      allBranches:                                        type: boolean                                      api:                                        type: string                                      insecure:                                        type: boolean                                      owner:                                        type: string                                      tokenRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                    required:                                    - api                                    - owner                                    type: object                                  github:                                    properties:                                      allBranches:                                        type: boolean                                      api:                                        type: string                                      appSecretName:                                        type: string                                      organization:                                        type: string                                      tokenRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                    required:                                    - organization                                    type: object                                  gitlab:                                    properties:                                      allBranches:                                        type: boolean                                      api:                                        type: string                                      group:                                        type: string                                      includeSubgroups:                                        type: boolean                                      tokenRef:                                        properties:                                          key:                                            type: string                                          secretName:                                            type: string                                        required:                                        - key                                        - secretName                                        type: object                                    required:                                    - group                                    type: object                                  requeueAfterSeconds:                                    format: int64                                    type: integer                                  template:                                    properties:                                      metadata:                                        properties:                                          annotations:                                            additionalProperties:                                              type: string                                            type: object                                          finalizers:                                            items:                                              type: string                                            type: array                                          labels:                                            additionalProperties:                                              type: string                                            type: object                                          name:                                            type: string                                          namespace:                                            type: string                                        type: object                                      spec:                                        properties:                                          destination:                                            properties:                                              name:                                                type: string                                              namespace:                                                type: string                                              server:                                                type: string                                            type: object                                          ignoreDifferences:                                            items:                                              properties:                                                group:                                                  type: string                                                jqPathExpressions:                                                  items:                                                    type: string                                                  type: array                                                jsonPointers:                                                  items:                                                    type: string                                                  type: array                                                kind:                                                  type: string                                                managedFieldsManagers:                                                  items:                                                    type: string                                                  type: array                                                name:                                                  type: string                                                namespace:                                                  type: string                                              required:                                              - kind                                              type: object                                            type: array                                          info:                                            items:                                              properties:                                                name:                                                  type: string                                                value:                                                  type: string                                              required:                                              - name                                              - value                                              type: object                                            type: array                                          project:                                            type: string                                          revisionHistoryLimit:                                            format: int64                                            type: integer                                          source:                                            properties:                                              chart:                                                type: string                                              directory:                                                properties:                                                  exclude:                                                    type: string                                                  include:                                                    type: string                                                  jsonnet:                                                    properties:                                                      extVars:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                      libs:                                                        items:                                                          type: string                                                        type: array                                                      tlas:                                                        items:                                                          properties:                                                            code:                                                              type: boolean                                                            name:                                                              type: string                                                            value:                                                              type: string                                                          required:                                                          - name                                                          - value                                                          type: object                                                        type: array                                                    type: object                                                  recurse:                                                    type: boolean                                                type: object                                              helm:                                                properties:                                                  fileParameters:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        path:                                                          type: string                                                      type: object                                                    type: array                                                  ignoreMissingValueFiles:                                                    type: boolean                                                  parameters:                                                    items:                                                      properties:                                                        forceString:                                                          type: boolean                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      type: object                                                    type: array                                                  passCredentials:                                                    type: boolean                                                  releaseName:                                                    type: string                                                  skipCrds:                                                    type: boolean                                                  valueFiles:                                                    items:                                                      type: string                                                    type: array                                                  values:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              kustomize:                                                properties:                                                  commonAnnotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  commonLabels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  forceCommonAnnotations:                                                    type: boolean                                                  forceCommonLabels:                                                    type: boolean                                                  images:                                                    items:                                                      type: string                                                    type: array                                                  namePrefix:                                                    type: string                                                  nameSuffix:                                                    type: string                                                  version:                                                    type: string                                                type: object                                              path:                                                type: string                                              plugin:                                                properties:                                                  env:                                                    items:                                                      properties:                                                        name:                                                          type: string                                                        value:                                                          type: string                                                      required:                                                      - name                                                      - value                                                      type: object                                                    type: array                                                  name:                                                    type: string                                                type: object                                              repoURL:                                                type: string                                              targetRevision:                                                type: string                                            required:                                            - repoURL                                            type: object                                          syncPolicy:                                            properties:                                              automated:                                                properties:                                                  allowEmpty:                                                    type: boolean                                                  prune:                                                    type: boolean                                                  selfHeal:                                                    type: boolean                                                type: object                                              managedNamespaceMetadata:                                                properties:                                                  annotations:                                                    additionalProperties:                                                      type: string                                                    type: object                                                  labels:                                                    additionalProperties:                                                      type: string                                                    type: object                                                type: object                                              retry:                                                properties:                                                  backoff:                                                    properties:                                                      duration:                                                        type: string                                                      factor:                                                        format: int64                                                        type: integer                                                      maxDuration:                                                        type: string                                                    type: object                                                  limit:                                                    format: int64                                                    type: integer                                                type: object                                              syncOptions:                                                items:                                                  type: string                                                type: array                                            type: object                                        required:                                        - destination                                        - project                                        - source                                        type: object                                    required:                                    - metadata                                    - spec                                    type: object                                type: object                              selector:                                properties:                                  matchExpressions:                                    items:                                      properties:                                        key:                                          type: string                                        operator:                                          type: string                                        values:                                          items:                                            type: string                                          type: array                                      required:                                      - key                                      - operator                                      type: object                                    type: array                                  matchLabels:                                    additionalProperties:                                      type: string                                    type: object                                type: object                            type: object                          type: array                        mergeKeys:                          items:                            type: string                          type: array                        template:                          properties:                            metadata:                              properties:                                annotations:                                  additionalProperties:                                    type: string                                  type: object                                finalizers:                                  items:                                    type: string                                  type: array                                labels:                                  additionalProperties:                                    type: string                                  type: object                                name:                                  type: string                                namespace:                                  type: string                              type: object                            spec:                              properties:                                destination:                                  properties:                                    name:                                      type: string                                    namespace:                                      type: string                                    server:                                      type: string                                  type: object                                ignoreDifferences:                                  items:                                    properties:                                      group:                                        type: string                                      jqPathExpressions:                                        items:                                          type: string                                        type: array                                      jsonPointers:                                        items:                                          type: string                                        type: array                                      kind:                                        type: string                                      managedFieldsManagers:                                        items:                                          type: string                                        type: array                                      name:                                        type: string                                      namespace:                                        type: string                                    required:                                    - kind                                    type: object                                  type: array                                info:                                  items:                                    properties:                                      name:                                        type: string                                      value:                                        type: string                                    required:                                    - name                                    - value                                    type: object                                  type: array                                project:                                  type: string                                revisionHistoryLimit:                                  format: int64                                  type: integer                                source:                                  properties:                                    chart:                                      type: string                                    directory:                                      properties:                                        exclude:                                          type: string                                        include:                                          type: string                                        jsonnet:                                          properties:                                            extVars:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                            libs:                                              items:                                                type: string                                              type: array                                            tlas:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                          type: object                                        recurse:                                          type: boolean                                      type: object                                    helm:                                      properties:                                        fileParameters:                                          items:                                            properties:                                              name:                                                type: string                                              path:                                                type: string                                            type: object                                          type: array                                        ignoreMissingValueFiles:                                          type: boolean                                        parameters:                                          items:                                            properties:                                              forceString:                                                type: boolean                                              name:                                                type: string                                              value:                                                type: string                                            type: object                                          type: array                                        passCredentials:                                          type: boolean                                        releaseName:                                          type: string                                        skipCrds:                                          type: boolean                                        valueFiles:                                          items:                                            type: string                                          type: array                                        values:                                          type: string                                        version:                                          type: string                                      type: object                                    kustomize:                                      properties:                                        commonAnnotations:                                          additionalProperties:                                            type: string                                          type: object                                        commonLabels:                                          additionalProperties:                                            type: string                                          type: object                                        forceCommonAnnotations:                                          type: boolean                                        forceCommonLabels:                                          type: boolean                                        images:                                          items:                                            type: string                                          type: array                                        namePrefix:                                          type: string                                        nameSuffix:                                          type: string                                        version:                                          type: string                                      type: object                                    path:                                      type: string                                    plugin:                                      properties:                                        env:                                          items:                                            properties:                                              name:                                                type: string                                              value:                                                type: string                                            required:                                            - name                                            - value                                            type: object                                          type: array                                        name:                                          type: string                                      type: object                                    repoURL:                                      type: string                                    targetRevision:                                      type: string                                  required:                                  - repoURL                                  type: object                                syncPolicy:                                  properties:                                    automated:                                      properties:                                        allowEmpty:                                          type: boolean                                        prune:                                          type: boolean                                        selfHeal:                                          type: boolean                                      type: object                                    managedNamespaceMetadata:                                      properties:                                        annotations:                                          additionalProperties:                                            type: string                                          type: object                                        labels:                                          additionalProperties:                                            type: string                                          type: object                                      type: object                                    retry:                                      properties:                                        backoff:                                          properties:                                            duration:                                              type: string                                            factor:                                              format: int64                                              type: integer                                            maxDuration:                                              type: string                                          type: object                                        limit:                                          format: int64                                          type: integer                                      type: object                                    syncOptions:                                      items:                                        type: string                                      type: array                                  type: object                              required:                              - destination                              - project                              - source                              type: object                          required:                          - metadata                          - spec                          type: object                      required:                      - generators                      - mergeKeys                      type: object                    pullRequest:                      properties:                        bitbucketServer:                          properties:                            api:                              type: string                            basicAuth:                              properties:                                passwordRef:                                  properties:                                    key:                                      type: string                                    secretName:                                      type: string                                  required:                                  - key                                  - secretName                                  type: object                                username:                                  type: string                              required:                              - passwordRef                              - username                              type: object                            project:                              type: string                            repo:                              type: string                          required:                          - api                          - project                          - repo                          type: object                        filters:                          items:                            properties:                              branchMatch:                                type: string                            type: object                          type: array                        gitea:                          properties:                            api:                              type: string                            insecure:                              type: boolean                            owner:                              type: string                            repo:                              type: string                            tokenRef:                              properties:                                key:                                  type: string                                secretName:                                  type: string                              required:                              - key                              - secretName                              type: object                          required:                          - api                          - owner                          - repo                          type: object                        github:                          properties:                            api:                              type: string                            appSecretName:                              type: string                            labels:                              items:                                type: string                              type: array                            owner:                              type: string                            repo:                              type: string                            tokenRef:                              properties:                                key:                                  type: string                                secretName:                                  type: string                              required:                              - key                              - secretName                              type: object                          required:                          - owner                          - repo                          type: object                        gitlab:                          properties:                            api:                              type: string                            labels:                              items:                                type: string                              type: array                            project:                              type: string                            pullRequestState:                              type: string                            tokenRef:                              properties:                                key:                                  type: string                                secretName:                                  type: string                              required:                              - key                              - secretName                              type: object                          required:                          - project                          type: object                        requeueAfterSeconds:                          format: int64                          type: integer                        template:                          properties:                            metadata:                              properties:                                annotations:                                  additionalProperties:                                    type: string                                  type: object                                finalizers:                                  items:                                    type: string                                  type: array                                labels:                                  additionalProperties:                                    type: string                                  type: object                                name:                                  type: string                                namespace:                                  type: string                              type: object                            spec:                              properties:                                destination:                                  properties:                                    name:                                      type: string                                    namespace:                                      type: string                                    server:                                      type: string                                  type: object                                ignoreDifferences:                                  items:                                    properties:                                      group:                                        type: string                                      jqPathExpressions:                                        items:                                          type: string                                        type: array                                      jsonPointers:                                        items:                                          type: string                                        type: array                                      kind:                                        type: string                                      managedFieldsManagers:                                        items:                                          type: string                                        type: array                                      name:                                        type: string                                      namespace:                                        type: string                                    required:                                    - kind                                    type: object                                  type: array                                info:                                  items:                                    properties:                                      name:                                        type: string                                      value:                                        type: string                                    required:                                    - name                                    - value                                    type: object                                  type: array                                project:                                  type: string                                revisionHistoryLimit:                                  format: int64                                  type: integer                                source:                                  properties:                                    chart:                                      type: string                                    directory:                                      properties:                                        exclude:                                          type: string                                        include:                                          type: string                                        jsonnet:                                          properties:                                            extVars:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                            libs:                                              items:                                                type: string                                              type: array                                            tlas:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                          type: object                                        recurse:                                          type: boolean                                      type: object                                    helm:                                      properties:                                        fileParameters:                                          items:                                            properties:                                              name:                                                type: string                                              path:                                                type: string                                            type: object                                          type: array                                        ignoreMissingValueFiles:                                          type: boolean                                        parameters:                                          items:                                            properties:                                              forceString:                                                type: boolean                                              name:                                                type: string                                              value:                                                type: string                                            type: object                                          type: array                                        passCredentials:                                          type: boolean                                        releaseName:                                          type: string                                        skipCrds:                                          type: boolean                                        valueFiles:                                          items:                                            type: string                                          type: array                                        values:                                          type: string                                        version:                                          type: string                                      type: object                                    kustomize:                                      properties:                                        commonAnnotations:                                          additionalProperties:                                            type: string                                          type: object                                        commonLabels:                                          additionalProperties:                                            type: string                                          type: object                                        forceCommonAnnotations:                                          type: boolean                                        forceCommonLabels:                                          type: boolean                                        images:                                          items:                                            type: string                                          type: array                                        namePrefix:                                          type: string                                        nameSuffix:                                          type: string                                        version:                                          type: string                                      type: object                                    path:                                      type: string                                    plugin:                                      properties:                                        env:                                          items:                                            properties:                                              name:                                                type: string                                              value:                                                type: string                                            required:                                            - name                                            - value                                            type: object                                          type: array                                        name:                                          type: string                                      type: object                                    repoURL:                                      type: string                                    targetRevision:                                      type: string                                  required:                                  - repoURL                                  type: object                                syncPolicy:                                  properties:                                    automated:                                      properties:                                        allowEmpty:                                          type: boolean                                        prune:                                          type: boolean                                        selfHeal:                                          type: boolean                                      type: object                                    managedNamespaceMetadata:                                      properties:                                        annotations:                                          additionalProperties:                                            type: string                                          type: object                                        labels:                                          additionalProperties:                                            type: string                                          type: object                                      type: object                                    retry:                                      properties:                                        backoff:                                          properties:                                            duration:                                              type: string                                            factor:                                              format: int64                                              type: integer                                            maxDuration:                                              type: string                                          type: object                                        limit:                                          format: int64                                          type: integer                                      type: object                                    syncOptions:                                      items:                                        type: string                                      type: array                                  type: object                              required:                              - destination                              - project                              - source                              type: object                          required:                          - metadata                          - spec                          type: object                      type: object                    scmProvider:                      properties:                        azureDevOps:                          properties:                            accessTokenRef:                              properties:                                key:                                  type: string                                secretName:                                  type: string                              required:                              - key                              - secretName                              type: object                            allBranches:                              type: boolean                            api:                              type: string                            organization:                              type: string                            teamProject:                              type: string                          required:                          - accessTokenRef                          - organization                          - teamProject                          type: object                        bitbucket:                          properties:                            allBranches:                              type: boolean                            appPasswordRef:                              properties:                                key:                                  type: string                                secretName:                                  type: string                              required:                              - key                              - secretName                              type: object                            owner:                              type: string                            user:                              type: string                          required:                          - appPasswordRef                          - owner                          - user                          type: object                        bitbucketServer:                          properties:                            allBranches:                              type: boolean                            api:                              type: string                            basicAuth:                              properties:                                passwordRef:                                  properties:                                    key:                                      type: string                                    secretName:                                      type: string                                  required:                                  - key                                  - secretName                                  type: object                                username:                                  type: string                              required:                              - passwordRef                              - username                              type: object                            project:                              type: string                          required:                          - api                          - project                          type: object                        cloneProtocol:                          type: string                        filters:                          items:                            properties:                              branchMatch:                                type: string                              labelMatch:                                type: string                              pathsDoNotExist:                                items:                                  type: string                                type: array                              pathsExist:                                items:                                  type: string                                type: array                              repositoryMatch:                                type: string                            type: object                          type: array                        gitea:                          properties:                            allBranches:                              type: boolean                            api:                              type: string                            insecure:                              type: boolean                            owner:                              type: string                            tokenRef:                              properties:                                key:                                  type: string                                secretName:                                  type: string                              required:                              - key                              - secretName                              type: object                          required:                          - api                          - owner                          type: object                        github:                          properties:                            allBranches:                              type: boolean                            api:                              type: string                            appSecretName:                              type: string                            organization:                              type: string                            tokenRef:                              properties:                                key:                                  type: string                                secretName:                                  type: string                              required:                              - key                              - secretName                              type: object                          required:                          - organization                          type: object                        gitlab:                          properties:                            allBranches:                              type: boolean                            api:                              type: string                            group:                              type: string                            includeSubgroups:                              type: boolean                            tokenRef:                              properties:                                key:                                  type: string                                secretName:                                  type: string                              required:                              - key                              - secretName                              type: object                          required:                          - group                          type: object                        requeueAfterSeconds:                          format: int64                          type: integer                        template:                          properties:                            metadata:                              properties:                                annotations:                                  additionalProperties:                                    type: string                                  type: object                                finalizers:                                  items:                                    type: string                                  type: array                                labels:                                  additionalProperties:                                    type: string                                  type: object                                name:                                  type: string                                namespace:                                  type: string                              type: object                            spec:                              properties:                                destination:                                  properties:                                    name:                                      type: string                                    namespace:                                      type: string                                    server:                                      type: string                                  type: object                                ignoreDifferences:                                  items:                                    properties:                                      group:                                        type: string                                      jqPathExpressions:                                        items:                                          type: string                                        type: array                                      jsonPointers:                                        items:                                          type: string                                        type: array                                      kind:                                        type: string                                      managedFieldsManagers:                                        items:                                          type: string                                        type: array                                      name:                                        type: string                                      namespace:                                        type: string                                    required:                                    - kind                                    type: object                                  type: array                                info:                                  items:                                    properties:                                      name:                                        type: string                                      value:                                        type: string                                    required:                                    - name                                    - value                                    type: object                                  type: array                                project:                                  type: string                                revisionHistoryLimit:                                  format: int64                                  type: integer                                source:                                  properties:                                    chart:                                      type: string                                    directory:                                      properties:                                        exclude:                                          type: string                                        include:                                          type: string                                        jsonnet:                                          properties:                                            extVars:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                            libs:                                              items:                                                type: string                                              type: array                                            tlas:                                              items:                                                properties:                                                  code:                                                    type: boolean                                                  name:                                                    type: string                                                  value:                                                    type: string                                                required:                                                - name                                                - value                                                type: object                                              type: array                                          type: object                                        recurse:                                          type: boolean                                      type: object                                    helm:                                      properties:                                        fileParameters:                                          items:                                            properties:                                              name:                                                type: string                                              path:                                                type: string                                            type: object                                          type: array                                        ignoreMissingValueFiles:                                          type: boolean                                        parameters:                                          items:                                            properties:                                              forceString:                                                type: boolean                                              name:                                                type: string                                              value:                                                type: string                                            type: object                                          type: array                                        passCredentials:                                          type: boolean                                        releaseName:                                          type: string                                        skipCrds:                                          type: boolean                                        valueFiles:                                          items:                                            type: string                                          type: array                                        values:                                          type: string                                        version:                                          type: string                                      type: object                                    kustomize:                                      properties:                                        commonAnnotations:                                          additionalProperties:                                            type: string                                          type: object                                        commonLabels:                                          additionalProperties:                                            type: string                                          type: object                                        forceCommonAnnotations:                                          type: boolean                                        forceCommonLabels:                                          type: boolean                                        images:                                          items:                                            type: string                                          type: array                                        namePrefix:                                          type: string                                        nameSuffix:                                          type: string                                        version:                                          type: string                                      type: object                                    path:                                      type: string                                    plugin:                                      properties:                                        env:                                          items:                                            properties:                                              name:                                                type: string                                              value:                                                type: string                                            required:                                            - name                                            - value                                            type: object                                          type: array                                        name:                                          type: string                                      type: object                                    repoURL:                                      type: string                                    targetRevision:                                      type: string                                  required:                                  - repoURL                                  type: object                                syncPolicy:                                  properties:                                    automated:                                      properties:                                        allowEmpty:                                          type: boolean                                        prune:                                          type: boolean                                        selfHeal:                                          type: boolean                                      type: object                                    managedNamespaceMetadata:                                      properties:                                        annotations:                                          additionalProperties:                                            type: string                                          type: object                                        labels:                                          additionalProperties:                                            type: string                                          type: object                                      type: object                                    retry:                                      properties:                                        backoff:                                          properties:                                            duration:                                              type: string                                            factor:                                              format: int64                                              type: integer                                            maxDuration:                                              type: string                                          type: object                                        limit:                                          format: int64                                          type: integer                                      type: object                                    syncOptions:                                      items:                                        type: string                                      type: array                                  type: object                              required:                              - destination                              - project                              - source                              type: object                          required:                          - metadata                          - spec                          type: object                      type: object                    selector:                      properties:                        matchExpressions:                          items:                            properties:                              key:                                type: string                              operator:                                type: string                              values:                                items:                                  type: string                                type: array                            required:                            - key                            - operator                            type: object                          type: array                        matchLabels:                          additionalProperties:                            type: string                          type: object                      type: object                  type: object                type: array              goTemplate:                type: boolean              syncPolicy:                properties:                  preserveResourcesOnDeletion:                    type: boolean                type: object              template:                properties:                  metadata:                    properties:                      annotations:                        additionalProperties:                          type: string                        type: object                      finalizers:                        items:                          type: string                        type: array                      labels:                        additionalProperties:                          type: string                        type: object                      name:                        type: string                      namespace:                        type: string                    type: object                  spec:                    properties:                      destination:                        properties:                          name:                            type: string                          namespace:                            type: string                          server:                            type: string                        type: object                      ignoreDifferences:                        items:                          properties:                            group:                              type: string                            jqPathExpressions:                              items:                                type: string                              type: array                            jsonPointers:                              items:                                type: string                              type: array                            kind:                              type: string                            managedFieldsManagers:                              items:                                type: string                              type: array                            name:                              type: string                            namespace:                              type: string                          required:                          - kind                          type: object                        type: array                      info:                        items:                          properties:                            name:                              type: string                            value:                              type: string                          required:                          - name                          - value                          type: object                        type: array                      project:                        type: string                      revisionHistoryLimit:                        format: int64                        type: integer                      source:                        properties:                          chart:                            type: string                          directory:                            properties:                              exclude:                                type: string                              include:                                type: string                              jsonnet:                                properties:                                  extVars:                                    items:                                      properties:                                        code:                                          type: boolean                                        name:                                          type: string                                        value:                                          type: string                                      required:                                      - name                                      - value                                      type: object                                    type: array                                  libs:                                    items:                                      type: string                                    type: array                                  tlas:                                    items:                                      properties:                                        code:                                          type: boolean                                        name:                                          type: string                                        value:                                          type: string                                      required:                                      - name                                      - value                                      type: object                                    type: array                                type: object                              recurse:                                type: boolean                            type: object                          helm:                            properties:                              fileParameters:                                items:                                  properties:                                    name:                                      type: string                                    path:                                      type: string                                  type: object                                type: array                              ignoreMissingValueFiles:                                type: boolean                              parameters:                                items:                                  properties:                                    forceString:                                      type: boolean                                    name:                                      type: string                                    value:                                      type: string                                  type: object                                type: array                              passCredentials:                                type: boolean                              releaseName:                                type: string                              skipCrds:                                type: boolean                              valueFiles:                                items:                                  type: string                                type: array                              values:                                type: string                              version:                                type: string                            type: object                          kustomize:                            properties:                              commonAnnotations:                                additionalProperties:                                  type: string                                type: object                              commonLabels:                                additionalProperties:                                  type: string                                type: object                              forceCommonAnnotations:                                type: boolean                              forceCommonLabels:                                type: boolean                              images:                                items:                                  type: string                                type: array                              namePrefix:                                type: string                              nameSuffix:                                type: string                              version:                                type: string                            type: object                          path:                            type: string                          plugin:                            properties:                              env:                                items:                                  properties:                                    name:                                      type: string                                    value:                                      type: string                                  required:                                  - name                                  - value                                  type: object                                type: array                              name:                                type: string                            type: object                          repoURL:                            type: string                          targetRevision:                            type: string                        required:                        - repoURL                        type: object                      syncPolicy:                        properties:                          automated:                            properties:                              allowEmpty:                                type: boolean                              prune:                                type: boolean                              selfHeal:                                type: boolean                            type: object                          managedNamespaceMetadata:                            properties:                              annotations:                                additionalProperties:                                  type: string                                type: object                              labels:                                additionalProperties:                                  type: string                                type: object                            type: object                          retry:                            properties:                              backoff:                                properties:                                  duration:                                    type: string                                  factor:                                    format: int64                                    type: integer                                  maxDuration:                                    type: string                                type: object                              limit:                                format: int64                                type: integer                            type: object                          syncOptions:                            items:                              type: string                            type: array                        type: object                    required:                    - destination                    - project                    - source                    type: object                required:                - metadata                - spec                type: object            required:            - generators            - template            type: object          status:            properties:              conditions:                items:                  properties:                    lastTransitionTime:                      format: date-time                      type: string                    message:                      type: string                    reason:                      type: string                    status:                      type: string                    type:                      type: string                  required:                  - message                  - reason                  - status                  - type                  type: object                type: array            type: object        required:        - metadata        - spec        type: object    served: true    storage: true    subresources:      status: {}---apiVersion: apiextensions.k8s.io/v1kind: CustomResourceDefinitionmetadata:  labels:    app.kubernetes.io/name: appprojects.argoproj.io    app.kubernetes.io/part-of: argocd  name: appprojects.argoproj.iospec:  group: argoproj.io  names:    kind: AppProject    listKind: AppProjectList    plural: appprojects    shortNames:    - appproj    - appprojs    singular: appproject  scope: Namespaced  versions:  - name: v1alpha1    schema:      openAPIV3Schema:        description: 'AppProject provides a logical grouping of applications, providing          controls for: * where the apps may deploy to (cluster whitelist) * what          may be deployed (repository whitelist, resource whitelist/blacklist) * who          can access these applications (roles, OIDC group claims bindings) * and          what they can do (RBAC policies) * automation access to these roles (JWT          tokens)'        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: AppProjectSpec is the specification of an AppProject            properties:              clusterResourceBlacklist:                description: ClusterResourceBlacklist contains list of blacklisted                  cluster level resources                items:                  description: GroupKind specifies a Group and a Kind, but does not                    force a version.  This is useful for identifying concepts during                    lookup stages without having partially valid types                  properties:                    group:                      type: string                    kind:                      type: string                  required:                  - group                  - kind                  type: object                type: array              clusterResourceWhitelist:                description: ClusterResourceWhitelist contains list of whitelisted                  cluster level resources                items:                  description: GroupKind specifies a Group and a Kind, but does not                    force a version.  This is useful for identifying concepts during                    lookup stages without having partially valid types                  properties:                    group:                      type: string                    kind:                      type: string                  required:                  - group                  - kind                  type: object                type: array              description:                description: Description contains optional project description                type: string              destinations:                description: Destinations contains list of destinations available                  for deployment                items:                  description: ApplicationDestination holds information about the                    application's destination                  properties:                    name:                      description: Name is an alternate way of specifying the target                        cluster by its symbolic name                      type: string                    namespace:                      description: Namespace specifies the target namespace for the                        application's resources. The namespace will only be set for                        namespace-scoped resources that have not set a value for .metadata.namespace                      type: string                    server:                      description: Server specifies the URL of the target cluster                        and must be set to the Kubernetes control plane API                      type: string                  type: object                type: array              namespaceResourceBlacklist:                description: NamespaceResourceBlacklist contains list of blacklisted                  namespace level resources                items:                  description: GroupKind specifies a Group and a Kind, but does not                    force a version.  This is useful for identifying concepts during                    lookup stages without having partially valid types                  properties:                    group:                      type: string                    kind:                      type: string                  required:                  - group                  - kind                  type: object                type: array              namespaceResourceWhitelist:                description: NamespaceResourceWhitelist contains list of whitelisted                  namespace level resources                items:                  description: GroupKind specifies a Group and a Kind, but does not                    force a version.  This is useful for identifying concepts during                    lookup stages without having partially valid types                  properties:                    group:                      type: string                    kind:                      type: string                  required:                  - group                  - kind                  type: object                type: array              orphanedResources:                description: OrphanedResources specifies if controller should monitor                  orphaned resources of apps in this project                properties:                  ignore:                    description: Ignore contains a list of resources that are to be                      excluded from orphaned resources monitoring                    items:                      description: OrphanedResourceKey is a reference to a resource                        to be ignored from                      properties:                        group:                          type: string                        kind:                          type: string                        name:                          type: string                      type: object                    type: array                  warn:                    description: Warn indicates if warning condition should be created                      for apps which have orphaned resources                    type: boolean                type: object              permitOnlyProjectScopedClusters:                description: PermitOnlyProjectScopedClusters determines whether destinations                  can only reference clusters which are project-scoped                type: boolean              roles:                description: Roles are user defined RBAC roles associated with this                  project                items:                  description: ProjectRole represents a role that has access to a                    project                  properties:                    description:                      description: Description is a description of the role                      type: string                    groups:                      description: Groups are a list of OIDC group claims bound to                        this role                      items:                        type: string                      type: array                    jwtTokens:                      description: JWTTokens are a list of generated JWT tokens bound                        to this role                      items:                        description: JWTToken holds the issuedAt and expiresAt values                          of a token                        properties:                          exp:                            format: int64                            type: integer                          iat:                            format: int64                            type: integer                          id:                            type: string                        required:                        - iat                        type: object                      type: array                    name:                      description: Name is a name for this role                      type: string                    policies:                      description: Policies Stores a list of casbin formatted strings                        that define access policies for the role in the project                      items:                        type: string                      type: array                  required:                  - name                  type: object                type: array              signatureKeys:                description: SignatureKeys contains a list of PGP key IDs that commits                  in Git must be signed with in order to be allowed for sync                items:                  description: SignatureKey is the specification of a key required                    to verify commit signatures with                  properties:                    keyID:                      description: The ID of the key in hexadecimal notation                      type: string                  required:                  - keyID                  type: object                type: array              sourceNamespaces:                description: SourceNamespaces defines the namespaces application resources                  are allowed to be created in                items:                  type: string                type: array              sourceRepos:                description: SourceRepos contains list of repository URLs which can                  be used for deployment                items:                  type: string                type: array              syncWindows:                description: SyncWindows controls when syncs can be run for apps in                  this project                items:                  description: SyncWindow contains the kind, time, duration and attributes                    that are used to assign the syncWindows to apps                  properties:                    applications:                      description: Applications contains a list of applications that                        the window will apply to                      items:                        type: string                      type: array                    clusters:                      description: Clusters contains a list of clusters that the window                        will apply to                      items:                        type: string                      type: array                    duration:                      description: Duration is the amount of time the sync window                        will be open                      type: string                    kind:                      description: Kind defines if the window allows or blocks syncs                      type: string                    manualSync:                      description: ManualSync enables manual syncs when they would                        otherwise be blocked                      type: boolean                    namespaces:                      description: Namespaces contains a list of namespaces that the                        window will apply to                      items:                        type: string                      type: array                    schedule:                      description: Schedule is the time the window will begin, specified                        in cron format                      type: string                    timeZone:                      description: TimeZone of the sync that will be applied to the                        schedule                      type: string                  type: object                type: array            type: object          status:            description: AppProjectStatus contains status information for AppProject              CRs            properties:              jwtTokensByRole:                additionalProperties:                  description: JWTTokens represents a list of JWT tokens                  properties:                    items:                      items:                        description: JWTToken holds the issuedAt and expiresAt values                          of a token                        properties:                          exp:                            format: int64                            type: integer                          iat:                            format: int64                            type: integer                          id:                            type: string                        required:                        - iat                        type: object                      type: array                  type: object                description: JWTTokensByRole contains a list of JWT tokens issued                  for a given role                type: object            type: object        required:        - metadata        - spec        type: object    served: true    storage: true---apiVersion: v1kind: ServiceAccountmetadata:  labels:    app.kubernetes.io/component: application-controller    app.kubernetes.io/name: argocd-application-controller    app.kubernetes.io/part-of: argocd  name: argocd-application-controller---apiVersion: v1kind: ServiceAccountmetadata:  labels:    app.kubernetes.io/component: controller    app.kubernetes.io/name: argocd-applicationset-controller    app.kubernetes.io/part-of: argocd-applicationset  name: argocd-applicationset-controller---apiVersion: v1kind: ServiceAccountmetadata:  labels:    app.kubernetes.io/component: dex-server    app.kubernetes.io/name: argocd-dex-server    app.kubernetes.io/part-of: argocd  name: argocd-dex-server---apiVersion: v1kind: ServiceAccountmetadata:  labels:    app.kubernetes.io/component: notifications-controller    app.kubernetes.io/name: argocd-notifications-controller    app.kubernetes.io/part-of: argocd  name: argocd-notifications-controller---apiVersion: v1kind: ServiceAccountmetadata:  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha    app.kubernetes.io/part-of: argocd  name: argocd-redis-ha---apiVersion: v1kind: ServiceAccountmetadata:  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha-haproxy    app.kubernetes.io/part-of: argocd  name: argocd-redis-ha-haproxy---apiVersion: v1kind: ServiceAccountmetadata:  labels:    app.kubernetes.io/component: repo-server    app.kubernetes.io/name: argocd-repo-server    app.kubernetes.io/part-of: argocd  name: argocd-repo-server---apiVersion: v1kind: ServiceAccountmetadata:  labels:    app.kubernetes.io/component: server    app.kubernetes.io/name: argocd-server    app.kubernetes.io/part-of: argocd  name: argocd-server---apiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata:  labels:    app.kubernetes.io/component: application-controller    app.kubernetes.io/name: argocd-application-controller    app.kubernetes.io/part-of: argocd  name: argocd-application-controllerrules:- apiGroups:  - ""  resources:  - secrets  - configmaps  verbs:  - get  - list  - watch- apiGroups:  - argoproj.io  resources:  - applications  - appprojects  verbs:  - create  - get  - list  - watch  - update  - patch  - delete- apiGroups:  - ""  resources:  - events  verbs:  - create  - list---apiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata:  labels:    app.kubernetes.io/component: controller    app.kubernetes.io/name: argocd-applicationset-controller    app.kubernetes.io/part-of: argocd-applicationset  name: argocd-applicationset-controllerrules:- apiGroups:  - argoproj.io  resources:  - applications  - applicationsets  - applicationsets/finalizers  verbs:  - create  - delete  - get  - list  - patch  - update  - watch- apiGroups:  - argoproj.io  resources:  - appprojects  verbs:  - get- apiGroups:  - argoproj.io  resources:  - applicationsets/status  verbs:  - get  - patch  - update- apiGroups:  - ""  resources:  - events  verbs:  - create  - get  - list  - patch  - watch- apiGroups:  - ""  resources:  - secrets  - configmaps  verbs:  - get  - list  - watch- apiGroups:  - apps  - extensions  resources:  - deployments  verbs:  - get  - list  - watch---apiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata:  labels:    app.kubernetes.io/component: dex-server    app.kubernetes.io/name: argocd-dex-server    app.kubernetes.io/part-of: argocd  name: argocd-dex-serverrules:- apiGroups:  - ""  resources:  - secrets  - configmaps  verbs:  - get  - list  - watch---apiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata:  name: argocd-notifications-controllerrules:- apiGroups:  - argoproj.io  resources:  - applications  - appprojects  verbs:  - get  - list  - watch  - update  - patch- apiGroups:  - ""  resources:  - configmaps  - secrets  verbs:  - list  - watch- apiGroups:  - ""  resourceNames:  - argocd-notifications-cm  resources:  - configmaps  verbs:  - get- apiGroups:  - ""  resourceNames:  - argocd-notifications-secret  resources:  - secrets  verbs:  - get---apiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata:  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha    app.kubernetes.io/part-of: argocd  name: argocd-redis-harules:- apiGroups:  - ""  resources:  - endpoints  verbs:  - get---apiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata:  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha    app.kubernetes.io/part-of: argocd  name: argocd-redis-ha-haproxyrules:- apiGroups:  - ""  resources:  - endpoints  verbs:  - get---apiVersion: rbac.authorization.k8s.io/v1kind: Rolemetadata:  labels:    app.kubernetes.io/component: server    app.kubernetes.io/name: argocd-server    app.kubernetes.io/part-of: argocd  name: argocd-serverrules:- apiGroups:  - ""  resources:  - secrets  - configmaps  verbs:  - create  - get  - list  - watch  - update  - patch  - delete- apiGroups:  - argoproj.io  resources:  - applications  - appprojects  - applicationsets  verbs:  - create  - get  - list  - watch  - update  - delete  - patch- apiGroups:  - ""  resources:  - events  verbs:  - create  - list---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:  labels:    app.kubernetes.io/component: application-controller    app.kubernetes.io/name: argocd-application-controller    app.kubernetes.io/part-of: argocd  name: argocd-application-controllerrules:- apiGroups:  - '*'  resources:  - '*'  verbs:  - '*'- nonResourceURLs:  - '*'  verbs:  - '*'---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRolemetadata:  labels:    app.kubernetes.io/component: server    app.kubernetes.io/name: argocd-server    app.kubernetes.io/part-of: argocd  name: argocd-serverrules:- apiGroups:  - '*'  resources:  - '*'  verbs:  - delete  - get  - patch- apiGroups:  - ""  resources:  - events  verbs:  - list- apiGroups:  - ""  resources:  - pods  - pods/log  verbs:  - get- apiGroups:  - argoproj.io  resources:  - applications  verbs:  - get  - list  - watch---apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata:  labels:    app.kubernetes.io/component: application-controller    app.kubernetes.io/name: argocd-application-controller    app.kubernetes.io/part-of: argocd  name: argocd-application-controllerroleRef:  apiGroup: rbac.authorization.k8s.io  kind: Role  name: argocd-application-controllersubjects:- kind: ServiceAccount  name: argocd-application-controller---apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata:  labels:    app.kubernetes.io/component: controller    app.kubernetes.io/name: argocd-applicationset-controller    app.kubernetes.io/part-of: argocd-applicationset  name: argocd-applicationset-controllerroleRef:  apiGroup: rbac.authorization.k8s.io  kind: Role  name: argocd-applicationset-controllersubjects:- kind: ServiceAccount  name: argocd-applicationset-controller---apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata:  labels:    app.kubernetes.io/component: dex-server    app.kubernetes.io/name: argocd-dex-server    app.kubernetes.io/part-of: argocd  name: argocd-dex-serverroleRef:  apiGroup: rbac.authorization.k8s.io  kind: Role  name: argocd-dex-serversubjects:- kind: ServiceAccount  name: argocd-dex-server---apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata:  name: argocd-notifications-controllerroleRef:  apiGroup: rbac.authorization.k8s.io  kind: Role  name: argocd-notifications-controllersubjects:- kind: ServiceAccount  name: argocd-notifications-controller---apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata:  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha    app.kubernetes.io/part-of: argocd  name: argocd-redis-haroleRef:  apiGroup: rbac.authorization.k8s.io  kind: Role  name: argocd-redis-hasubjects:- kind: ServiceAccount  name: argocd-redis-ha---apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata:  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha    app.kubernetes.io/part-of: argocd  name: argocd-redis-ha-haproxyroleRef:  apiGroup: rbac.authorization.k8s.io  kind: Role  name: argocd-redis-ha-haproxysubjects:- kind: ServiceAccount  name: argocd-redis-ha-haproxy---apiVersion: rbac.authorization.k8s.io/v1kind: RoleBindingmetadata:  labels:    app.kubernetes.io/component: server    app.kubernetes.io/name: argocd-server    app.kubernetes.io/part-of: argocd  name: argocd-serverroleRef:  apiGroup: rbac.authorization.k8s.io  kind: Role  name: argocd-serversubjects:- kind: ServiceAccount  name: argocd-server---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  labels:    app.kubernetes.io/component: application-controller    app.kubernetes.io/name: argocd-application-controller    app.kubernetes.io/part-of: argocd  name: argocd-application-controllerroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: argocd-application-controllersubjects:- kind: ServiceAccount  name: argocd-application-controller  namespace: argocd---apiVersion: rbac.authorization.k8s.io/v1kind: ClusterRoleBindingmetadata:  labels:    app.kubernetes.io/component: server    app.kubernetes.io/name: argocd-server    app.kubernetes.io/part-of: argocd  name: argocd-serverroleRef:  apiGroup: rbac.authorization.k8s.io  kind: ClusterRole  name: argocd-serversubjects:- kind: ServiceAccount  name: argocd-server  namespace: argocd---apiVersion: v1kind: ConfigMapmetadata:  labels:    app.kubernetes.io/name: argocd-cm    app.kubernetes.io/part-of: argocd  name: argocd-cm---apiVersion: v1kind: ConfigMapmetadata:  labels:    app.kubernetes.io/name: argocd-cmd-params-cm    app.kubernetes.io/part-of: argocd  name: argocd-cmd-params-cm---apiVersion: v1kind: ConfigMapmetadata:  labels:    app.kubernetes.io/name: argocd-gpg-keys-cm    app.kubernetes.io/part-of: argocd  name: argocd-gpg-keys-cm---apiVersion: v1kind: ConfigMapmetadata:  name: argocd-notifications-cm---apiVersion: v1kind: ConfigMapmetadata:  labels:    app.kubernetes.io/name: argocd-rbac-cm    app.kubernetes.io/part-of: argocd  name: argocd-rbac-cm---apiVersion: v1data:  fix-split-brain.sh: |    HOSTNAME="$(hostname)"    INDEX="${HOSTNAME##*-}"    SENTINEL_PORT=26379    ANNOUNCE_IP=''    MASTER=''    MASTER_GROUP="argocd"    QUORUM="2"    REDIS_CONF=/data/conf/redis.conf    REDIS_PORT=6379    REDIS_TLS_PORT=    SENTINEL_CONF=/data/conf/sentinel.conf    SENTINEL_TLS_PORT=    SERVICE=argocd-redis-ha    SENTINEL_TLS_REPLICATION_ENABLED=false    REDIS_TLS_REPLICATION_ENABLED=false    ROLE=''    REDIS_MASTER=''    set -eu    sentinel_get_master() {    set +e        if [ "$SENTINEL_PORT" -eq 0 ]; then            redis-cli -h "${SERVICE}" -p "${SENTINEL_TLS_PORT}"   --tls --cacert /tls-certs/ca.crt --cert /tls-certs/redis.crt --key /tls-certs/redis.key sentinel get-master-addr-by-name "${MASTER_GROUP}" |\            grep -E '((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?s*$))'        else            redis-cli -h "${SERVICE}" -p "${SENTINEL_PORT}"  sentinel get-master-addr-by-name "${MASTER_GROUP}" |\            grep -E '((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?s*$))'        fi    set -e    }    sentinel_get_master_retry() {        master=''        retry=${1}        sleep=3        for i in $(seq 1 "${retry}"); do            master=$(sentinel_get_master)            if [ -n "${master}" ]; then                break            fi            sleep $((sleep + i))        done        echo "${master}"    }    identify_master() {        echo "Identifying redis master (get-master-addr-by-name).."        echo "  using sentinel (argocd-redis-ha), sentinel group name (argocd)"        MASTER="$(sentinel_get_master_retry 3)"        if [ -n "${MASTER}" ]; then            echo "  $(date) Found redis master (${MASTER})"        else            echo "  $(date) Did not find redis master (${MASTER})"        fi    }    sentinel_update() {        echo "Updating sentinel config.."        echo "  evaluating sentinel id (\${SENTINEL_ID_${INDEX}})"        eval MY_SENTINEL_ID="\$SENTINEL_ID_${INDEX}"        echo "  sentinel id (${MY_SENTINEL_ID}), sentinel grp (${MASTER_GROUP}), quorum (${QUORUM})"        sed -i "1s/^/sentinel myid ${MY_SENTINEL_ID}\\n/" "${SENTINEL_CONF}"        if [ "$SENTINEL_TLS_REPLICATION_ENABLED" = true ]; then            echo "  redis master (${1}:${REDIS_TLS_PORT})"            sed -i "2s/^/sentinel monitor ${MASTER_GROUP} ${1} ${REDIS_TLS_PORT} ${QUORUM} \\n/" "${SENTINEL_CONF}"        else            echo "  redis master (${1}:${REDIS_PORT})"            sed -i "2s/^/sentinel monitor ${MASTER_GROUP} ${1} ${REDIS_PORT} ${QUORUM} \\n/" "${SENTINEL_CONF}"        fi        echo "sentinel announce-ip ${ANNOUNCE_IP}" >> ${SENTINEL_CONF}        if [ "$SENTINEL_PORT" -eq 0 ]; then            echo "  announce (${ANNOUNCE_IP}:${SENTINEL_TLS_PORT})"            echo "sentinel announce-port ${SENTINEL_TLS_PORT}" >> ${SENTINEL_CONF}        else            echo "  announce (${ANNOUNCE_IP}:${SENTINEL_PORT})"            echo "sentinel announce-port ${SENTINEL_PORT}" >> ${SENTINEL_CONF}        fi    }    redis_update() {        echo "Updating redis config.."        if [ "$REDIS_TLS_REPLICATION_ENABLED" = true ]; then            echo "  we are slave of redis master (${1}:${REDIS_TLS_PORT})"            echo "slaveof ${1} ${REDIS_TLS_PORT}" >> "${REDIS_CONF}"            echo "slave-announce-port ${REDIS_TLS_PORT}" >> ${REDIS_CONF}        else            echo "  we are slave of redis master (${1}:${REDIS_PORT})"            echo "slaveof ${1} ${REDIS_PORT}" >> "${REDIS_CONF}"            echo "slave-announce-port ${REDIS_PORT}" >> ${REDIS_CONF}        fi        echo "slave-announce-ip ${ANNOUNCE_IP}" >> ${REDIS_CONF}    }    copy_config() {        echo "Copying default redis config.."        echo "  to '${REDIS_CONF}'"        cp /readonly-config/redis.conf "${REDIS_CONF}"        echo "Copying default sentinel config.."        echo "  to '${SENTINEL_CONF}'"        cp /readonly-config/sentinel.conf "${SENTINEL_CONF}"    }    setup_defaults() {        echo "Setting up defaults.."        echo "  using statefulset index (${INDEX})"        if [ "${INDEX}" = "0" ]; then            echo "Setting this pod as master for redis and sentinel.."            echo "  using announce (${ANNOUNCE_IP})"            redis_update "${ANNOUNCE_IP}"            sentinel_update "${ANNOUNCE_IP}"            echo "  make sure ${ANNOUNCE_IP} is not a slave (slaveof no one)"            sed -i "s/^.*slaveof.*//" "${REDIS_CONF}"        else            echo "Getting redis master ip.."            echo "  blindly assuming (${SERVICE}-announce-0) or (${SERVICE}-server-0) are master"            DEFAULT_MASTER="$(getent_hosts 0 | awk '{ print $1 }')"            if [ -z "${DEFAULT_MASTER}" ]; then                echo "Error: Unable to resolve redis master (getent hosts)."                exit 1            fi            echo "  identified redis (may be redis master) ip (${DEFAULT_MASTER})"            echo "Setting default slave config for redis and sentinel.."            echo "  using master ip (${DEFAULT_MASTER})"            redis_update "${DEFAULT_MASTER}"            sentinel_update "${DEFAULT_MASTER}"        fi    }    redis_ping() {    set +e        if [ "$REDIS_PORT" -eq 0 ]; then            redis-cli -h "${MASTER}" -p "${REDIS_TLS_PORT}"  --tls --cacert /tls-certs/ca.crt --cert /tls-certs/redis.crt --key /tls-certs/redis.key ping        else            redis-cli -h "${MASTER}" -p "${REDIS_PORT}" ping        fi    set -e    }    redis_ping_retry() {        ping=''        retry=${1}        sleep=3        for i in $(seq 1 "${retry}"); do            if [ "$(redis_ping)" = "PONG" ]; then               ping='PONG'               break            fi            sleep $((sleep + i))            MASTER=$(sentinel_get_master)        done        echo "${ping}"    }    find_master() {        echo "Verifying redis master.."        if [ "$REDIS_PORT" -eq 0 ]; then            echo "  ping (${MASTER}:${REDIS_TLS_PORT})"        else            echo "  ping (${MASTER}:${REDIS_PORT})"        fi        if [ "$(redis_ping_retry 3)" != "PONG" ]; then            echo "  $(date) Can't ping redis master (${MASTER})"            echo "Attempting to force failover (sentinel failover).."            if [ "$SENTINEL_PORT" -eq 0 ]; then                echo "  on sentinel (${SERVICE}:${SENTINEL_TLS_PORT}), sentinel grp (${MASTER_GROUP})"                if redis-cli -h "${SERVICE}" -p "${SENTINEL_TLS_PORT}"   --tls --cacert /tls-certs/ca.crt --cert /tls-certs/redis.crt --key /tls-certs/redis.key sentinel failover "${MASTER_GROUP}" | grep -q 'NOGOODSLAVE' ; then                    echo "  $(date) Failover returned with 'NOGOODSLAVE'"                    echo "Setting defaults for this pod.."                    setup_defaults                    return 0                fi            else                echo "  on sentinel (${SERVICE}:${SENTINEL_PORT}), sentinel grp (${MASTER_GROUP})"                if redis-cli -h "${SERVICE}" -p "${SENTINEL_PORT}"  sentinel failover "${MASTER_GROUP}" | grep -q 'NOGOODSLAVE' ; then                    echo "  $(date) Failover returned with 'NOGOODSLAVE'"                    echo "Setting defaults for this pod.."                    setup_defaults                    return 0                fi            fi            echo "Hold on for 10sec"            sleep 10            echo "We should get redis master's ip now. Asking (get-master-addr-by-name).."            if [ "$SENTINEL_PORT" -eq 0 ]; then                echo "  sentinel (${SERVICE}:${SENTINEL_TLS_PORT}), sentinel grp (${MASTER_GROUP})"            else                echo "  sentinel (${SERVICE}:${SENTINEL_PORT}), sentinel grp (${MASTER_GROUP})"            fi            MASTER="$(sentinel_get_master)"            if [ "${MASTER}" ]; then                echo "  $(date) Found redis master (${MASTER})"                echo "Updating redis and sentinel config.."                sentinel_update "${MASTER}"                redis_update "${MASTER}"            else                echo "$(date) Error: Could not failover, exiting..."                exit 1            fi        else            echo "  $(date) Found reachable redis master (${MASTER})"            echo "Updating redis and sentinel config.."            sentinel_update "${MASTER}"            redis_update "${MASTER}"        fi    }    redis_ro_update() {        echo "Updating read-only redis config.."        echo "  redis.conf set 'replica-priority 0'"        echo "replica-priority 0" >> ${REDIS_CONF}    }    getent_hosts() {        index=${1:-${INDEX}}        service="${SERVICE}-announce-${index}"        host=$(getent hosts "${service}")        echo "${host}"    }    identify_announce_ip() {        echo "Identify announce ip for this pod.."        echo "  using (${SERVICE}-announce-${INDEX}) or (${SERVICE}-server-${INDEX})"        ANNOUNCE_IP=$(getent_hosts | awk '{ print $1 }')        echo "  identified announce (${ANNOUNCE_IP})"    }    redis_role() {    set +e        if [ "$REDIS_PORT" -eq 0 ]; then            ROLE=$(redis-cli  -p "${REDIS_TLS_PORT}"  --tls --cacert /tls-certs/ca.crt --cert /tls-certs/redis.crt --key /tls-certs/redis.key info | grep role | sed 's/role://' | sed 's/\r//')        else            ROLE=$(redis-cli  -p "${REDIS_PORT}" info | grep role | sed 's/role://' | sed 's/\r//')        fi    set -e    }    identify_redis_master() {    set +e        if [ "$REDIS_PORT" -eq 0 ]; then            REDIS_MASTER=$(redis-cli  -p "${REDIS_TLS_PORT}"  --tls --cacert /tls-certs/ca.crt --cert /tls-certs/redis.crt --key /tls-certs/redis.key info | grep master_host | sed 's/master_host://' | sed 's/\r//')        else            REDIS_MASTER=$(redis-cli  -p "${REDIS_PORT}" info | grep master_host | sed 's/master_host://' | sed 's/\r//')        fi    set -e    }    reinit() {    set +e        sh /readonly-config/init.sh        if [ "$REDIS_PORT" -eq 0 ]; then            echo "shutdown" | redis-cli  -p "${REDIS_TLS_PORT}"  --tls --cacert /tls-certs/ca.crt --cert /tls-certs/redis.crt --key /tls-certs/redis.key        else            echo "shutdown" | redis-cli  -p "${REDIS_PORT}"        fi    set -e    }    identify_announce_ip    while [ -z "${ANNOUNCE_IP}" ]; do        echo "Error: Could not resolve the announce ip for this pod."        sleep 30        identify_announce_ip    done    while true; do        sleep 60        # where is redis master        identify_master        if [ "$MASTER" = "$ANNOUNCE_IP" ]; then            redis_role            if [ "$ROLE" != "master" ]; then                reinit            fi        elif [ "${MASTER}" ]; then            identify_redis_master            if [ "$REDIS_MASTER" != "$MASTER" ]; then                reinit            fi        fi    done  haproxy.cfg: |    defaults REDIS      mode tcp      timeout connect 4s      timeout server 6m      timeout client 6m      timeout check 2s    listen health_check_http_url      bind [::]:8888  v4v6      mode http      monitor-uri /healthz      option      dontlognull    # Check Sentinel and whether they are nominated master    backend check_if_redis_is_master_0      mode tcp      option tcp-check      tcp-check connect      tcp-check send PING\r\n      tcp-check expect string +PONG      tcp-check send SENTINEL\ get-master-addr-by-name\ argocd\r\n      tcp-check expect string REPLACE_ANNOUNCE0      tcp-check send QUIT\r\n      server R0 argocd-redis-ha-announce-0:26379 check inter 3s      server R1 argocd-redis-ha-announce-1:26379 check inter 3s      server R2 argocd-redis-ha-announce-2:26379 check inter 3s    # Check Sentinel and whether they are nominated master    backend check_if_redis_is_master_1      mode tcp      option tcp-check      tcp-check connect      tcp-check send PING\r\n      tcp-check expect string +PONG      tcp-check send SENTINEL\ get-master-addr-by-name\ argocd\r\n      tcp-check expect string REPLACE_ANNOUNCE1      tcp-check send QUIT\r\n      server R0 argocd-redis-ha-announce-0:26379 check inter 3s      server R1 argocd-redis-ha-announce-1:26379 check inter 3s      server R2 argocd-redis-ha-announce-2:26379 check inter 3s    # Check Sentinel and whether they are nominated master    backend check_if_redis_is_master_2      mode tcp      option tcp-check      tcp-check connect      tcp-check send PING\r\n      tcp-check expect string +PONG      tcp-check send SENTINEL\ get-master-addr-by-name\ argocd\r\n      tcp-check expect string REPLACE_ANNOUNCE2      tcp-check send QUIT\r\n      server R0 argocd-redis-ha-announce-0:26379 check inter 3s      server R1 argocd-redis-ha-announce-1:26379 check inter 3s      server R2 argocd-redis-ha-announce-2:26379 check inter 3s    # decide redis backend to use    #master    frontend ft_redis_master      bind [::]:6379 v4v6      use_backend bk_redis_master    # Check all redis servers to see if they think they are master    backend bk_redis_master      mode tcp      option tcp-check      tcp-check connect      tcp-check send PING\r\n      tcp-check expect string +PONG      tcp-check send info\ replication\r\n      tcp-check expect string role:master      tcp-check send QUIT\r\n      tcp-check expect string +OK      use-server R0 if { srv_is_up(R0) } { nbsrv(check_if_redis_is_master_0) ge 2 }      server R0 argocd-redis-ha-announce-0:6379 check inter 3s fall 1 rise 1      use-server R1 if { srv_is_up(R1) } { nbsrv(check_if_redis_is_master_1) ge 2 }      server R1 argocd-redis-ha-announce-1:6379 check inter 3s fall 1 rise 1      use-server R2 if { srv_is_up(R2) } { nbsrv(check_if_redis_is_master_2) ge 2 }      server R2 argocd-redis-ha-announce-2:6379 check inter 3s fall 1 rise 1  haproxy_init.sh: |    HAPROXY_CONF=/data/haproxy.cfg    cp /readonly/haproxy.cfg "$HAPROXY_CONF"    for loop in $(seq 1 10); do      getent hosts argocd-redis-ha-announce-0 && break      echo "Waiting for service argocd-redis-ha-announce-0 to be ready ($loop) ..." && sleep 1    done    ANNOUNCE_IP0=$(getent hosts "argocd-redis-ha-announce-0" | awk '{ print $1 }')    if [ -z "$ANNOUNCE_IP0" ]; then      echo "Could not resolve the announce ip for argocd-redis-ha-announce-0"      exit 1    fi    sed -i "s/REPLACE_ANNOUNCE0/$ANNOUNCE_IP0/" "$HAPROXY_CONF"    for loop in $(seq 1 10); do      getent hosts argocd-redis-ha-announce-1 && break      echo "Waiting for service argocd-redis-ha-announce-1 to be ready ($loop) ..." && sleep 1    done    ANNOUNCE_IP1=$(getent hosts "argocd-redis-ha-announce-1" | awk '{ print $1 }')    if [ -z "$ANNOUNCE_IP1" ]; then      echo "Could not resolve the announce ip for argocd-redis-ha-announce-1"      exit 1    fi    sed -i "s/REPLACE_ANNOUNCE1/$ANNOUNCE_IP1/" "$HAPROXY_CONF"    for loop in $(seq 1 10); do      getent hosts argocd-redis-ha-announce-2 && break      echo "Waiting for service argocd-redis-ha-announce-2 to be ready ($loop) ..." && sleep 1    done    ANNOUNCE_IP2=$(getent hosts "argocd-redis-ha-announce-2" | awk '{ print $1 }')    if [ -z "$ANNOUNCE_IP2" ]; then      echo "Could not resolve the announce ip for argocd-redis-ha-announce-2"      exit 1    fi    sed -i "s/REPLACE_ANNOUNCE2/$ANNOUNCE_IP2/" "$HAPROXY_CONF"  init.sh: |    echo "$(date) Start..."    HOSTNAME="$(hostname)"    INDEX="${HOSTNAME##*-}"    SENTINEL_PORT=26379    ANNOUNCE_IP=''    MASTER=''    MASTER_GROUP="argocd"    QUORUM="2"    REDIS_CONF=/data/conf/redis.conf    REDIS_PORT=6379    REDIS_TLS_PORT=    SENTINEL_CONF=/data/conf/sentinel.conf    SENTINEL_TLS_PORT=    SERVICE=argocd-redis-ha    SENTINEL_TLS_REPLICATION_ENABLED=false    REDIS_TLS_REPLICATION_ENABLED=false    set -eu    sentinel_get_master() {    set +e        if [ "$SENTINEL_PORT" -eq 0 ]; then            redis-cli -h "${SERVICE}" -p "${SENTINEL_TLS_PORT}"   --tls --cacert /tls-certs/ca.crt --cert /tls-certs/redis.crt --key /tls-certs/redis.key sentinel get-master-addr-by-name "${MASTER_GROUP}" |\            grep -E '((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?s*$))'        else            redis-cli -h "${SERVICE}" -p "${SENTINEL_PORT}"  sentinel get-master-addr-by-name "${MASTER_GROUP}" |\            grep -E '((^\s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))\s*$)|(^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?s*$))'        fi    set -e    }    sentinel_get_master_retry() {        master=''        retry=${1}        sleep=3        for i in $(seq 1 "${retry}"); do            master=$(sentinel_get_master)            if [ -n "${master}" ]; then                break            fi            sleep $((sleep + i))        done        echo "${master}"    }    identify_master() {        echo "Identifying redis master (get-master-addr-by-name).."        echo "  using sentinel (argocd-redis-ha), sentinel group name (argocd)"        MASTER="$(sentinel_get_master_retry 3)"        if [ -n "${MASTER}" ]; then            echo "  $(date) Found redis master (${MASTER})"        else            echo "  $(date) Did not find redis master (${MASTER})"        fi    }    sentinel_update() {        echo "Updating sentinel config.."        echo "  evaluating sentinel id (\${SENTINEL_ID_${INDEX}})"        eval MY_SENTINEL_ID="\$SENTINEL_ID_${INDEX}"        echo "  sentinel id (${MY_SENTINEL_ID}), sentinel grp (${MASTER_GROUP}), quorum (${QUORUM})"        sed -i "1s/^/sentinel myid ${MY_SENTINEL_ID}\\n/" "${SENTINEL_CONF}"        if [ "$SENTINEL_TLS_REPLICATION_ENABLED" = true ]; then            echo "  redis master (${1}:${REDIS_TLS_PORT})"            sed -i "2s/^/sentinel monitor ${MASTER_GROUP} ${1} ${REDIS_TLS_PORT} ${QUORUM} \\n/" "${SENTINEL_CONF}"        else            echo "  redis master (${1}:${REDIS_PORT})"            sed -i "2s/^/sentinel monitor ${MASTER_GROUP} ${1} ${REDIS_PORT} ${QUORUM} \\n/" "${SENTINEL_CONF}"        fi        echo "sentinel announce-ip ${ANNOUNCE_IP}" >> ${SENTINEL_CONF}        if [ "$SENTINEL_PORT" -eq 0 ]; then            echo "  announce (${ANNOUNCE_IP}:${SENTINEL_TLS_PORT})"            echo "sentinel announce-port ${SENTINEL_TLS_PORT}" >> ${SENTINEL_CONF}        else            echo "  announce (${ANNOUNCE_IP}:${SENTINEL_PORT})"            echo "sentinel announce-port ${SENTINEL_PORT}" >> ${SENTINEL_CONF}        fi    }    redis_update() {        echo "Updating redis config.."        if [ "$REDIS_TLS_REPLICATION_ENABLED" = true ]; then            echo "  we are slave of redis master (${1}:${REDIS_TLS_PORT})"            echo "slaveof ${1} ${REDIS_TLS_PORT}" >> "${REDIS_CONF}"            echo "slave-announce-port ${REDIS_TLS_PORT}" >> ${REDIS_CONF}        else            echo "  we are slave of redis master (${1}:${REDIS_PORT})"            echo "slaveof ${1} ${REDIS_PORT}" >> "${REDIS_CONF}"            echo "slave-announce-port ${REDIS_PORT}" >> ${REDIS_CONF}        fi        echo "slave-announce-ip ${ANNOUNCE_IP}" >> ${REDIS_CONF}    }    copy_config() {        echo "Copying default redis config.."        echo "  to '${REDIS_CONF}'"        cp /readonly-config/redis.conf "${REDIS_CONF}"        echo "Copying default sentinel config.."        echo "  to '${SENTINEL_CONF}'"        cp /readonly-config/sentinel.conf "${SENTINEL_CONF}"    }    setup_defaults() {        echo "Setting up defaults.."        echo "  using statefulset index (${INDEX})"        if [ "${INDEX}" = "0" ]; then            echo "Setting this pod as master for redis and sentinel.."            echo "  using announce (${ANNOUNCE_IP})"            redis_update "${ANNOUNCE_IP}"            sentinel_update "${ANNOUNCE_IP}"            echo "  make sure ${ANNOUNCE_IP} is not a slave (slaveof no one)"            sed -i "s/^.*slaveof.*//" "${REDIS_CONF}"        else            echo "Getting redis master ip.."            echo "  blindly assuming (${SERVICE}-announce-0) or (${SERVICE}-server-0) are master"            DEFAULT_MASTER="$(getent_hosts 0 | awk '{ print $1 }')"            if [ -z "${DEFAULT_MASTER}" ]; then                echo "Error: Unable to resolve redis master (getent hosts)."                exit 1            fi            echo "  identified redis (may be redis master) ip (${DEFAULT_MASTER})"            echo "Setting default slave config for redis and sentinel.."            echo "  using master ip (${DEFAULT_MASTER})"            redis_update "${DEFAULT_MASTER}"            sentinel_update "${DEFAULT_MASTER}"        fi    }    redis_ping() {    set +e        if [ "$REDIS_PORT" -eq 0 ]; then            redis-cli -h "${MASTER}" -p "${REDIS_TLS_PORT}"  --tls --cacert /tls-certs/ca.crt --cert /tls-certs/redis.crt --key /tls-certs/redis.key ping        else            redis-cli -h "${MASTER}" -p "${REDIS_PORT}" ping        fi    set -e    }    redis_ping_retry() {        ping=''        retry=${1}        sleep=3        for i in $(seq 1 "${retry}"); do            if [ "$(redis_ping)" = "PONG" ]; then               ping='PONG'               break            fi            sleep $((sleep + i))            MASTER=$(sentinel_get_master)        done        echo "${ping}"    }    find_master() {        echo "Verifying redis master.."        if [ "$REDIS_PORT" -eq 0 ]; then            echo "  ping (${MASTER}:${REDIS_TLS_PORT})"        else            echo "  ping (${MASTER}:${REDIS_PORT})"        fi        if [ "$(redis_ping_retry 3)" != "PONG" ]; then            echo "  $(date) Can't ping redis master (${MASTER})"            echo "Attempting to force failover (sentinel failover).."            if [ "$SENTINEL_PORT" -eq 0 ]; then                echo "  on sentinel (${SERVICE}:${SENTINEL_TLS_PORT}), sentinel grp (${MASTER_GROUP})"                if redis-cli -h "${SERVICE}" -p "${SENTINEL_TLS_PORT}"   --tls --cacert /tls-certs/ca.crt --cert /tls-certs/redis.crt --key /tls-certs/redis.key sentinel failover "${MASTER_GROUP}" | grep -q 'NOGOODSLAVE' ; then                    echo "  $(date) Failover returned with 'NOGOODSLAVE'"                    echo "Setting defaults for this pod.."                    setup_defaults                    return 0                fi            else                echo "  on sentinel (${SERVICE}:${SENTINEL_PORT}), sentinel grp (${MASTER_GROUP})"                if redis-cli -h "${SERVICE}" -p "${SENTINEL_PORT}"  sentinel failover "${MASTER_GROUP}" | grep -q 'NOGOODSLAVE' ; then                    echo "  $(date) Failover returned with 'NOGOODSLAVE'"                    echo "Setting defaults for this pod.."                    setup_defaults                    return 0                fi            fi            echo "Hold on for 10sec"            sleep 10            echo "We should get redis master's ip now. Asking (get-master-addr-by-name).."            if [ "$SENTINEL_PORT" -eq 0 ]; then                echo "  sentinel (${SERVICE}:${SENTINEL_TLS_PORT}), sentinel grp (${MASTER_GROUP})"            else                echo "  sentinel (${SERVICE}:${SENTINEL_PORT}), sentinel grp (${MASTER_GROUP})"            fi            MASTER="$(sentinel_get_master)"            if [ "${MASTER}" ]; then                echo "  $(date) Found redis master (${MASTER})"                echo "Updating redis and sentinel config.."                sentinel_update "${MASTER}"                redis_update "${MASTER}"            else                echo "$(date) Error: Could not failover, exiting..."                exit 1            fi        else            echo "  $(date) Found reachable redis master (${MASTER})"            echo "Updating redis and sentinel config.."            sentinel_update "${MASTER}"            redis_update "${MASTER}"        fi    }    redis_ro_update() {        echo "Updating read-only redis config.."        echo "  redis.conf set 'replica-priority 0'"        echo "replica-priority 0" >> ${REDIS_CONF}    }    getent_hosts() {        index=${1:-${INDEX}}        service="${SERVICE}-announce-${index}"        host=$(getent hosts "${service}")        echo "${host}"    }    identify_announce_ip() {        echo "Identify announce ip for this pod.."        echo "  using (${SERVICE}-announce-${INDEX}) or (${SERVICE}-server-${INDEX})"        ANNOUNCE_IP=$(getent_hosts | awk '{ print $1 }')        echo "  identified announce (${ANNOUNCE_IP})"    }    mkdir -p /data/conf/    echo "Initializing config.."    copy_config    # where is redis master    identify_master    identify_announce_ip    if [ -z "${ANNOUNCE_IP}" ]; then        "Error: Could not resolve the announce ip for this pod."        exit 1    elif [ "${MASTER}" ]; then        find_master    else        setup_defaults    fi    if [ "${AUTH:-}" ]; then        echo "Setting redis auth values.."        ESCAPED_AUTH=$(echo "${AUTH}" | sed -e 's/[\/&]/\\&/g');        sed -i "s/replace-default-auth/${ESCAPED_AUTH}/" "${REDIS_CONF}" "${SENTINEL_CONF}"    fi    if [ "${SENTINELAUTH:-}" ]; then        echo "Setting sentinel auth values"        ESCAPED_AUTH_SENTINEL=$(echo "$SENTINELAUTH" | sed -e 's/[\/&]/\\&/g');        sed -i "s/replace-default-sentinel-auth/${ESCAPED_AUTH_SENTINEL}/" "$SENTINEL_CONF"    fi    echo "$(date) Ready..."  redis.conf: |    dir "/data"    port 6379    rename-command FLUSHDB ""    rename-command FLUSHALL ""    maxmemory 0    maxmemory-policy volatile-lru    min-replicas-max-lag 5    min-replicas-to-write 1    rdbchecksum yes    rdbcompression yes    repl-diskless-sync yes    save ""  sentinel.conf: |    dir "/data"    port 26379        sentinel down-after-milliseconds argocd 10000        sentinel failover-timeout argocd 180000        maxclients 10000        sentinel parallel-syncs argocd 5  trigger-failover-if-master.sh: |    get_redis_role() {      is_master=$(        redis-cli \          -h localhost \          -p 6379 \          info | grep -c 'role:master' || true      )    }    get_redis_role    if [[ "$is_master" -eq 1 ]]; then      echo "This node is currently master, we trigger a failover."      response=$(        redis-cli \          -h localhost \          -p 26379 \          SENTINEL failover argocd      )      if [[ "$response" != "OK" ]] ; then        echo "$response"        exit 1      fi      timeout=30      while [[ "$is_master" -eq 1 && $timeout -gt 0 ]]; do        sleep 1        get_redis_role        timeout=$((timeout - 1))      done      echo "Failover successful"    fikind: ConfigMapmetadata:  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha    app.kubernetes.io/part-of: argocd  name: argocd-redis-ha-configmap---apiVersion: v1data:  redis_liveness.sh: |    response=$(      redis-cli \        -h localhost \        -p 6379 \        ping    )    if [ "$response" != "PONG" ] && [ "${response:0:7}" != "LOADING" ] ; then      echo "$response"      exit 1    fi    echo "response=$response"  redis_readiness.sh: |    response=$(      redis-cli \        -h localhost \        -p 6379 \        ping    )    if [ "$response" != "PONG" ] ; then      echo "$response"      exit 1    fi    echo "response=$response"  sentinel_liveness.sh: |    response=$(      redis-cli \        -h localhost \        -p 26379 \        ping    )    if [ "$response" != "PONG" ]; then      echo "$response"      exit 1    fi    echo "response=$response"kind: ConfigMapmetadata:  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha    app.kubernetes.io/part-of: argocd  name: argocd-redis-ha-health-configmap---apiVersion: v1data:  ssh_known_hosts: |-    bitbucket.org ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAubiN81eDcafrgMeLzaFPsw2kNvEcqTKl/VqLat/MaB33pZy0y3rJZtnqwR2qOOvbwKZYKiEO1O6VqNEBxKvJJelCq0dTXWT5pbO2gDXC6h6QDXCaHo6pOHGPUy+YBaGQRGuSusMEASYiWunYN0vCAI8QaXnWMXNMdFP3jHAJH0eDsoiGnLPBlBp4TNm6rYI74nMzgz3B9IikW4WVK+dc8KZJZWYjAuORU3jc1c/NPskD2ASinf8v3xnfXeukU0sJ5N6m5E8VLjObPEO+mN2t/FZTMZLiFqPWc/ALSqnMnnhwrNi2rbfg/rd/IpL8Le3pSBne8+seeFVBoGqzHM9yXw==    github.com ssh-rsa AAAAB3NzaC1yc2EAAAABIwAAAQEAq2A7hRGmdnm9tUDbO9IDSwBK6TbQa+PXYPCPy6rbTrTtw7PHkccKrpp0yVhp5HdEIcKr6pLlVDBfOLX9QUsyCOV0wzfjIJNlGEYsdlLJizHhbn2mUjvSAHQqZETYP81eFzLQNnPHt4EVVUh7VfDESU84KezmD5QlWpXLmvU31/yMf+Se8xhHTvKSCZIFImWwoG6mbUoWf9nzpIoaSjB+weqqUUmpaaasXVal72J+UX2B+2RPW3RcT0eOzQgqlJL3RKrTJvdsjE3JEAvGq3lGHSZXy28G3skua2SmVi/w4yCE6gbODqnTWlg7+wC604ydGXA8VJiS5ap43JXiUFFAaQ==    gitlab.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBFSMqzJeV9rUzU4kWitGjeR4PWSa29SPqJ1fVkhtj3Hw9xjLVXVYrU9QlYWrOLXBpQ6KWjbjTDTdDkoohFzgbEY=    gitlab.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIAfuCHKVTjquxvt6CM6tdG4SLp1Btn/nOeHHE5UOzRdf    gitlab.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCsj2bNKTBSpIYDEGk9KxsGh3mySTRgMtXL583qmBpzeQ+jqCMRgBqB98u3z++J1sKlXHWfM9dyhSevkMwSbhoR8XIq/U0tCNyokEi/ueaBMCvbcTHhO7FcwzY92WK4Yt0aGROY5qX2UKSeOvuP4D6TPqKF1onrSzH9bx9XUf2lEdWT/ia1NEKjunUqu1xOB/StKDHMoX4/OKyIzuS0q/T1zOATthvasJFoPrAjkohTyaDUz2LN5JoH839hViyEG82yB+MjcFV5MU3N1l1QL3cVUCh93xSaua1N85qivl+siMkPGbO5xR/En4iEY6K2XPASUEMaieWVNTRCtJ4S8H+9    ssh.dev.azure.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H    vs-ssh.visualstudio.com ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQC7Hr1oTWqNqOlzGJOfGJ4NakVyIzf1rXYd4d7wo6jBlkLvCA4odBlL0mDUyZ0/QUfTTqeu+tm22gOsv+VrVTMk6vwRU75gY/y9ut5Mb3bR5BV58dKXyq9A9UeB5Cakehn5Zgm6x1mKoVyf+FFn26iYqXJRgzIZZcZ5V6hrE0Qg39kZm4az48o0AUbf6Sp4SLdvnuMa2sVNwHBboS7EJkm57XQPVU3/QpyNLHbWDdzwtrlS+ez30S3AdYhLKEOxAG8weOnyrtLJAUen9mTkol8oII1edf7mWWbWVf0nBmly21+nZcmCTISQBtdcyPaEno7fFQMDD26/s0lfKob4Kw8H    github.com ecdsa-sha2-nistp256 AAAAE2VjZHNhLXNoYTItbmlzdHAyNTYAAAAIbmlzdHAyNTYAAABBBEmKSENjQEezOmxkZMy7opKgwFB9nkt5YRrYMjNuG5N87uRgg6CLrbo5wAdT/y6v0mKV0U2w0WZ2YB/++Tpockg=    github.com ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIOMqqnkVzrm0SdG6UOoqKLsabgH5C9okWi0dh2l9GKJlkind: ConfigMapmetadata:  labels:    app.kubernetes.io/name: argocd-ssh-known-hosts-cm    app.kubernetes.io/part-of: argocd  name: argocd-ssh-known-hosts-cm---apiVersion: v1kind: ConfigMapmetadata:  labels:    app.kubernetes.io/name: argocd-tls-certs-cm    app.kubernetes.io/part-of: argocd  name: argocd-tls-certs-cm---apiVersion: v1kind: Secretmetadata:  name: argocd-notifications-secrettype: Opaque---apiVersion: v1kind: Secretmetadata:  labels:    app.kubernetes.io/name: argocd-secret    app.kubernetes.io/part-of: argocd  name: argocd-secrettype: Opaque---apiVersion: v1kind: Servicemetadata:  labels:    app.kubernetes.io/component: controller    app.kubernetes.io/name: argocd-applicationset-controller    app.kubernetes.io/part-of: argocd-applicationset  name: argocd-applicationset-controllerspec:  ports:  - name: webhook    port: 7000    protocol: TCP    targetPort: webhook  - name: metrics    port: 8080    protocol: TCP    targetPort: metrics  selector:    app.kubernetes.io/name: argocd-applicationset-controller---apiVersion: v1kind: Servicemetadata:  labels:    app.kubernetes.io/component: dex-server    app.kubernetes.io/name: argocd-dex-server    app.kubernetes.io/part-of: argocd  name: argocd-dex-serverspec:  ports:  - name: http    port: 5556    protocol: TCP    targetPort: 5556  - name: grpc    port: 5557    protocol: TCP    targetPort: 5557  - name: metrics    port: 5558    protocol: TCP    targetPort: 5558  selector:    app.kubernetes.io/name: argocd-dex-server---apiVersion: v1kind: Servicemetadata:  labels:    app.kubernetes.io/component: metrics    app.kubernetes.io/name: argocd-metrics    app.kubernetes.io/part-of: argocd  name: argocd-metricsspec:  ports:  - name: metrics    port: 8082    protocol: TCP    targetPort: 8082  selector:    app.kubernetes.io/name: argocd-application-controller---apiVersion: v1kind: Servicemetadata:  labels:    app.kubernetes.io/name: argocd-notifications-controller-metrics  name: argocd-notifications-controller-metricsspec:  ports:  - name: metrics    port: 9001    protocol: TCP    targetPort: 9001  selector:    app.kubernetes.io/name: argocd-notifications-controller---apiVersion: v1kind: Servicemetadata:  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha    app.kubernetes.io/part-of: argocd  name: argocd-redis-haspec:  clusterIP: None  ports:  - name: tcp-server    port: 6379    protocol: TCP    targetPort: redis  - name: tcp-sentinel    port: 26379    protocol: TCP    targetPort: sentinel  selector:    app.kubernetes.io/name: argocd-redis-ha  type: ClusterIP---apiVersion: v1kind: Servicemetadata:  annotations:    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha    app.kubernetes.io/part-of: argocd  name: argocd-redis-ha-announce-0spec:  ports:  - name: tcp-server    port: 6379    protocol: TCP    targetPort: redis  - name: tcp-sentinel    port: 26379    protocol: TCP    targetPort: sentinel  publishNotReadyAddresses: true  selector:    app.kubernetes.io/name: argocd-redis-ha    statefulset.kubernetes.io/pod-name: argocd-redis-ha-server-0  type: ClusterIP---apiVersion: v1kind: Servicemetadata:  annotations:    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha    app.kubernetes.io/part-of: argocd  name: argocd-redis-ha-announce-1spec:  ports:  - name: tcp-server    port: 6379    protocol: TCP    targetPort: redis  - name: tcp-sentinel    port: 26379    protocol: TCP    targetPort: sentinel  publishNotReadyAddresses: true  selector:    app.kubernetes.io/name: argocd-redis-ha    statefulset.kubernetes.io/pod-name: argocd-redis-ha-server-1  type: ClusterIP---apiVersion: v1kind: Servicemetadata:  annotations:    service.alpha.kubernetes.io/tolerate-unready-endpoints: "true"  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha    app.kubernetes.io/part-of: argocd  name: argocd-redis-ha-announce-2spec:  ports:  - name: tcp-server    port: 6379    protocol: TCP    targetPort: redis  - name: tcp-sentinel    port: 26379    protocol: TCP    targetPort: sentinel  publishNotReadyAddresses: true  selector:    app.kubernetes.io/name: argocd-redis-ha    statefulset.kubernetes.io/pod-name: argocd-redis-ha-server-2  type: ClusterIP---apiVersion: v1kind: Servicemetadata:  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha-haproxy    app.kubernetes.io/part-of: argocd  name: argocd-redis-ha-haproxyspec:  ports:  - name: tcp-haproxy    port: 6379    protocol: TCP    targetPort: redis  selector:    app.kubernetes.io/name: argocd-redis-ha-haproxy  type: ClusterIP---apiVersion: v1kind: Servicemetadata:  labels:    app.kubernetes.io/component: repo-server    app.kubernetes.io/name: argocd-repo-server    app.kubernetes.io/part-of: argocd  name: argocd-repo-serverspec:  ports:  - name: server    port: 8081    protocol: TCP    targetPort: 8081  - name: metrics    port: 8084    protocol: TCP    targetPort: 8084  selector:    app.kubernetes.io/name: argocd-repo-server---apiVersion: v1kind: Servicemetadata:  labels:    app.kubernetes.io/component: server    app.kubernetes.io/name: argocd-server    app.kubernetes.io/part-of: argocd  name: argocd-serverspec:  ports:  - name: http    port: 80    protocol: TCP    targetPort: 8080  - name: https    port: 443    protocol: TCP    targetPort: 8080  selector:    app.kubernetes.io/name: argocd-server---apiVersion: v1kind: Servicemetadata:  labels:    app.kubernetes.io/component: server    app.kubernetes.io/name: argocd-server-metrics    app.kubernetes.io/part-of: argocd  name: argocd-server-metricsspec:  ports:  - name: metrics    port: 8083    protocol: TCP    targetPort: 8083  selector:    app.kubernetes.io/name: argocd-server---apiVersion: apps/v1kind: Deploymentmetadata:  labels:    app.kubernetes.io/component: controller    app.kubernetes.io/name: argocd-applicationset-controller    app.kubernetes.io/part-of: argocd-applicationset  name: argocd-applicationset-controllerspec:  selector:    matchLabels:      app.kubernetes.io/name: argocd-applicationset-controller  template:    metadata:      labels:        app.kubernetes.io/name: argocd-applicationset-controller    spec:      containers:      - command:        - entrypoint.sh        - argocd-applicationset-controller        env:        - name: NAMESPACE          valueFrom:            fieldRef:              fieldPath: metadata.namespace        - name: ARGOCD_APPLICATIONSET_CONTROLLER_ENABLE_LEADER_ELECTION          valueFrom:            configMapKeyRef:              key: applicationsetcontroller.enable.leader.election              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATIONSET_CONTROLLER_NAMESPACE          valueFrom:            configMapKeyRef:              key: applicationsetcontroller.namespace              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATIONSET_CONTROLLER_REPO_SERVER          valueFrom:            configMapKeyRef:              key: repo.server              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATIONSET_CONTROLLER_POLICY          valueFrom:            configMapKeyRef:              key: applicationsetcontroller.policy              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATIONSET_CONTROLLER_DEBUG          valueFrom:            configMapKeyRef:              key: applicationsetcontroller.debug              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATIONSET_CONTROLLER_LOGFORMAT          valueFrom:            configMapKeyRef:              key: applicationsetcontroller.log.format              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATIONSET_CONTROLLER_LOGLEVEL          valueFrom:            configMapKeyRef:              key: applicationsetcontroller.log.level              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATIONSET_CONTROLLER_DRY_RUN          valueFrom:            configMapKeyRef:              key: applicationsetcontroller.dryrun              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_GIT_MODULES_ENABLED          valueFrom:            configMapKeyRef:              key: applicationsetcontroller.enable.git.submodule              name: argocd-cmd-params-cm              optional: true        image: quay.io/argoproj/argocd:latest        imagePullPolicy: Always        name: argocd-applicationset-controller        ports:        - containerPort: 7000          name: webhook        - containerPort: 8080          name: metrics        securityContext:          allowPrivilegeEscalation: false          capabilities:            drop:            - ALL          readOnlyRootFilesystem: true          runAsNonRoot: true          seccompProfile:            type: RuntimeDefault        volumeMounts:        - mountPath: /app/config/ssh          name: ssh-known-hosts        - mountPath: /app/config/tls          name: tls-certs        - mountPath: /app/config/gpg/source          name: gpg-keys        - mountPath: /app/config/gpg/keys          name: gpg-keyring        - mountPath: /tmp          name: tmp      serviceAccountName: argocd-applicationset-controller      volumes:      - configMap:          name: argocd-ssh-known-hosts-cm        name: ssh-known-hosts      - configMap:          name: argocd-tls-certs-cm        name: tls-certs      - configMap:          name: argocd-gpg-keys-cm        name: gpg-keys      - emptyDir: {}        name: gpg-keyring      - emptyDir: {}        name: tmp---apiVersion: apps/v1kind: Deploymentmetadata:  labels:    app.kubernetes.io/component: dex-server    app.kubernetes.io/name: argocd-dex-server    app.kubernetes.io/part-of: argocd  name: argocd-dex-serverspec:  selector:    matchLabels:      app.kubernetes.io/name: argocd-dex-server  template:    metadata:      labels:        app.kubernetes.io/name: argocd-dex-server    spec:      affinity:        podAntiAffinity:          preferredDuringSchedulingIgnoredDuringExecution:          - podAffinityTerm:              labelSelector:                matchLabels:                  app.kubernetes.io/part-of: argocd              topologyKey: kubernetes.io/hostname            weight: 5      containers:      - command:        - /shared/argocd-dex        - rundex        env:        - name: ARGOCD_DEX_SERVER_DISABLE_TLS          valueFrom:            configMapKeyRef:              key: dexserver.disable.tls              name: argocd-cmd-params-cm              optional: true        image: ghcr.io/dexidp/dex:v2.35.3        imagePullPolicy: Always        name: dex        ports:        - containerPort: 5556        - containerPort: 5557        - containerPort: 5558        securityContext:          allowPrivilegeEscalation: false          capabilities:            drop:            - ALL          readOnlyRootFilesystem: true          runAsNonRoot: true          seccompProfile:            type: RuntimeDefault        volumeMounts:        - mountPath: /shared          name: static-files        - mountPath: /tmp          name: dexconfig        - mountPath: /tls          name: argocd-dex-server-tls      initContainers:      - command:        - cp        - -n        - /usr/local/bin/argocd        - /shared/argocd-dex        image: quay.io/argoproj/argocd:latest        imagePullPolicy: Always        name: copyutil        securityContext:          allowPrivilegeEscalation: false          capabilities:            drop:            - ALL          readOnlyRootFilesystem: true          runAsNonRoot: true          seccompProfile:            type: RuntimeDefault        volumeMounts:        - mountPath: /shared          name: static-files        - mountPath: /tmp          name: dexconfig      serviceAccountName: argocd-dex-server      volumes:      - emptyDir: {}        name: static-files      - emptyDir: {}        name: dexconfig      - name: argocd-dex-server-tls        secret:          items:          - key: tls.crt            path: tls.crt          - key: tls.key            path: tls.key          - key: ca.crt            path: ca.crt          optional: true          secretName: argocd-dex-server-tls---apiVersion: apps/v1kind: Deploymentmetadata:  name: argocd-notifications-controllerspec:  selector:    matchLabels:      app.kubernetes.io/name: argocd-notifications-controller  strategy:    type: Recreate  template:    metadata:      labels:        app.kubernetes.io/name: argocd-notifications-controller    spec:      containers:      - command:        - argocd-notifications        image: quay.io/argoproj/argocd:latest        imagePullPolicy: Always        livenessProbe:          tcpSocket:            port: 9001        name: argocd-notifications-controller        securityContext:          allowPrivilegeEscalation: false          capabilities:            drop:            - ALL          readOnlyRootFilesystem: true        volumeMounts:        - mountPath: /app/config/tls          name: tls-certs        - mountPath: /app/config/reposerver/tls          name: argocd-repo-server-tls        workingDir: /app      securityContext:        runAsNonRoot: true        seccompProfile:          type: RuntimeDefault      serviceAccountName: argocd-notifications-controller      volumes:      - configMap:          name: argocd-tls-certs-cm        name: tls-certs      - name: argocd-repo-server-tls        secret:          items:          - key: tls.crt            path: tls.crt          - key: tls.key            path: tls.key          - key: ca.crt            path: ca.crt          optional: true          secretName: argocd-repo-server-tls---apiVersion: apps/v1kind: Deploymentmetadata:  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha-haproxy    app.kubernetes.io/part-of: argocd  name: argocd-redis-ha-haproxyspec:  replicas: 3  revisionHistoryLimit: 1  selector:    matchLabels:      app.kubernetes.io/name: argocd-redis-ha-haproxy  strategy:    type: RollingUpdate  template:    metadata:      annotations:        checksum/config: 1f7a9ffcacb3871ceb9b0741c0714e3f7fa656d426a398c1f727fffb01073f35      labels:        app.kubernetes.io/name: argocd-redis-ha-haproxy      name: argocd-redis-ha-haproxy    spec:      affinity:        podAntiAffinity:          requiredDuringSchedulingIgnoredDuringExecution:          - labelSelector:              matchLabels:                app.kubernetes.io/name: argocd-redis-ha-haproxy            topologyKey: kubernetes.io/hostname      containers:      - image: haproxy:2.6.2-alpine        imagePullPolicy: IfNotPresent        lifecycle: {}        livenessProbe:          httpGet:            path: /healthz            port: 8888          initialDelaySeconds: 5          periodSeconds: 3        name: haproxy        ports:        - containerPort: 6379          name: redis        readinessProbe:          httpGet:            path: /healthz            port: 8888          initialDelaySeconds: 5          periodSeconds: 3        securityContext:          allowPrivilegeEscalation: false          capabilities:            drop:            - ALL          seccompProfile:            type: RuntimeDefault        volumeMounts:        - mountPath: /usr/local/etc/haproxy          name: data        - mountPath: /run/haproxy          name: shared-socket      initContainers:      - args:        - /readonly/haproxy_init.sh        command:        - sh        image: haproxy:2.6.2-alpine        imagePullPolicy: IfNotPresent        name: config-init        securityContext:          allowPrivilegeEscalation: false          capabilities:            drop:            - ALL          seccompProfile:            type: RuntimeDefault        volumeMounts:        - mountPath: /readonly          name: config-volume          readOnly: true        - mountPath: /data          name: data      securityContext:        fsGroup: 99        runAsNonRoot: true        runAsUser: 99      serviceAccountName: argocd-redis-ha-haproxy      volumes:      - configMap:          name: argocd-redis-ha-configmap        name: config-volume      - emptyDir: {}        name: shared-socket      - emptyDir: {}        name: data---apiVersion: apps/v1kind: Deploymentmetadata:  labels:    app.kubernetes.io/component: repo-server    app.kubernetes.io/name: argocd-repo-server    app.kubernetes.io/part-of: argocd  name: argocd-repo-serverspec:  replicas: 2  selector:    matchLabels:      app.kubernetes.io/name: argocd-repo-server  template:    metadata:      labels:        app.kubernetes.io/name: argocd-repo-server    spec:      affinity:        podAntiAffinity:          preferredDuringSchedulingIgnoredDuringExecution:          - podAffinityTerm:              labelSelector:                matchLabels:                  app.kubernetes.io/name: argocd-repo-server              topologyKey: failure-domain.beta.kubernetes.io/zone            weight: 100          requiredDuringSchedulingIgnoredDuringExecution:          - labelSelector:              matchLabels:                app.kubernetes.io/name: argocd-repo-server            topologyKey: kubernetes.io/hostname      automountServiceAccountToken: false      containers:      - command:        - entrypoint.sh        - argocd-repo-server        - --redis        - argocd-redis-ha-haproxy:6379        env:        - name: ARGOCD_RECONCILIATION_TIMEOUT          valueFrom:            configMapKeyRef:              key: timeout.reconciliation              name: argocd-cm              optional: true        - name: ARGOCD_REPO_SERVER_LOGFORMAT          valueFrom:            configMapKeyRef:              key: reposerver.log.format              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_REPO_SERVER_LOGLEVEL          valueFrom:            configMapKeyRef:              key: reposerver.log.level              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_REPO_SERVER_PARALLELISM_LIMIT          valueFrom:            configMapKeyRef:              key: reposerver.parallelism.limit              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_REPO_SERVER_DISABLE_TLS          valueFrom:            configMapKeyRef:              key: reposerver.disable.tls              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_TLS_MIN_VERSION          valueFrom:            configMapKeyRef:              key: reposerver.tls.minversion              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_TLS_MAX_VERSION          valueFrom:            configMapKeyRef:              key: reposerver.tls.maxversion              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_TLS_CIPHERS          valueFrom:            configMapKeyRef:              key: reposerver.tls.ciphers              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_REPO_CACHE_EXPIRATION          valueFrom:            configMapKeyRef:              key: reposerver.repo.cache.expiration              name: argocd-cmd-params-cm              optional: true        - name: REDIS_SERVER          valueFrom:            configMapKeyRef:              key: redis.server              name: argocd-cmd-params-cm              optional: true        - name: REDIS_COMPRESSION          valueFrom:            configMapKeyRef:              key: redis.compression              name: argocd-cmd-params-cm              optional: true        - name: REDISDB          valueFrom:            configMapKeyRef:              key: redis.db              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_DEFAULT_CACHE_EXPIRATION          valueFrom:            configMapKeyRef:              key: reposerver.default.cache.expiration              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_REPO_SERVER_OTLP_ADDRESS          valueFrom:            configMapKeyRef:              key: otlp.address              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_REPO_SERVER_MAX_COMBINED_DIRECTORY_MANIFESTS_SIZE          valueFrom:            configMapKeyRef:              key: reposerver.max.combined.directory.manifests.size              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_REPO_SERVER_PLUGIN_TAR_EXCLUSIONS          valueFrom:            configMapKeyRef:              key: reposerver.plugin.tar.exclusions              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_REPO_SERVER_ALLOW_OUT_OF_BOUNDS_SYMLINKS          valueFrom:            configMapKeyRef:              key: reposerver.allow.oob.symlinks              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_REPO_SERVER_STREAMED_MANIFEST_MAX_TAR_SIZE          valueFrom:            configMapKeyRef:              key: reposerver.streamed.manifest.max.tar.size              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_REPO_SERVER_STREAMED_MANIFEST_MAX_EXTRACTED_SIZE          valueFrom:            configMapKeyRef:              key: reposerver.streamed.manifest.max.extracted.size              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_GIT_MODULES_ENABLED          valueFrom:            configMapKeyRef:              key: reposerver.enable.git.submodule              name: argocd-cmd-params-cm              optional: true        - name: HELM_CACHE_HOME          value: /helm-working-dir        - name: HELM_CONFIG_HOME          value: /helm-working-dir        - name: HELM_DATA_HOME          value: /helm-working-dir        image: quay.io/argoproj/argocd:latest        imagePullPolicy: Always        livenessProbe:          failureThreshold: 3          httpGet:            path: /healthz?full=true            port: 8084          initialDelaySeconds: 30          periodSeconds: 30          timeoutSeconds: 5        name: argocd-repo-server        ports:        - containerPort: 8081        - containerPort: 8084        readinessProbe:          httpGet:            path: /healthz            port: 8084          initialDelaySeconds: 5          periodSeconds: 10        securityContext:          allowPrivilegeEscalation: false          capabilities:            drop:            - ALL          readOnlyRootFilesystem: true          runAsNonRoot: true          seccompProfile:            type: RuntimeDefault        volumeMounts:        - mountPath: /app/config/ssh          name: ssh-known-hosts        - mountPath: /app/config/tls          name: tls-certs        - mountPath: /app/config/gpg/source          name: gpg-keys        - mountPath: /app/config/gpg/keys          name: gpg-keyring        - mountPath: /app/config/reposerver/tls          name: argocd-repo-server-tls        - mountPath: /tmp          name: tmp        - mountPath: /helm-working-dir          name: helm-working-dir        - mountPath: /home/argocd/cmp-server/plugins          name: plugins      initContainers:      - command:        - cp        - -n        - /usr/local/bin/argocd        - /var/run/argocd/argocd-cmp-server        image: quay.io/argoproj/argocd:latest        name: copyutil        securityContext:          allowPrivilegeEscalation: false          capabilities:            drop:            - ALL          readOnlyRootFilesystem: true          runAsNonRoot: true          seccompProfile:            type: RuntimeDefault        volumeMounts:        - mountPath: /var/run/argocd          name: var-files      serviceAccountName: argocd-repo-server      volumes:      - configMap:          name: argocd-ssh-known-hosts-cm        name: ssh-known-hosts      - configMap:          name: argocd-tls-certs-cm        name: tls-certs      - configMap:          name: argocd-gpg-keys-cm        name: gpg-keys      - emptyDir: {}        name: gpg-keyring      - emptyDir: {}        name: tmp      - emptyDir: {}        name: helm-working-dir      - name: argocd-repo-server-tls        secret:          items:          - key: tls.crt            path: tls.crt          - key: tls.key            path: tls.key          - key: ca.crt            path: ca.crt          optional: true          secretName: argocd-repo-server-tls      - emptyDir: {}        name: var-files      - emptyDir: {}        name: plugins---apiVersion: apps/v1kind: Deploymentmetadata:  labels:    app.kubernetes.io/component: server    app.kubernetes.io/name: argocd-server    app.kubernetes.io/part-of: argocd  name: argocd-serverspec:  replicas: 2  selector:    matchLabels:      app.kubernetes.io/name: argocd-server  template:    metadata:      labels:        app.kubernetes.io/name: argocd-server    spec:      affinity:        podAntiAffinity:          preferredDuringSchedulingIgnoredDuringExecution:          - podAffinityTerm:              labelSelector:                matchLabels:                  app.kubernetes.io/name: argocd-server              topologyKey: failure-domain.beta.kubernetes.io/zone            weight: 100          requiredDuringSchedulingIgnoredDuringExecution:          - labelSelector:              matchLabels:                app.kubernetes.io/name: argocd-server            topologyKey: kubernetes.io/hostname      containers:      - command:        - argocd-server        - --insecure        - --redis        - argocd-redis-ha-haproxy:6379        env:        - name: ARGOCD_API_SERVER_REPLICAS          value: "2"        - name: ARGOCD_SERVER_INSECURE          valueFrom:            configMapKeyRef:              key: server.insecure              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_BASEHREF          valueFrom:            configMapKeyRef:              key: server.basehref              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_ROOTPATH          valueFrom:            configMapKeyRef:              key: server.rootpath              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_LOGFORMAT          valueFrom:            configMapKeyRef:              key: server.log.format              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_LOG_LEVEL          valueFrom:            configMapKeyRef:              key: server.log.level              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_REPO_SERVER          valueFrom:            configMapKeyRef:              key: repo.server              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_DEX_SERVER          valueFrom:            configMapKeyRef:              key: server.dex.server              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_DISABLE_AUTH          valueFrom:            configMapKeyRef:              key: server.disable.auth              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_ENABLE_GZIP          valueFrom:            configMapKeyRef:              key: server.enable.gzip              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_REPO_SERVER_TIMEOUT_SECONDS          valueFrom:            configMapKeyRef:              key: server.repo.server.timeout.seconds              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_X_FRAME_OPTIONS          valueFrom:            configMapKeyRef:              key: server.x.frame.options              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_CONTENT_SECURITY_POLICY          valueFrom:            configMapKeyRef:              key: server.content.security.policy              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_REPO_SERVER_PLAINTEXT          valueFrom:            configMapKeyRef:              key: server.repo.server.plaintext              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_REPO_SERVER_STRICT_TLS          valueFrom:            configMapKeyRef:              key: server.repo.server.strict.tls              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_DEX_SERVER_PLAINTEXT          valueFrom:            configMapKeyRef:              key: server.dex.server.plaintext              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_DEX_SERVER_STRICT_TLS          valueFrom:            configMapKeyRef:              key: server.dex.server.strict.tls              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_TLS_MIN_VERSION          valueFrom:            configMapKeyRef:              key: server.tls.minversion              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_TLS_MAX_VERSION          valueFrom:            configMapKeyRef:              key: server.tls.maxversion              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_TLS_CIPHERS          valueFrom:            configMapKeyRef:              key: server.tls.ciphers              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_CONNECTION_STATUS_CACHE_EXPIRATION          valueFrom:            configMapKeyRef:              key: server.connection.status.cache.expiration              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_OIDC_CACHE_EXPIRATION          valueFrom:            configMapKeyRef:              key: server.oidc.cache.expiration              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_LOGIN_ATTEMPTS_EXPIRATION          valueFrom:            configMapKeyRef:              key: server.login.attempts.expiration              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_STATIC_ASSETS          valueFrom:            configMapKeyRef:              key: server.staticassets              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APP_STATE_CACHE_EXPIRATION          valueFrom:            configMapKeyRef:              key: server.app.state.cache.expiration              name: argocd-cmd-params-cm              optional: true        - name: REDIS_SERVER          valueFrom:            configMapKeyRef:              key: redis.server              name: argocd-cmd-params-cm              optional: true        - name: REDIS_COMPRESSION          valueFrom:            configMapKeyRef:              key: redis.compression              name: argocd-cmd-params-cm              optional: true        - name: REDISDB          valueFrom:            configMapKeyRef:              key: redis.db              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_DEFAULT_CACHE_EXPIRATION          valueFrom:            configMapKeyRef:              key: server.default.cache.expiration              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_MAX_COOKIE_NUMBER          valueFrom:            configMapKeyRef:              key: server.http.cookie.maxnumber              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_SERVER_OTLP_ADDRESS          valueFrom:            configMapKeyRef:              key: otlp.address              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATION_NAMESPACES          valueFrom:            configMapKeyRef:              key: application.namespaces              name: argocd-cmd-params-cm              optional: true        image: quay.io/argoproj/argocd:latest        imagePullPolicy: Always        livenessProbe:          httpGet:            path: /healthz?full=true            port: 8080          initialDelaySeconds: 3          periodSeconds: 30          timeoutSeconds: 5        name: argocd-server        ports:        - containerPort: 8080        - containerPort: 8083        readinessProbe:          httpGet:            path: /healthz            port: 8080          initialDelaySeconds: 3          periodSeconds: 30        securityContext:          allowPrivilegeEscalation: false          capabilities:            drop:            - ALL          readOnlyRootFilesystem: true          runAsNonRoot: true          seccompProfile:            type: RuntimeDefault        volumeMounts:        - mountPath: /app/config/ssh          name: ssh-known-hosts        - mountPath: /app/config/tls          name: tls-certs        - mountPath: /app/config/server/tls          name: argocd-repo-server-tls        - mountPath: /app/config/dex/tls          name: argocd-dex-server-tls        - mountPath: /home/argocd          name: plugins-home        - mountPath: /tmp          name: tmp      serviceAccountName: argocd-server      volumes:      - emptyDir: {}        name: plugins-home      - emptyDir: {}        name: tmp      - configMap:          name: argocd-ssh-known-hosts-cm        name: ssh-known-hosts      - configMap:          name: argocd-tls-certs-cm        name: tls-certs      - name: argocd-repo-server-tls        secret:          items:          - key: tls.crt            path: tls.crt          - key: tls.key            path: tls.key          - key: ca.crt            path: ca.crt          optional: true          secretName: argocd-repo-server-tls      - name: argocd-dex-server-tls        secret:          items:          - key: tls.crt            path: tls.crt          - key: ca.crt            path: ca.crt          optional: true          secretName: argocd-dex-server-tls---apiVersion: apps/v1kind: StatefulSetmetadata:  labels:    app.kubernetes.io/component: application-controller    app.kubernetes.io/name: argocd-application-controller    app.kubernetes.io/part-of: argocd  name: argocd-application-controllerspec:  replicas: 1  selector:    matchLabels:      app.kubernetes.io/name: argocd-application-controller  serviceName: argocd-application-controller  template:    metadata:      labels:        app.kubernetes.io/name: argocd-application-controller    spec:      affinity:        podAntiAffinity:          preferredDuringSchedulingIgnoredDuringExecution:          - podAffinityTerm:              labelSelector:                matchLabels:                  app.kubernetes.io/name: argocd-application-controller              topologyKey: kubernetes.io/hostname            weight: 100          - podAffinityTerm:              labelSelector:                matchLabels:                  app.kubernetes.io/part-of: argocd              topologyKey: kubernetes.io/hostname            weight: 5      containers:      - command:        - argocd-application-controller        - --redis        - argocd-redis-ha-haproxy:6379        env:        - name: ARGOCD_CONTROLLER_REPLICAS          value: "1"        - name: ARGOCD_RECONCILIATION_TIMEOUT          valueFrom:            configMapKeyRef:              key: timeout.reconciliation              name: argocd-cm              optional: true        - name: ARGOCD_HARD_RECONCILIATION_TIMEOUT          valueFrom:            configMapKeyRef:              key: timeout.hard.reconciliation              name: argocd-cm              optional: true        - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER          valueFrom:            configMapKeyRef:              key: repo.server              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_TIMEOUT_SECONDS          valueFrom:            configMapKeyRef:              key: controller.repo.server.timeout.seconds              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATION_CONTROLLER_STATUS_PROCESSORS          valueFrom:            configMapKeyRef:              key: controller.status.processors              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATION_CONTROLLER_OPERATION_PROCESSORS          valueFrom:            configMapKeyRef:              key: controller.operation.processors              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATION_CONTROLLER_LOGFORMAT          valueFrom:            configMapKeyRef:              key: controller.log.format              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATION_CONTROLLER_LOGLEVEL          valueFrom:            configMapKeyRef:              key: controller.log.level              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATION_CONTROLLER_METRICS_CACHE_EXPIRATION          valueFrom:            configMapKeyRef:              key: controller.metrics.cache.expiration              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATION_CONTROLLER_SELF_HEAL_TIMEOUT_SECONDS          valueFrom:            configMapKeyRef:              key: controller.self.heal.timeout.seconds              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_PLAINTEXT          valueFrom:            configMapKeyRef:              key: controller.repo.server.plaintext              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATION_CONTROLLER_REPO_SERVER_STRICT_TLS          valueFrom:            configMapKeyRef:              key: controller.repo.server.strict.tls              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATION_CONTROLLER_PERSIST_RESOURCE_HEALTH          valueFrom:            configMapKeyRef:              key: controller.resource.health.persist              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APP_STATE_CACHE_EXPIRATION          valueFrom:            configMapKeyRef:              key: controller.app.state.cache.expiration              name: argocd-cmd-params-cm              optional: true        - name: REDIS_SERVER          valueFrom:            configMapKeyRef:              key: redis.server              name: argocd-cmd-params-cm              optional: true        - name: REDIS_COMPRESSION          valueFrom:            configMapKeyRef:              key: redis.compression              name: argocd-cmd-params-cm              optional: true        - name: REDISDB          valueFrom:            configMapKeyRef:              key: redis.db              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_DEFAULT_CACHE_EXPIRATION          valueFrom:            configMapKeyRef:              key: controller.default.cache.expiration              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATION_CONTROLLER_OTLP_ADDRESS          valueFrom:            configMapKeyRef:              key: otlp.address              name: argocd-cmd-params-cm              optional: true        - name: ARGOCD_APPLICATION_NAMESPACES          valueFrom:            configMapKeyRef:              key: application.namespaces              name: argocd-cmd-params-cm              optional: true        image: quay.io/argoproj/argocd:latest        imagePullPolicy: Always        name: argocd-application-controller        ports:        - containerPort: 8082        readinessProbe:          httpGet:            path: /healthz            port: 8082          initialDelaySeconds: 5          periodSeconds: 10        securityContext:          allowPrivilegeEscalation: false          capabilities:            drop:            - ALL          readOnlyRootFilesystem: true          runAsNonRoot: true          seccompProfile:            type: RuntimeDefault        volumeMounts:        - mountPath: /app/config/controller/tls          name: argocd-repo-server-tls        - mountPath: /home/argocd          name: argocd-home        workingDir: /home/argocd      serviceAccountName: argocd-application-controller      volumes:      - emptyDir: {}        name: argocd-home      - name: argocd-repo-server-tls        secret:          items:          - key: tls.crt            path: tls.crt          - key: tls.key            path: tls.key          - key: ca.crt            path: ca.crt          optional: true          secretName: argocd-repo-server-tls---apiVersion: apps/v1kind: StatefulSetmetadata:  labels:    app.kubernetes.io/component: redis    app.kubernetes.io/name: argocd-redis-ha    app.kubernetes.io/part-of: argocd  name: argocd-redis-ha-serverspec:  podManagementPolicy: OrderedReady  replicas: 3  selector:    matchLabels:      app.kubernetes.io/name: argocd-redis-ha  serviceName: argocd-redis-ha  template:    metadata:      annotations:        checksum/init-config: 84ccf6a9b8a7fa3ae5b62a8f17d6c65a5197e9605da9b2761179bf942828eefe      labels:        app.kubernetes.io/name: argocd-redis-ha    spec:      affinity:        podAntiAffinity:          requiredDuringSchedulingIgnoredDuringExecution:          - labelSelector:              matchLabels:                app.kubernetes.io/name: argocd-redis-ha            topologyKey: kubernetes.io/hostname      automountServiceAccountToken: false      containers:      - args:        - /data/conf/redis.conf        command:        - redis-server        image: redis:7.0.5-alpine        imagePullPolicy: IfNotPresent        lifecycle:          preStop:            exec:              command:              - /bin/sh              - /readonly-config/trigger-failover-if-master.sh        livenessProbe:          exec:            command:            - sh            - -c            - /health/redis_liveness.sh          failureThreshold: 5          initialDelaySeconds: 30          periodSeconds: 15          successThreshold: 1          timeoutSeconds: 15        name: redis        ports:        - containerPort: 6379          name: redis        readinessProbe:          exec:            command:            - sh            - -c            - /health/redis_readiness.sh          failureThreshold: 5          initialDelaySeconds: 30          periodSeconds: 15          successThreshold: 1          timeoutSeconds: 15        securityContext:          allowPrivilegeEscalation: false          capabilities:            drop:            - ALL          seccompProfile:            type: RuntimeDefault        volumeMounts:        - mountPath: /readonly-config          name: config          readOnly: true        - mountPath: /data          name: data        - mountPath: /health          name: health      - args:        - /data/conf/sentinel.conf        command:        - redis-sentinel        image: redis:7.0.5-alpine        imagePullPolicy: IfNotPresent        lifecycle: {}        livenessProbe:          exec:            command:            - sh            - -c            - /health/sentinel_liveness.sh          failureThreshold: 5          initialDelaySeconds: 30          periodSeconds: 15          successThreshold: 1          timeoutSeconds: 15        name: sentinel        ports:        - containerPort: 26379          name: sentinel        readinessProbe:          exec:            command:            - sh            - -c            - /health/sentinel_liveness.sh          failureThreshold: 5          initialDelaySeconds: 30          periodSeconds: 15          successThreshold: 3          timeoutSeconds: 15        securityContext:          allowPrivilegeEscalation: false          capabilities:            drop:            - ALL          seccompProfile:            type: RuntimeDefault        volumeMounts:        - mountPath: /data          name: data        - mountPath: /health          name: health      - args:        - /readonly-config/fix-split-brain.sh        command:        - sh        env:        - name: SENTINEL_ID_0          value: 3c0d9c0320bb34888c2df5757c718ce6ca992ce6        - name: SENTINEL_ID_1          value: 40000915ab58c3fa8fd888fb8b24711944e6cbb4        - name: SENTINEL_ID_2          value: 2bbec7894d954a8af3bb54d13eaec53cb024e2ca        image: redis:7.0.5-alpine        imagePullPolicy: IfNotPresent        name: split-brain-fix        resources: {}        securityContext:          allowPrivilegeEscalation: false          capabilities:            drop:            - ALL          seccompProfile:            type: RuntimeDefault        volumeMounts:        - mountPath: /readonly-config          name: config          readOnly: true        - mountPath: /data          name: data      initContainers:      - args:        - /readonly-config/init.sh        command:        - sh        env:        - name: SENTINEL_ID_0          value: 3c0d9c0320bb34888c2df5757c718ce6ca992ce6        - name: SENTINEL_ID_1          value: 40000915ab58c3fa8fd888fb8b24711944e6cbb4        - name: SENTINEL_ID_2          value: 2bbec7894d954a8af3bb54d13eaec53cb024e2ca        image: redis:7.0.5-alpine        imagePullPolicy: IfNotPresent        name: config-init        securityContext:          allowPrivilegeEscalation: false          capabilities:            drop:            - ALL          seccompProfile:            type: RuntimeDefault        volumeMounts:        - mountPath: /readonly-config          name: config          readOnly: true        - mountPath: /data          name: data      securityContext:        fsGroup: 1000        runAsNonRoot: true        runAsUser: 1000      serviceAccountName: argocd-redis-ha      terminationGracePeriodSeconds: 60      volumes:      - configMap:          name: argocd-redis-ha-configmap        name: config      - configMap:          defaultMode: 493          name: argocd-redis-ha-health-configmap        name: health      - emptyDir: {}        name: data  updateStrategy:    type: RollingUpdate---apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata:  name: argocd-application-controller-network-policyspec:  ingress:  - from:    - namespaceSelector: {}    ports:    - port: 8082  podSelector:    matchLabels:      app.kubernetes.io/name: argocd-application-controller  policyTypes:  - Ingress---apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata:  name: argocd-applicationset-controller-network-policyspec:  ingress:  - from:    - namespaceSelector: {}    ports:    - port: 7000      protocol: TCP    - port: 8080      protocol: TCP  podSelector:    matchLabels:      app.kubernetes.io/name: argocd-applicationset-controller  policyTypes:  - Ingress---apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata:  name: argocd-dex-server-network-policyspec:  ingress:  - from:    - podSelector:        matchLabels:          app.kubernetes.io/name: argocd-server    ports:    - port: 5556      protocol: TCP    - port: 5557      protocol: TCP  - from:    - namespaceSelector: {}    ports:    - port: 5558      protocol: TCP  podSelector:    matchLabels:      app.kubernetes.io/name: argocd-dex-server  policyTypes:  - Ingress---apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata:  name: argocd-notifications-controller-network-policyspec:  ingress:  - from:    - namespaceSelector: {}    ports:    - port: 9001      protocol: TCP  podSelector:    matchLabels:      app.kubernetes.io/name: argocd-notifications-controller  policyTypes:  - Ingress---apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata:  name: argocd-redis-ha-proxy-network-policyspec:  egress:  - ports:    - port: 6379      protocol: TCP    - port: 26379      protocol: TCP    to:    - podSelector:        matchLabels:          app.kubernetes.io/name: argocd-redis-ha  - ports:    - port: 53      protocol: UDP    - port: 53      protocol: TCP  ingress:  - from:    - podSelector:        matchLabels:          app.kubernetes.io/name: argocd-server    - podSelector:        matchLabels:          app.kubernetes.io/name: argocd-repo-server    - podSelector:        matchLabels:          app.kubernetes.io/name: argocd-application-controller    ports:    - port: 6379      protocol: TCP    - port: 26379      protocol: TCP  podSelector:    matchLabels:      app.kubernetes.io/name: argocd-redis-ha-haproxy  policyTypes:  - Ingress  - Egress---apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata:  name: argocd-redis-ha-server-network-policyspec:  egress:  - ports:    - port: 6379      protocol: TCP    - port: 26379      protocol: TCP    to:    - podSelector:        matchLabels:          app.kubernetes.io/name: argocd-redis-ha  - ports:    - port: 53      protocol: UDP    - port: 53      protocol: TCP  ingress:  - from:    - podSelector:        matchLabels:          app.kubernetes.io/name: argocd-redis-ha-haproxy    - podSelector:        matchLabels:          app.kubernetes.io/name: argocd-redis-ha    ports:    - port: 6379      protocol: TCP    - port: 26379      protocol: TCP  podSelector:    matchLabels:      app.kubernetes.io/name: argocd-redis-ha  policyTypes:  - Ingress  - Egress---apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata:  name: argocd-repo-server-network-policyspec:  ingress:  - from:    - podSelector:        matchLabels:          app.kubernetes.io/name: argocd-server    - podSelector:        matchLabels:          app.kubernetes.io/name: argocd-application-controller    - podSelector:        matchLabels:          app.kubernetes.io/name: argocd-notifications-controller    ports:    - port: 8081      protocol: TCP  - from:    - namespaceSelector: {}    ports:    - port: 8084  podSelector:    matchLabels:      app.kubernetes.io/name: argocd-repo-server  policyTypes:  - Ingress---apiVersion: networking.k8s.io/v1kind: NetworkPolicymetadata:  name: argocd-server-network-policyspec:  ingress:  - {}  podSelector:    matchLabels:      app.kubernetes.io/name: argocd-server  policyTypes:  - Ingress---apiVersion: traefik.containo.us/v1alpha1kind: IngressRoutemetadata:  name: argocd-server  namespace: argocdspec:  entryPoints:  - websecure  routes:  - match: Host(`argocd.dezendorf.net`)    kind: Rule    priority: 10    services:    - name: argocd-server      port: 80  - match: Host(`argocd.dezendorf.net`) && Headers(`Content-Type`, `application/grpc`)    kind: Rule    priority: 20    services:     - name: argocd-server       port: 80       scheme: h2c  tls:    certResolver: myresolver---apiVersion: traefik.containo.us/v1alpha1kind: IngressRoutemetadata:  name: argocd-redirect  namespace: argocdspec:  entryPoints:    - web  routes:  - match: Host(`argocd.dezendorf.net`) || Host(`argo`)    kind: Rule    middlewares:    - name: redirecthttps    services:    - name: argocd-server      port: 80
 |