From 6d27a6a9ab8e4b03f3ee31cf11bc52b13c7b9843 Mon Sep 17 00:00:00 2001 From: Gergely Brautigam <182850+Skarlso@users.noreply.github.com> Date: Fri, 20 Sep 2024 15:36:31 +0200 Subject: [PATCH] feature: add flux install for ocm controller --- deploy/Chart.lock | 6 -- deploy/Chart.yaml | 6 -- deploy/charts/cert-manager-v1.14.5.tgz | Bin 80673 -> 0 bytes deploy/flux/cert-manager/cert-manager.yaml | 35 ++++++++++++ deploy/flux/cert-manager/kustomization.yaml | 4 ++ deploy/flux/config/cluster_issuer.yaml | 42 ++++++++++++++ deploy/flux/config/kustomization.yaml | 5 ++ .../flux/config/ocm-system_certificate.yaml | 21 +++++++ deploy/flux/controller_kustomization.yaml | 52 ++++++++++++++++++ deploy/flux/ocm-controller/controller.yaml | 31 +++++++++++ deploy/flux/ocm-controller/kustomization.yaml | 4 ++ deploy/flux/script.sh | 13 +++++ deploy/templates/cert-manager_namespace.yaml | 8 --- .../wait-for-cert-manager-role-binding.yaml | 14 ----- .../templates/wait-for-cert-manager-role.yaml | 10 ---- ...wait-for-cert-manager-service-account.yaml | 7 --- deploy/templates/wait-for-cert-manager.yaml | 27 --------- deploy/values.yaml | 4 -- 18 files changed, 207 insertions(+), 82 deletions(-) delete mode 100644 deploy/Chart.lock delete mode 100644 deploy/charts/cert-manager-v1.14.5.tgz create mode 100644 deploy/flux/cert-manager/cert-manager.yaml create mode 100644 deploy/flux/cert-manager/kustomization.yaml create mode 100644 deploy/flux/config/cluster_issuer.yaml create mode 100644 deploy/flux/config/kustomization.yaml create mode 100644 deploy/flux/config/ocm-system_certificate.yaml create mode 100644 deploy/flux/controller_kustomization.yaml create mode 100644 deploy/flux/ocm-controller/controller.yaml create mode 100644 deploy/flux/ocm-controller/kustomization.yaml create mode 100644 deploy/flux/script.sh delete mode 100644 deploy/templates/cert-manager_namespace.yaml delete mode 100644 deploy/templates/wait-for-cert-manager-role-binding.yaml delete mode 100644 deploy/templates/wait-for-cert-manager-role.yaml delete mode 100644 deploy/templates/wait-for-cert-manager-service-account.yaml delete mode 100644 deploy/templates/wait-for-cert-manager.yaml diff --git a/deploy/Chart.lock b/deploy/Chart.lock deleted file mode 100644 index fce9be00..00000000 --- a/deploy/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: cert-manager - repository: https://charts.jetstack.io - version: v1.14.5 -digest: sha256:c88105985e88b3fc049cab3541ec8f802c3d58455386e0390838d82ebff7dedf -generated: "2024-06-04T13:13:38.300834+02:00" diff --git a/deploy/Chart.yaml b/deploy/Chart.yaml index 8db153b0..feefd352 100644 --- a/deploy/Chart.yaml +++ b/deploy/Chart.yaml @@ -9,9 +9,3 @@ keywords: - ocm - open-component-model - kubernetes - -dependencies: - - name: cert-manager - version: v1.14.5 - repository: https://charts.jetstack.io - condition: cert-manager.enabled diff --git a/deploy/charts/cert-manager-v1.14.5.tgz b/deploy/charts/cert-manager-v1.14.5.tgz deleted file mode 100644 index 797364f5be9b400665014c7996da2fcbfd85a08b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 80673 zcmV)HK)t^oiwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PMZ%dLy^7D4O4V3T$cZPczwKi_~q#+{-yjmNd5F8I6vpiL-W` zV}jiviKq#50JJ0~@w=R7IZt*z6fTW!cJm@>GAQ=*}Lw+In>NW+CvkiGTGbP3$Yi5k`GfFw{OWzmcHpX zg0gXYzq8+McfM-xciOA=8jZ7Y3up9CL`ce658ZWJILm^cQTH%9Y9&O*f@TU{o}lkY zIz_SGP-w&j3P;nL@F^)KF{S{dm`_V%F8yfHSU2mc2z(!zYPlpL=1dW$7PqjM938}+ z;aB@_I-|F7@>M7Ks`K{nxRV@zb=28E{_2o)-yXaj9gX%+w8(1@laf;Qq53xe*jpm>-P zi4;def-)>6Nf2dK?SP>bu#xMfSjJDA=84*EPOmscY2;u@wxgbcASPejq%FvpN+o7{x_Rj09T$i^;Axf;Gj7xWRi37OGf?{)p|&MjTeeNz zyqSziHla9|icfum23}+wp^PUtw&EV5Y%GYBH$h7$rytHwCpb+B8Om3r7 zzQ#sRpf;WG8*Zb-jUR>qbYu%(|lT)NqJ;?Hkw9A#j{Lz zMn+m{ph`C=NS5MQznvk>xSE8sk8C@0w8}Ov$(il9hmJck1TAHXh&!C3AyM~)Fb53j z7%7ecFjK6zoT0Fc+yguud~9Pm5G$fRwY-}Mj&804aQlcs11T!rgk-z6Swah&n zvj^6~>A`T$2u@PUNDm#Brx(DRpg5(3DT(BS=V@Y)r7~^67mWatLN&~iupgW{TyS$= zGBzbr^icOmY6c8KZ9^lv zUW=Mm_1})Zw5n3_sTYa#w@c4Oh2fx5|2;3__)4($Ig47`Eel)A1E@sZUA;9lwaWxg za1NobsF*Q9&OwvXsxJgejC~ zdKV+91Xg4`s}~T0l}LP5eO~DkvWVZtoW&$la_^pt+mz!3UOC}-uV`y;+YJC9R5~AQ zBR@L$fsmSIq=&9K99=%a1k48!zOsdpCV>51j7bl5f>)oIUG$V_sQ4~G-m6(jBVnJz za%wb6sDwW)@2nR0lDR+h02RsvxdTFw@O!4$N0SMSJa;_JnZjbG8@4S;B=dNJG}kwU zFuLRkL3uV7I3ZE>EVbJ>7~oLDl*hMdpw}r@DM|#UYyfT0k=^{jI4#M7uI>Tp^iM!J zL8h28J(P;@vaP$-EyTGHgehG%XS$>wWkvjGm81`8xD;i;rTn6RR0`-A03<@Em?1)e z2Wfr<0yDIS888%$uCGWmj!^ftUM7q(B4WZ69uq5Qo6q}4|MRth;3?>Iy@*UlXi&zF zftAgpCaHW%*-3~@wG*^#IA>qT6oWA@pWxhnY3T`0rx;0+VFB`JN~O|-d_=I)RBH^v z5zsD6H;2Tbf<>~{c1T+?oprkVJDK2G z(x+^^qluy>NUbS;IOWV@sy~%VEugeopi=1h6Q9>?Ag9Iv_K{mQ>L?`CLL&ic)`pXt zsoq0>&+#mxyj9bOZDuhIuJ1vROiSK8=wa_~L`j9?+p=yyXsIhSB#5IM-J#_cy=)a@?;|~``I6?^>6KSa# zccaE^rt35{XX^BjoZ$VV<6eh!-s~qyl5|IJMsG*)+pjub;r$pNkB*PXo8$Os)JgV7 z@o4yVNDkk8b#R2q!Qs&x@^(0k$#B18h7_E;yb8*mnm7yCtDa=$zxB|?=#r}|K_p>H zBle>6i{e_26$G7K_MN;U^r<-^Oi`RlL{uCBve;AUg_JoFt?fe16rpcsPFOOlBJnir z3Cl8;QE3;QBydEd3{lzIHY;XWSWy|)!O|6+D?Y`_YQmg$%nI^_Z6|8Q_5^K*cp03* z>|QVR0jd-U!WSUqh_a9?!9go_XRx6agwoV1OIyI(tnNiu0ID-HrL|aFhP#zQt#vL? z*iJ~Ajq=p!Ol=pA3wj!WCBoK%m5@wJ&@7&zS27=(x362QJXt&VlQ;(1%piM4VmhLF zMiT-&0J}*dYzhX{)WW${(WVsoD!tlvR@GL_@jlqY21uACwlO_%-P|t1rXecPm@s0f zeJB!!bw8ipM`bR>qU7*sk$RkzXZ6Z?m|rM}2DaLo z8}IgtUHxG843%h<;xXtK3@$I7&>MH&>DDUDD;x;I!iamCx<$1IAv14#vI%YM#k3<+ zrbY>m(`mrawn|9b}>a#J|0sx_Qxo%+v}ly_s&?bdPtE6Wowo6bf@8X zOA5C@-)2YTS?bBv#s7WP@1d_colecSZ*rmedGXaqgdazRO!os9w?xPu+IMA2Ql%Tt zi6;Re*5xY8)jOD&Q}NpJXH)_nT`)=FT#(cL^(TqP8$cmRko;|gE1C_B|piUV&7m%<5SM`S(~ydbpM1?&?ugsoP-~y zL<+GFi);|BWm`3MGng6KvHLtdwcn-r6w^iYE-rAu{Nyjq0i``(E0VYZZ>< zUEH#}ANWfl7Q@hB)eIFpyX<$ms87-nI-QXC)~IQg*vjH?|L@^=O7;>aJKeo)OETN6 z=%zj5q79$hlBA<{4Bgb62&DqG1?c)GTpHm*qi-Q;#kr95&I)067A1+)3Oj$#iI}yZ z(`#2Ln7NZ4-*ID|4O;+Hcsld)UVWz;bazA;j0MfF)%N&fkD=8lhVjJMHD}O?O_el;m-q`FmeOA|0vk;DJhtoXMk4*1M&k+k624+hQ;8csqz`Ee5YAt|G z3cVp^Sj>P?awG{z+<_Lxv?Fqc5+2{`V{pz^K413!(>nV60kzv&h6bkg2>|CL3ea*^ zm15dmo7Y#}DT}{psWyMhp^05A8@k zwOXGYJ&bGbp%7@fok-izEeMD;FmkiDAd0iRhq|4qqsvp!H5}}Jpiq06--uTRmuZa| zPum|^3ttks*Ya;2(YxXaa%M^pUyR`KG@lh|8-!QnLG8_p%dUv+QlHgC&Q9bdXV;u7 zZ^f1*j`=jZ5?o7t#!P9|)j8;Ut(TCYmQL+cosqTJYgy3QkBZgO?Q^Da%g^8?Am9u4 z=RpBd(UqWgG$mtlE@PZplb^FU$2c?Q6-uOmN+Nh>{%WI>_wPZ2g%eHPG(g|clo;tS zIQ0}e?2f1Tl*}F3n(;eo*(x>L)qFv47FxAQ4-MDw2dM2@f9%;dP#x7B*$RWnN%d^| zgg&o$BI|m~c(P(QOAgSchm0qoOHJ6)DxJ<9V8c6mn)(>S~Ay91`&)zZc& zPZ1pzo?aLke`_NK8Sgl#^$*TK>ub%bprcFp6jP@6|25AQK}QD>`az!(N8Frc^{JLQ zdaVU2FcwlaZf#f47Bgi0U5o_*9IlX&6w%F}Z@}a$5(!4bGzGIEoO+EP3Y?#k zq8WxCoHiG|oa}VPQ>4Pbp3%v<62|+U zTLSP~+h~fF5xvdMU&n538`tL_az|rxIFgc%89+vNvuB+WXyKV=toBx^1H;0?8c+-4 zl;Y?;W%+{{s~*&aD$K)B%Q#1ss{BA%qBp;pAk_#nr4J-QANy`+Me_?20#ozc@|3yk z=`%zAQ21@oG2?=?EUoBI=(I+IS~y|I+-zulB+@dvqcLS~+w!2k4jPYaQ^tUy4?D(m zQ+->bJgyAlma^peM)ExcADqfaz6agevXQ{Wi{~54x4OCcvA}D0_%#PBA}jvmamml` zyPKPYw%g`w2?+(3bwu+uJig z-*(=1wi?FK|2zYcrIE;`L%IC;v~ldVw!v*lGiuG|4Y!w}q5L6E^Q3;njJx4>_uoXF zs1tQ}Qy$}V!li0~cpFm5lM(1AXS-S&aU=NOaM)kTS=JkUf?{o)(Y?EFwEt#r8{78V zcincZ=|`9AV~K0`2&e_;|A(=Xd#KaA!1rq)&UDR zf5`OSGFSKfNB#Mh%z9|Vc{IcVZY~L)lCTIu8unO|Pjtb`UyQ21SAN;HUW+Y1Yb!0D zcsGe)fo^z8%yC$Lt~FA=i^Z!{l(SP>44ncj=YP*}YTsJjgav_lXWUYI=#tx2C9SY8 zcPy(1PsUR|p7k?*L<|(jpAT53LkS(mzQbjpYZ#^j2m4~j+ z2DZ4C5I-@A6_q1u9B~{hPuT1p&ulr6a|(X%5EC|mJ-Yub5lvjcqeTVY*1?IFKPFdnyMN7v^V=g zTyaKY^FErJzw;QDwu&Hf!c!|g4zc&mw&inlj$DLvb|i11IP5 zJAH)Zxhh^BwGfgy9D;8gTzjb7LTH3(nhO%VeXB9k^lx z8m6<|z%z#y7Xt4mG@dwLMC-^k26TbO09@cA!0(yUHGMFHN3YBX62x;Q!9Bo&u5h5T z4xJx$gZET|b56OHJxvc?i^agAnoU&(aplrdwOyw%tJ>BA1Vi&zjcl8RTa$)%uyzB( zt-PMwLb2TSu7LuT?gos%znahyFm)B8p5tHAsNGBl((*&;_n2+0XrkPyH1{itpE?Cgib%dp<19LZSVjLcQlpL=M}y{fyUQ&bKsy3cc$dn^TZmvXSH8bAMb)yX{1@tT+>pG_ZWD75|X*mj0B(B;U_4;3hz3{9?;u> z)~gNs*lC`08xzjBa4O`|COKzG#wk<9kgp7X)cdC5!4xR8v!amosy59L+nm2eAP9`Z z=%>wkToo{E=kxSYaS&)q2VUl1}B)(NM@`!@RNrzuhR zr$RXSDdWjc`ndNKGm0Wt*5E(1(epH*G@+WCQVZwfbzbJmj&}zbay1F5tQOZQ#1d|t zDdScKM|nx_$Zo;upb78=6GVdAh#`!K5L`s&MrjjO4*Gpbid=O2Le#kEa4kaoZ%OG2 zSUiQwRa)6lxDAD~TB-7p;RiCDaDLlr-J3tmVPVBvo3@U>vRPbzd+uwS;NxAoxasl*PW?CAQ72y=C52UO>W%*Fa}>NiLg7R z8sYy>aM#8;A3ME+x&438LDG!Fp89o#m6T!?RTz0tge8Sv&fcBz&!lYJw!?3iJbBu8 z-6F!v55(QL@QZGVkh{laE)4NeX~f?VL3Z@{dS(XxNfIHE)P$c-30y^Y!m?AyFne1z zRKI-xwjZtlwpN@*T(#v)A3Rt7QpE2y3jW@ccu?TuctR3mg#~tvrbJ3SCf*Nz%R14Z z#9j^80stWiNw#*)84!+$2`7^6D7ae!t>uyklu$foT%W7;9J7hlF?sVxIAuMoq!@4M zCMZ?bQE}+6n4Vqs;Vhei?tB;BoL&X3?V_9aeREBNjJcxNyae+_=?#Z~1NY{O!Cq;u zzJ;g_Eg86)(e?SRIGh2eB7d*bCKaKX}C#BP4OLKavEEs37+^Opxwbo|io9zy*XlA8T_jLZbgf-A<RWD0g3zX4Qt-}D6VX2VA7dxUkxV8K}7k~a*H(-H7sHAig^RvV&Xx>6a z)B-EN)x|BapDK|HoWNI#T@b#k+{O+%^DwJ(m7RAib&x8&O0RhG3~}J*JxXiE(;C0p z2G81h-`XbcT7=f~ubl@&;avM-z*yvByNZ)-ottgwXj{12E_1d81w>s04D{F-7{w9g zv&6xelYbr+2?IS#EDW?H8b*^w=6NGxpeF>3KQiH5e2&RB#K&l! z>U@k0wDvV;M~5mVsJgfY&A#A|@Ak?>0<7(@&K>;mJvlGyhR&K?x*y-+hg`wowNWyy z3wyGl&NB|}PyS@R&fxAA)~Xra;tIXFsDS#+5&0{--WeAz%K4_;B;sKc9e}YcuuO@<3063&Xcq(U0rbL8A@l;jy6_gajd}2>`-pBQ zxC?L~Cp^=2M5n}@yNeiJ0z`lLs}Y*5^#H?}+DT+a=BPcB^vM z=W|>eM5uCcPN1+IwJ8bPRZW3A3+;>kba7D8-LE*sm=}Q zz?z+E{GN_G#+Fs%`PAg*RO1unkN_w23xSJpV|grKj_TlY^cb)_>m3v$9#(FltfP-u z=^jcc(BPBqqJWm|xo)G>u5|TA%7Qy7z*T-xclKtI7dW*$zF2l^_uO(_$M%5D*0{Ep zm~b8cU%|b-RH)+MUinsV|9U6)01id)qc6wNeZl&b+}#mc&uehm`-dg1;=dEpVS7(obPEth|EIVZs=t7 z7@4jq+t!mpWTK}9$!r8zB~T_>Csbx*qn{yMCR#IK=Aw|99y5cWiRcMo6XydbqP0RN zqR$aLv2k(20E+9Yn-)hjZ0xkbO>AZ2Vz<&-ebzX*tshHqwP=c^##fG~*r1bJwZkWw zz@OFr{T#;c=eB%5li9o5>2z9k_T^TYV$f0D3P3gtENr5c376{9ghoJ9o&>HF*De!| zUZ`9`$|8u#bSvlOOu%{QLfEb1%dsbux;e%Zs8^j8hu(*TrQvyOrBn zidoUqa0czg#+VWF=`?3>W67w5bPxJ`zJo5V(CNk5H7qMmrc@fnWA&AQCb|V12*OXb zPa(5d;L`;FuX@I4^hjx}%;6X2pB9!@xS|Zi%z$&ZaJ?&5Y7i3Z31(w+-o&hA4HF8{ zk;NFWt~ISx@U9etzQBPAzb{exqWcMENlKCkeJTZX@plOyGH$Njm-KFmm+$cS%@yhG z3-}RZN#t%wnUPsevwl_sgX4*DJ=XNq-7bp?K6nG>Zx;aiDx8<`+ekT1&=99uh823{ zz35~eyX9g_jIRHUt$uOULtEWW@^4j^ugc@_OPVA;IEKob&(#cbwS=Q>6q6t?4( zgIuHo7jlJ3MQ~zoUz(zk%U|g==z7_EW{AdSU8qGY@|lP;)TZkT75273Z91pg%E1H{ zx!qs5C=hu{=5|i0;aQ2G13@);#SEF$jZrq_IZKcd`urU?b5t8v!o}OtqIlsFK(lXB z9^Zzhk(ef;hdK~iptI+txbtTmJI_^V@WsCzwzfoXJAgWehX=cw2;LLp3~K@f2_+Y} zJeOt*g^TH$@TqS*e!7|9ipM#<&JOY+G^wk&8&SBKo^e>4-cYB=f}$?qxiZ=@zkJf2$jOJ)i(I(z-+GZFfBm3|zEYF{bu!qt~z$3u0szmx^BS!9#_e@!Jk&`?=3hAtmOJ;DO(0i#svT>8i6ux)NY&o+xF$YE{+Y) z<-Im9ygt!^t=!-O;pGeVVe`kTja$;jEotMHv~f$?xFv1elD<5*q)^S+M< zU&@!LB=|J+vqs9@qP2}j(Z-`_<5Bb^kD_8XZJdh24mYN_U)U6Pa{A#M^?7nGt|t$<^GT6oG@Q^3 zB8S0v$OBc?bVfmJ_i)DL9~w9I4iCGBM#*O^Em5mgS@2%TcM1k#Q3YqztXIANz-mUg zDti6aEpdx;JpLvvaofm-O9e#TaYieHFF2z+PT^j}bnBt+)Kt}bYl!1pJ{rBJQ>ul- z@MjMlKE_s1#o9meVLcrG#)qM`0OmU(=`@m)J-CrxqM~!3+xLWyC#r|Gx?A%fP1byy z(5`2rN48B=MhGFv*)IHod#@xR$#cy0vl>ULoqZOgh)V0MAwFoOO$}naJcx7t2%Qnqy%wcJ<*?v4mG=i)K4fOO1Fr( zadHm5Ek9kq-$fT!daZ;>?3je{98H)+8753_(0B)VkRb{3-MW^QavI@{Wo2Vo*;rQ4 z#9;KENGwIb4b>($Du*vi<$#bF;#V{IBnp|h%0;S0sL zM;kZlC%F>JJ%yz`!H%=Bd%U>a<9EN|r=&)8)JX1Ke!MyFN9sX6M<1O|r*nLG2>*6E zo$9~c?tb@o-NWPV{^7y?o6i34I^CoFgTvpU&U19W?8)`k{axqDeN`v-D|t$r{-6Iu z(W#aMqmx1o{P|}{NiigZSt*kwF8ZA2W3&I!YF#kIMPjmb4at}?$Qtk5>FLN&0%M>6 zQIHXH0N3m@&k*)Ez99>Iiwk7_@-h;7H41M83}=Sp8X_$=sc!uykisB zzm8h14;-v21^KZWjv_ginq>s;1e!`l0R@-nD={#qEt?8+1ebj&Lp&EK;c>1>lZ~$0 zatFb=aIaP=5~y}st#@2h2RGMqH6b9KF>7cdNbaIKuWY0FR_nRiBzrv@1{{J)~X-0&MRF*!ukHz%Ad+_GX zeue%YcMmu8|3#jE{&Vm5=#EZ%K#E5+C7Kj|J=I`|C!~jdzxVUcEnTX0{*bxU-{CO{ zR0mPZmTRMgj3^_OP}jP`7HStoK(}j|&82QF`jfd-)4|Lt)%M%SQPquj#G1s7iSp^KWhCzOzTiy=|1#Sq&HMURFgnq0F#Dz z9YzP8(kWFg9TS!4mCY=3cG=fuLD`&<`1LZ_xWiyEB|7rpa34KLT$#oKE5R(4MN9ty z6YG7w`mzM$w1)#}TZyhoO0XoRvL9>d?b-v(1Z8T3w*IGV|4+G9Y0dPz4x%*uT|%HL zme(r-maJ@9YjN4M#^qv>RVC6(aHhGjm^GubqCsgR^W0gs~l6d?z@4@3=s0`o|Pgz{6I|rx{k%gjDd! z+|gYp`YO0$=kvAJ>`fQFsk|i}4%)B3D)MtNLc(kr(}>@*CI^;LRH>4}*Jf$VwWtoG zZ3NRi_4*IJ|E46lv}C2&zFR9{u-nT=N6mXVAPIg&O8u_MIp*gT<7+Z1$~t7O;cF26 zU<>{H^WH!I8I+p`P=tQ|xgF!@CptyIv6bjeeesp(PR*oVFKhR4q-T}J8c9$X$mKIr zp}=|jnF&!4{G*;06$LirC;--Hq)7WKQKWEPo9E76nY zl?hKei~D)x$!Cp5mz^a8+=SSnF4UL}OH)cn3&f(1zv-`+wfor}i^Eg9`P-@R|K;-c zqpkn7g|>d$dIS!=w^Xbg>;fl=33UNMPko4>x#1fcXxg5?$9w1Eoz)s3{)PUYbLGKJ zM~M6#z4A*pA?Y;W2pZ&Eyms$v`?CRt+rydZ(kT?23Hj%rTh3?=aEDUGHZPVUs>6X` z3yf1f#Ay`s>69}AK`4Y2|8G1^7nKWJu3eBzcl0p!?=&rR{MHxWn(3_}wPigP%#wiV z!nnnm)L?32lg;aymx!$C#0F7neN(s&1Ffdg`$3opxJ?a&G`ZCRAI~vSngM_%1w$ys zVM?aJ`Y1E)Bvi(^)Z1i21ZmaW3em;Pf53Jl_l^#Z-majIw8yr98icwoGvwAT z8#Nc1Sb_!phh}fF;1c2>8WIA2taJAKZ@)uaj4`AC0HaRSI$<*#iduTU>$?bJO%4f~ z;soM=hb``E3L=A_IMZ_=qU|E)Mp4vS`zDWF!{dYfudH8(^TJFiyCn&_x|TKM5uh6I zYrAYWc&ynqWeIse5$gH^AYHlFozm9zu7&NNfBxq`11h@*RMvlv3U5B7OBUP(RGz_C z`>IMKtZQ7koBx7N?5Aq8zElqc4~LuKY$JuouhD#m6*BVk&(=`aVE-uuYn#*$!d*Vn z#<0x(e{lGwZ2#HsbdHZU_Mew{nvZ{G-HR>tlio><<)R>4{=d9iG}>CJf{(RI6#5@q zD|dNIS+Zhhx22G-MK@uv)w^!X#!rPhA8^)ksYQD&WZm#efF!lIU{G;kqX zD-E)v;w)?IuGCdsWR!)2U0S;c#u7?LmsaMjuM@;#2^CY8x3-IcI8iV{|3XZYV5ZQa zZr1@iAUHkrFW*2jivG)qQviMB2AG zHzY@bs9Z2`(}oj5Cqlp9v&T4FRUb%SO|V3-jOL(n%ofCW%Y8?sme1kx^lS7A4jNlq zuF}@l>({T%1nMf3roW)!IXEJ(!8Hpomlpl0IQlp&T@OzeVV@7{ZYCRqPhSJukk`dq zC79PYG#GD7Tp@z3TCN}{p zpV7ROmY8LNa)_3ZVkyg5Jom};8)|AFfj5=7B}Jv$fF_SZo*)=VfP?KqUI~@x;H*)K znrI$#EfsB*FwH8UUa34wN!{#>-tRx=)Z3cHY*kyo3N9YjuP79YiVKS2Zbb;&00<$V zUWNmgh}Ke0obvH|a!1mI+_zY!cKhz@d9LdkL30Brt^6WfFDE#e@78>8yL>opFO9-* zSf~=713?6Q;LQ5_FK-))w-Z|)I#|#`<1~#blac!~f)fZ(vb1L?-cD?J=y^d4OL|sf zc0~l`$twLSF>7Z~+Vvo5ZfI_Q`_6ho%w(y^Uc(du5M?A zxe<2PD~;Naud9z|KV6=DIPYJboSp~Y?alsoL6SW8fDQhdjH>VLmn*C$Jui9{c)sG) zn*uMDXVXaC7lCR2i6~H*%1Tv=Kq@aXitsXJxmM|#<+F@s(Kt$RVtkGH5GM=zU&M14 zb?xGA1OikLd*rip83eB=DpcZVJiX)ko*Uv)hvQff-21bD!`(6Vh28z($8|VoVcI-j z^0Qq3oAIQ`+A}oi1lLmpFR}ma9~@Qg|L*U<>F#gzzc2AL>wg!dk*w;3jm5vv3fJW7 z+Ng(LQa$XHB)@u1V@0RS1)L`9RWx-Ni?+hlUt6!&uU<+7w&l*Gl~ibu-qJW@m@~8U zd=1Ni^Iy3=ABk5IRn>nk(@3o_-MX>Xs}t%rduiLd&GXAXYt#QB zWeH_#`GYR?|9sP_(Eo#j&H3+Tp3g=9SElxJjN%)EU>i2@6gI$9V%7SN5iD4S7DDsv z`Vl~v`A~nf%)vBS69#c{y9@2~k5L6|xX+?zCHnsq=l>P-f5(Rv`rmzX*xktgFY>$u z{rBp@AyGKc5teH|n&AJ|iG7V{l}+p8U1}nnW)ocL88Y9H#OD4nVm;b1sYmwgm7<;1 zo3k~7=6a~UxmD3Am*gbNPQs=+5E|WOZXs|lE=*2j(uYkmeU?+{%(c=g8THy|Cw4bncFb=w z&D89S3i~q?+(h8Dza@zUQT9i|@7X;T$;s7)ely`xT@rQA#ceTq{qo}KwEW`g;;eW9 z`KUfgB3yc^l=RTfhg_;_{l!32!1Y8^qK&4M^-#Cd=~ylD6hHXil0g2CQe)8237hG* zWS-d^Y&f;&;%Di1B#m(O42}IVa>{c44`Sn!1b`*{|IPlJH&yu7vu&txBBUt-l&V6sZ2T!nn-#yVd&rWot~-)-Kvgsf2&;v5F^9 zrqWGayM|RfYm+92Q$vde|MXvZme{|trq*#XrI2FCUg8chv##emoYDlY?%QZ&rO?e% z_chJcf&!~RVa1_mbj3mAjJmk`&)YwFP=rB(rUkvnxm0}WUcvQz`b1c?+wEUao%EZh zF)yu3s;H4(SX-p))oQK)4Y!f;T}IA#8Du`WE_yzR>GjMI+z93zWEQ%%SAErg+o z=QjEzNdk8ns_W~5Gx>BVCJ|;S2WKHGS3KKY&>YuF5S{-U2>#-47ggFvkWMb1CV?Qn z2O+7VG2edQ?H;T%3`inZ9ZMe=_0xuN@TNxg;9Mk>E#p$K!m{$k9@WbN%z}x50I&uO z8hFqO?C&wN^4(Y&<*$Z@w6@V$V5TYwyos=~iHQlwAh+9upz?0F!4al7vr&F(NK)aZ z{|K_QkXv89Z#aErnvv|HJ9lvp|x$Lr21@LJl z8bT16v#I5P2i4sq_Sd(Kd<|_^-}PFJ3%cLT>OK$GYoh=DAn*e5|Mrg#s_~z?`IWO%=2G5tPgAisvd-JkFN(R^;K^$77=^`A_NJu&zk;ruo+{C>%& ziT;a3KGEx|coxzB?$Q3in>qilqr<}u{eO|CLjP^Z@YCxvS(W1JEI@(91?)c8RvC8Y z?LIY>H!wYFGEbzEQN?0eM?ZJUl6yS`+*wFMpVUM_MR#h*sHwG$zV+GOt!%m8h0U?i z^UQ;TVSgpx0=$6YwSgjhOsQ1gHxzhJZJ{j91x{;M!uWelxQTG@?}@fiEP_96G0Mhy zibY*RP(c44b3se(1XF7vBx9bD9`aGu6LbAU7Dpdv0=nzkHe^1miPIq!R=LTdZeA2A z+ph#=iilI5=2KRR`}8--nF(?dnfjU?nQHPc|JSSkiXa*0*IOqhwt2Gk`meU2Z^U7> zD-wLrm3v4kLD~2bot_a!7j|h1JYR>`1Shiv{lWM3y30r$nUu=cWCWXRu2q}zdF^I% zNknaf7TfunZLS2FDUlM7=lkqeA?8A)^-y=MVfbJ>CcQOhH*`v*!qY5hCLuBwG&3H9 zr`3XpN`#T}KLyDIk%aja1o{w61e8GcChY^2h=bM_-D7D|Ym+2G7s};#80T1Erfk}7 zD|=IhCOFFolkFiHaY1YraGR1qk_>BFhEDrGzPorg-KPM?n8@aoTn1$7~W+ zT)#U#I5>ce08_X|O(Dy{r<>Dgej}Ea$3Q&6%Dt5FgiLWk1b9Z+$<@W54*Hc36)

