From ee4b6f9450036f1b5a15cc504021a6c0b5b07715 Mon Sep 17 00:00:00 2001 From: Ryan Date: Fri, 22 Mar 2024 21:07:29 +0000 Subject: [PATCH 1/3] Add liveness / startup probe using chronicle import Will mitigate 2 failure modes * Sawtooth session unavailability is undetectable without higher level transaction monitoring, so chronicle can get in a state where it does not recieve events * Chronicle can be in catch-up state and marked as available, producing timeouts in client applications until the index process is complete Signed-off-by: Ryan --- charts/chronicle/Chart.yaml | 2 +- charts/chronicle/README.md | 16 +++ charts/chronicle/charts/sawtooth-0.2.12.tgz | Bin 30281 -> 30281 bytes .../chronicle/charts/standard-defs-0.1.3.tgz | Bin 15069 -> 15069 bytes charts/chronicle/templates/statefulset.yaml | 108 +++++++++++++++++- charts/chronicle/values.yaml | 32 +++++- 6 files changed, 152 insertions(+), 6 deletions(-) diff --git a/charts/chronicle/Chart.yaml b/charts/chronicle/Chart.yaml index 6fd196b3f..2bf50cb9e 100644 --- a/charts/chronicle/Chart.yaml +++ b/charts/chronicle/Chart.yaml @@ -17,7 +17,7 @@ keywords: # This is the chart version. This version number should be incremented each # time you make changes to the chart and its templates, including the app # version. -version: 0.1.20 +version: 0.1.21 # This is the version number of Chronicle being deployed. This version # number should be incremented each time you make changes to Chronicle. diff --git a/charts/chronicle/README.md b/charts/chronicle/README.md index 9cb942032..048e29825 100644 --- a/charts/chronicle/README.md +++ b/charts/chronicle/README.md @@ -58,3 +58,19 @@ | `postgres.persistence.size` | postgres PVC volume size | string | "40Gi" | | `postgres.resources` | resources | map | nil | | `resources` | resources | map | nil | +| `livenessProbe.enabled` | if true, enables the liveness probe | false | +| `livenessProbe.initialDelaySeconds` | delay before liveness probe is initiated | 30 | +| `livenessProbe.periodSeconds` | how often to perform the probe | 10 | +| `livenessProbe.timeoutSeconds` | when the probe times out | 1 | +| `livenessProbe.failureThreshold` | how many times to retry the probe before giving up | 3 | +| `livenessProbe.successThreshold` | how many times the probe must report success to be considered successful after having failed | 1 | +| `livenessProbe.namespaceName` | the namespace name for the liveness probe | "default" | +| `livenessProbe.namespaceUuid` | the namespace UUID for the liveness probe | "fd717fd6-70f1-44c1-81de-287d5e101089" | +| `startupProbe.enabled` | if true, enables the startup probe | false | +| `startupProbe.initialDelaySeconds` | delay before startup probe is initiated | 10 | +| `startupProbe.periodSeconds` | how often to perform the probe | 10 | +| `startupProbe.timeoutSeconds` | when the probe times out | 1 | +| `startupProbe.failureThreshold` | how many times to retry the probe before giving up | 3 | +| `startupProbe.successThreshold` | how many times the probe must report success to be considered successful after having failed | 1 | +| `startupProbe.namespaceName` | the namespace name for the startup probe | "default" | +| `startupProbe.namespaceUuid` | the namespace UUID for the startup probe | "fd717fd6-70f1-44c1-81de-287d5e101089" | diff --git a/charts/chronicle/charts/sawtooth-0.2.12.tgz b/charts/chronicle/charts/sawtooth-0.2.12.tgz index 218f4009bb7d04413ee939111895b3d9b9192940..e82653f1cb9d611d386f4168aad56cc6185c75a3 100644 GIT binary patch delta 21170 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 VKM(u)-v9sr|Nj{pS0DiB0swn|)Yt$3 delta 21174 zcmV)TK(W8c>;cK_0g$eLwcC5W{d(v1AG*D*?(WVXKzHew)I1sEkp7|j;I_)0`<*;6 z#Xlp;FiHC0a{bJ4;Y6@1Zm_)XvjJMP?Qpe zIib@&7;~Po{>H|Dr+z5-iusJgL5u>n6~GDnH%Z_X3qms4P@gw{IsjancK=^D=mp(Q zgjh&%%H_NFXU8uYIMvJwBFs3&gG_t`1ISPWNCN&bO%aVzG(t2l+6y*28e{#c!>1|g z1DK{U4xs?iv2AyQ&7im0`P!rMcu#5m$0WR1dK>fR|JLqiW&ZDMKF|NhcpiIli@Cko ziSP(9-Un<9H+Ob_`-AT5O}I6D{d#kEFnIgA`{vDX`^|2zyA}2}qpk2w*zHAcdV{SV zdc8S_-oD-(yxkfOqTSwb8%BdSJDm|q5QQ8?ec)|&H+z1s>v!Ltb$9w(y?%E)=xx1u zyS>%je)E64|Dw6w=CSkt62=)~Uqk_zJ^!~}Z*6zW^M7jstNXJp0{IRewx07pJjPQq z{^xen$kV0d0+~Jjo7>g=Upu?6x1X~_5ibw|cb>C#A#wtLo$j;ze~jmz=AUMZ$p>@4 z?HrY{%{8~}Cis2UjJvyzL9M{zcx01HbyUHy}KGbVH}^!<;_8JNT@^)Ctzi@*qOD0Tb=kODxVJt6`#RMN{sVa zL=uS$p}eti?ZYHtG?2*(p4Mz*F5dSE_?3|)g?zmC@yfbMU_+d~r|LSYOk0zQ;( zB4McP&^pu)N}OfvxoCy;W~TeD>Blh5=L)#y$ApVE=T_eRF(paH8M*@XvGW z?6s$wD{_{(%wo+HSCv=ST!8xr-@p6kURO6OY5Kh!ynhhJ8Tc79Jctokxv^M({QD>E zQOd`En8{b7AEg3omLlT4ph%^NLy{sS`|IQ1KlOVCmX3S!Rs<9e?Ck+>#ifB)iFvvj z;~0UDz?Y5ZP`jV*WZ{CltD(=IODJ?d0j@}Y7$uKz#W0@l3sCojD`9x0?wuZ-oqv09 zbZ~ljDhF`S<&EwqJ<*CKR?G5F5zh|tzk#>n)+i3KiuLeTRwa*{G&8p#%sBAFp1-+f z`rfKlb6Ia~qXj1PR&MkXc(;+I3{id_P69Ue78cJ^w0J9J+IclR)T$qy+34l#dzuY@ zVjKc*#hGi~%4!JtoOr-&psCuX6(;RT_h^OU%Qa8+MoWm|i0l<%76(Xk`pHj6hNycz zcZB~4e7ZoG|f$ect~)#&Zv&Riojroq_L5ZRx(G8PK@GcaOrs1Jy8<| zIwquoi@^K-X3BZ?$tN)I_p@@A%$xs(X3UxLU+iL+-~~EI{_l2QZj!rp+9F3;R153Ggosc-j$>=9pz|tfk z9IQToF!p9m>Vh}XvlDpzQvxr4A&v!r`tavs8JBK_jwy6k8Jb)o`hiSRND=V zaGj|op7=pcyvZHAV3H6nm(bF+lCxMLCDFUQUL9aF=j7j&^>Lv!RAM=Q(}#r9%5=QR9-95vb8AAi+$~F7QrqW1Uskx{bE|nK<7oW*4`0XCRmHye~)kv z>kI_*koTMkZwtTY1+`Ou#87#Bw#(zwn9NN>X;=6HP0J;lOl5Tm!pbHy^DuY?qlrmf z?)yVRLsTkdQ=r*Ak>w#W^r%Gq&gX)fgnfqY&ZtVkWw>~F|IDglzzP?CkI#p+@bEYtsHyuO z<^K3z|IFI|GoM|Ck6{1Z-rlO%f486QzmM|V+{klKoQ&%B{?Rmn6C56^5@ze)K2+)n zZSO%t@KiCbNxMDDxTMhh-3LeNz{W-@wT@G=o0Dp+%|Zc67EUELX@SV3ha*#gREkDg zBo=8Y*pxsmBmSs=vgCg4Df&epEB}KriYIuK5Q>)F#=Q8So$d1Z-`3{q?PvM_7|#oE z3^_+Mk!Mh9{K3^2C18-@I1*Anh2aGpAr^FAfU_}XfMuzifPjrr90Rc}R2D6qjMf1~ zF_d`}Q^?28dzeI>7a&0+m9}{`rD%w+Q3S3qAA>)x1>nbjB%T72$eIErkRl3VoS>i+ z?4O>Wazat(1^6JB5b*PdQxIXwI>89@4f$V%ekU0Gn{LSeniu2IhWL;9$u5(P9MAxU z7g-91I7Y1VDqvS>=T$I(7oArDpNPK+#iP!v|JQi|eufm2jDf@b1J(&rN`6Hl?*uqP za6=WR z|1q8y;8b#eP=z|TV2Dv1fm;wEwMQ2-_10c;aND`{<^MXj;Ipxjnho@4aI3=f`Z8#C zI7A^AYdOtOUs_6XA1MZ|a2$gH0uf4MGDQ&}V(xQ)0xsSt2Qj9^0v{u#?t#zRT{bky2#JyQydrRiE|Msm0QIT>Nqa9$AWn=K->Rr30%^D* zqFfzR(FWKsoFE{IO;j=IO3KCZV_K~RJSL0_vI(du#S=jW^G<_6vmuCOOV$?4SE5Xd5#?l0sEE)1c-v z1R%FK`J!|!m89KG`c{iJ%p8$#Wo^k6Fp3OsQ>`J^)7`0ur)?y&plMr~18uw8-L8cuhQ1k;!x(S6-8Ur& zwRaMf1O?3!t&2Hj%`)Z=aGlJUn|uGWjGR;c8=L@nTZR@FR7(%HaUfH&D`gE+#+B5$ z1zVM&n~|;mv+@*C*Z)ej$+k~_kzekwZn91~)m>qr*DOhl^*TUO{T7YDBmzjVvye@q zpd2{NGpS{)gF(gtjIZF70g8A=6Tq@isF%Ymj;DfdTv~>2fhSw@W({qg%wG?0B3T1c zG1oz))D&16kpH(;52#n=+0j;A)J+vFc$6g%Xc{xuU9UNrF)- zcs}*T07%vH5(*}&+#6o#RQ3Ai8DohV%fyOgE7kHzis%H(1X+sne<^c5W*{63?OOKO zEw10oh&|pg0jyQs=m*M{E{T#vNX}NVmYWkG(HR0(Ba~7ULXM&}L6nq|s7woI3s%%U zFw3XEksoD%lc~+fUW96Yv&5J684HqAm@ufqH}jnGoXAa^%ajaJ3}de>@^ev&BLiId zUmFn$;}M~lk0%=HUls2G7R^k1l^85n2bE-R?R#CI@Hha&Ucc0*8EEh|6_w z{QjFW?G<(_3Kmc)o$?EW4wbGc?PUrlbqoOnNzGg_A~u&l>uQUC4FFW}Rc3>&EZ|6L z&-$h`0hncj309NAgk?#lH~WR#S~M9_IG%~IKw>w{089X+1I($=$u;5C6jZ9kQ0UhX zjKrk2ZOLAak<=pv{mplV)K*&>05H?)x-|L~b{@ZAO*!ADMMsMD{9dw7i@NJpNibq?bSNrM>FsEH?OtLt##t%-6KxH@y zrC1T&2LsGOmQWO9smwOaL3GU#O<;VAkP`mTsuvTOGL?5(w3>@Jb0-1=rn1@sVW!O{ zQX$E=F8Ta%uAh<$k@j#f1$TDj1Fy1s4aO63MXGO0b}yMhH%Xz~cqe!vv0y#&iNxvq}mwia{_NZt3%v(U_^t-(ad3 z)2t!4;ArC=xb1Xaya0z1V$r&o+Y^EKf8KBqq00%0&^by*IFYN06ijlNn#`@n+Bqx(+ybx6M3QqL2nu3xgnj9>#co1^|M%AI7+`_FN3qg_$!kumfkV zVHNwjIUt=_K3&J>Xo;{XwJ!oj!*b8Rx zlNOqP4b+!6GR`Euyg;w9_MCAWH;maeIgikURO((6U%bz&2;ufY3Ei_}u%FB7PA7lu zh;RTY(kCm@XeMN;T>R}($B@J^xsn>55S47fBblV4ha-?LGIqbSYHVX!f`7}9Y#yr( zXG)^A%4$%u0xH>W&GAJOjrL=9%_rv4bZPj1WTlF-kgPAyl<3H<3F#;kN{$mBsX)mJ zTJ3Q?K#L13j3P;R7#qJ<$CNAzmCKm- z66IW~sinzoECw0pB$ z<+@3>rliTs91bXa7cw8wGjz@S;N_V%`x_-TavN9W9q;g$99`!hP=vXTNw$$Q3A$1d zrKZrG`9p7~3Z<2E`Abd6b^CsT_?SdOFgXEYA75&^MlaXF%MpM5TK(ul|KDBz?Wb2C^&e}mR$hKu2Ob3bN2h+Tx4EUgspJko43t({V{(Nk z2q8lN#_1R)*#uD>f^ZBe47pH02?a0xmr6gC)zx{5JV8pd7bi>_s(TLhpGqXt|1=D| zS%fOX{++!80vuHeRmR?bDP0BmJn~;{}WR?h*Z1b1DrtlguQ z4=9WznXMp+$s&el1x34k=^0XXs6n*VckS}M=0Qbm$w}$_n^WY;z>Gnf1 zK!pS4g+@Xhi2X+mMbik_qu~nqKiEU#cjnNzp8CJYW6`=ZW>zyU8AJ7Bp^kLzCm74a zL5@@_g~?&YX}jC4871Yu_OfwIET%2Sqy%f})1za?MUG0@_guGYM#Nk*re7BZ;c#fr zBz@(!Cr=Kg|G83s3dNpUoj~(3lO64qgA)t>=epIV=~Fj(8mCTa;>?>i z)d8xXGBtxUZ)iR_VH8os zm@?{yBuP-n0XI|@#d9i5AWo!Fqz_&ioGmd}I7SoL2Oo2PrpC1ebCmy4{ZvF)=ox}% ztaGv3LF59N@)GOYnFx$bFZCx*`#0wpI$X8nJ<43N?|56$XwfGaHywD zP;9~ZaaU2HOGALu8sZ-wgLi7|=aT>M*s#g(cmM>Y|NJpflo$VXh(16<^FBPj+?MD= zF0-8LKDQ!&e3|5864wy@xcIuB+|vE?cTVUMakY>4B0OwA>aC+AS7yi$WqGd(ox%vs zoB|qxGiPe+mPS(7Dh&HwRoK7OCz^Spsh8zNx$5sy67+Q-#CLXqQ+JgsFqf|6oP&ih zapZl;FO(!Yy}QiPEU4Mv?sm85t_rPIgof4NXx2)9;Mkp}B%|g$*7oPg&5L$oLLLIw z3Fp%L3Na!QULfimA}gx=&dH$sc#)n*Qv^r0>dSnbf4M<&VQxJ01* zRg9Ah6y-frzYkk54FH#zVVRwEdJHL?AdaYikONepDYl$KbX389Bt#MTQJ;U#JmkG}1L4`Y~&OthPeiW^OT z1(PX2*O*}yv?T*Ls@^+9C3lDscej3xEdKS3y)TtiL6el{@hdRo3_u3dih>jH)1kIP ze(H24B+6nGsB2mn*pnySzgv%yivNdMs+Q;iGROaKbElI3WqWt`Isen6Jjz+anvubt z5{`0l&1Hr))!M~c>lM13)s3vuhnX#Z`N_D1NbP4%3;z`B&OGQxqyRTRQ7OXisZ)>K zPeg|6Nl`M0GdjrM0W9NKhFL82iwIq!n50sar5Q~LLrk6!1S$d61chUmU^X$8h{{|A z7*0kpQW1Fi9Ea&>xKwMh2>}$r*g<-fK?)O&5DO|@-!69H`29C$1^i`np$bEPoBkUn z9482vaJ3i-uuelc+GIFX2jU|_BEUiz>wv=)Q6bL6nihaVu43>sATk75Djgm7RujLs zwz1_jN+=*QW>vOsQ;cXL1RzH=A&EaE^g=}x=@YPO&o@gwCkJQ#hjQ=rO9fblVXN@3 zx<0EfGA+XpVhUoyITA8oh7HSq-i{#?>WaN{2V@+_`s$c<(MU)k8*UUdw zAZXu;Iig0#d(Ia(ryO!su5S4kH4DdZg=164%|mbgo>oH18BWGaYh&K}-`y?ef85^P z-F#mEALCiXrE`S1^>sKCa|7&wRXJ(az~2ALiQs|*dsR<@V2G1wb(P2pM42DJ-rk;? zdu#IA9GPZ9gZP{NBam}{5%j^!EV)R?Rr0cPXVB6dYms3kY}A&*FuL5l0o@?$| z!<^7*AB;IqS${*bQZT?=tVBUbCL8+ij=Zr{f&YKK;Ejaugc!a*I|iqk1A)10r5Hl3 z!uu>rCSuWL+m13F#&|%5w7PUVwD~N&3QwE)FBF7_v@v&o{%=+8|LE>)Ja;B9s{dw%z=-`zax_WIqOes3q}_BP*iw>G<5 z|Hpft=xv^V+4Em*k{+r6%$xt+O8o!pt34t$(y`a}IyVMr z6MYBR^!j~pDCCw+>TsH(5D#(K0l?khcwPtCkc_@cdnyqMq_?mJ*asV(@{Pyxs^ysF zE$8{~WmXCOLZ-2IU!29}r}kizzg}&~dlY@OvoW{u8jAY*<4VY{<&Er`MEM72SY!eB zw=Lv1LxaupzjGWZCHC^yIRPE_|_1v3CYVQHn zZSXYKnwLt@>w#6ECZv4rH3M~~lR#^&2{C(r>8s1;F4{rOO&tcng^i^TFxlWS^I<5c z?}@4ERokcnbuY4b2pwtxE=+?NWA$!Hh|Y$*Ajam(LYd&Re$;H-nXc_iv8QfTY$^lf z4llp@S0)&8Z*%swcyxit3`TX=XAc4TO>+cTEz`@?HaCeKYdNk6uvP|`i}{-yoB7Uv zs~7oR5jPo|RD)mP)?@VyV0eLqe5o5@15+2WD`a7{E6Cj9Vpou~#qnO7ao2U_0%Qh< z=uFO&w}-iW&=qjO}OHz?a;z4j=<0O^FV-<73nbGfI*2IyN;V02s%JcHF(cU?}n0 zPY~ls$Wxi(BLE)D1`@spJcH4>ye3`>{aWKm0g$m}>R-V7;MidFH}}IP+H6R95=b05DDfMXO- z0;Xk6ttCj>Y63m_mK;LdtE1?5);|GAvr-xqjS-iQm8n|A(M6oDRH3MUD@P-LFjatz zx#(2iZ7S}Sks!F&1-uN4qYtODT_<-V2o1VL~Ksl0Dz zU33;(Cv|;856O6%aUq_6#73yoY1|=MWXJ^ZF-}Ge#CEE{V7xJ2a7)u8%lBk5)kRt7$ z4dagbF17=bP1L@?1ljk&WNNRV2|_Ya{;hD-mjNP-cVsqqtZw~(GM7x85W+iRYUY8X zGr-IEqlQL$K{x2?D!E6?fDG71NJy-vzM1X#aE zzqA2!KL&>Ewv;M=SBL4|ysEC$Y;2IjQGHvYljSDd!bRv!(pmz{c|{$3nE?-+4^Cm- zjsBip_3FA`0ORyr>6&VUO7%sToNA^wqDH=p-uM&i|4FEB7OIQ?id(6uj5P52SK)KT zlWK;8@@~PI338>ixg?HBjKgWkCO14H{Fow!5`lP5z0_8J_&w~;zx1=v`mb-%SyTg< zv;Oyb+r85Izqz&b?Emp7kCp+Wl3Fbjq^#Q;Lv8j=%>kW`d+U-|i;d@Kdg(`yLn&!f zvF&0UC0rH!5JNmM_QFv7IMQ`OKQHTt!;u4!g;Z>)WGysF`E(ys>5x%W>NR4yv~dya z)Jq&&$1iPv=qkH}`d!>&L{oP~6)2}(HIYwV8>Q}K+0ZZRh~gGA@9Suz8mlFcL2U+= zOznk9^|cxN`I-65mj5RQ@AiK<2qw{k+L-JA+b!S!vb){geU|@^@ys57{Zd(k?i~#_ zZ~gD?ye{wmcei(*$Nw>&lK)o-IU32m@nJHgFux#wZAP3}O&r%d@VyGY0{=kq1W3k_ znN>!VWU0z|p)AK_ghMbu{0gB2=r9tXBTPC#nFN&WTwC~5mMOX14yFKehT>t+856NA znh2E<=HqPOMy41}<`kig31l46{F4fH!SX^e1Hz4NiO5wF6Bx0Ln2ZQB-~0)r7xIF! z3pBldA~cc#G#Z+(b8K~dd#cj$^DEhW)7Q=fVzY%3)zJjvxbLL9{kwyS^>ci$D;J`5 zRL&9!WiBCfnf}Jc)zwuYl&2|pPL1-{X4mIu$c^Va{~?rwSi*XusV|2@j{ z;sq$l!51%d;wO_)PsrI1hZ`UE0VgC@A-Ji3Na{~c?PzJLX{G6v0=|GT@JW&6+e>&<8Xk4Jf=1KA~>^Z`R03~`La`oA|3 zWC_Qpul&c9z2ihB%7K89A(u(+%tbp+h(4%08h6-5-mDV{2-d)SfuDT?+pij&c4I7U$x<79L=N{D@ZaE(HF zd$BUds7fdakug}wbNz$slp>kBrr`K?fwZT<1)3J!_ehGUyjvd}CeCZs&3?rxQ9D&$ zS}zi}fIrux(s7f!LU=UhebB2hT-kwt977s44P>iv9Lo@xFFB5?1yRMUN9~7EKsc4@ z?g%|YbfO9F|DMKj#^^m@;Ov-j=~3&c+44n3&?}xPqTfIuuVK_}&hXl7nA3rKbQd#J zgsS*u5vZz0Fy}z9P6VbTGW6dNe6bQJ#D3 z|M?gJ4(SMS_f~yMz?S@Ggb~AA}gT>I~ z644K2l0u4r_t##q+4H-9HIbanLm#Xa9T|bAn%ubT4G@PtuSm(Jvfk3j6H=1=N(L?I zV@f|Jfd)d&Xh$DYba~{-ulQ+6A*VuXBK5W(OeA#8Q6eon?I;D)lr5D|j6;rwS{=C&Py>hc2BEFC5fRr4nYf-Tjeh|vJQ4#U=eH~jX&4eJEO zZ&V0f8(yfZR%DE4s@;cb51CFU@85l}SJ$+iRdfKu1?0`^2a`@UnDH^8`evPlNI0wd z@<{pNWWOx|LmDkWzlXCPOmWWk3z4p&W_zkJnTt>KOps4rvMSxXwCWEq16#q?pM%aj za0RD;6A+G3c+pUQ`U)zCE}U>mqAWxa$P$iYTVN~L3cBhdp`y+#z-S7s>)W-ozZ8?# zL`D%-F=@cNxx4cKux@NYM>~`Wv@mnqh73SJ(Fk2jLk_?R;|NB83}qb3uo(w%cLxSY z-Hs?B<76bcNc8&xDIYjf7AN4ZTfvr?r}CaGoB#+soNz>chcHAch?QhX zt223A`)%c(7 z-n0Mr<2>zu>_2i5I2%)vjmAnYDKV6#BMKui%QGhatE}=VWK8Z5VM$B?UweT8@% zAXP5tbbewol=nvG#K4hU(GNre-LA^FQCunWLi+A%7N|QH0}0aFn&r3eq>0%is5Mx1 zyD|}NND;Sx=w!7+jN(XEQAPc3*UJ~+3WmKeg<)@h0StQTlBz*M7CftB;&#j0 z;cG^uN`kfG5tq;y%hX{-<_WR^5e<=DL6Pe`SGL={z)=5AI+_# z@?w0GyCa zsAS^E^W)FRxRK|`s4ZU2^Py98l=5*n8(zPfRb@sZ6O$Xnx`I@@u-8zd@zl}z8xKps z=I0HO#maOk<`1b@mn0+uW=6#}b~(*|T>CPO4LFnxVf%b4wPATBD+8-}p3^>%=9dCr zs9c}NSsbfc%ougnX0U6T7cVibRg4??wzuB=ZF8+LBT5SvFJR>;na+E`loCBb(=xBs zyfQPE&g!L2;T-m^!Dl{` z>#t^G=iZc37-&GYBOpuDbza|}VF&l9q`>^(kTze|h?9sdPgeL3PR@avP z+*ki!Xy4Oc^{+yvee+HKD%&TI9cyIaQY>wV4CLx6b6qC@U1KH} zSd*Jq!**+{+p=`+jl+Zo@_Kib+IN*ukYtkqqHCozzX3Sp;0nhv7$CrZDNI-_Gxl== zB0QAQha61dB-R%m3oNX;6KZ=XAXK1<6OKlxV(Q!%gmdkjXHGJ2b3|zqOB;29B+UlU z%HY_2k#mIJ-;4Lfh>HN zBU|1F>2HOL$jSf#NChl^cOxjK+93m;8cMIyhKU2HMWEoxs!3%4Vwv;Msj!xR8^#3k z-R<&s)0|}0YJ<0e#cEc{*}J-9<$0iP_|Sd>LJrt_QRI1s;AegQjG`8Tp?V`oFjL2D ztmZJ9S0}_PzzX#?{|J z;K-u;+#peHPaZHP`a;k`B;5nD8&&1w?f-ZLa@6f|HPBiY&gW%!1Jp*UEyXO zl`>MIDR4GEv5+Z8Y(VU6$vf4S_kc4$6#7kZYC6cMVKl=Mm!x=H@yt z%)qK9)&9|`C@U=?DGJwu&f(Db0x2NY1>2!L&J7%r?$XIxAg{5VP4oQjp_*VG^U?B3 zIh3bTpcUPJ-7UmQqECcd^Q(iWC5M7iTskeTg|`bMSmwe4w3Vba%!ae$=av0G|GDS- zubfhsV*l@LZdUXEZEip3|9g~Yf%V^-|JC4Y5kAAdWSB(BaBamm2K7_z-&}W!Tr6Yn zjuT={i7yX$ld1i4mVv(n$_EF97aP|1_(y$@m9mk4%gdzIm6q-ifbk-c@11nGKwSl) z*UF3`s#CDomCp$$5=G34LJ|~!cX3Rvm=VdERU`fJ9xK0L6*Uz1e^Fub^e zG|CTPaE$phkQn?KCqweE#Mm!P|5eM9s+9q8y|{Bqsywo?|0Id0Vp+UGU<@xsH!cx{ zahaxnOsrXMl=+uF&nWU}W#ylLD`Mf)!YU~>1S){uE3e&JOQ_acP+RnMz+9Q{bHzlS zq*qQJa@(q^pSWs@!8xc`6RJ8>V^J5;oC2o%_1bS)?p&a0E3qRp3_U>Vs0>9HNcypP z&!XjVM9T%5)`x@~IeSh~$Vd!Xb^ZjGqiMN+Q~>DjsT`k$iCZ&oiiyW6GpAUi=+;t& zC|djhrm1lhbv$nbF7}4u=2|Nj>1OAdxzo*nm_OTW5D%e%B2F>7M1r?uoJvd)jHdd= zqo~!a%tL0BRnO7wFvXIMFgs#gShXm&vYQrlfS~Tz%Q`uOEr=&ZG=9!8Y8MM+O#yr3@}avyU&^nCCD|C zL1i#@2?cx^Q}tH`?0<{U%3{exdKkaL8nLtvP%!EXHH`fhTMByt_(kmZQygA^A*PJ0 z*e}Ep)lMOLentwILRF0k@Z}kEE-wXt&gzTq=}7Zt1Sm`*GO>hHVAOB|AG{|dMldOY z`elq{)D9;AMiF4s$$%*Pd<)Q)9qJUF(s(HQhZM~+eu_aH<#(7U<;K`T%uU_%W7L4( zI!LW~s##&MVp*=g2RyI#W_0Iu-u-g=N&CSRHGuWVIpup@5a^M%g*A^J>q_5$DY0CZ z9qLxf5#ryW={J;21Sh*$rOhoODqF2Qi9V&y<{r_gv0x@-AI5X-|)xDN&Bm ztsiBxWa&|{;klB0o7SCnzJSAKPDey#~oRiVH2h&bBNvO_rR@K9vG)!r!DYY z$CFx~rbJ$%Fy+`d8xCVsJNfF9Bvv{u2z8WAD(KAsS?@MhP)<{qWt$zLuJnQqK}yjj zCK+>9aXllAhAP!*)nRVC+XrC&`YT(XK_dh0*d;`E#X=4n0mwf}QM<;Cht@c-}i zcFX7g&-VYvdKQoWbz{^{6&nEQ^I0oZHJ^l{Kptdf(=&vq-WKN+Xd4V%YAWCA=noP{ zY4mY`2ZfI{k-KGUjt&Z|RCBYq7hBw$U1_F?R7%ilE#tF{ev@W@;6jnLl3B^DtZo_Q z^!_jJU!EIh=dSki>MHf39<#>YJd60J_uNzd=OKSBR)9J3zq{M5UQPD9=Lj zKZy`!^1^$uf0uDz*3HE*M=(Rjt_c(c#YoYbr9c@A+6EL?nZrr+3i6 zC*W5`5+NM-yc=n$4MYhQ^mTW4=Yd-=fDG+!1K*EONFuaWV?cSI;Wz>)xdfMxDo0Iq z$PASy=-lxu(LxQL8IZ};x5q*AN2CPGF;dDe(h(w!v9w4q@rTR|D70SPZKsAb;eCJ% zeN(9_ErFGP3<>2n+@+!sTAmc4sl+N!#>4=uH6=C3?TU?18ct_!;Xe+3mG^9wjQ_Tn9!=X) z<<#DR<5$z%d8u+^rsxu*E9IDxa7^`~C>es6e_}6xwG9#A1ep7()KPq68oWFaWQM>V zST!dtIWk2KaX##sYIUYEYb?DK(XsluKC!mbb5b*roAE`$}{^#IkC`Q+2=!dU$mcpqv#S*hQ1Ro`+GqD)TN4C z<`yk~5Aywv5QExdp|!$^p2H3$hmoM+psvZft|uLM8v5t+^L3wl>i<`eCO8?j+XBqB z|8^_(-|gP(XZ`;%o(1&(U(}cbI3O9<3BM_cW0@Hkj%KO-mR)rDGdP-&{_%tmK1CgjCLdP|oQ>vW3@m8IG(0+rH2zWmI*T14auiUaR+}zpidn(=3 zFYiu{4v)U=gOj}XAVM6497SMNsN_!K$h*6~cq7W(-L0(yt!yMV_pwUoq7Jg-DWFJn z6D5&~!h)9sM^$R;nJpMzT`^kUD{bb`jgp9!?qOfT(m}mcay|Yu2|F65d&-s5Jm&ZCoSU64%*% zmR#R!_A)tyOLO0ODXgLZPrK%|0;I~8AVh+YLYft%d0H# zXv~c*jnGm+&rI1hcP8j=&5}l6K`P8eyI?sBaunSQmP;PEIZQQm${{qyoLzD>m<6&m zpk)obp1FBf78`pbyy^$N{a_e>I4wrOwE;Gdi0Rl2+82z8Lbx?}Sl5}dA4+!%d@O*IE!D}`BpAL|DQmLVKitq1|8{pa zx1RO?$9V3e|NkHceECQ)(6}us6l~raX%_Is2rhYdRKTFv z8;PXL2lt6NtngFa4yovW_vT)pP{3iW>c70~O{k%CmB>rohL+u_-R`UW;I44-99H*c z5TRktG;?1~`4&u=*ZKlvs>5kE#r|71@@*ElrS0XHxYoD9`yQKl1GWa8+ZfuiErOsak|JHE9h)raP$5Jr(2;551D6w?uxX?#A>LwWW$V@ zzYC0Pu0{VYM>R)(&WO5FvTnrO_fI^;bs6>_l8ngx?LWQl)^7RycXwy|`TX}$o_pDU z#DMR={~wA*e_6f}NORNEF#@^0ZMFm{v>#{-a+~@>2B9i>7c&Uy`b#kg6=5|Pgl3y@ ziXa-yICG6krA{?}8Ptq)=CE0(0Sxi-M=g>o1wQ%Me;{@ZBx?IBL z%iH8i3)Yje$uY!RnB;P)GtU^OOSWKoRo-Wa`!-|f5-o6l8j)w)TU%XXdA2vHTMd@7 zZES(}eQW|6?C;z5raQ5~xZl_I)&S+9wl@v-iQC>RCeg2Lba_J066}8|VSGdp`z>xT0sjB&eQk5wIFj&p z{)&F2JQq8YbzVFMZt?#OfB3VqUf2PD&%XPA@8bz>;sCx-6#o~=QH-}A0BYFj!FYc) zIL(e<{qya7zGj5Gardqub2G=R`D`|P@BEjQmLSP2|JYY_PzTfbWU0RL7yHRn5Qa=72B6lJx4f^~fy z+G-4EOoZ>9?1ZY^$JmY}zv;&4DM9&8;FHW$741e(%fjt2W&)pg0<+znuL-tIpMF+g z;WqJ#C5$$^QS*R6$#^22YRo}-g%`?;KgY-Lp8L4J+#XD=v%zk4`YqyLQj(2EiZB5f?7VXVsHsAO( zTaWtF8IG=sDxVtP8h+j5W8p9=jLzmZX|pC_$La;}@6TcQba!J))T$P@;Q!kG{L2eo z1GlM{Mbu6Qy=vFUyIzBSr3SER|8FQes?e@iF--Zoy5ap5o0kNA$aeC7|J7#;_P;L* zYrOz%`G21s9aQ7Lo*o^1xBu_sxrzC2jbYVBoB3nBYUvxzUANau{*=+l!GW$TTvZ11 zav%CtugTKSV;!vWG&nf03UtG0!|jeX%tzZq8En!4O~I2|+|*5BwfISe43K(ifSYB# zi{tIg7POJf=_nd%I<;MY5$fqK;S$Z0Ql7KI)NAmj6beV9H>G}DuW)NS$EN@z(saSDMmphHJ?Iz}VsCqr$>lF41vuM|4Wb@vv9)>Sgj=}wEg=#ri zQC4a)#qu=c9Mi(3*jp)vifEkg9Hn}CDD>VOTs}^#5>%lR24E#&M@HTJ-;e9}cVMe}@M@e9!-KFHaxNkyJaC zF6L^8tHch4aYm9@?cynluFw>VFzCbE84)0|G-X^05Hp;ABmrm=m+d+v2IfdcGeW0( zz;S{kSy-`Iyhk(+`atp21X1r8r-cnxh5xr3!W)__fl>XX0tr&gAt4lpLHP3W*Gnbj zfRLeJ@WRUYNRIZZ*6nW3IH8Q$_k9 zIDwD5{do9H2u{wPhYj!f7PDxDQ8)#wiLrqkgzF< zV2tH8RvV55#C#V9LB9`gU;o?7iy#<{MoO~|Vw_?cV;T``wRa_3k8OWi&RZwzF&u=S z!_O`##};Ed&P$@%LHwd<_HQ+q9&wDsEO-P8e8>l0LY68$HE*TiLMeIg#$619D?;OA zP!>Fy{)EzCe~u+m+Oq=L09<1->GIIwBuf$#Dyh%2-B7h2VlfZ_-8)NjY1P7z;oS=gx_z=9OYD;Ce=)8AOOG6-XZp=z9}Zil&%{LGYqP&e8yS$N%_aHpVDTe?`&Tm3^bhVOS={X~LFsr5q|{ z)pW1_$tIvV^VIZDC`3snB<3PCVoLvN&@e*+#)`)z7RtuZ$2h6#;-dpoLBlDQSipHv zRPQ3AlFV@##FVo*By4{dc3%8=ez6v_K@$zgff2u4Kz1I`}1GDb|KzOePbom3D!n z0@6O5OeTa9Nfex46i`ZvlNeKl0L;OEzQ9W?eYa32PL8U%Fc}`?!NDa$gWWGF^X0|>;UD(i<48}Sg?#oxC^iy zS5I6A)rsccHAz+SPbAN7HuY z^}Z~@8$WGp?xd^~fX{j$^7Z8&3cHxHy0l4m-lTL?81NV6m{e?j(QR6Bu} zEV{zn@E}~^DG`z{!QPMf8O^bPofxMaM@ZuMSP3X755X~wF+VQ`0z!qvDBi71Jzp%1 zvmfp?|8}@r;HI4MVpKQr6{v1LeU~+)xa1^qC!yH>Bgo{)|y{e}!p0s=+G!-GgA&w&Fx33JIW-9D(+|FatI0AA17?Oe|Rwb z*ZqUP?hpUAk5V%5z7_*Q2gAYe*}k`*E~!MHbMI}01=QimsrBbbf6m@6Q|uc_=bTU} z+_eO&*{8OliyX>NiE&)d#5L;s1Ao@x$jvxSb}P|arko+& zI?CNj@U+p+oVl6>f13lRlwO5Q>IE$3x1^MUIC2V(YVl@)IVZ7R@$0EqKHydDPdPU7 z#yN`Bk4yM1Ly5w73@A-C7^~i<%?8t8TaGks^`z1yD_qta(X5eKtopfrncq@Z`v!Hi zj?en7>z2CLH>kRGe0;_?F`?x}ooja0Wo-jU*VD#nbSqhIe{0N~>J5Cmu+^4&nN9R1 zz21D8|LGe;+8TaU`u>-lzUxrf%&;|f@iw?`1$|d|nfse_^w~(^E4l&XY%dZ{Oai6BB7?sWu+(lqzo#BO!#>_83IMh1yneRhrMPL2l`?vHs zIV>4RQ@p*9o3A5uw->1Mb)??*!h3SgO_iP|q_WlPe>Y99L5+X)y!iE(oxaz$!N;n( z>1}F~FK$b(d%zmpmQ=3?tYrB-Dbpm+3`Jwi4L_>CM1Ipx-^o%NBOPvUDFuB?DyiXrv^lvP>-3zLTWg z;c&O7f4y5{^bMT6cgS*E>)PkNnhRq_!oSE!5(B0S!Wo^LdtjXCKvb=)oAXg*)Q2v* zT+Xs}S4X=D{MBhxuAb%oK7BgGP4uwHV}YH1Vy?n==7km|#?8*Y)q@P&%kp_kbsCjR zk49aU#a=MsY@Yi&M!?3Oa3n23h!iHvGLo}Sf77@s-NQHk>Y|9%PUA} zU_!W%-V_wXI{qBlyQHz5D&w}TwGFl6tX1*^D5C?{+MmX%f_;UT!}8>`T3t6iyKB8K zuCR8F@Pr2tyYhf#`+Yy1V_&zr*WU2?+T%Z<$KP05ZkGE8VjJX2xJ#xh>17+`I0@-( ze=;hJtTfxRXIIL`&u>1LZTm9{5fa+(wk$%O_PkpsCNgPS9KFuiwG*43C=KCK88h$w z3@N|t^j+3~g-Nm4Lcemlj!_-`T$AP;H*h9_TiJp@%#c!GO`w%70IB1z@_Z0o=(n9D zF{8~;^&p=%`c*Q82z#=jZ+rRd)D&)~e<|cjV3v~<-<+(g+L?uOP^`K&x%@`O+R2ZC z-2yW1Gi@u4u?eJA@Mw1&kv0%P0HZch$dY9S0hz#Hp|DnyJJd30x}*K5g?@Fl=SH3B z=T#rv3JF)~=T+1Cx+L@xdHAg;xJo&bCid$R%}Y{we?O~k z1Ik562t;F!O4RF0xl`B6miEq7`sHwbWg6yi+!r0&B%iH~d`rpa*X6!L@n?Yj+TzbZ zalhhE8}uI#r-V-1t@#Zs_gfj)t>)+krr+(tZ#=HPwpa-{OA@bB9t`-iqaaALBstd?f6CfA)ySSK z0h#X4^AGdn(%LQh_$0YTOYs=Uq<}-=?6HnJmyh>MnrMNgZhkiTnaOjG1*Y<`fyag( z6#ya5(J}xa5}V|H>mhZy>5?S~2Q)RE0GkxxySV?IqP}J+L_Q3H7>_d#-D8u3dj&OS zF785{-mdiSmXIr~eo@?we?Lo(fY1r!a}xt>5~T>ANG3bC;_VZv&16I)Y&#p{rt0kNn_MBItvex`oK*Bk6;8>R7BSn|ZwzPcB`#X%F6+W#}V8 z;V}q=Ir!EAwQaol_Zbr=k6{6zg!e4T=GdK}gYIb$&L)ocdV}5`fB3`vtW&u3dNwac zOoW0{K)h54jZD%NL73XuN)Y!3y&ynQgoXHt#kdXJ6WtQ#EH27?HNssQ=mMko11A!{ z(F73W_twEK$?v$s2!H!K34#>KSzEv7HhJc_AY@$XDbKsJj-4Ir7^3$}k|^9pa+f1GE_aYY5&>Wn=tv-Fc&x^N^HUFJ`AzO=nx;pI;#O$pW8MyW6R zKF^C}`m|cW6<(S{vAQT#^&_E8Kp6PV5zbmTAhV z@7$aYr%VW z{8K~1H!1op!+CC~f*ODP;hoA`#s3S8pFPDi$_pj``Daj?betx|jKeUr**h^^9Oos& zU7oG;lgrBwe{U{c28EKjaL0$ofv{Ah= zf+hGidDjmP?l<%L!SDvT*EdYQ-dc(0)>+s!ZO$fYe@B`y9x2JmM1E>u%dzWA*=oAn`BOJ#>&#hLc)A$lPT*Av=vf4@AdX7*nHmWX`X*vX}V#G+v)(1 z+*1Elbx}!s+nl;L$k!eIoH8!K>*o2RovUn&Bbn%rT`FuH#UN4?;rtpz!3{8A@JTSL zzh+#bMD*+9y>GDBco60Uev0z z3a}0o$%nEt03roWCd$M@Jhoa!j`~- ze*^EEvE$g$1J%*;Iw26_^%BVF|1WfBJ2|Z(9#Ea0AQbEzqa|-zHAohIbp5TaAb=6&(vOidmTZ zlI6ALPtB|u1-4iRcNrO0o^U+D+-*}I*7ZLIR6jyGra&bZUs_Y33jqERGbjyc2kmC6Ew$B@8dPk=2N$M7T1Oj1!cI zeU1f77I>h5JJkO@8l+6fK>>)N^S;;LCNrsNt}nBj7I>iMpvN054hNFiKaakp%-Y|d Z@6Y$=`}44${|x{D|NmGF*CGJu0s#BOhXVir diff --git a/charts/chronicle/charts/standard-defs-0.1.3.tgz b/charts/chronicle/charts/standard-defs-0.1.3.tgz index f679e4c3d83d1c88b484508f6d6bbfc4ccec2569..2f63806a9b2c5c77e244ce2207547ea37f52c009 100644 GIT binary patch delta 14692 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 delta 14719 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 N|NoiCYx)3;0RSz@BXIx# diff --git a/charts/chronicle/templates/statefulset.yaml b/charts/chronicle/templates/statefulset.yaml index a684da350..d79898728 100644 --- a/charts/chronicle/templates/statefulset.yaml +++ b/charts/chronicle/templates/statefulset.yaml @@ -153,6 +153,106 @@ spec: - name: chronicle-data mountPath: /var/lib/chronicle/store/ {{- include "lib.volumeMounts" .Values.extraVolumeMounts | nindent 12 }} + {{- if .Values.livenessProbe.enabled }} + livenessProbe: + exec: + command: + - bash + - -c + - | + PROBE_ID="startup_$(LC_ALL=C tr -dc A-Za-z0-9 /tmp/import.json && + echo "Probe ID: $PROBE_ID" && + chronicle \ + -c /etc/chronicle/config/config.toml \ + --console-logging json \ + --sawtooth tcp://{{ include "chronicle.sawtooth.service" . }}:{{ include "chronicle.sawtooth.sawcomp" . }} \ + --remote-database \ + --database-name {{ .Values.postgres.database }} \ + --database-username {{ .Values.postgres.user }} \ + --database-host {{ .Values.postgres.host }} \ + {{- if not .Values.opa.enabled }} + --embedded-opa-policy \ + {{- end }} + import {{ .Values.livenessProbe.namespaceName }} {{ .Values.livenessProbe.namespaceUuid }} < /tmp/import.json + initialDelaySeconds: {{ .Values.livenessProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.livenessProbe.periodSeconds }} + timeoutSeconds: {{ .Values.livenessProbe.timeoutSeconds }} + failureThreshold: {{ .Values.livenessProbe.failureThreshold }} + {{- end }} + {{- if .Values.startUpProbe.enabled }} + startupProbe: + exec: + command: + - bash + - -c + - | + PROBE_ID="startup_$(LC_ALL=C tr -dc A-Za-z0-9 /tmp/import.json && + echo "Probe ID: $PROBE_ID" && + chronicle \ + -c /etc/chronicle/config/config.toml \ + --console-logging json \ + --sawtooth tcp://{{ include "chronicle.sawtooth.service" . }}:{{ include "chronicle.sawtooth.sawcomp" . }} \ + --remote-database \ + --database-name {{ .Values.postgres.database }} \ + --database-username {{ .Values.postgres.user }} \ + --database-host {{ .Values.postgres.host }} \ + {{- if not .Values.opa.enabled }} + --embedded-opa-policy \ + {{- end }} + import {{ .Values.startUpProbe.namespaceName }} {{ .Values.startUpProbe.namespaceUuid }} < /tmp/import.json + initialDelaySeconds: {{ .Values.startUpProbe.initialDelaySeconds }} + periodSeconds: {{ .Values.startUpProbe.periodSeconds }} + timeoutSeconds: {{ .Values.startUpProbe.timeoutSeconds }} + failureThreshold: {{ .Values.startUpProbe.failureThreshold }} + {{- end }} volumes: - name: chronicle-secrets persistentVolumeClaim: @@ -163,10 +263,10 @@ spec: - name: chronicle-config configMap: name: {{ .Release.Name }}-chronicle-config -{{- if not .Values.postgres.persistence.enabled }} + {{- if not .Values.postgres.persistence.enabled }} - name: "pgdata" emptyDir: {} -{{- end }} + {{- end }} volumeClaimTemplates: - metadata: name: chronicle-data @@ -176,7 +276,7 @@ spec: resources: requests: storage: 6Gi -{{- if .Values.postgres.persistence.enabled }} + {{- if .Values.postgres.persistence.enabled }} - metadata: name: "pgdata" annotations: {{- include "lib.safeToYaml" .Values.postgres.persistence.annotations | nindent 10 }} @@ -186,4 +286,4 @@ spec: resources: requests: storage: {{ .Values.postgres.persistence.size | quote }} -{{- end }} + {{- end }} diff --git a/charts/chronicle/values.yaml b/charts/chronicle/values.yaml index d10cbca91..0ffc14eb3 100644 --- a/charts/chronicle/values.yaml +++ b/charts/chronicle/values.yaml @@ -22,6 +22,36 @@ auth: userinfo: url: +## @md | `livenessProbe.enabled` | if true, enables the liveness probe | false | +livenessProbe: + enabled: false + ## @md | `livenessProbe.timeoutSeconds` | number of seconds after which the probe times out | 10 | + timeoutSeconds: 20 + ## @md | `livenessProbe.periodSeconds` | how often (in seconds) to perform the probe | 60 | + periodSeconds: 60 + ## @md | `livenessProbe.failureThreshold` | when a probe fails, Kubernetes will try failureThreshold times before giving up | 1 | + failureThreshold: 1 + ## @md | `livenessProbe.namespaceName` | the Chronicle namespace in which the probe operates | default | + namespaceName: default + ## @md | `livenessProbe.namespaceUuid` | the UUID of the Chronicle namespace in which the probe operates | fd717fd6-70f1-44c1-81de-287d5e101089 | + namespaceUuid: fd717fd6-70f1-44c1-81de-287d5e101089 + +## @md | `startUpProbe.enabled` | if true, enables the startup probe | true | +startUpProbe: + enabled: false + ## @md | `startUpProbe.initialDelaySeconds` | number of seconds after which the probe starts | 5 | + initialDelaySeconds: 5 + ## @md | `startUpProbe.failureThreshold` | when a probe fails, Kubernetes will try failureThreshold times before giving up | 30 | + failureThreshold: 30 + ## @md | `startUpProbe.periodSeconds` | how often (in seconds) to perform the probe | 10 | + periodSeconds: 10 + ## @md | `startUpProbe.timeoutSeconds` | number of seconds after which the probe times out | 3 | + timeoutSeconds: 3 + ## @md | `startUpProbe.namespaceName` | the Chronicle namespace in which the probe operates | default | + namespaceName: default + ## @md | `startUpProbe.namespaceUuid` | the UUID of the Chronicle namespace in which the probe operates | fd717fd6-70f1-44c1-81de-287d5e101089 | + namespaceUuid: fd717fd6-70f1-44c1-81de-287d5e101089 + ## @md | `backtraceLevel` | backtrace level for Chronicle | nil | backtraceLevel: full @@ -134,7 +164,7 @@ test: ## @md | `test.api` | test the chronicle GraphQL server API | api: ## @md | `test.api.enabled` | true to enable api-test Jobs and Services | true | - enabled: true + enabled: false ## @md | `test.api.image` | the image to use for the api-test container | blockchaintp/chronicle-helm-api-test | image: ## @md | `test.api.image.pullPolicy` | the image pull policy | IfNotPresent | From b6be4f73b447eafaaad1742c51f93fd0a0334ad8 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 18 Apr 2024 19:45:13 +0300 Subject: [PATCH 2/3] chore: Clippy lints / github settings Remove legacy CI, made clippy happy with automatic fixes Signed-off-by: Ryan --- .github/settings.yml | 19 ++++++++----------- .../api/src/chronicle_graphql/cursor_query.rs | 2 +- crates/api/src/lib.rs | 2 +- crates/api/src/persistence/mod.rs | 2 -- crates/async-sawtooth-sdk/src/ledger.rs | 1 - crates/chronicle-protocol/src/protocol.rs | 3 +-- crates/common/src/prov/model/from_json_ld.rs | 2 +- crates/common/src/prov/model/mod.rs | 6 +++--- 8 files changed, 15 insertions(+), 22 deletions(-) diff --git a/.github/settings.yml b/.github/settings.yml index eb81fce99..eba353b6a 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -124,11 +124,8 @@ branches: # this branch contexts: - DCO - - pre-commit - Commit Message Lint - - License Compliance - cargo-checkmate - - continuous-integration/jenkins/pr-head # Required. Enforce all configured restrictions for administrators. Set # to true to enforce required status checks for repository administrators. # Set to null to disable. @@ -143,11 +140,11 @@ branches: restrictions: autolinks: - - key_prefix: 'SXT-' - url_template: 'https://blockchaintp.atlassian.net/browse/SXT-' - - key_prefix: 'BCP-' - url_template: 'https://blockchaintp.atlassian.net/browse/BCP-' - - key_prefix: 'CHRON-' - url_template: 'https://blockchaintp.atlassian.net/browse/CHRON-' - - key_prefix: 'DCP-' - url_template: 'https://blockchaintp.atlassian.net/browse/DCP-' + - key_prefix: "SXT-" + url_template: "https://blockchaintp.atlassian.net/browse/SXT-" + - key_prefix: "BCP-" + url_template: "https://blockchaintp.atlassian.net/browse/BCP-" + - key_prefix: "CHRON-" + url_template: "https://blockchaintp.atlassian.net/browse/CHRON-" + - key_prefix: "DCP-" + url_template: "https://blockchaintp.atlassian.net/browse/DCP-" diff --git a/crates/api/src/chronicle_graphql/cursor_query.rs b/crates/api/src/chronicle_graphql/cursor_query.rs index 9ecbbce68..0f68b64eb 100644 --- a/crates/api/src/chronicle_graphql/cursor_query.rs +++ b/crates/api/src/chronicle_graphql/cursor_query.rs @@ -34,7 +34,7 @@ where T: OutputType, I: IntoIterator, { - let rx = Vec::from_iter(rx.into_iter()); + let rx = Vec::from_iter(rx); let mut gql = async_graphql::connection::Connection::new( rx.first().map(|(_, _total)| start > 0).unwrap_or(false), rx.first() diff --git a/crates/api/src/lib.rs b/crates/api/src/lib.rs index 2be4ffcb0..86afbed18 100644 --- a/crates/api/src/lib.rs +++ b/crates/api/src/lib.rs @@ -264,7 +264,7 @@ where pool.get()? .build_transaction() .run(|connection| connection.run_pending_migrations(MIGRATIONS).map(|_| ())) - .map_err(|migration| StoreError::DbMigration(migration))?; + .map_err(StoreError::DbMigration)?; // Append namespace bindings and system namespace store.namespace_binding( diff --git a/crates/api/src/persistence/mod.rs b/crates/api/src/persistence/mod.rs index 7c7418cff..a183a3ec2 100644 --- a/crates/api/src/persistence/mod.rs +++ b/crates/api/src/persistence/mod.rs @@ -1176,7 +1176,6 @@ impl Store { .select(schema::entity::external_id) .load::(connection)? { - let used = used; model.used(namespaceid.clone(), &id, &EntityId::from_external_id(used)); } @@ -1189,7 +1188,6 @@ impl Store { .select(schema::activity::external_id) .load::(connection)? { - let wasinformedby = wasinformedby; model.was_informed_by( namespaceid.clone(), &id, diff --git a/crates/async-sawtooth-sdk/src/ledger.rs b/crates/async-sawtooth-sdk/src/ledger.rs index f8d805e40..6e20889ae 100644 --- a/crates/async-sawtooth-sdk/src/ledger.rs +++ b/crates/async-sawtooth-sdk/src/ledger.rs @@ -493,7 +493,6 @@ impl< } let channel = self.channel.clone(); - let from_block = from_block; let event_stream = channel.recv_stream::().await?; let event_stream = event_stream.then(move |events| { let event_type = event_type.clone(); diff --git a/crates/chronicle-protocol/src/protocol.rs b/crates/chronicle-protocol/src/protocol.rs index 5ada873a2..ddc0e6072 100644 --- a/crates/chronicle-protocol/src/protocol.rs +++ b/crates/chronicle-protocol/src/protocol.rs @@ -159,8 +159,7 @@ impl messages::Event { /// `Submission` protocol buffer serializer pub fn serialize_submission(submission: &messages::Submission) -> Vec { - let mut buf = Vec::new(); - buf.reserve(submission.encoded_len()); + let mut buf = Vec::with_capacity(submission.encoded_len()); submission.encode(&mut buf).unwrap(); buf } diff --git a/crates/common/src/prov/model/from_json_ld.rs b/crates/common/src/prov/model/from_json_ld.rs index 23be0b795..4697dd324 100644 --- a/crates/common/src/prov/model/from_json_ld.rs +++ b/crates/common/src/prov/model/from_json_ld.rs @@ -214,7 +214,7 @@ impl ProvModel { map.get(Chronicle::Value.as_iri().as_str()) { if array.len() == 1 { - let o = array.get(0).unwrap(); + let o = array.first().unwrap(); let serde_object = &o["@value"]; if let serde_json::Value::Object(object) = serde_object { diff --git a/crates/common/src/prov/model/mod.rs b/crates/common/src/prov/model/mod.rs index 0da8a3742..0be0b5871 100644 --- a/crates/common/src/prov/model/mod.rs +++ b/crates/common/src/prov/model/mod.rs @@ -484,7 +484,7 @@ impl ProvModel { ) { self.derivation .entry((namespace_id, id.clone())) - .or_insert_with(BTreeSet::new) + .or_default() .insert(Derivation { typ, generated_id: id, @@ -517,11 +517,11 @@ impl ProvModel { }; self.delegation .entry((namespace_id.clone(), responsible_id.clone())) - .or_insert_with(BTreeSet::new) + .or_default() .insert(delegation.clone()); self.acted_on_behalf_of .entry((namespace_id.clone(), delegate_id.clone())) - .or_insert_with(BTreeSet::new) + .or_default() .insert(delegation); } From 24a3a20c6e550bd94aec4fcbb7d54f1357e54231 Mon Sep 17 00:00:00 2001 From: Ryan Date: Thu, 18 Apr 2024 21:25:28 +0300 Subject: [PATCH 3/3] chore: Adjust workflows Signed-off-by: Ryan --- .github/settings.yml | 1 - .github/workflows/cargo-checkmate.yaml | 32 --------------- .github/workflows/pre-commit.yaml | 55 -------------------------- 3 files changed, 88 deletions(-) delete mode 100644 .github/workflows/cargo-checkmate.yaml delete mode 100644 .github/workflows/pre-commit.yaml diff --git a/.github/settings.yml b/.github/settings.yml index eba353b6a..029b8803e 100644 --- a/.github/settings.yml +++ b/.github/settings.yml @@ -125,7 +125,6 @@ branches: contexts: - DCO - Commit Message Lint - - cargo-checkmate # Required. Enforce all configured restrictions for administrators. Set # to true to enforce required status checks for repository administrators. # Set to null to disable. diff --git a/.github/workflows/cargo-checkmate.yaml b/.github/workflows/cargo-checkmate.yaml deleted file mode 100644 index e2e333da6..000000000 --- a/.github/workflows/cargo-checkmate.yaml +++ /dev/null @@ -1,32 +0,0 @@ -on: [push] - -name: cargo-checkmate Continuous Integration - -jobs: - cargo-checkmate: - name: cargo-checkmate - runs-on: ubuntu-latest - steps: - - name: "Install protoc" - run: | - sudo apt-get install -y protobuf-compiler - - name: "Setup OPA" - uses: open-policy-agent/setup-opa@v2 - with: - version: 0.49.0 - - uses: actions/checkout@v2 - - uses: actions-rs/toolchain@v1 - with: - profile: minimal - toolchain: stable - override: true - - run: > - cargo install --git - https://github.com/cargo-checkmate/cargo-checkmate.git - - run: cargo-checkmate run check - - run: cargo-checkmate run format - - run: cargo-checkmate run clippy - - run: cargo clippy --features inmem - - run: cargo-checkmate run build - - run: cargo-checkmate run doc - - run: cargo-checkmate run audit diff --git a/.github/workflows/pre-commit.yaml b/.github/workflows/pre-commit.yaml deleted file mode 100644 index 1fc1c1504..000000000 --- a/.github/workflows/pre-commit.yaml +++ /dev/null @@ -1,55 +0,0 @@ ---- -# This is a basic workflow to help you get started with Actions -name: pre-commit - -# Controls when the workflow will run -# yamllint disable-line rule:truthy -on: - # Triggers the workflow on push or pull request events - # but only for the "main" branch - push: - branches: ["main"] - pull_request: - branches: ["main"] - -# A workflow run is made up of one or more jobs that can run -# sequentially or in parallel -jobs: - # This workflow contains a single job called "main" - pre-commit: - # The type of runner that the job will run on - runs-on: ubuntu-latest - - # Steps represent a sequence of tasks that will be executed - # as part of the job - steps: - - name: Installs shfmt - run: > - sudo install /dev/stdin /usr/local/bin/shfmt - < <(curl -L "$SHFMT_URL") - env: - SHFMT_URL: > - https://github.com/mvdan/sh/releases/download/ - v3.1.1/shfmt_v3.1.1_linux_amd64 - - uses: actions/checkout@v3 - - uses: actions/setup-python@v3 - - id: file_changes - uses: trilom/file-changes-action@v1.2.4 - with: - output: " " - - uses: actions/setup-node@v3 - with: - node-version: 16 - - run: | - if [ -r package-lock.json ]; then - npm ci - else - exit 0 - fi - - id: pre-commit - # yamllint disable-line max-line-length - uses: blockchaintp/pre-commit-action@v1.0.1 - with: - extra_args: --files ${{ steps.file_changes.outputs.files}} - env: - SKIP: no-commit-to-branch,cargo-check,fmt,helmlint