3s!Bb~Gm0Q?E%) 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

(rTuZv~ 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�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 B*(t-e)Ca^T?$uU4c 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 F3IIV=yn+A# diff --git a/deploy/flux/cert-manager/cert-manager.yaml b/deploy/flux/cert-manager/cert-manager.yaml new file mode 100644 index 00000000..6e9a93cc --- /dev/null +++ b/deploy/flux/cert-manager/cert-manager.yaml @@ -0,0 +1,35 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: cert-manager + labels: + toolkit.fluxcd.io/tenant: sre-team +--- +apiVersion: source.toolkit.fluxcd.io/v1 +kind: HelmRepository +metadata: + name: cert-manager + namespace: cert-manager +spec: + interval: 24h + url: https://charts.jetstack.io +--- +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: cert-manager + namespace: cert-manager +spec: + interval: 30m + chart: + spec: + chart: cert-manager + version: "1.x" + sourceRef: + kind: HelmRepository + name: cert-manager + namespace: cert-manager + interval: 12h + values: + installCRDs: true diff --git a/deploy/flux/cert-manager/kustomization.yaml b/deploy/flux/cert-manager/kustomization.yaml new file mode 100644 index 00000000..859702d9 --- /dev/null +++ b/deploy/flux/cert-manager/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - cert-manager.yaml diff --git a/deploy/flux/config/cluster_issuer.yaml b/deploy/flux/config/cluster_issuer.yaml new file mode 100644 index 00000000..6edf85a2 --- /dev/null +++ b/deploy/flux/config/cluster_issuer.yaml @@ -0,0 +1,42 @@ +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: ocm-bootstrap-issuer +spec: + selfSigned: {} +--- +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: ocm-bootstrap-certificate + namespace: cert-manager +spec: + # this is discouraged but required by ios + commonName: cert-manager-ocm-tls + isCA: true + secretName: ocm-registry-tls-certs + subject: + organizations: + - ocm.software + dnsNames: + - registry.ocm-system.svc.cluster.local + - localhost + ipAddresses: + - 127.0.0.1 + - ::1 + privateKey: + algorithm: RSA + encoding: PKCS8 + size: 2048 + issuerRef: + name: ocm-bootstrap-issuer + kind: ClusterIssuer + group: cert-manager.io +--- +apiVersion: cert-manager.io/v1 +kind: ClusterIssuer +metadata: + name: ocm-certificate-issuer +spec: + ca: + secretName: ocm-registry-tls-certs diff --git a/deploy/flux/config/kustomization.yaml b/deploy/flux/config/kustomization.yaml new file mode 100644 index 00000000..f56e1df4 --- /dev/null +++ b/deploy/flux/config/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - cluster_issuer.yaml + - ocm-system_certificate.yaml diff --git a/deploy/flux/config/ocm-system_certificate.yaml b/deploy/flux/config/ocm-system_certificate.yaml new file mode 100644 index 00000000..fa44563e --- /dev/null +++ b/deploy/flux/config/ocm-system_certificate.yaml @@ -0,0 +1,21 @@ +apiVersion: cert-manager.io/v1 +kind: Certificate +metadata: + name: ocm-registry-tls-certs + namespace: ocm-system +spec: + secretName: ocm-registry-tls-certs + dnsNames: + - registry.ocm-system.svc.cluster.local + - localhost + ipAddresses: + - 127.0.0.1 + - ::1 + privateKey: + algorithm: RSA + encoding: PKCS8 + size: 2048 + issuerRef: + name: ocm-certificate-issuer + kind: ClusterIssuer + group: cert-manager.io diff --git a/deploy/flux/controller_kustomization.yaml b/deploy/flux/controller_kustomization.yaml new file mode 100644 index 00000000..4bce1243 --- /dev/null +++ b/deploy/flux/controller_kustomization.yaml @@ -0,0 +1,52 @@ +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: ocm-controllers + namespace: flux-system +spec: + interval: 1h + retryInterval: 1m + timeout: 5m + sourceRef: + kind: GitRepository + name: flux-system + path: ./deploy/flux/ocm-controller + prune: true + wait: true + dependsOn: + - name: cert-manager +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: cert-manager + namespace: flux-system +spec: + dependsOn: + - name: cert-manager-config + interval: 1h + retryInterval: 1m + timeout: 5m + sourceRef: + kind: GitRepository + name: flux-system + path: ./deploy/flux/cert-manager + prune: true +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: cert-manager-config + namespace: flux-system +spec: + dependsOn: + - name: infra-controllers + interval: 1h + retryInterval: 1m + timeout: 5m + sourceRef: + kind: GitRepository + name: flux-system + path: ./deploy/flux/config + prune: true diff --git a/deploy/flux/ocm-controller/controller.yaml b/deploy/flux/ocm-controller/controller.yaml new file mode 100644 index 00000000..5fdf8226 --- /dev/null +++ b/deploy/flux/ocm-controller/controller.yaml @@ -0,0 +1,31 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: ocm-system +--- +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: OCIRepository +metadata: + name: ocm-controller + namespace: ocm-system +spec: + interval: 5m + url: oci://ghcr.io/open-component-model/helm/ocm-controller + ref: + semver: "v0.24.0" +--- +apiVersion: helm.toolkit.fluxcd.io/v2 +kind: HelmRelease +metadata: + name: ocm + namespace: ocm-system +spec: + interval: 30m + chartRef: + kind: OCIRepository + name: ocm-controller + releaseName: ocm-controller + values: + cert-manager: + enabled: true diff --git a/deploy/flux/ocm-controller/kustomization.yaml b/deploy/flux/ocm-controller/kustomization.yaml new file mode 100644 index 00000000..835c96c6 --- /dev/null +++ b/deploy/flux/ocm-controller/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - controller.yaml diff --git a/deploy/flux/script.sh b/deploy/flux/script.sh new file mode 100644 index 00000000..28c8a8e0 --- /dev/null +++ b/deploy/flux/script.sh @@ -0,0 +1,13 @@ +#!/usr/bin/env bash + +# setup flux cluster reconilication + +flux create source git flux-system \ + --url=https://github.com/open-component-model/ocm-controller \ + --branch=${BRANCH} \ + --username=${GITHUB_USER} \ + --password=${GITHUB_TOKEN} \ + --ignore-paths="clusters/**/flux-system/" +flux create kustomization flux-system \ + --source=flux-system \ + --path=./deploy/flux/ diff --git a/deploy/templates/cert-manager_namespace.yaml b/deploy/templates/cert-manager_namespace.yaml deleted file mode 100644 index e41b6407..00000000 --- a/deploy/templates/cert-manager_namespace.yaml +++ /dev/null @@ -1,8 +0,0 @@ -{{- if index .Values "cert-manager" "enabled" }} -apiVersion: v1 -kind: Namespace -metadata: - name: cert-manager - annotations: - "helm.sh/hook": pre-install -{{- end}} diff --git a/deploy/templates/wait-for-cert-manager-role-binding.yaml b/deploy/templates/wait-for-cert-manager-role-binding.yaml deleted file mode 100644 index 0f73dd74..00000000 --- a/deploy/templates/wait-for-cert-manager-role-binding.yaml +++ /dev/null @@ -1,14 +0,0 @@ -{{- if index .Values "cert-manager" "enabled" }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: wait-for-cert-manager-rolebinding -subjects: - - kind: ServiceAccount - name: wait-for-cert-manager-sa - namespace: cert-manager -roleRef: - kind: ClusterRole - name: wait-for-cert-manager-role - apiGroup: rbac.authorization.k8s.io -{{- end}} diff --git a/deploy/templates/wait-for-cert-manager-role.yaml b/deploy/templates/wait-for-cert-manager-role.yaml deleted file mode 100644 index a98ba251..00000000 --- a/deploy/templates/wait-for-cert-manager-role.yaml +++ /dev/null @@ -1,10 +0,0 @@ -{{- if index .Values "cert-manager" "enabled" }} -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: wait-for-cert-manager-role -rules: - - apiGroups: ["apps"] - resources: ["deployments"] - verbs: ["get", "list", "watch"] -{{- end}} diff --git a/deploy/templates/wait-for-cert-manager-service-account.yaml b/deploy/templates/wait-for-cert-manager-service-account.yaml deleted file mode 100644 index 0abd0231..00000000 --- a/deploy/templates/wait-for-cert-manager-service-account.yaml +++ /dev/null @@ -1,7 +0,0 @@ -{{- if index .Values "cert-manager" "enabled" }} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: wait-for-cert-manager-sa - namespace: cert-manager -{{- end}} diff --git a/deploy/templates/wait-for-cert-manager.yaml b/deploy/templates/wait-for-cert-manager.yaml deleted file mode 100644 index 7190f1b9..00000000 --- a/deploy/templates/wait-for-cert-manager.yaml +++ /dev/null @@ -1,27 +0,0 @@ -{{- if index .Values "cert-manager" "enabled" }} -apiVersion: batch/v1 -kind: Job -metadata: - name: wait-for-cert-manager - namespace: cert-manager - labels: - app: {{ .Release.Name }}-wait-for-cert-manager - annotations: - "helm.sh/hook": post-install,post-upgrade - "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded -spec: - template: - spec: - serviceAccountName: wait-for-cert-manager-sa - containers: - - name: wait-for-cert-manager - image: bitnami/kubectl:latest - command: - - /bin/sh - - -c - - | - kubectl wait --for=condition=Available=True Deployment/cert-manager -n cert-manager --timeout=60s - kubectl wait --for=condition=Available=True Deployment/cert-manager-webhook -n cert-manager --timeout=60s - kubectl wait --for=condition=Available=True Deployment/cert-manager-cainjector -n cert-manager --timeout=60s - restartPolicy: OnFailure -{{- end}} diff --git a/deploy/values.yaml b/deploy/values.yaml index 876688fc..24b68048 100644 --- a/deploy/values.yaml +++ b/deploy/values.yaml @@ -5,10 +5,6 @@ global: cert-manager: enabled: false - namespace: cert-manager - installCRDs: true - fullnameOverride: "cert-manager" # this is needed for the certificate issuer to not throw an unknown authority error - nameOverride: "cert-manager" # needed because otherwise it will call it `certManager` registry: address: registry.ocm-system.svc.cluster.local:5000