From 4f35b05b9db816455d5522e4d37e6dbe0b111641 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" Date: Wed, 30 Aug 2023 19:40:56 +0000 Subject: [PATCH] Charts CI ``` Updated: bitnami/kafka: - 25.1.4 bitnami/wordpress: - 17.1.4 fairwinds/polaris: - 5.14.0 harbor/harbor: - 1.13.0 koor-tech/koor-operator: - 0.3.6 kuma/kuma: - 2.4.0 redpanda/redpanda: - 5.2.0 sysdig/sysdig: - 1.16.9 yugabyte/yugabyte: - 2.14.12 yugabyte/yugaware: - 2.14.12 ``` --- assets/bitnami/kafka-25.1.4.tgz | Bin 0 -> 128698 bytes assets/bitnami/wordpress-17.1.4.tgz | Bin 0 -> 126885 bytes assets/fairwinds/polaris-5.14.0.tgz | Bin 0 -> 11705 bytes assets/harbor/harbor-1.13.0.tgz | Bin 0 -> 47793 bytes assets/koor-tech/koor-operator-0.3.6.tgz | Bin 0 -> 80433 bytes assets/kuma/kuma-2.4.0.tgz | Bin 0 -> 53253 bytes assets/redpanda/redpanda-5.2.0.tgz | Bin 0 -> 86756 bytes assets/sysdig/sysdig-1.16.9.tgz | Bin 0 -> 41329 bytes assets/yugabyte/yugabyte-2.14.12.tgz | Bin 0 -> 19870 bytes assets/yugabyte/yugaware-2.14.12.tgz | Bin 0 -> 24898 bytes charts/bitnami/kafka/Chart.lock | 8 +- charts/bitnami/kafka/Chart.yaml | 12 +- charts/bitnami/kafka/README.md | 152 ++++---- charts/bitnami/kafka/charts/common/Chart.yaml | 4 +- .../charts/common/templates/_affinities.tpl | 30 +- .../bitnami/kafka/charts/zookeeper/Chart.yaml | 2 +- .../bitnami/kafka/charts/zookeeper/README.md | 4 + .../kafka/templates/broker/statefulset.yaml | 4 +- .../controller-eligible/statefulset.yaml | 4 +- .../kafka/templates/metrics/deployment.yaml | 10 +- charts/bitnami/kafka/values.yaml | 10 +- charts/bitnami/wordpress/Chart.lock | 8 +- charts/bitnami/wordpress/Chart.yaml | 10 +- charts/bitnami/wordpress/README.md | 22 +- .../wordpress/charts/common/Chart.yaml | 4 +- .../charts/common/templates/_affinities.tpl | 30 +- .../wordpress/charts/mariadb/Chart.yaml | 2 +- .../charts/mariadb/templates/primary/svc.yaml | 2 +- .../mariadb/templates/secondary/svc.yaml | 2 +- charts/bitnami/wordpress/values.yaml | 6 +- charts/fairwinds/polaris/Chart.yaml | 2 +- charts/fairwinds/polaris/README.md | 1 + .../polaris/templates/webhook.deployment.yaml | 3 + charts/fairwinds/polaris/values.yaml | 2 + charts/harbor/harbor/Chart.yaml | 6 +- charts/harbor/harbor/README.md | 48 +-- charts/harbor/harbor/conf/notary-server.json | 28 -- charts/harbor/harbor/conf/notary-signer.json | 15 - charts/harbor/harbor/templates/_helpers.tpl | 52 +-- .../harbor/harbor/templates/core/core-cm.yaml | 6 +- .../harbor/templates/core/core-dpl.yaml | 16 + .../harbor/templates/core/core-secret.yaml | 3 + .../templates/database/database-ss.yaml | 6 + .../templates/exporter/exporter-dpl.yaml | 22 ++ .../harbor/templates/ingress/ingress.yaml | 64 ---- .../harbor/templates/ingress/secret.yaml | 2 +- .../templates/jobservice/jobservice-dpl.yaml | 16 + .../templates/metrics/metrics-svcmon.yaml | 2 +- .../templates/nginx/configmap-https.yaml | 53 +-- .../harbor/templates/nginx/deployment.yaml | 17 + .../harbor/templates/nginx/service.yaml | 18 - .../templates/notary/notary-secret.yaml | 22 -- .../templates/notary/notary-server.yaml | 111 ------ .../templates/notary/notary-signer.yaml | 105 ------ .../harbor/templates/notary/notary-svc.yaml | 35 -- .../harbor/templates/portal/configmap.yaml | 6 +- .../harbor/templates/portal/deployment.yaml | 17 + .../harbor/templates/redis/statefulset.yaml | 7 + .../templates/registry/registry-dpl.yaml | 23 ++ .../harbor/templates/trivy/trivy-sts.yaml | 16 + charts/harbor/harbor/values.yaml | 196 +++++----- charts/koor-tech/koor-operator/Chart.lock | 2 +- charts/koor-tech/koor-operator/Chart.yaml | 4 +- charts/koor-tech/koor-operator/README.md | 2 +- .../templates/koorcluster-job.yaml | 1 + charts/koor-tech/koor-operator/values.yaml | 2 +- charts/kuma/kuma/Chart.yaml | 4 +- charts/kuma/kuma/README.md | 2 +- .../kuma/crds/kuma.io_circuitbreakers.yaml | 2 +- .../kuma/crds/kuma.io_containerpatches.yaml | 2 +- .../kuma/crds/kuma.io_dataplaneinsights.yaml | 2 +- charts/kuma/kuma/crds/kuma.io_dataplanes.yaml | 2 +- .../kuma/crds/kuma.io_externalservices.yaml | 2 +- .../kuma/crds/kuma.io_faultinjections.yaml | 2 +- .../kuma/kuma/crds/kuma.io_healthchecks.yaml | 2 +- .../kuma/crds/kuma.io_meshaccesslogs.yaml | 25 +- .../crds/kuma.io_meshcircuitbreakers.yaml | 15 +- charts/kuma/kuma/crds/kuma.io_meshes.yaml | 2 +- .../crds/kuma.io_meshfaultinjections.yaml | 14 +- .../crds/kuma.io_meshgatewayinstances.yaml | 2 +- .../kuma/crds/kuma.io_meshgatewayroutes.yaml | 2 +- .../kuma/kuma/crds/kuma.io_meshgateways.yaml | 2 +- .../kuma/crds/kuma.io_meshhealthchecks.yaml | 14 +- .../kuma/crds/kuma.io_meshhttproutes.yaml | 16 +- .../kuma/kuma/crds/kuma.io_meshinsights.yaml | 2 +- .../kuma.io_meshloadbalancingstrategies.yaml | 14 +- .../kuma/crds/kuma.io_meshproxypatches.yaml | 13 +- .../kuma/crds/kuma.io_meshratelimits.yaml | 14 +- .../kuma/kuma/crds/kuma.io_meshretries.yaml | 14 +- .../kuma/kuma/crds/kuma.io_meshtcproutes.yaml | 15 +- .../kuma/kuma/crds/kuma.io_meshtimeouts.yaml | 15 +- charts/kuma/kuma/crds/kuma.io_meshtraces.yaml | 13 +- .../crds/kuma.io_meshtrafficpermissions.yaml | 14 +- .../kuma/crds/kuma.io_proxytemplates.yaml | 2 +- charts/kuma/kuma/crds/kuma.io_ratelimits.yaml | 2 +- charts/kuma/kuma/crds/kuma.io_retries.yaml | 2 +- .../kuma/crds/kuma.io_serviceinsights.yaml | 2 +- charts/kuma/kuma/crds/kuma.io_timeouts.yaml | 2 +- .../kuma/kuma/crds/kuma.io_trafficlogs.yaml | 2 +- .../kuma/crds/kuma.io_trafficpermissions.yaml | 2 +- .../kuma/kuma/crds/kuma.io_trafficroutes.yaml | 2 +- .../kuma/kuma/crds/kuma.io_traffictraces.yaml | 2 +- .../kuma/crds/kuma.io_virtualoutbounds.yaml | 2 +- .../kuma/kuma/crds/kuma.io_zoneegresses.yaml | 2 +- .../kuma/crds/kuma.io_zoneegressinsights.yaml | 2 +- .../kuma/kuma/crds/kuma.io_zoneingresses.yaml | 2 +- .../crds/kuma.io_zoneingressinsights.yaml | 2 +- .../kuma/kuma/crds/kuma.io_zoneinsights.yaml | 2 +- charts/kuma/kuma/crds/kuma.io_zones.yaml | 2 +- charts/redpanda/redpanda/Chart.lock | 2 +- charts/redpanda/redpanda/Chart.yaml | 2 +- .../console/configmap-and-deployment.yaml | 4 +- .../redpanda/templates/service.internal.yaml | 3 + charts/redpanda/redpanda/values.schema.json | 8 + charts/redpanda/redpanda/values.yaml | 9 + charts/sysdig/sysdig/CHANGELOG.md | 6 + charts/sysdig/sysdig/Chart.yaml | 2 +- charts/sysdig/sysdig/README.md | 2 +- charts/sysdig/sysdig/RELEASE-NOTES.md | 8 +- charts/sysdig/sysdig/values.yaml | 2 +- charts/yugabyte/yugabyte/.helmignore | 1 - charts/yugabyte/yugabyte/Chart.yaml | 16 +- charts/yugabyte/yugabyte/app-readme.md | 2 +- .../yugabyte/yugabyte/generate_kubeconfig.py | 231 +++--------- .../yugabyte/yugabyte/openshift.values.yaml | 4 - charts/yugabyte/yugabyte/questions.yaml | 2 +- .../yugabyte/yugabyte/templates/_helpers.tpl | 183 +--------- .../yugabyte/templates/certificates.yaml | 33 +- .../yugabyte/templates/debug_config_map.yaml | 23 -- ... multicluster-common-tserver-service.yaml} | 0 ...ml => multicluster-multiple-services.yaml} | 8 - .../multicluster/mcs-service-export.yaml | 21 -- .../yugabyte/yugabyte/templates/secrets.yaml | 7 - .../yugabyte/yugabyte/templates/service.yaml | 301 ++++------------ charts/yugabyte/yugabyte/values.yaml | 116 ++---- charts/yugabyte/yugaware/Chart.yaml | 21 +- charts/yugabyte/yugaware/README.md | 4 +- .../yugabyte/yugaware/openshift.values.yaml | 29 -- charts/yugabyte/yugaware/questions.yaml | 2 +- .../yugaware/templates/_default_values.tpl | 18 - .../yugabyte/yugaware/templates/_helpers.tpl | 97 ----- .../yugaware/templates/certificates.yaml | 99 ----- .../yugabyte/yugaware/templates/configs.yaml | 121 +------ .../yugaware/templates/global-config.yaml | 4 +- charts/yugabyte/yugaware/templates/rbac.yaml | 39 +- .../yugabyte/yugaware/templates/service.yaml | 16 +- .../yugaware/templates/statefulset.yaml | 175 +-------- .../yugaware/templates/tests/test.yaml | 35 -- .../yugaware/tests/test_resources.yaml | 40 --- charts/yugabyte/yugaware/values.yaml | 162 ++------- index.yaml | 338 ++++++++++++++++++ 151 files changed, 1301 insertions(+), 2410 deletions(-) create mode 100644 assets/bitnami/kafka-25.1.4.tgz create mode 100644 assets/bitnami/wordpress-17.1.4.tgz create mode 100644 assets/fairwinds/polaris-5.14.0.tgz create mode 100644 assets/harbor/harbor-1.13.0.tgz create mode 100644 assets/koor-tech/koor-operator-0.3.6.tgz create mode 100644 assets/kuma/kuma-2.4.0.tgz create mode 100644 assets/redpanda/redpanda-5.2.0.tgz create mode 100644 assets/sysdig/sysdig-1.16.9.tgz create mode 100644 assets/yugabyte/yugabyte-2.14.12.tgz create mode 100644 assets/yugabyte/yugaware-2.14.12.tgz delete mode 100644 charts/harbor/harbor/conf/notary-server.json delete mode 100644 charts/harbor/harbor/conf/notary-signer.json delete mode 100644 charts/harbor/harbor/templates/notary/notary-secret.yaml delete mode 100644 charts/harbor/harbor/templates/notary/notary-server.yaml delete mode 100644 charts/harbor/harbor/templates/notary/notary-signer.yaml delete mode 100644 charts/harbor/harbor/templates/notary/notary-svc.yaml delete mode 100644 charts/yugabyte/yugabyte/.helmignore delete mode 100644 charts/yugabyte/yugabyte/openshift.values.yaml delete mode 100644 charts/yugabyte/yugabyte/templates/debug_config_map.yaml rename charts/yugabyte/yugabyte/templates/{multicluster/common-tserver-service.yaml => multicluster-common-tserver-service.yaml} (100%) rename charts/yugabyte/yugabyte/templates/{multicluster/service-per-pod.yaml => multicluster-multiple-services.yaml} (82%) delete mode 100644 charts/yugabyte/yugabyte/templates/multicluster/mcs-service-export.yaml delete mode 100644 charts/yugabyte/yugabyte/templates/secrets.yaml delete mode 100644 charts/yugabyte/yugaware/openshift.values.yaml delete mode 100644 charts/yugabyte/yugaware/templates/_default_values.tpl delete mode 100644 charts/yugabyte/yugaware/templates/certificates.yaml delete mode 100644 charts/yugabyte/yugaware/templates/tests/test.yaml delete mode 100644 charts/yugabyte/yugaware/tests/test_resources.yaml diff --git a/assets/bitnami/kafka-25.1.4.tgz b/assets/bitnami/kafka-25.1.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..40bc3920d3901030f9ad3c9b3d3f8efc5aa4795e GIT binary patch literal 128698 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%0AwdS0wzL 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 a!SmPn8eikPkN*My0RR6t*(O8)iVXngd4%!+ literal 0 HcmV?d00001 diff --git a/assets/bitnami/wordpress-17.1.4.tgz b/assets/bitnami/wordpress-17.1.4.tgz new file mode 100644 index 0000000000000000000000000000000000000000..0cfbaa04c72e2ec2901ba39676576dc5faa255c0 GIT binary patch literal 126885 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

;^cdJ4d^|LBi- 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

Q3;Zf@92Ji;5! zb)(EpM0*)PkZDQrwCE%e63$Y7a+(Ol{6r{`D1Iz=uV35P*hE~!{n)}=7Vxu}pdCfQAHn5;JVt_7s*P4_u78glm@3 z8~Jisp`Du>ymp?9ZeuJ|NJduhmH9km5-{Zm&J`^pOU+l;bC?tn!YlZIS^*Bhbf*sn zr}p2R=K1+&0{UqV3_BSI{s;oXTR1vW!VXaO#MqN&al%36W#xst&uV~2qgv@7OOs{A zxtm)>?Hi*y{c#Hn25F^dL!ni*Vn$fJX%vI??knLj#gR4P)V{U=Vxrlzr@jvsL*PYrVhQ(io#~YH&HLozbdTMm=70QAZYYhmEIRtTm8&Zq6_j}kv$RD zxhcR(D`DP$)8Wp>cfpG`)#i#lAy>vP#7c{OdqOGyGbdywOdIp)>^u3$lId{v*N#7* z3umfz)7JNAgdN-Bto&!B9XF=Y8BZ=d`JPzHeAr#w$Eyaj-(ICWVcjN3m20c5_qRfTdrq%{+Z)s$i|m6I zG%i0Q6b|c7E`H57lZd3@61r;rh*rCJ2D4I_b>EFxk0OCP&T&Eq!=9Xg13j zRL`*0DbHLL;TFr%Jk zIUywi0e~|UJ~gcHUiDxMdXzv$70h`jpLt1=bV3*oqtpVf=>}Z4h!N@7l&2#0ckHz7 z?F&ry`R$sd<<6P5|MlX$vDjeH<=sx|G^Z4%p3~ei_hF;ZUKV4%(gW%&dH?2KKQd}P z$1>K&xqi&NVtb#@tVe}Q@dVP7+fvAax3k@<+qX+>kjm+$;(5Vd4$EjBJ<2yn&$Kgo z)T+jBw@3an~t1lQirb}cT&LS}VyOV!bmCl!tVQt3c2NQ44a zEZEJ&h^T~IWqu5G#%Gd!v}c_un^Yd^kQ;)(B*LL^u{+YvY5shw)=Xq#g*P~uEoDx-a) zBmhET)U7GdF}Dn^n4fQFT5=QjY67`_WiOmCpNdqTxjf*K2c(JA;HDtQwNwJN4*@u;`vQX`+ zb(F6?g3$^^u9`#b6ihZVjV#N%Q$;fKMgS@Do@}rI4>A{FMa)0+Y{3IgQ@D+ZDGd7qe0^ zd5}y6p*Vrj;*9EoM1D^rp%$ldS>;Rq#snFRO%3u(a7W66#b~AwbPG7&A_^%#5^&?J55yhS4rX~2unqRW&B!v5fsL5xLbNf3@@_M~0w zGYmLIUAtopIKdmr%QFdbZwq30d!CEq@1<>TkN+hNU0wy^1Kz{>qZlg?_AH}vN6Y`i z37!OVxGs%PaD?vEmwTQQM5;U3f_h>%o2I8b`!GR2a=JqU84UkDc?E8lrTf)z^)dI{ zSw*X3&9~ylKY=vYS`LXc#t;(%Q{TmD6nVXJa$4j}R57cI1S^`y2!VHeTFu#U%gi>K z6mFleM{?H&aw>({y-3aB=y{ywq{a|3zO7OI6^gUknd^-HT#4J5Sfk; zkV@^?k0KIVq*<6pD3-Ao6K1VgYHsO;b;*i^NiIcFb_|#zjV9vCMy4Yy3lh$Gt}^tm z@0tuZN{+{&eFFl%17+GXWsm}dnyxrvmr1hLj)hn#Hf{(8P9t*_6Uth5!KCvNmj1M2 znLY@%=gDWBDk>5NJ`{*Ks3TgS;Mqz!(P3!RPlzB>)~$Gj9a*TX*R;%FJ`rP(z=?@0 z^a{}*WtEv|M1|GW>49)Wg!FMUaEwJ**U-qZko{x!P5$Ec&yW65{($93y4qcz3D$Hm zLN))K$n8ZnFI^Yuk1QQaoHHBVr*P~>G76&_3Ndtqrs#G$q3pg&EBcdYlDM8J+ zyf76AJU4kG-cYZ)Wl39glL?ESvZ0eugSlh1W~#c5N)a?u3T3tw6^psjmc\gEA6 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 YnYp;{;Riy1fB=CaWc7w1%LpL<4@UVPdH?_b literal 0 HcmV?d00001 diff --git a/assets/fairwinds/polaris-5.14.0.tgz b/assets/fairwinds/polaris-5.14.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..61f2db583b99cbf5367538ca6acb38810627192b GIT binary patch literal 11705 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

iK^G P00960Wb;Lr01^QJnPuGf literal 0 HcmV?d00001 diff --git a/assets/harbor/harbor-1.13.0.tgz b/assets/harbor/harbor-1.13.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..64a23bfe302d29f3a61f96c6cc54afff573df782 GIT binary patch literal 47793 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 literal 0 HcmV?d00001 diff --git a/assets/koor-tech/koor-operator-0.3.6.tgz b/assets/koor-tech/koor-operator-0.3.6.tgz new file mode 100644 index 0000000000000000000000000000000000000000..995a571480696430fb30276a8ba9c37b48e256e7 GIT binary patch literal 80433 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 z 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 Q00030|F5ze9{|t?0Fw%mXaE2J literal 0 HcmV?d00001 diff --git a/assets/redpanda/redpanda-5.2.0.tgz b/assets/redpanda/redpanda-5.2.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..a4679303e80185498a8756c2d6cb2db591895a60 GIT binary patch literal 86756 zcmV)EK)}BriwG0|00000|0w_~VMtOiV@ORlOnEsqVl!4SWK%V1T2nbTPgYhoO;>Dc zVQyr3R8em|NM&qo0PMYcd)qehFuH&1Q{a``6T55D@-0cVP4~D?n)+>XdE;dJ?l0}i z5D7_GlK=~Vmen}tv!4fp3qgvy_>!dEO`d1B7D)_d27|%OU@#CQEig;*&hZ2b70+;< z{pGIz^?JSD{euJeZ?D&D{&(--aQ`p62L})KAM76P-{1R7Z+Gv({Re+Ry*tOG zrxDHy%1AWCauOw_$fAG$R)@6m^Qw;q3o@DzCP^P16*!rYXfN)yeZ2ule|D3Se6gc8nDs^F7^ zGs!a&6NZNwNju0g&_3@VBuK#}Rb0&aXhbv8-`R-|WV{dvjee zk|-`@TW|K&>JF<9>wWIVd$!k<$VAY>^y>JJs6=W)kRUjV6wL`DY)lzJBQ8+RQz96` zMIqx3O>{daBxV-Ji5g)kiIOoRYNx=zU8rIp~D|9noos_n5*A)2f7vvD~SByi*WfWTev&Cdo^Y7$Io^Q-`3Z zPh`fWqhCxSpRzm2lMOy;oj%<|6}}X z>eXec(@iHcVVWzKpDn%kLEH;Lwd=*Tq3ydk-Gq^dK4T;|Dn1C&}(`chngZMg&%R z9qjJ)_V%OR!)Wj8*L(Z@y@USl{rLX=Vejj&_a8p^pYDI=ym$Zn{J+3iN#qA{0G7`G z-GjZ}oc+JQw|D>Z{QnsLHqcMTz)g|jU|kqH7oGBvnqooF_q=2&EQo0H==A$7RI-!^ z#2G~8%H&3K7&JVT5tR7w&+CYK2*6rv0z zJTEeeSwbqZd=D`K1T+jj)YcHfKnCKY@H2!}XQQ*B4SuaC`#U?+=`_ZGY|O>j`6Y7a zr<3C+&rhF#W1?HUVHuGU3G!P>1xe9x=8T$QMo@;Qde~rWV8|&$Q$ZDF<837En0Gd6 zV^cB9AxCBH1I`d;sC#sZPENb%yQ9;S)9ua%`uXJb4=>)lMn50DdUf>t^~sY{^x_pd ze)0VA$?KCB&ri{d@6plof1)2xoJ`2Qzns7jL_o+ z7F2Ulb9Y1pVF^jmNbnqKwF&K{W~hd$NM3+XiBc+H0i4A!KHqbJMx_8^L#gHrfyZYX zY6_&KIt@KZgjHV)Mym@5i|N4iJs6iXC04Z$0KJ_KAo1ffE*KFtBT{@jLZE zj0M4p2=vW2-*h%Kn~r&&bA}{Q8czuzqX@mYAVScTpfkUkYa`&yGb09L-F?A@0~^v=0~PRAEI%Wp+v`q*9_V z&7_`*PLSRPB-DiJ*G(r*=l%-_1b|R+rd1pKF{0yAK$9ITB^|S<;AzBoN_IB%{~JoU z*or&)=c)Z!(fiuarZ^gEZJZf1Olzq>8hv{Dt4O=H7ES$dEACXkWFNi#wPWb=PWoer zF`2-VpCNI_1fn_!8F@7yRrat^Bhv{@CYm=znPosxE7-VUO0OMybKSoVA=~L5!%MAb zO;H9-rxT@16-1-rF{s z*>*%FIy=gycqRdS;lcFL$>=#(F9nf=siv%)8Z{A!iI!!fI$-gSBK^)i18u6sBbXo+ z4)!DPyP$C+Fk<0Rrijow&UOyZ-9ytWe5Vy(5FK{rVQX^~ere`<1&EAeW6hzVwkLC< zz@CFBB`T#>ZRFAbjZ!9C0NO_gb;A#1oD~xs*C+IZOQq@VR)oiP1xR^*4M2pY1=p%7 zQnNyX`+-Y!^3sl=mJ=jNB8ZY;%MFP(2Vtow1i#Q@lL(R$rYJTGiBSlC+EOB|U9&_p zDJ;(`wM0PITEm2h9W7-MfQ<@4FR&t!AY*Np&2~CooKFpwfvS3%E^oyh+jekH zX4T?vCn44@0=024K5K54JB>fSe5VQv$3cV zmh}Zr!!@sr>V3lS5bPc>0=$LlP|}_i!d~g&B;h4f=5cpSRM%KmffHcBzUF9xFAST( z+BFuipJV!kthL*=L$1)7?d`~P7AIgAKT@J3XCQfJVu%yBHDI3WUhRWE8sSWmaM3X~ zA)1mbi_RIJvXD=T8-CiTzvj=$V?)J@nuWw!HbZm-&Z!xJq?C&1h6NQw-Bw#=NB&74 zDPHi5k7o__r^mD7?0P>&$0jZ~C&IXLh_oMDv!ndSbpdaJyq<{r?%e*3Rgzks?UR1U zcs&#yWD(18(TB}6Gk(>um}%YqE+s|AXBxxy_Xad5k2$tIg9({xT5T*eaGmaefez^P zcxWivsR)bA00yiBbYf%V41x6HM_`fY-}ic8vbYI|cHuu@I*ikZ~uUZyBdk4}HO zwR)5!DFs!t9f@TY1uwSZ4ldP1W2|2p% zt!0#pg|YCob#``o z{Oaggbo#?lw0C&lYPIUw;qIQr!2|B2+Up9NBS(yyU{%FaX1o+t@1d3CIH$>g7!2@+ zvLq`(jUkd3YKAh(2*L`eAS`vQY7$}|eIzN_C?&Dhf$>0`CV8c;iEibpNFrpnV$h4i zMH{G8dfI!ggshOkSV=UcS*DFmGksDQZL*x6PPjA<0EFnsh%)od5@7;Kg=GZLpwh6} z@i2hC2#y&ioC$){86uYe#^B|GFherpf`Gsq6=B|jYX%(wb^Tfb1Wt46@+Jx_<&=xG zuiLOOiE?7!ER;hVZuseRp&qH^Lw|K=;t?2IDgzy&vdXTqibMA}&iD{#+01xHnUMp+ z?C@`(Cpek-XN}2#j!h;>JnO+gN4t%!aDG@q@FBPhlVwcgjg4qj8`t zr57|Uae#`keuCa)B?l^#aYBTWXP`SUIKU|5I3?*eA{T^dtK>|7W>prr&}X2w&Z>aJ zSw*tMGBq@SZdtv~EZlBHC9bsMt~B(mN-NzsXvrNaiy{xk)#^v>BiWqzyajKbHTLn<*f4gIUC z^JYXNvgk#Ea}}8e!N5(Yli0RakmeW_Ac5|SzfO%um2GOYvWr^N^z2` z8*q6})Rc>JjfWm}>r~MTs%E#g448)<{0SQiNzjcp6hZ+Gtp(DcNHZB0CL4q`OX)xD z3a9vZysVL5w!pmFsI3QK5c%8KftXt-RxZiSF;KID#OQ^VkhAAJB`>*NC&9b;iR1J; zoMDy_VGIdb76liIq&^5=GHc9ko5dWb7h1+7NdsNtZDSY90n^tx%ElBJmPU*xRp39n8s(Uk+I}R8K3w*5o=m zC?=xhoDq{hiG((@jm*@C(vD(~Q!v#d;zdQn);)%_n+O^Jex>1>XmryJGI9EFY_*B% zdQUP+n37H+tOevHf+|1$xF`%eoZ9xd;WQOQN+QqPwmz0-P7DP<2m3DQ-F^){rgq!d zY!}xU=Dar#+^D)*aMOSfpqp`gY5jiAv@5H`teT{zg&t8ZAm3&bZh|5~fc-A0IU$IZ z`OtjlI;*>Y(zcdF#q+H#I}*F(ybP$}0zH0y3K~KB3F%pC2aST7wVPu8QDY>e>&Jlc zU08KjEtI|HgWcwXJ^i2&SoUUiuqE#vK};(ib3V=p=xXhyL_;f|k(m(P6T7+9^#KH< z2!=#8_lNLQMr|-yHtfuYe;m6WGr4WXH=G_miVb!NONV#?& z_O>&ErP6|sbE(h;5koG?me%)ubT-9;oo%Bt%0^uOHzmVze70>C2qkc0+{KKKf6{&Q zA#9^622qG6$ zDw{Kqa|SzpY`n7p9YnqZ2p0kBdUAUKeo`5}XQDW_%k2O@8~}(jR0v)WVf6X@B5YSK zZ8nZEqraPIAXv54KA-(A{G<=@xrmE#2*ibPP9D#%!!(iQbsQdBC!6B3-k|~Xvp{(QGzDHJH?Sq1TG90bMrdx zRAbQ^zcx)k4P4-?kM?_7{byCqj@|y{DH6o4l*ZuGQsSwTHk(I63fqW6#+dyaXL=0* zpJ_uAW@5i!cp_~FX9T$q>@x0}nh32`>AEl2zmh~rt6Y5_cH(J$VFPhzq57ZUJhR4^ z-x0A7ecGByR(l=f7q}Hu5WAh9>Z!;JaQ6tipn@~Ug_nY-CGfy14%e8ah(qdI!kMJ0 zOQbQB*~vyyZJN8STkcm4^AR0EghQE(nIHjTnRy=$*zLDd&6CIjgk4nP51zP{DT>hX z%QscOtCY_NMslOdBS?y}dI35pDas&7<#lF`&xr(6RvS1-O$5OyDq#EsfkQ`GTL9h? zMJ0MW%=oxMzlOPfwWEq88kTxcUGUt1vfI8`a<*L|BqzMgQsZh42^!N2!qBMH%7hE& zF>Y8e&$%Lf?-n_G+I+bUu0TrQnaL#<1Z*a71xlf1ESuGR5f`w8;d)Bd59QD}{uO}> z&l>qOC}<#e_78hob#$%jFhLF~5&5m87dX?huAS^Cl6j#Q$4a0C`K=^U$v7!Ww^~+j zA>Gxy3mIGZxoP(6&koLlBv11tFr$xlYxvnjO;A{pa&1@U1T$HU&Xluz3SlYBoM?-D zf+fUdZEkbe^7!SOxJI`b*dc)x43#E}8FmR=!V7@YGYXGJlu@_zZJ;M1qxzatG|fm< z@XVZ(i%N-lD2j~uMy@$LgO4!fsCQN)_QarUauxU}kTD3MR$NYsGKS|6+qPI^hR$}+ zwn2!!E$Igq;$kjr;)vjN)&|J}PMJI-ITy1^Mf_pZNe+lLG>Umxw`in&s#myk8z65J z%T@+iBgjA)SO~Q}P&agQezCGiA6Qv4bnhwEgKDwy`pj*PR(>00Sj=jIYTHnW6h7C= z$1OvOE1bF4MlossRU7+Wgu^Y)Ap6AH1Vo~Ty)WHt@r~~JP6KmxTT^mj@?&7-R~q}; zrX7|F3na^-oJmD;v?+*oG>DO-t@>hYr&u9)0v>}`cRb))eE5`B+?o$Q7*`cGmSiac zK7t}Jb7=1=ZK^#IEb*feNtB+#hGc7|M3KeaKOSXxEMZ^JjIZxXe{W1a{h{9$F^Y1> z=tRG5T6xrtUgNpQax|isS_OW$jegul&$iLiZS*7EM$f3xvrlP2gy&xsP<=)j&CA@4 zoXJk|-hCr5P=%3CMu_KBDI3>7XE|jySYek0ocXv$jxXK2O-muE&3R)OLHeN~e5>kd z#cI>C$XM1_Alg=w-JYIWjpYQqQ_A{Ag50Apy!;Gb-h^FG79nldzO_(3(>Twsfe7XJ zGDNwyPCGZKI^w*v zEaxBD>0Vz`tsA1zHA1Dov{GTjIKar**9p#&GJ|jfE)~zQq6yA2H<5-AkTeGstjaJT zT*q(R4vl_pL&?uffZcSfoEDbn!H~k;4}|Qh%pM~wh8E% z6iLJHj7zB%yfz8@!D4`Okoam%GG|VBwdGqe9O8P4h#W$D!Cxu5P@W_txC%?L2^u)-14g4mKmv3vEk_4;%*@~R3gOshuR6B!T~YN7Olpc zmAbKWpjzj13b_w9u`As+3+iMn+mgFQl@*;ICM8oK0c*S}Byi zku(>#Awt4-Q8J&yI-eCJ6&HAX-PF{1)44K~EySIzxMTnH@zbNBL2iZEoDa= z;@jxVA{}eIUSc&l1H+DSM8Is*pxvwRc+JUZE%3M+AN$d9hH0)paOrNCr2y2OwPRXk6M(RC15w*?Fxm`8N)eEDhJmbr!`(oH|hqNc77*QPfwH3 zxM^49EjxP5(1pjEekq^h+#Gaun=EcYv`dzY&&?rWmWpJ;C1GfDTD$4sMsgMa76VOTktK zGt#cKDV662Wuw5(45(vJJu&Ql4J_CJd^XUnO%C48RM28}-I+=;>@^Un(L&#Vyj2-bzsA5zh;U%3-lXTc#n@S4x&57C`{QoXrV z39?au!Pdr8NV>MEYZI)jG|%ZXIzqU4XwX^nb6Wv!FE&WOz43V_yN7H+Qi!zH)VG~} zRv25~%}vb@fvGB?vz3?*1j)G~gQ=j3EWx_=U2P-#4?=(-cp2Bj&s_Qhs&>?DITo$= zwOWA~;_>OH6(vE&=3MPOP3Bcyz5OwX7?#O7QLRLnSL+ecJUL|!n40Xxb25{kmPmt$ zR=KT&RxSw-Otkz7C1~L?ctsfh!i!J~qJz%SPwBPdtzC@1-CEAB1YBrT$GH zu`6nFWo_lp{AYceJr32fg7y2^QlH!J!qkmO$AiaJm6*LAdP=|h#LV&j ze>+qB>pnW%zyI(-@9W*Yp2fKBQ(xdL&~9ztB@>dI4``5F*Xy;zrHtx984Pi9&PSs` zF8gSA!M8cS9Jq57;LRg$r0=b$Vyj?;mnIpL)O(2EhtF{2|QTU+feX%(V0plL>+ zB{Vx+NVNNGbq9_X-I2x2u~n~*K5?hfOo>t|knDvcWuYZXWP`Fuu_6^@jnn;wIE5{X zLBh#s)JM_Y%5PKm?P{<&Wk#7T5r^9M_%i(7HF*5w<*O&hN3Wke?#~&$311=chuchCKtM|F(pYOC|6VcHxk6g#?a%J{_DsIezuz_2B6E_{r(%;KwKb^q9i-<@bW; z6)moQ!;fTU4@tV`!7<689F+S97M9QY#8Y>UGBTc3bWUcsBNOGgC|u~*R%PG+JK=rwPn$Zg=H?|UXZvpWAg`fq&DP0TpwLv2!OPI+amDPq~?RZ{I$G)na z;4sJH1uw@Fn>bq7Qxa9`o==(@@(Z`E)|S>P!_HiO6HFtlJP?5)rv`Fapelx`Ddvvh zj7uyqQ^cMk^ZBhV|0qQ`5nReD2S#oOd8lsNWj-e;;X-=`?u0C)*Hmd-E(gq?htYjf zhKdYBf=Gf(Nzf}&PwSlT#Z?c0j8L<*C?~s)4`wRPC0Ti;;4^iDoS==cj@@RCDa&Tz zDax%T6C7%JEtO4=xT52U${?+=$lQLX);@6R#~<5q;{_*Q-0?p;W~NkOuulUAl%khB zMMo}|U6gL&Xp{_Iq`5wvs##Gc7_4ge?Go|fEIek4`X``&3Z6RhYPvQ2@IR664PPPN z)kIIJYLt2nau@JCKMYx#CpP(%k!jm^t|*u`lL=0JV8iAOyFp-z`hf_xdyVRX>VZF+ z+8*}2o(pdr2S@lI6BbSnS!GfkZFDxlB0bxNtxHoR!=EvDBZ+_JDk@H~NlB9>7zMCkn@WxI{B)=78eEGV z$gpaNFHIAWFm0v)K6IX=2pvO3t$Cbv zyE90ucGznr=Mwuo8yd|lBeV*$!6j%MPT=d6JYPJI&B1}Nd95z8DX)dXGUQ=>(NClW z8b#6(nk$oTx%AT3Yp7Bl{F#zJf_l>wxsno5AqdG$@yHGLFwuA$J>I0GR(gABJ@{3F zAJk%R9sKb9M<4q|1>_NGmXQC*hQHIPkOayB)#*8zIup94 zqLmPC9?<87xl9Un#MqBhx;)VFWeP4wenXdEQ~R@$}oa+ z<<7doaTStoy9#-5{?)7rTKxRYI&caSt~k-_fD8HuWtx25g0mK+&PAP@6z;b1J7N`I!tUk#>s@V@$7nFD|ETI8H9~mG)N0a;AM4u+mpJ~=+-ud zG z{eaq4_!C9}MVF-hkR%fhmz`!D{mey{{;zIxnw+@1GwRn~gm=cmg%17>*JgCb92Qg@ z&I{`Qil8V|b<31<=Z^FAd))$b^M)ZMib^K&h(yDg1`>_rj3rRfSmcy}ygn5;AusE3 zgRh~KO>K~k9M~#BPy$$sM5iVtPC(jPn(vLR}Q=n1&*?MpFKwIj|G&Nu@iLODpBW)2`f2E0y@oIclu~ukW z^x!0EYYF!-hu9|Yx+1#%ra-H@Oih+$w-mXsYPaj^|MQHX@8ICvkx8*RHajYDM+|Y& zEcT|ybwsc#g%c7+NNPq^+fo-aBV(g=+Y8GtW--*KKdV=ynA?S@SAZ~UQ|+`2)TOPC zv8xH8qFE&*D7+STs`bq-NwyF}n9N>9gn6kT9T$QldX`NDXS|f?27ksK;rAPi>%O^{yFyv!74#CBcnwn$WPDd{jH z+pegDkqijw6{V_THE@f9s?LkTL0dCu+x7rB2%s&{W`;Hm&WqbKjlx?R+5t1S=XviB zD*Eb98g`={x;v^0FG)6vw98G>1y@U`l99;7^PL@8GBUuF56A@pJ>)jAOu%%;5{aI_ zehI(e+a%-3xy!_;7eF}njOq??mSL&7rb@WvFiW;g%B~+%?N@0VQEGvL>e>ZPY<|A0 z1)P$MD8nra)87*4xJnElSTmrkMIeGUCTVJESy)<_3Ys8L&IuQ(TW?BRlNZqN2_w}c z@jS4Y*nRps6SU@o(;3ypCN;zx<-rZq5a6IN=Non|u-M7yuqsOeMM@lJYaP~lko0%b z0@kF9ba$W9@2bX|u14OLsWC@b%EdPN$1{jYm;=Es1Dt>chv&8?tg9)aNfISPoNc>` zmFA?b$gx7-7^vU&zq!c2?SEt8eQPKB#5tFuIJdWJ)$dkt>dM~hVwSP6PQJ(Eb?y~rIYh<5My*+ovY#e}D_Pxs@?42v=8Ta{^C;VH?o z0bBtxpximgeh8{#$#zl~Sm2x}BB}$cASvelNq2U(X8CJ&H-gG;FA(I;)+P-frBt2| zJk@h=7|)3q+d?Ga3o3pKpN*svG!LI7MH&8-Q(P3VX%jwG0y9})t=b2Za!d-`=qu4Q zlzGu{b?RJU(_ppg1ec}Qpn#8_28BY+@zr_}bht6n7Z_e#T&k)-dWV%_t3#t6{0>}z zWPel#N7I}#boBD1s_VK5<&iiu`CU+rt`WB_xKLFE0)MBM7LlspW|dUs?}l}K8Q07t zv3!01;Glx;%VIXm&sJlC7L{s#9@uogxueQ?gN>Tx0Tze;QSE{pKkii>P=9I*Vx|nL ztlJ9^!mg07I#Z7XG#Od1SXu*hPtH{^4WUEjdd@7IM!>nWCX&=_@go*i2i=_dqDd11 zrC&oY+gFLTHt$y0b8ti!3YaQKOcR5fR3vqs)GPM}b%sGE;{u8R2ZzthKYLxmsxdIN z_4}T`{zWw$n)(1%g!Xsah1FaWVdBx7{_0#ha-yT(SEidOH4vZ~RD*RjvD>1N8j1x0 z-&KK=HVWsaM0g7T*bjPWG|Wv{0wBEAb~6O5r?7QA)&pScBKyl5yjU1^+WA$BA&u+_ zZP=|ArBvoXA{YcCSF5cmD=pnU75;t_pP>@_C<*ZR7^cKgscn*)5A!1)o#UET1Hn4i zj~D4Oug1(o3l&&RU-iCrS$Dzpja`YQt@~QfYko%5gs1(FGURO|u!K|dYIIIHuBX7f zG&OY9JPT`VJg9?PINM>=s$$}7IS@}>ZbA4IqY@jEX1rf?x0#LkI5N)}p0*^V9 z|I6K)SgTwX+`=y?FDoyis>>QiQH-gR;~50Tz?_63#a#;1HEN%LdHZLS0Top^j-1p)dh>>%s6p(I)WZ3RULuuH$@Hp(MH6-&ku z%?q3;SEHjI($HQVncxe`g|i&zZ?3o3uo?FKK(btWv^Jh4%w=sh7@`pzLaARRdzQJe>*8>-Ev0gx~lnT@5j{yG0})Utt9oNpr%kK=80hPo{U zZy)u#XC353JjAF}d|={(0|-^hK}`v)!05=tMIpwiL77lvbpsRxZLm4`lyELm%CO>M zVBJGgV}5rb_*d0uXoMkW#}pe6;GzJo!Nm4W(}B$=%64GS_awX!Jh>kDU_;(C*T$&sz+A~3K&L6m3l3$`uF-{u z?wc!Hn2m@!{DP)7n!QrM+Ta&71y}QLkQZ49KE%UphEgat?LrkkV}UkU7YNQZ#;3Z2 zA!u#^j|DFabGVGa717PZgmNk1*TJrr&AmVt5VC;m-mZ7o6V7Cr6CwYGe&TFQg!@oJ zQdspKo!+N(e&}f`u9qtfae3HR1Li8JBvCF? zUjEIW(V}Ah5#E<`13b?V_?_ z;~&r*x#pfma#_H&F6ja`o4$Wb6RX*;r8m6f0~GXINlML-LQUL3z`0)ZRIqnV0cj5x z(G~Xc3}5;Ss{H;e4Bx_z?Jp;A7LSaN2T4XSD~my4bG~3RPLJPeYMn5fCCvgt22j`o z2a{{=SmkO{B;12JSbcCoxhX7M%~>Z>iNJEQoafpm9cn8b zEF?E?&1pTjfC5hVF@=0LXaZMcnUcz2ReRdpWlCUF!8zRl=v(06KtN{A-qY{aVc%DJj&yTa4Lnng266o@WYt>3_1Z2RQ%sdPF@q8aPM3unDnYb^;Lg85W<}NaCm)4H z#%66ys&8;Mpy_~I7SuQd?!5TJ-Xi7TZpa}5(bVi4LvuhOu~(;*|r%RRA3baXRWg6bcu)>iW*x!s6pKJKI4 z{e!*T2M_iht|5JB1MTiTMEUU3)1wWY1vHs6@w@jQJb19Tdw(68?*BnZ@|CIEUiH!5 z{f7tphX;o%Y1%-0ho6QfW4FMWc(7bR2U?<9-|4x0@bK`#TI2LdNP;DJ;MWd0D2RZ{ z7p`92;ty(-F+OIYJ+nNMbg)1TEdHR6?myV=J$!ioVChiYKlmhLVT!-3Aa40bLEW82 z#2xPLeQ@g9DhZhh5)`-5mc#&xLDZ&D>ldF&){Ga{oC6l$_Lo{YTSV8Z^|(+B-KsmK zX){u5d{u1gIT(=jioR>05R}WjAqpA-gl>5|4lZz*DIzSRlF_(k93HOr_i9EV>@_nb z%*}{Z*v)3ILA4nH^LRi z=(XZCL*i=|+dlm5n4TIaW<^*!nDA1Pb3zKr#*Gp~vWbnmiPDE{sH)DpjY3{o=qQAa zGR_N+NFlg!)y?u|II_QYK3p+$&RaKO7k`A_@CIbYNwD_mj5nyC&38=MD5K+vs+QGf zEBu#c$I!C_V^IJJk;Ej7Lyc^ZGMOX7#*~pZJjO(NEbbrlR`Q^Y0j?_(x6t%cR+LH$ z21MFw7f{*W`Di4G8jP}1PU>S1;h+T$Rv-s3Um=eb!+mr%#0OhFBe)6_?&s9-O*WeL zj~xy{(Er-5otePARA@7oTeXSIh}#fo>;>2^cB4J9l8KRbu^$g;3ylt znWwf6+WJoGjf0vd@q18(I97UpwSH~hxK$+*@hq+GouRT)EW2n*$oW=d=fO;7D6n^( z=(gK=Fr}eP5ktyAshPA?7s4MA4PVb^IY`Nnmn`vB>iTGRIdfaIJ|maPs0_*saHqe` zM6T{J%e?}gV#)47t7Jmb8e%SvOfIOgHbS|+zc3PC-OmP2whc;{iB&R4hjM{sQzC^Z z1YNk|OZKh&n^z0~$av@m4rMq|^n%nO4T&A`6s`=Ia?{W_?=89MFf_IBxhsw+h`oAz zkdh3~K!q$Bjt%q#P7uMzW)kDnR*~_bP%(jnIgQz!6Fmd#QG7 z4jfCgX>w~}8d8ZcETVcEn$sg&{*Vb|@q)Qz&mn;v+FCPHswSGJikIdJcnA{lF)Ep& znLQ_ByC9bntnIX@IuV zP#BTY-RTAjhO%qyy|{fBoD~z?N4>b$Ti`SXc%0^(t4Zw~$%>s9zf)7+d#UdMd3LPJ z52riB9!q&$7UY!quGi`~)c?2Z+S(enUi2b&z0q~0o~!}0y5rUScUBKX;>MKp4Ap>{m9LW71zlRjze1abvllBx@P!{e4DBKgNanT56^qe4ww>n#M zglX2c{j~(USuiB+vs-&Hn%jPpO^KO5k*ZNF3zGzCQ1Jz$08s_CM=cs=tI@gwgK=Wq zspY0!fX4p;C(1TQPmf*BL^4~junIg!r81$zY=)AIOM);%B@;vz zoJs8&ygq&z9I=SesX0;KvyQtf2arIm`QXEL0_w4(!xf9LNvH9;Ru7BxCXulGOvB_B zxuD->R?Dh>VX%C2I89+e)HrFo&5JeOEwvfB*3C;9!55WwFt`JsXmX zlc4yX3p9H#2*%gXliEeN78#F-3#;h%ZUNdm*n7BOGqwt(xT_M3voB>yQk0q`Vd&oR zz~j;A-$aF7gd?zTmhQ)G%w5&shaxeKhGB+}IoEoXxk>C}oDH-ul6k>cp0e8}9G6jI zl(6l-upvsyjDSj0F0|j5d11WK7;VBb#!U(urkMn-4GGY}*8_W?)1;Txw@S8Z^tcJc z_;hYEEvF~+(y`AxV|?les`n!>lOrMqM$FqY-dZ}X`k7+02?5nlnv!9hCD#dvkm*P} z?lnYQRl$14>)66iTs^{-S$634caKqoYF!O@seG;zU}i79Xbnv5F9}RNcHy7aSdsX&P}N7_tXhmbHW|UvUE0E#_dW#AvQ;tW4fMSr?iy3O zGh+kWy1DPdDfbqN_t)NuSesz4?%CLVX)$rM88CY72T!)9J(k2Wo!A;D#{}DkB^0(z zjpa`z?5`@~JT0y01|#lOWo@um3D}Zdm`Wj<%_r*$Ih{~dUfnbY`L`N*U?1i-BF59& zUc4`P8k|VcKL<2j^H9tjN8T{{TS?H#V?^OHr_s##RZzF5exrcfJ2C#1zqRO^9lnGD z<+hMwtxU~1A%&@+j1~4LfV8s01s$Y3(Y^N3PASC>Tuf7y-+|8}T+k@xNzhqU-a|k4 zNIT%Gz!rjE&gQ^+;0wUo-AY*&+R%_(fW-j@@!o^D7x&`b{=xq4!>`*JbW$9psa`ux z#b9?nzXInfQuy(ZlOe|zKlG%#;SIgx^$sXS22gYjfq^?YTeh?{IEH z^QQ;xNeELI$=BdEk{=wUl++}al9@X_XpR8t$>I;(Q5KvPG+N;qJ_m@7aI>7rpfU^` z4V+n$eEm05QG8SC)c|fRP_{0ct#NM3(x7f7QD5IbIOwiF>~k{4M+T@72+^s}KDeC; zn5fqsaM{=C<@HaeEh#gmA2|A4>&zX*wXrl@&})cuMG_wc1u%+om{GT#ZXY-*R6+UuQ|3r?-+iRxC45VFK_r46?f z^6Am(PtBVjH6cb`gL)yIYJUO<2`75*>%Fxm`hrQ$OxS9qmtnB%3c&#Ip~HMbn4MlX_()OK?NQ3%dto657W#R9gTWxb_6PHW_({{sHSf#uf zWg%@IkS0nnoD#PZ$CRzzi03(HKf%S7ZEY+EYHh;%T-I$9 z+y~Ou1Pg&@^%jP^!M8z06y4+>#tm~zlBvq(ipALKumB@;8DX`w3Zc8b0CE3(ZpiIZ zSD@d2sYk!eGIJk?s}%IBhtnb%O-SMMd0LwkwW0vcOugMc>YDox>X9q=0}3IFCL7vh zrS`7CN)Z7F{p&4`e(yzJM}wXC*S~&I6-Rm>uteeU3c6mmjTRoquJ};pw%d>`(q;&3 zBtNq?fw2u6NRnT`$xkw(mn1cZMlrf~aW7uTqvHt{D#k_e4+HgPthm_hUA^6nzW()> zU(&C(e)%O{`g`;5{b+OZ@BQG}mHt1?(4**oqF>+kqOaZG@VSPt_V-&~ZEgJ>8vS)M zeDhZWsP+iH{o?9h3x+R{=+&bb)L(kZQ#+Izf~_+U-;B4LN7)q5LB!R`=s8y} z1(AfQtq|)@_+O_$Yy@tJhFUp6wHj^`-=QAEOoiy7TM1gZEos%{|K;`_j-1NvTsc)%{{;aK}NR`5ewy}l46_JIljDg>(B|DoF7fGfLz;k z=xJZuY@MudVbiO9b>GJNi<<+rfUF_s8NsZbD~&#H#Ti_x$;}xO)=XVZGkkrGIp5l6 zjeEhBi%$2mzRm{FN8gVY>_HbDMr?%M(a&wm*ZV@Pf{U+0vaD3a@@ zy}6gvzG(to&Sm>W%fw%kwpI#VzgWsC7i~j$OUTQ{v>kLCn5OnWJ$`lcEIR$+C_3ET zyQ+Te9o`QY>HxX9XU!+?Z@i4DrLN4H8t|j&IjBy49fgro_A)%7BgJ@SD>tG7sRCOwA{DF;v_Bps} z?jzJar)=>YU3V&h5S4mDzU>|xC;kK|?rx*5{p;7(maS8Kl~P(ud9=;Y)>%7`K``z8KYX+m$?f`zojXQ+`ZWC(Ctpl+`MgzHZ|Lto4H>JOJjE{dJ7bFW^mQvy|IaOH6mWku9m8wr159g*6fC$0G z)f5YMMcIg7rDRx+uav+ESu_m-JpVgJJLillE^am8EiS4|1TKiHAn|dOWuwoVNzMEs z6n2p{qw;OsTETID5$4Sqo)l%sY;yu*eJ1PXcOu;h7ewAnwoTK;lKmDUc4K34*)gkI zTun!mUl36UenBPW?CxgGJfH7~b^gBOo3PJj))ktTdmZ_l zg))cTnzrV@-u9xefBoyG4Z#1p^{%(Q`+oEM>ec z_WL>uf-S&xbLFHh!IxM~YFlwcNJuME=8EX`b(M#9gGjClZ(sl67J%l^zf;?w8JVNM zleuU12Kfw2*?ec$q{h?G?ESdLM;ke-V~q2<;Fhyu4v&z9w~TqVngM8;DbNPx?zfN@ z$^OfaD!+eXS^aO65py|Gw|^H#O-sqhIr*r6B*?hA%|G|euuRU0x}lx9s*2_9jiwc) zI`6oHL=ZS}gflrXj>K)X>!wLxh1*iD@Kg>clL~5lxdUBSQpu}vQp~?urFB~e`<64S zRXFYxCNAi}Wmn%VWOKf8)tcyBpKAm5XR1B~)^PgB7ks#5{9S>$Ax_TuXf$Zu{<}>F zwgiJaDR9To-I30+$T$v7#)S|GL^^R%=w-7(WT2mPNX7@w!z$Delfya9oqu!{xr zDuF3eb!tgc0$|P*xvcR=(v%!y(Uvc<`0SDykp(JwZWg{@Jal&wAcj`KqxGY9EqPDq z+F`9%Jj*B>zX8gwUa-ed0)H-IwQ?$3*}W5%j_`I2Pu#YX#5 zSTzX@4z|_L0<|A%Tkc5Nv5|Z#cv&>nl_=Sfd?Rm~ z=INl`cFI?1+%@27c>`Hn)8CN1J; zxHIcU8L_J(XN%L8YT&PRCTme(b`jER0bM?0ZUq_wTqY~+887EG?Huq$2jp%Wu+t{Z zvCDtHGZ|7PTalQ3Q{nj_1O2f^qoGtJQIE00kEwVuWu~6=pNC~1U=n}2VR#*;jUMA< zLjIhC@@W`Y)q$L|fZIspzNY|D6 zHKiVEiH9-|6}7_$6QzpUUT~4r4|G{NVUv@8;IbF%12~w8iuWo;hu@3QcZ4u zM)^bdgMj``t@5?VzA?7T$F|e<_xm}O{#n(oLp%DztJvI z@`8)zIs7|x(m$;;{#lU!n*_PBCGgog{%jq8wvPYPc3VDMv!AWm&(>@U9skWnKqvgK z%Th>e?ZX>qI+?pcy7in8I0q3tVm!T0nv;cjgFGeI_f1lqczUCDqBy@{I#5Ud@BQZ+ zp8xy)`TL(0$%_mtB6ps@c>UxwR+s9o`dEJdbMJ7!cYpr==iSfuKYxsW@80cv)%nTX z`3N@!s|i6z1x_Xeo$`^IVnNXNykx1lP=E92^!qJTvXltK89`j2oD0%PI8%ZSOT`7U zS4bi}7KG%4DH$VlO3aTxAR+%FGov z8U;bdSfrGVQNoLvpyP=`+@;0Go!6Rx)9)P?5&=-?PjU25URvw}LM{E<$li2|_TpY= zQ-9F4uew`*Lo;5Y9M2Hr3YBmJuY*f26H+Kd8A^CwWE8W6ID$O%7(wS60v{?&8NxsS z;v*D%hOp{rrED+ao=&GR1}xzoZb#J4PbbGuo}WI6G^U+5EF)4Pw=SaL4B-L_kPI_| zGCbA81fu~%Oc|OAswf+8BWcID6OKj2Acqu{wZY;HVTQU#r|9Igi@rNLJvrU({Cx8I zhZk>Nqo0pny*hgS`sB$edhrS!zj*%mIhhX5$i%2^#YYBA6D1f{2_-J$MpfmUf`Vl1Y)B zCnxTFwe$Xcrvt)|&{3MADF!&wO@ZpS)r+RdyLadd|Em88ZH@%b|F_f=gR&$mQ-Zqg zeHX=BTd^Rr%oKvQ5u&4@{rmTwD2g;pf!Ub&HyUv5tDsj0h_F=uX#rHf-@S`EJ70B< z*bIr{T+3sQS&GyIt9ufS=>=hq#8MKWWr4CllyiG=w7D=m)h`F+66ZxmA`48$s>l#P zB~qDhF#N6g+KDV0=nKqdr$?th0iQf~B$ip^Y-ALpE96+X6>BTg5%`5hzyAoOgcQem zn#9Nh9_Sa6DDx56J!rFoP$4K&Bh)=Fha^!MiWvG*B63L*6e)_nlu-{w336*5iXzP< zV->}(%pKbCbDR@d;KW>uTOsc63U@cq!}xYIQpcQ)1y*Hd1&(W`LPxeAY3Z07m);K*(@3pMg-OZ?5{+N(TSZ5G9e5LYGz6mXFxue+RqeItqEoU z7h2J1b>(P9I7zg6QyiAH7`-YPfE?+;nVLn+Oi`{E4S%D%R=A|d_>815;P2jf>7I}* zN49pLmTzyuRdNk-A4M=lHl3`Di9+%sac?>Lx8$tAYVzpbyI*`1EcVQJ^zN7Ld#9UX z2ztEz>eu)0Vk1y-77Soa*;u!F+xs=91zP=)yQA*?yI;E7&<|)Z-Q_R8uwT0G?`?J4 zCZC&lZ8G0F4Qkr)wU{BvbAlvjG{<{Arvf4Oip!~@hQ3M5JfEFnnRVg%Y=C?W2VxKg zt?EXsLcchVaFRv(Wn|CJ7+|{XQ+h!vjU23G0H+;N6G%wqQ=*L67BtiuO)%EEjkIkQ zVB;xKyr4;2LwGSy#$&kmerQO6Z(6%GtyBAPt$jw+x~=u6RohQ(MgMvKwfKLn>-}x| zSmFQO-#a*H_3e;?!DXaDcB|My?({}~7HI=+&RjkP&SAQ0ZJ){@a#IYCk6ufVUZy?{)0JHGJ{7MeICIM!`kHfNbccT01f+z5T)tuk$_#nrDUaJ`#P zYh1DniXyB{^GKW92`zAj?irrl^RKk=itc@-AMnDKxI#F~P-N^AbPq^^zwga)378Wx z9>Lj0{f7iwvX!NPaqxj*XC}!Xhk}-I{s3cMw^r|F)GbU{T|UwrS{jFxR9)hi9Y^nAT z18c=`!oBp|aNjKaU>Uojc{?QXn`B>Vqbl4FS`XAB`*403+(x8EcL_i2XLBq`>DU)} z>)NVjXoNK>ju}Vt87}5nWZQsLU6(y*>1OsVIiw*W*qb!hZKJ!Q^DeU2F(lQbI6YAsH!ptQEp>jh_oEuhQe=X8VO|I{AHCd!EzlYm=JJPgZ!G9$3H zRHXpZj1tfq@WQTrSnAac77?!q%@8h|_jUy4r(py$F;t7@Z@1K5Awh}^Cj@o>+C|+# zcU=|f$#L7AjsQNYGCYPvYb~G$>xBW)9FLdJ*ZhKr?&1lf@Yu~2n!gkTFuQ2S%rd&U zwm8*+O>sx9Z%es`60yY~pD$9c_0M7(&SH$=kKo%cx((7aQF$rVD>5dR&)`Xo<}X5S&=K(7w$x7%vbl4w zwV^8nbEX(>5Vx4NNViZH#V}cW9xhOuB5fs=F<;sl|PhVIvFXp-vktJ+Du9`=*mx6ZYQc4VX2= zxhQ?1GWo=!0Up^h`B}oaW#Y4%Qy~`ZqBc*;`jWP&?KK2VgSfVwi6Xg?bcrJQ69`wm zyu?(#u8^x{127Eqb!r288Nz ze@|%`E6|=cg^3poz!%Voe%cG3(h=eUZBDRs?(uip|D{{CXG8le99|3W5%g8}u)pgz z9t`z^QO2>le_;ONB9sk17W0_=*n-J<8zurzVV=z)@?#T`^AM3%YVtB08Hk&CnW5cY zueY^6%FkL*&aZ{?vnI;ruV-vS1o7SQ>INq<(n_G<-@g z0volqF2!4O0<&~cOWZ|hmW*!5Dtn~6|417UwRJ=5iXX|$FQWdExY&S+JzOX?)op4L z1NhMz?c*GRxN{-nR<^f@-Szsym)Gg5CRlWY$Zx(o&oJ|{Yl`IP5grp&8};r=iM1e? zj-&S}7*9#Tg=#VKp*tBE<<+ae_}7lnqJz%MjyXT)DS63->Q)kW4R_%B=JUJYuy&h$ zR~fv3wKa-o1?f6YG$;rfG>HkUOEz zxK}`eNFpxCoRWrh<}oq1L=v;Mn6-qDP}FFKMj0OKg`-+n%=Y0kBw^j%Mg|dxe&$XQsc+gy%V7kgQiKG@Q9@@NKgxYY{4${cdY{FZFfjy1>07Z;qL1buW2N z)I=}!8J|LS9%gGUMeC!AFVUtXA%a^CpRiiWd)HgZD{uj?s=hiyPV%1ovslvSE%@9_SjKtPJ9L_?DCDa_ZL zGMbmUowp+{e3_uGhqk)wu|k_#ce)nyiGXwFRJ^sdoS%-BTMH<8&J`kzm*WYlmLR8d z0y=7Zl)o^CQ6GJoZX=79`QhQ{pWSOwQ(?O%Q8(AjJ70BP5mgG-(74sL@o`d=al!?W zU9I_Ynq?Gz#^{Kph%i|SBGK{7H>hM($xc-j3vLCrni*{hg0pOfILl_Jn|HSm7l?89 z+UVpZnY$5m8c`Mj3bGdIfOnzG(t-g8dZpL42bzM*0FW&9G@6J!f5Lh>_#}I;uUG2MNC@)bbZ9R4y76K?5Z5+fswE2bO zf(;bb=RysBeR{lMf+T#*=?O;8seaWTzpu{DKH5xh5%RB<+I-*ww4Oscp7E$R)~%lpR>^cA?v4Vkz@t zUKCH*GcBY>Cg*4ToG9D5Jgt)l#As`)Vawe#Q?xc2mZ0V; zs7FzSObC0?dnHP#q~gL?W8ZY*xJ=i%grhGds@2|{EB&<9 zpkRf74Fx~fp7Fel*{O8g_0Xn2LsZqQjRk=d&GL#ewdEJrMjw^bxhF<} zZiWZa()df+|I$ysr6;05iMxUNf-Y_{w|3Q9Zt8J@CyS=5Ud*;u%~ea(_nA4_Q_`5_PWEx~;atQY+{ik$qT&=K2VXF8kztEHaA@q&^Gx)5%_(He!)agRPO+m5St&2fW>juWWYkkATYFQlYx`4M@qhE_1f5inJ zlSmKaNDvaHCmS}>3-XkHrx|&;fB)fw-q*W(y->cErAAxmaY2NH>8bv~voa^aY%~j_ z?WDO|S739Upf4^mONVX~n zUSa?=djGx;f4kRLu9`+ohqja`aJ%eFY1~^uqo+k%1`t?u54ss24z%d@mM9+BTTc1YYRYIR=%;<$$>YTE6UxE5%|fc99fi1fNS}0~oH(T*k*TMlYd=0ZJyEOM)L2YgxLr z-PE~?GciPE^xwxkFR&n}`|YE>y?8I~MLl$Ng}&*1X?Iv#D3koqdogMzNwpno%_~+xLRlGK~dKPqpbo)$EuvMJ}Ppn5;jl4MoAz$i0se^MM(H zk$ft6S%9quKEXWjF6!E^LVu=;bTvAT?Z<83qN>MZ$e4S{Gn&k*-sPgM!_T{@`+~jV zTs@-_idMDaH5VA!fTW~$4sYvsNmv0AO3{MtBH_*ul+u*lQ=JXS8&KwkzXqpbQL-cX zMiPOBWW)toaO$XiD174;gWK3K)DTcc76_UDNekXlGepb2q&QL6|jqHsMJ0|Fie* z-EG^*!|?mJKLwUiYbzT{vJ)r$sq5XxwVkb>CXSEgwEH_r9~CAci8V#A1nJ8<{_gL= zjRZiDx>|7(vF9`viOT>O4CaOz*EK)^u1iHY@!}HQ3fR>D+jTZ`yEyX|W3gJ|1gF@; zVb!YBLJzX?`DC#!NcF9^+7Y#%ZWI|MUFOA-2tO?m6`2wb=Fq2Po@C|d2^KMLKNe>% zm#>~}h#1MNR3Ucp(8&RzqzK@|4$81G0$1+>#*@Y5J{=4d&p@vy(E|00e|P z`2|r*kI@)Lfky$#TN>j8ac^b{9)m6n$BZjXu%CSx;8EF`fRvJ|5dZy1Y0SDP}L zYV1TAR8eMpwWM2}fCIEw4F?z)B7(4tuAI*b3q$LOJg3V0ec9kX|CD178@rAo=IyyW zYiddFUM}m)5R7^7RELM^Ro0UYU^@7>w2+O=bAus4HHaDpG{IH{gw3XH2C8vzBFrk# zvjSNSNzK6`cx(}*@~VLeApySJM7oLgv(I~%Sj z;ix{jaaO!8S;|vA*SU7sD%sHG;oV3-Y2Z2`Guo<9AJ*M0i5 z%baIqTjqV&YAkC%Eo^ZfjOfDq$iqJ3bEI6k(b0*6QYZ5YQ3t+;T|}zdA)vhq@at^{U`y zOy0ri`?`A*cEnz>qk1u$EdWg7}Zp>rFe6kMP*MMaZDQ-n20%K0jc zFS8gpFpf$4YTE&h0;6L~5iuzNOx}Y?<0Lg{boL#}@NsY);4sU|8!=Cg!(mcvZHf#m z8Y_IZMdPZ^kET|zXK`ZYhdk;;IZu+cqRivODw{dM_&pYDy*xJ)t7w_Fe9C0TqTOxE zyC|5%#>4~*Yknp^7h(ol)4MvgpKkO}nyZhP%AIYJ0MYF)TnT~4h#O8AwPGq+p^Ytb zh`eS`_#m>1he5&?`d0Ip(p4JLX^~gwi9cFih%>)0KJ{5!eP1@FaEiJ0J*0}OFCCtD{K5rt^?D&3`2YYL#@2n34E$qieVK)N=u;< zBBdGCuTN=Q4NI-OHg{oZ-4qT_sn)c2vNy4!-N4Q8x=~lInBfTfs3&O4R8y=~SYVFT zcGOwc-mCMhbv(mFYxSB{9ogsF+NW)@^~OrmUE=?2{C^sULM^+T48Rlk|DEmUFU|bF zub%I&`TtcsYyN-D|9`{$KMRpUKNA3DwBZpJ#93?OJ%K~i)dE*=X0BDx%Y?P% zfGuGJ6LFy=MW>8fE5)sJg!n7&^22;*8q5M%R^3%~VVD`y+ZY`ada@-RGA?17XgsH|@38in=fFv7G-*TO1IQp@guci;MO#;r!p-*)h-mm(O?C z=l@Ec_4&U(|G(AqzvLP?$rrF3+Q~;KKA?-(Qa^GPlbWJc`C5)bZdyenI7ZJvgSkm{ z_wq>H(sh&+hi>~RI93gSbeXsa{0#V*VXDXi4I_zY1OeI#ok&XVThc>8zX>K{fN~(5 zya$JIDI2cqZphyGNn!S$3H4{;ipb05i^)c^0ay#^CQ-%rX9dtc*Ii`^VBRdOi55^- z&jM`@5r_5(IA=+>!+}eJVN`$;h)m}xmK~->!Grw`7zctXbQ#Pp_rp(G0d8MyZ(IhE z-v!64!HqFW*)59h1^{*HO2yVJET9c(_@uq_&czWdnqs7yM^j8 zM{h0PK1bm~g9biRhBe{1<~E&nZ7 z{u9BDt**Z<@lo+u5VeFcx9qS{6cHCk6kDVhW+X+)p}bL|rY~$cO4TCQlr;g>0^+Hf z713+M09RcfAL>KU?bZpsusGI|{w{hcho=9bds$kn=XY9WbwHUZlv|1r0@F^rcb1J=ub zFJ3+0-7)3Am#{f^T{J;Be-{f~YC`Y7R+GhtpztZ82#i}sYsems_5)`Gyy0T{S;Bjnq z`}|sPKV{cL%*@mp9K|IY@P?0Bi#!tvuj(<3dGMMfi`bt3V}!zS&T9QZX$brNhwJ*u zt(#=gACz##kPzgzfU?IZZ_YA(%c(pj@5Q!lcw-~9e1yyq+ptXw2{S}_xMbk4$YGAc zU9&l8D#76jK91unkBt2>aE22C}YFozVWH2lj8@3 zXRi!dwpNMYA-qLNm)~S!c}ep?Qj|2MAt~~oYber9Q0((e#@ceX@-*Iz1b%l#q4@5~ zsh!29GDzp?)2F}fpPd|^{F@o?2RIDzH4i>S(j@alep!wrEF1tkP05G_9YRTfeR`_; z_&Q31F={z#$!@HE?5j1%AT{Y4`NxeH|;Cn^Y$r1)AI!>6SBNp7g#k6(_s3wT6PhWK3s^onwRbNaZI#&q&lTQRCBh4Xm>^2V z0vM7$&-d!sk+wQVLb(&2J$$gOH-+900G)voWSDQH{vZfZm!}%c^@3V?iMqJ~k>^xs zWdsgUFNLXv94e%&DCPhMCqozsV$Wm^qtSfxsRcP5o=h~go&`-1zg1G6ND%-!Xzbq0g+U^m#FH}56{JqPwV;j7*0U*c$#M)KIkE+jJGc7 z&I(WbhduLk&+S=HbOp7RdNdcHv-M!h5n;a~0n!(_6rg-vul*FfIqsbwogAI@3g`Ov zQ?SqS$L*gU7jISXmWsgBML+CkVT5yq)FMNsDYBo4``HDZ7W+^66yt=4;E-KwiNAHH z6bT7CiDhwV4mEhMyfAN1+Tu#kDt5YA0oHr4$M?`Ds}JL#pGxs-k-*iKkyz$kw2=Ef z%f~}Ws`3LxbaQnfq|Xnyzn780l{PNX?d(llqFbd2VbJJ%EPgpVn^3g>ABakO8C@vD!flf#$ zK=+`lT}1M#LjKLS(**)t7Ga?I@;kYG$B}I~N^|PUn0rq)ukXFaWxYr;PL(K1Tp3=% z*jz2H!=bh?sR3T9ajDg$6U-tVslJGo!O(J!t@5eJbx@P)py56`uHW_IeIzI)0q!shInm`F{Wv3*0Y<>0VnvHaredjd7P9+{UotR486$AK%UbHR(bSN(U>q!upHX4RSpr)nS+jWWh=nY$w73sW;R-!*zE_{c&)V+WIfRR@SyNC7~^~ zu>gZv1<#kqWme8?Evxys50SZ;%^Fg*M2?g1&98*xv-IA>x&lF7JcKoqAylcw9KQM zx5$lX40i?F%a3z~w=bnFp<96^W0TuKC)guQ(yl^6lnq%J3yY`NlvkFWUZoEH5}g9p zmiyIM?!`{*c_TE2;0z4|k|wvhQbXWR`E((ymaJ5Gb5{6wo0*s^WZwdn^!97DDtb{l z0sL)05wGP=GhQ!O`(g!psk#As4@*%LjM6mjUqBMD%ZzjOQ?)g$Dt2ohOV!le$qN?6 z!@Ri*=UL`X3?qO;A0@dDKa1EpfUPG1ZHh5B% z{>z*Rs=lfTwj#t+jZRpLCfIJ8=TXj!IC6&agPb8e3%IWD%zX6=IJi@3H42sYn67dw z9N>TG{P5y&YT&euHJ={NGAkBBCb{Yom#(kF<517pF>Vp_?^F#=YYeVztb*O2lHs2O z;{)muDzpbnGZ{~u{;yP2U(z`@zoKvQhM!sIw+yY{B6`0%&0pQvOcmgQO2GNlfb|=A z8C&?PQ2{Pr3HW8w7AsYrPJH|M{QMN0Civ!d3aO2Y*cKJ)B9t*I`M<<8o%@o!`5??C! z)A_BbB)+V>F?A>IsSCqPabf+X&4MWI!Le(EEFZdl1ANlGNBZC^l(2-WB)~jn!W}0M zUYt3=F+NNBlHV~$+=fL;Fpbd|C%63&dzV2pESlx-^GGX3x!U#xo*H+t(u~DeandY8 zeHh?AxY-B&qZQE*2jO`?!4N0uE&4e>FliYzpdt3$NyhPfBbf%KbpE% zh2G_QSGwGm?>>q{d`q#r#gm8e%xHznS2=uS`zg3c@Fhx!RQ?KQ@}I<88NG^so7-ot z)NT=zN_)Lk#Nh6J$CO%IL6llt)>tj>h0qkhi9?l*p_r9l^N~|VoSoXaT)&mS0xa!q zBr~q79{_Wu;(?;L|12%Qqv1VsboiS}9rot@P0wr%D1is(z4xLv=D~6gK+TT_wpgRd ztvb7|5V?d1KOt6Q6FBn&tHy3C{+567f14X}<bJKzqrAIOz{BG) z-8}m1*&?px_$nLQqw=Q*)8Y*afCwBia)9G{PE)ND5gel4e(z1;zL-xtK`C(2kKp)q zZ?6jy1byHplpLKL9h~=RrT+Wg(b>uV+avJH{_9`%`McBoUhlVeXNP*pw?_v*@1Gp^ z-hzLC#?~N+e9#_8X`4kbX+H%n>$Uk~MXkNYo&7`C{f^xKNU0!B(hA_Tw-UVm>*F^^ z6}|oFfUPZ{FTxmkBNzo_OqZbvK7kNlqoi3on|nYkg!#b%A3lIa#RTo`fsan_;B5b` z+xvOn-PwKl(E-2z4!-}sYI2B|z_Ck4kQV;Yd2o<+w|AxoX?J^PZjfxts;<(Ut$HI2 z8a9;uCurk1Z8M4?d3QI4gk0mqZzrCs_{g^9`vpdaJhj7%AmV@ZMc4f#i&|vl*mk)* zkmMUn4|y$(N)=VL*9B2_I2~2VFWaS)>F$O?%Z>A@NO|B`fUaaX%3u%RPk_|4yA_gqVU#{8dEF0^G|k;bdD|Zo^jfJqCi9*c=101bf#K9 z3=**h4?3TVL8?vi)LYL{2V`fT#wZyg%crdge3fv9FELeD%A`1!i84#-WyprkMmUg} zGmJjC|3NkXRo*w^Qw5s>fKxEprQQVLaB>n-d}5FvMOT*K$z|4!udY*l$U1s?#vD7q zsi3CLRQwlT|0&q$T0Agtz%pIH;j)P{gBa7ydHf|nlp-=cEVQr%iV+IOzd|k^6_-Bo40Dz~>h*s+&v###`oEo>-JP}mZxzp4 z|F_oveZ%@cyRJ^0eVqE`9xCiZ`zZ+cdI>TK7#Rm6aX*M1UlfIKUP?40axeJLco_r& z5l=seNQ$5js&$gIpGt)!`&i`cQk0R3M0ZdcO@11)G%C4*k_SB^h-Fw17Wc1JbJ>0h zC>tt=)P5@bAxKJBk9`V=Siy|$t8|p$Y&hb`$YefaIw<#8%&{-n6FE z%Au`Iu-#M&7X2xI(!F`gufC?Z$7ZZZb0c*RiZM)nVJ@VG#v`9ehhc%E=tAJ@AVl0v z$Wh;;B(;CJM7Q=2K}3+3C8&29#OERT6(zyo*6cDLfJ7Rl4X04374K4fiK6@k(|>G~ z6(IZw)sGa_l&Bf=9wg8~wLOjEA8|P8))uKuNH=V(7vG=8XarAX*fn!qo*Hs-zxPJ( zR-Ws5X$=g=I-6F=OrTgj#|FM(ymgFCzoBu?(;0zj4~2e+RW!S9D#bYuYnB+p*syC# z-n{ydV4wBr&<+MVf`(FVq7H|#;Wh=1o=(?kYR&4B#@+*Uq4E!hxgKXBfuqL#;oCDR zE4H{=ld|$|YJ;+^&R*lr_F6Y4F9Ot$4yZRE&ucfCZCsn|%B3bhU+EwDU zO^i=1?~Ke9y{=KLnnvrsBkp%(I+vw#^UAG@{02sl>vnb*W@@7FCATk`G%Twl9*7 zJRB7%uU3JYnyO&W;XG_fHP@`}>D)k5Bebj~Qt>I@$l}&C#JrR~(8M zLIJn@PG_QLtbG^Ii7TvaxQu`!xv2XnRm{_IUp zZCohwOp?l?J1|?HheJk*oNl}Al*-ZN5VPkp3kVflo0_KWD7vC^AvIjNm}B8k@`31z zPyNXZWUf)g*x!#LEL>}fk&TddNwTq<+gF&{x-C`uTdJB{3Bo`|aA)@= z$;O~rT7YStKUH12-Sbl!)y%$`l}h&sexGytW3KwK_Us0k)e>?Sl$zleNIuG#+Dq@(c>Uq7-8=3Wg)gG9v(+rHY~xC|n{3r?|rn4e`ovGz8`D1|;uVRr)*QN`r(XIB((HZ+p% zK|J(K*=vZE3gHEk*%n!Ns+^^#4Yv4aE%$s&iAMFph+0E&o&u`RACD3y=I0X#BDzGZ zJ%U2!O2h-Rj$!JJ-f)0u6-BpPERh>y-_5~ls-dxp&^!68czA5%5UM6onZVC|)U6-O zW99!y>IM->VHmnR_XcwR#20fjffM5Y?Cd;$Ve)^wyKDY$CC{4wTl0V4GXJMIpHsTm z7j&;r>7C|+?pEFvazTUL73uEfKF+z%OJ0IS%hq%lOvT~4uExJy&;z?*U;Zz?n3G*` zb0>2;2h%VwpD5#%J_r+&w^BLPyuqS1p&+Vj6aZK#qBy(rBoBdlO*vd1Sym7L8SoN7 z0w5S+eAxoOapzxNAPge(jADss>Q8(ju2Yb}M=VnkOj5a96ET0>QD}t1af^)Fv{{F8 zp~VUMjQtSDXt}iOqY$OY<&3M-1s7<56XddQ@-msF+BKqd&*=ik-R?M3%&;<9GflH( zKqbZr#!^8_`V3Ko5|}a{`z~-y45J9i=0O^VBz{Rd0F2|-Wp;s*2&IU$0^F`cb&V^p zYJd$svf;aq>Q(hADaR3tQiF3gp(w&a>~=stP%-u8h4JusjH5S`@%@Jqz5^f^gIChp zjj)e;g8457roQdg_5|#4dbK`M9HK9oW+AxAK9HP@K413JBri{h>GRJ`O@X0xLyR~FnA=w(@ zNW^3yX|Yb(n^uBiOo9|M*PX7t?Gz4;ZE~k%?Bu4F!amQA#y+<<_7gPFlE|UxN=<(% z$CMku1V5t1%3z1#>jaPW#Hm2sMf(Nao}q#HO*!PMK@+z2emN94e=gDOlr8Y=oZ9>t zp~r=Ns0%(g7m$pcXO8PRzZZlf84`VFK5gh@O@WKd1*lJ#x>KJnb-|?sJb*S3SDSKn zokHp~%oTMEyp1ni=!HCX&LD(C;($gOFczb{9=c0(J2hCArKAg2(DC_z)EBzqRsFGQ ziPH^oUPD8S3QDrwnE*pA8O*881Y)T7qDBL19U+<9mnkpNRZ$_EzOrc z=nbIMYs*fn_stCHSZrx3q}Nf|<4CJ0LC$xnl7N6YNmPyE?yfc&Lz!?*hmb(c6WUON zC~+IGw4dw#_W6Ac%R-w)t5=o}gqI|$pL~J#+?S)2hd~S^Z<^yDDJPGb5%D-8y@j!U zh|JMeC2Go8WLNj%bC-X0#d0Ji??2UIp~1e$MxJ&X+m_TA&IB@mW3Gtn@*C(?GbLP= z_C1f1jlA))>{Ko&Hl#XFpIbNjEj(5Ff1$8g%<)4!ll1@Fomaa4fBWV0=g-&r|5ZF| z{r_73zt;a3vYnuNR{ehxU%sZoq?V`6CTq4zhJn&$*a?P#hp`D5s_4gO5>RJk1Dn4-;5qzF4bC({@L~D%V6)V)A6YF@hYtVOV`IM%4HTm zpNyPmU^WG_sxuXVYl1P0dEpL9+PHR}U4?P>O!CW*HL*{GuHq8iJ`)CQ^#tSX$hcVg zZ8=`JMyD&_6Dr*XSH6Qh4yXK~LR6O_QYx5@G;#)rGAMd~97O#=f>8hBHbum#)jlhb z+N*1bFN(P1AaZFDm-oQd+B(Nm>6z7o=8M!bPh_y<{iSL{6KkS?g3|m}8i!XhizQ|4 z@>?k4&ei1poE-Q@bCx-pc0jKaJT?Yp+QA-VV65MH2loY81y-nt1uL-v*lC=BEo-em zd%jw&|61oiS?B)%8vhmP`@af}e-)+r+-l7AGv{N`|0fsFTZ-OaJ`?VL?!J6s>i=K7 ze6iO5ujEq-o%bIRo{=ih6xo-Y|YY)zF zi0nH0+Hgbg~e+zm5@(m z>HR8D?x!H42h}%83vh^pd$&Zln%Ua`puAsanJbcA{E56&AUJQUrwxvQU(;Z%&0-c) z>1RZluZLKz6noTZdqjw|3i;Y1{|Q~+@%8vxM46r-mMpYZXc`kHb!0WE{1<)XoIKgIus)k21hdLf=@0x zn4bKtoson&A)x3ATtG6~;2+rJ^^VSdJw7<J+rvG_%aRbdE(t=q zl&;GnDU~NC4T(#Os;-8haVO{UzJ0abrUG?eL|)t|x_i5Sd~$wtvVU@L)IU6Wb98=0 zd+wi}9lbvO&)y~n;6H$WQb56=?W3!9l!YO1uYvR39bKKihkbPKY}(sDeSdCk{Pg|# zf-V31=v5nzhD-0|oO z?JJnHa{}4U=@9QGpZK3Kz64uMaF=_YrNF(}$X(?!Z^V5Hv>NOWoD6U)Zi4Pi!X>+tvgV+qP}noY=N)JDG`X+qTiCfA9Bxr%qQ_SO2|h zcki{H`?{}%hD||LTHgLPXNX66E5Ngb1h`rIx{>Exnj!qw$NKzkZdm(7dDUQV356cY zUs%Vu@xdpC0lgQ)=K4V#ME8&vWNsjH2PrP|0g3AlR=(NLWHxfmZA8?9_wF~{L*z8y z0vG>yH89`}M&vPfb_+4Qg8vga8oTy~qGkSikPnF5L2RM8Sm$*Q_;Y`0)4~~7)~@^Q zS<=%3-1l0xr&_s&#)r=)CnZCwQ98XjeIt&gwG*Bt)COgK_&l8%eUyj_ov6cg=*Z@< z=-$Cf4`12Eq2|!`OYHQkXV%GiqbUMyhdKJ%Uy;97+f3w|>BoU8(|4}=uc^anAYR1M zC^SjxoYzjb*MS$~#c|#-zhLNmb2y=sbLrDsaQHh>+#sLl1VrD3BMbBR9d}Se+cJK` z=>1UqEk@Tu1@eNqKe$~lhBF|qz&Lc5xe4b~Cr6u?iR!64_a`6K4-);!#)HnJH+mTf*AQQ zW=i0)&mAkPMi=W6$a8n%sp$c~rLs_`&pAy0oNZKR34MIC|0(2p4x?VJjANxGjpi7L z<=sd&I z7j?zJ2!HmA=xM*k1*VO0Iu8504hn-2ZA*t%1Lo(zE?RK70 zNNio8MC#}PfF2&hy15IK1s_TrB}7sF%BB}eO5hnh*FkMuuu796D(h1ptKl~7GHP== zz0?ak7lZ_PSDIggq7~4(FKbzT*zqn^o@s>I_Oae4-Z597FJp7|bVE0K#+3fRCQ>+3 zf6OVU{KU?$-IpEzVmgyzeE(|lGDk}7c7F=#lhF9{HmeH7WPAubQF;zeG2@PY6v|cM zklQ_KnQ|WXm@eBD4!#$$wg2|?&mq_&N7QP7Ub6l%SRV+;Rdex=@JrLam+#%(@|6wR z?&h~nR!tU;)q*vMDgRG!HlvbfG=~VBD@^5rc-}(vqAKW309aW9=L|NhG0q!g57E3G zB0Shp_-sMFLi$`hTtVgInpMjp9845!7d#n?ds7}!V(6Kk@ddHSuGV<};dYL{U*8tQ zj=w$FVp&K~h2#q^pm5UR%Ka9iI|>8>B~~ZV(`U*qD0!@YIMNp+X1p~3k9fA>N_2f_ z0NOLH8G+&ajY{%xOByWu#bw)Iw4D4ZyLgyBk#aLTED?ed#9J>F`8PH3DAEfGS%BP; zLVf&`L2wV>?c(~C@&`0oA@hFtxWzGcNnU_8L~Sq=gr$=-QgF0-cROS-5izwvpl+~* z#o|F7tz%Sp@RFmomkg{T?(QS#^bKTv07i3`)Z9C(yC}Xz8i}Wv$iBx`lZV(>YqLEW0t* zF`>npw&lO5>Kj}ys_n1W&y=|&pNeu@!>QAY3Wx=-J~yK~K^klqD6?RDX!V4Kb{LEn z20@?Z0R{n0Y-Wy?DE*R5@a4tKVj=y+sGX)CO80^fP(9;l$+e+^{L)p-p7i6i1qfP1 z`M-P3-(ta6l53l44y}bl&xdN}L#TBIR3#ty9^rX-Hc3eN|}jD=U^6SFPT2NpssS%xZ8(rq7y%>MfAt z(UPurUYTrHGMFJ_my#O@sXesuC~?MK9v?0Q7avZSTq%HzC_H%x)&wYHGMww6ve^)n zKat@h=AyQVy2y{}Vn?Razfg9I&^^(|QKS^~;{W8Mn@tBi!odCjLESZG#4CzOMJn86 z02Mb*ZVht$Ao=drGCfg~F$c%zkqL5}{!A>-(>ylrI_m0tHR5#+UgzbLLrBhLC` zPiKC%{|Nmo97<%cMS2oOtq($>ATs2c?Gfbl%+(g>Tf@8m zy-g3x)yrUPe$u@F|4sULUR|sH6>u7&epme^Kv)DgdH>$2)cGCCtv}1lBZnW_HfW9{ zjT5)b$9o3qg-iiT0#63fgA&2ahs~L5foV4^q1X#t6pA#07g(C&Ay5b>OX*9_vk0Pa zxJKGyMSzQ}uy;c0Vb6l=(lJXTD;I2=)606N6d!VS1V|AEIMyoLS$2SjK5MatQk#}I zZL~u*{0j*7V}gjqt^&vR9Ov#2v@){Bv=Rnum){<2_bCf?{KpFMVf+l^D1P+n0v^EC z1r5%^GjN6z^bIUOEldSS5J(Rtg?8^OR#J`r0-6Ep|<1S zWf1Ct26B=dY7oe37}J>M)~qSb-9(jeaKh7O{y-lF2u0_r1N_qQ z#J-iXldqJ*Gi*sM=vY>md5PK@L2xs)h{gj zu0+Z!$M{Dzrc?;kSU93S&H@~9b^rMfy{k@ zCWSNy2N;19A!d+c9jdi8mNYSI=bQ2QNE7aXC8vWQDCYE&@{7s^KxDI-JOnh;0I;>@ zr#cRJJ|Bwue{!9wcLC{7b<)BdCP1ecnTE1EDfr(hGm93;2yYeYwN%{g8)?`0_wl^* z2Yu`#!tYQ2-iN_QfY+PV6`&>4-1oa~24Mg6ss0zT8PNcqF^EY5Ttw@mYy=EL;=)`a zpvZ&DlS?rDD9=XU_SX~-B}G+S29XfrEjQKl5=trh^sxImc%e5seVXL48gDJ$q>OL7iux3 ze?pHui%cVPPIE?tYa-_1%u;ezW~#C0Px#6Ew#zaB2Ne#+*>u%lnf-vCOBXj8K;20l zP%OMdlgkchI|lTce$QODsb1kwSniY6)pKw9mO78SlT*coa%NrXvDW2ExGQj@m~~lZ zD`P%@XokIvI9--VKfXtpKfJ_?&8K|$tUiTI+&*ZGB~I?|pvX6BGy0>vc2`@V(0%`; z)eOe@BtQMmihaZV$t99Mqhit8jHe#|DqE)<5aD7^b0cuGD1Du~2 zju=m3xZy*h%nz6gltee8+;Xga3o1K~rhT7D=Z9llA z=48)7D8~wY?{oA2HH51#(>CAlx6X^U{gvE8gr1P%)-5Y^@J+i<&5u*?`3(bpaL=)5 zu|^KzXefo#y|}gJ=)M`Nig#4$!}AVjgP=&T2EqlN?J=sTmbIm36)7!UyAPB)DA_tL zq-h+*&5fK=Njl6!CST^ll=r9P7isS#P?Y>cfg+9#qXH$1qTY%2xn<@V0r84R(P(wdCkEdIiZ8edPE~t8zT1 z7|zi8g*_tDP#&pzG4+$x`%H_gf~1P$Rk0nmTM>CCrs3vzi#yYE2p~y>QP~Q{KW-qE4x|9?KX&AH5rYN2K)QG35P zGG@8MqUQ;X>=eC}bhr6oayxp=JrjOr6#DwImuyW#{chc?Zy(b%)b1rb5gk52M9=KJ z^u+yN=7&2NpG#z7K!Ps*+fuoTc2&SQ(MV@y4nrZ`u2*7jnn42aFf6@<23J_xdipjSUBbCHMw!PzrQ&>@yf7U8(%a5^>R6v<*Z==HK4Vc6f5@W@tgQ@UbYGO~pBS;d_&{)lAy~P?FHNKU0pdr6}{i>?o-1Y<0 z_Ym!hvR=Q5#3WB%^A2xv-(?me1Socx6b@QJ^Lg&Ro0jm8pCO_Km^;`IaaO>fL=Nvua4K)%B9+2HIr3rMUc}H z%wLse9B*=I6D~hH$2R!9N8*zDDc|t^IW|-c-I{&DvWnk$eTmwAU9ckUWOiNx3yvvX zP5^VgL!$8LRQLF%D`}efgY4)@TDfS@dId$j7?+ucgo-bOnioFNz2nuU+;NGzjFNzl z;ETx7*|W>dU;WwFX6IFTS$c0)4yOM{xak8C=?RX5PTcnn-rhxo;Oazl04rj_K?f|fdw5Eddk92GIhQF)= zPvHBoL(yA=`2i@D@PXjTM0s7$E#1iGe)>M=@~i&crLwk$16Q}9R?y??k7M)w}z~`RNpKX0#CRT@_8W-(OamswBS)KRm33s`2c$XgL z!JK>9x#!RiGU@U>Fg*?2yGCWaR3{DY3j{b1tc(`=W)aewhxt@)JxpuTOGy}#Jgn{p`)s7Rt5Ij)QwA9^ANx@e!39TFf5 zkch$&kbW~0%~fEB`P9Xj(hfahgK5)cR{T{|g!3H7Xp@UM)>_|N(mZapXJtv#E5;Wl zAw+xh<ekSrCC(qk#NiTK5KS_BlE@zK1#PsvuFIuiCs%nH-dJiWytoEmepa=Abh&)Fm$WZ^o7o!ct1C{`#O>>I$4rluS~4XR`w#P?6P?O%qX z-wmj76q|3ODzHwPsrb!07uBCYAq{8fR#b37kY95(!c1QMPKg+ogRcH*BVg*^_=^)1 z)YxMTbpteLI51ooKjmef)oj9~ZmDM52;nO%;0NjNU69Z=B0*!Hp-0d`3dpm8f%{)Y zAt~r6S;PRS^ny6=i-@gf_}!4VPN3<(xSn)7;?WZMA51Uw9JWpqX2B>21S!*RUIcIm zOR(Vhl5_)KgLgS7$ODCoML|?<-_oOv8t4bN*6)9U5ZQ!3eK9hp5{09#s#gU*pH447 z+udDO`?|n2@r#N@T!ATYIPjOatvKVBSsxtdz=#0~=itPZrF_fV*9|y3y*xbqEFVGp zEil?4YINAJf#RaTTAAu0WX&2pI?$E0G6L9Mctm|8lo7O6;qrA~^>=sk@M#2?)j5{s z&dcZWy54X`@3WxvNIbGY3(;#5`gW(6UG@Y(z+8)jgK)+CLNurT6<=eQdyuQX9KJl? zm$@rv`{1Q#_&`JLpBn%^;7~yF(W`k3!?oAyo0kwcnBCH};I)1Jxm8H+GUTu{My(Pq zrI!;#c(^uV32BNVtvr5DnQ7Wj;K1|D7Wn`!f_(o0L9U)$vHE%YL1CcQ$}AHIc_&q| zcr7LQcJvo5IuD=V%lrn(1&uPl03Pb|rwzbx*~5ABmjDkp4_eD4y7K+QHX(0RtB`}= zn*Y~?pP)`Z<*q5UgKs?yN8m4z7%=RkjkwRO?JGjDI#GTn&1q0??|$kN97eT)YzI@- z*Fvs$T=Wy`JmwByoKA?Vtqo;y?bh_x1uIeUfLzi)NBiY#-=%Z?AXAcA$tK_ntl?zT(fe7Mv3?lAXS zC50}a06%3f-&X(I2|eS9|DEijm$-Zt03ROBNp$0^pcm7fUgb5dKeY9PtXb6IUd-z| z@=8dvApoWn(+saL0}$i}O$|o_nz(Xz`6Bls$<%0I^k`u| z=FfREZvdi7)>Fn(PKw3f<(pNHE;^Y8HvYLH2oQNkmvlt+YL7-6_Dkd0y7kU7__w>W zd&oodQXI>nRZiTrulc59&|d_GiB>fNput42qY-B|g9ZWJ+KeIr9+JpqB!6g-JVBM< z_d_~bW(SRjJB?3rmKXrclwhY50y}F5-vNi+j*1D!4&hl(_^k;+EP(hN~ACH~f@2fOiKrebI*xH5j}qE=RnWWj>z6@i%;LJC|o`7IP=81jj^&|&4=E?RIL2;)eRAXOM{gjREDAcgyNI({|+ z%Ju8K$KTlw1&yo8zv9m4)65+gH7zyuE#<5LEZd3OZBJFN{BWrA%B=%G8k|$Q*qixi zpS#CqVXT*)oc;&PPrKm1{CiC%^P0w5nqG}Rn0SjP_{U0=bth6w3dd&V)+SJ0_@$6> z_Ga^H4VzNetawvCDwa)bUicv22$D~yIQQ~!Bu`fVz(}$B9hjCa%y9%Rf6}-Q6b+qp zI4Wd~myi@}-#gVS*gKQp;)bY-ivYF5%s#*Sp$C|LZh@V8rt5b}Gb<#GJb=;H6dkxE zf%s74!AHHX;C3IxH2k55b7Oa<<>HRr+9xCNO0Ju%jNDPIyE+dT>}b9%M%)uP-w zHfID`OT2NyqvD6rS<+bZ?*5RiU1bcDyog9RCrzM1)9u?gj%((__oR}O{J^D5BM#%Y zT+mw&4HmEz_|tHM$*6OEFV9vWS3PpT-8+tpYM|-(cZa-}uC=AI_Tb-Sp}V$F*8S+( zX9lBg+f(wrRF?CNk1um-=Tl5+TGLC6m^Ft02-yR#$mnFeTy_Yo_$OH}+fKR^>UZYP zqTydFJzsw!Df6(5O z3t<|~$3r-96}H^>9^x2JuOn)5SlU4kHNTxPi}srWAnhY5tgg?2)W{E}Ho`9`WqT2% zp7UQc-TB^A(){^?B|#^2(!V+Kc!hDD2Fx=1(+LCwVR;a_1bDnZNYQ#-c$dXjFvEqi zAYlu*wn<2D`P#z-VR8MHL*rqFe}C{Y{zcSi2uhL-z~J4;1}8Rqjh2)d<_%`a%y6|> z()n}A$eA2PkY+<&w{Ba-oY9vRzk);beS7pVt8VWm};m6=*h zX0f(re1)n>#ZD!olQ}SD%8BT|6BF=x?Mll0FgkCYtc!L9rekTv$yaSKI6`N)m>=bE zJg-YtTd3tq-&8+evjyW6h0-;$?mg?fCNoM9g|M-Yz2bU#s9pb@&TG8?G#tE@xe@PW zuRcX3q{U-4)|r=cm4}y-KnyO1yC#?z(u)dFZ4k?paD4}XQv;P+TDQFY?2Zm?ZsYo@ zJkO$kW%LrxxXi4rjv5MC;;*qo>8`Z*pWgp7EI-{gd+U;3R3l~C5pqr&AL~iRsuhrd z>Y>0Ij(7~xFxvIICvtQKal|;!V?lOfwv@ZsW>F0&oN{|irxuJHCZF3yokOD~tC4oG z&bGiex7|s$(mNxfuN<>il9c!{d%vrg@*T=P?i*BNOOr=~4Fq?o9U|SX?(1r0==oyA zZb7+QJ=QJNW*BT7W%Wh?e5@)iWeBS05nW^I)dt20b zot^7YU+l8pHNd#JA7|hnV+E?mX(+l3y0}&|2kCayqe+aiD%S_2AOWgLW=>LPk%{RH` z?iL$xFma+ZX_1{MQ zr4v(*rmT%7LCzycoN+qQ?x(YTSIbwTuJgQ;!gr!B5lTe!(+yEdLB#{&QRbr&jTPZ; zL@`VMn@@;zFFjoqrGLo_}8wC|{D}fGEp7b&%tAlF9GRvY>L0P8i z+|<~^=-{{} z(+P!;Zt7{uWlj3l#VhP`$|>^OZ0(mwq!90eMu0R>PBSa?EHtLloD5ZUL#h^cFPjPwf}@h4 z2j|4>tCGbOcXC=Fe)#kfJfVa;^|f+)*Lx&Ru7)iI7mq8RJ3G@|m}kiI0dDrFj7s5N zXaXLw28c5?(aTQ&?mTsRJ#0YZK~CB)pymJrNGR$*0Cu)Il-$F^?Lxf)faE(=&Z@_t8pTcV2mEybbBeWD&7iJINJ#eSH<@7Y-s zY5ikkb3Ftg!P?JT0i z^k1U)o(0ZNO+O6t%xcd7l49re(Zl)mf4ef*+-3I9aq{@aS{Ow-Yn(v2E{D<4pV#&A zEFhK8!_XxIwHd;KMk)T|#20Gh|L@-PgD*F^mwohX+uuwhJ|%Mh+a=6zV238zacTgT zPTS#sEHZgKn>}k-K~99%T0e0SlG;NQ1w;=}CSV@vWrZ7n@cV$+{WF$N6F&{O={w1z z7pCW5H+1U1Y4t%lj<`%|p#ix2_pO`^G<@*7U*$f`?Unvboqf3l1;7+^55Lcy1;ruC zg(b!ujj*?ApSZhe|C8QrUn&Cl2ZswjVt!~wz^0}$pp=Ms6AJi!p8B{%W5lz%GV(VO zC9H7WMco5`5hebgr@YQI;a=zxyzW*iFpHFS`R9z~OC9rz&515HJ+CA?We$f%zVDjcq0q zU0BY8s3O|5+~wl#8@^9<4J>j$<)y_Sgb*&XW-H=Yycd#ywjFO|)yP=pl0eOF-fr~w ziq6F!Jr|1u;kpblLdXo)?5G|c6Z8DH4AS`A*}vAx20KP>8M7xl)>w0urr5NHQ{UJ#!qY*qX_3j8lCad0AM+*8D3?rp9V4sBh=0pJvO{sasY)dk(T=okNI^LpDg=+Z zmZ-}yj5KfR%uZJ}Q9TDb&+|O7K7|5DQZf?l-!<=SXPLNtRTzi*(z~AUq&sfS_ORo+ z8SOGA?eTp)C;_^qoEfCe!1BbTv@EFKp*(I6@9cv_i|%gn>D!^<^jdVx%{Y$ia+qJg zY>2TExR!5qX0)%4ZjA-*761%+uh z7vU>$!*1(m)#+kT7P>?#y#4TsY8Pb}-fdwwN>$wO1|Tzn8WoChcob`As8Uu2iL_`M zK1FrJi6z9fFG1!Rl2ym^GVgFfR(=4=czco^OIX@-4`>9*;1+s@`xuswL;7)Ql( zx6Y4p(H-0&j+SK~@nC4Gbm$EMHg>*C{|*be+Nw8>MH)egli`sPjhadV_QVXlImky* zTmSj@@6BZuJrs$@yi&yI9kjdJL>;upNo4MBh}Qd&E{X)rSHx-+3LK@TWmk2n{L^k3 zw%jPhjv!(t0!NxDIwdiwfpJvf_1a%M0jI}GFPHI9B7WrYwlBIQGmSGo#9pT(^9ab8 zI1u-z03wxm-vS$TZojMnc`3ZWj~2iT=QTk2X!pS&_oJ|=W#fCD`5>YF%6TAJCnoRY zt!opaWQ=}w`)ssti@Dp;Qhr?;JB&dJH5)mLNgJ&>`ilM6{LW6>XbNXca#u;$P)hb* z$SN&_ZdJXZVf#w&*To5*=lL68GfLVl(ePSFXfRug2KcCIbJugt#rp=#==XRu90P#4 z{TqNC0El@2c(v#Jara+p5B3bACos8%_=tEQuPo|X8quf8s#XV2J@a7*jYXxVtS#gw zvDP%9kD?=rn%wu&Z53dZG^(=XN(co8uOFC1jVElaKPSvVM{*Zd9bNt|qB*3B@@CL8 zK15%+fYoui8n$8}eRS?cP+GkF2I?5hk$p@BtzT}uZ?5}F)k-S6e@gc5T=!+ zg~q9J5QO6X4UlfTrNA~fMm9Zw^ZG_SyyPvSs))ttCx$1w|Qj$xzJC;A0|D2`Gkib&4XE9GSL`2Z3&~LH;f_ zxnH#x->f&BZM7u@hPwr{&2Su!(Ii4bzu)z+>x(zlsbHYmeEE}nDeAyE)fb)df1hEy#Lsh**4$@=&v`?lw>I&%W+2@%pMX`2Q;8LacR%S9In6*FHg>O1I2OCGGW9QIS-aB8Nf~y}jB(8j zvsJy6j0`Ey3>p+yME6`8`Nq)4zNdHp3EgY%!9clNfajX$+xQ~DUC(X#|HZ&(2z!H0 zIdUo4@)uP2 z_&nR*b3iH9cY7ArcjU2Ddd+u=?y0ehai3%|Z4c*#eRL7Y;g87`)$0@Q!YF{mEuFS@ zo`L(@{$y$5r1Z0|>EUxp>sx=QDHX7C4``zUFk<$mNukgtS0M=Tw#o42h}fo-t;|2B zQORlxcjo^5nR}gwfBoXm#+$ObdqW5Wb( z7qH+|D!sFp4CVNK9S>Q?6zHF0K>EU+q%||!KPf-G?JOx~r_hS+Ci)LNvJIDO+cJ@OL)?pj_<1RVUMHw>Wsc+?Hghd;l9pVuCQKx243s9lqmvg-YenrU zxYQq{Q<6JhdK`57+QkOyQkjPqLg5-tk2GjR71S3CM_>46%}SmTsS01)91MOTbQLtO zpGmO6_jLJM^e|CW-NTqBJiwEU`GSjrHr5y{wdDK*wORQ>gI>Qab4oWf*B18+iPefB z9?C88yR50p`qaNw-(~qlK>fb@Nx=GRrmY$Yjn}bFi4>7GVSW%@Y;F-@H?4p# zgme{7?4Xmz!nk`dvb_^nL295v9U|%BHj>v6&1gTUtm8~GY zSeW@lk7ZoD#lHhYqWW^!G4avl(wsbt9#T9vs3OcA=6*RXvIC!5hOer^&~k$`&< zPe757>&oFuq0&DJiSf_~`O1~$>_X;VwDCOpg+R@egg5+kZ!8cf4~VKVDy>n{)f&{$ z%~M`F`#3oA73n5xPp^Q|Mb>^hs@^bP`0e8f8(~!Ns*oW}ftD;yV$;;2G!+7yp)1@_ zpfp^k0E7TKtJUm5$K7ev8a36*9qX(0gP)Dg95WpnE>38@&z}VTKZuCHa5+U(gT9f(jliEk0DaMaGoJ<_0v5)h z?zI1N*UAhU8e9=+^!>3T{*n2 zA(DdCxs*R_EZYAh0x~>R$Xq| zr-0k?oq*Z{(;Hy`xdjN9Ku6dim z3=>7We${mt2W^8NhpUQqS0;cf#TysEu0!c;m22wa)ANI65tEG>c?Z zG^uc{_jhn{>s7B+*gr`T2yQ2YBHMDt|9F9DCMpX|HXw`2k#3|MGS(!cq+ z8%FKW`qKajdz!KFFvim+Di{u8buBs80HRfz`7b?;{grXP(!QQ?6ahwlg8P1utt%$; z5wgK(S#X*4bpTY=Mspi2gOO$*#-F?;H}*7KW3I9r#E)?C9`Md&U-F^V27@XsA9zNEsIvn`aT{I> z&!0$*d-oQ{!y7eB!_R9+5v)9x+-tgqp(#F`CRt5A6JvpCbeFc~EgBX2+C6Jd^-EoA z^LbEVYu{(&ZqeN>G32T}*DJgU_-1XTLwd~24n%76C~baLx8;97^H9aHqIvk?Y8fJH zln*W%nObqp1%50qldiMPjhc%wYO~!@-&xga>|5JtL2|6cOMmEmfzz=zzdnkU&k(5j zXmYZa;WgSNRn(7GPZB6MsUA0sX~a7!R!xRobh@=D$uGoeu*smQlDE`ST(iT56*a@* zyLXY+O3_VV4B;y~f%3V@Q>T?_r3o+*3lLu6AkN7P9{!lSjl#7G5+*B5@8?3cDjC1C z15to?U!P03+?PLe3_1d%bpl~}l94UY?e5EShwQ5^nGhnQP-XZ@4Ymnu8{@?N+wV_< z{5_$PjX7g2uxx~mU+5zIw3R#ft!xj7s*gLB$KaE?sZnL>Ll*-EE!Ql4Z6cU_; zj!;Mb3!woB#U{i)@XCN-f%J1`$Z6U=3 zrCbvH5Rerwpnell#PzVL>JdGI&XQbWosE}Xw;i=)2vk-wkS!9JkPTubx60dWV@sMz zP3Sd>3>mMcciOANdbifMz+BI!(+=;*1kozd%oM3pNB{b`4s1$VLU3LhXqJ|`TLTZ6 z0!|&2_yrP843?flyG&1@va|pX4sU&K`nFl`c~@IoC&0x9O>WD#c@04G!e7KK@-6xI z6ozGBYH>gYe=<;vC9od9Y+W;iD(#GGRY>7pX z@$dT;@~R6mm`*+(fXXX&25tIJ){sTyfgB{03~=SvD*JY$3Y^@Ulh3?=-;nkJer;Us zJZfS*@%o4dc|ni)7# zx~q~sLSDfeAS1sDh=)&jo*?AeCA?gVFD&O38sRF;=D3pPwjvN4rA>GZPrF}c**=KB zJH*IXW|9ydol6Crc?D*b2uiHCxci=@UW{wTSqglC;j{t4j-$Vz9$?dr5w;q0AFQPv z#J7=2P;My$fB9Lg6!|-|>}LzZ)dDv7pCj%or+%z`(+ZE-A|tGAN!4^9dow`*DU}!d z=@(pWC0-2`4rFw_wJ0tz7@33}B@haAJ?TROJLcb=fQ7fb*lrLSx0^no%?3Ni2>%*} z*wz#j`nkuANZS;TlRlRJn?|!#}IP4EH3lB5?sL&dwdcC6UtSGYa5qz5jMUD@k z6XImPS2_ehhjBs1{NlHL@%%GIx9tPP(1;GSA9`4hBgy10S{5o+@nDZL_}D@D4V3A9 zOXs_v35}zQMNIw#wMqoMOh+kwmZ^7Ld@|B{E3BD{rsj^uxkya64+eb-8N6`%BB;f4aFsq z8>LS>_>>(Vp(RK@7=-`DSS?uj` zjj0%Ww$QyOoW=!Hwe9NIwvk>I^@bM-GC};ed}m&Dp}ObNeVz%oeHpr$F13<^fngE! zCW}|yc{XpR=$-5V0lh$sIPTDVkror?z{eU6Jl`;~5$lo3G$A9WmOB^br;F`Y(=NV< zWs}Y&ohz~5Xk!(qqlK(@by(1%P16|8o?q$UC&{MkAGJJ*E2f>Eww2K z9sUm#0b{TNB!du1*7y=%qXUGWzuVozwLW$P`PS%qOj~hz|7>5CHzMtU$N4r`01X)Q zAKfxG7I-I!`b7|s0qo7ojL-dB+uZeQo&>5qmf!PQzE8B505;GkSRfp*tbJ+ZFp=}O zshS@!?Y{|%t73kD1V!0E*NRgKJ_1m%%?)w?5i31{gKR;NnMyz(fZTdmqm%U)uVB6+ z0CnV=r%eH+r*$$AX>fP(Oo#|Xr!kS3+IV=a7Kd~s(`-)f&h8sqt*>Zu7n%&?CJ;|V zDC1~a>5jCStoSbl;s;zk^c_v?p4+|Qb5%Iui<_A(kl9#jrPAKRehHHg$oB~XX;!vG zsumkLwy@U*{~@3g0>i62D|!LhwfJU|$Ozus&~KX9B7YAILmpPdIY%cnkc~qFO_W!R zDGak+*e}+xOSeyBfVF>uC7!Y$=dlepa&bR@mTdiRwn!yi#VI8!tz|9RDZ_cJXp?&WE6q;?w`Q zt*N}s>!<19uoiDow(VP`#pa1M%OQK87zNo8LP$dAocqtX9URGXTe$bi{9C{A z{`JSu1dpGQk@mV!w{s=JrY##~`ayw7JtBA|By7O>6n)6icOFzKGep4Tx%M_iOlSM@ z_|D3WIBMfpdtwYzcYr?`XR$D)Y!lg)rEC|&E$-;mf5)orSV-WRX8mE|f>%@$*qtDR zjw;`IPujIGl9U4(VVa(x9WU#AGKXI>jCUE>>IvACQdx3R&ad@TJBAj;^MN}6V>Y+> zE7xK?{*Zt!dRAvM`vX{H79}M3@+@3-F5}sG(^^IyT+*AON;<(=YH-f}O&hIYpcw&m zH8gK5Itg|)qQ1-jG$io!F5pH_M+KisImwVGt{MFV1=~={Vo1Ok!tML* z%MHy3;JZYH3z!e6XrEI0tj?4WYX=*QmB!Q{p63mO*M)b_c0A+0amZvZiFEQB+8-xl zxm|M!8hX4hkZT@I-{p6(3GMWVz@wSV6d>9+U-n+CGBMLiQx#94B3{z+HLPUpUqLzU& zV*5corJv9Ot`>zyZ^Q4;dwmwgaAyw|!TZsrY86s0Jh z=k5%b)3#G}j$c)c+MkulU08kG_@m<6p2xfyJjm6f02w-W!W50; z9}&ccIxKPq$k;OGi*RE@P|e{L>*$FlX=1(t1iS&A+pRJ5hzEd~PFR(*?U*i6sr!Z{ z88g4y8n$g&e1TNfoHffAd~?M8@PGTD z8o-x1ok~{V-)#W;Jv^=97rUU2Zou2ak2J0G9b#w@pquI%i{F1QJL@%7+oecmQuYS~3s zgytG*U%iMxTOnc@J0m*3q-4ZJoyP|-cmk0Vydrq-X(2+S>e$fVl#Uvvm&EHaen&_W zs8*>j!KI)aoa)Z1<6N}%bg;KdrJ zn#bR(s_S(M%$}W^cLCj`n;MdSn4#WdmXk>2qZKWiH7nttm1=>GJ(gCtbxz=W8aamU z#QhB@7oYVN>4@+zcv!b`h5rsjf-TR+cdvWh5zhr}Bl&LYS*aTaw7P#}eeQ^NaNPCD ze%hk}s&WC(34;BlNxKC6u&=j@ZBGl{c#wm~8tt;>w$60;>ku2?)WNpa;hp?_7r(N~ z4)cC(w)}DPJsY~^j{W!u0xe@Cv|kU&`X2CI*H3ifRLqr4Hg6)~7)aS45%6|6BBV38 ztMdoDN$aTw?Bpd-l`72L6ntnX0*cz&+Vr0RFYfO@KJb8Nt?J0n;!GEdAn)RYy{Qk$ zj&R5HPvq|J;>!QI)s|m$EGLmKp+lCKlt3@A{5M>gP3n=%{l`Jf9(obR{rZ5+hEEVC z#Vx1Bhr0#$Wxk!7v>QZ(L+e88||>>IxA zi&qz%fELOD82h=A$G24oqI}$z#Qej`$?25Es^H1rricHE$A?#l-L5_?om>KMdokVM z2#>xlGWq#6D)PQXS!<&NsI2&+R1_LH3|S}y!tgMVbc&!7pkZPR5r=lv=7t2n>GcjO z&wCf?Q31_Y&J_Gsm3RPXtWowZ^}jaL zJ`yA|-1=Dbe5TJk9l^K)TP)T#6(zLQRF^7f{fSfxm&B=(OE{AS`IrC0**6Af5_I7v z+1R#i+qUgwW81cEZEV}g8*IF>HXGYE-<$8d`g`kEP0dtI^;B2abf2z1=YbEf$$aPn z_qM!<9}P!QSXyjT`loKGo|QZ*YZ2&(N|!s-jL9T$^p4YKlKW$1UGJ)PAKb}BY*@d2 zBw3EA8`MS0OIU&f8P2U76I5OSa!Dj|BWsp?8eUZxB{yZa>1sagjdcl#;Yrq`P|>3PD{30Aa?lrU+z#&v zcXo~Mh{kgkI9uKvNG?Q*b6yl_jYvv!FWPAVT3E6u68kC*l5&R%j>W(px}7-W z!0AuLGLFPUx-!t74LalKrfqXRo6Ax1Qfv|VV(h2cIHT1pFf%*ps9+=+S-K1mg+I&} zV9J$?!!gd%$o+%tA!gyawf$sWRpbL8wyHxJOxRc7rj3xlo4GC@fgTL_EhurOxwQE{P{H}6aS=8F>d z`qTM3(wS}H$+3n$n1&{j0^gW8e;FsyNS&naZyiz+!P9VWI$S|ncDOB~@nC%+W5bD9 zqt}TPwM#y_RIij`f|y2n3pN}DLp86D3%eTB$)XUXh>D-ez;?Rxl(Pd8CO(#&j9JA| zNbUihi{27o=8{J(hilo}4SA8`{?-D$1UECT3KwZt%T6^e6V6Hc({HFK@w} zL(HjD+gnR@sj{9h(V3mr+hLcjfSe~apd%WZkQdI95R~B1^?~TpxyL{MSIPyWQ<@5* zm^`0Vg&uPNa6*qEp$I8H4<(16r5tAsP8Fh@9GyVdTuV!SL`v4=q{EFtN~IbGPE7WQ zXY*Eep!P3jxlO;+6Q5JH7z}D1)sX~4gi&}>ERp3#u1@j`9=`!u;b4Zih+k7I5mZiG zHZ<>$G^Ygn-ge^6tB3$6Jr6#ZaT-`mw1l{uf4qP}eCoL*=os@?ygM7_qW zL(1cYbIhqU?><5kFCND-yGtKu=9e>a7&#oyY&s^D{2h4)uAyu*zEs4A15V<-a@XMML3HrrLx`MN8FP~TVZGmB5AHJ!^A>Ol+y}tR-?6T61=Je@)QKC+y;X) zi+=d?#5r=J3S|7(=$@)W>6I8xQgoR0n@82J8Caps`sYm|c|ROg&|3H9=WsIQpN)(? zzKw6R=$B6EbtQ_yV9b&2i`3(nv-_}(QW0}@@xXNRL7^|KIJ2b%5=lggD@%Z7&XZo{ zl%sc`b=01nds+rCs>uqltyeN%e4kgdTL;heUT>NeGc%$?9gN@jH*Ty=RrS2d-c+p^E zvWmHRMv4lJ2e^WXiZe~Fur4!E`P8#VlaUxaVLkk5P10EFFrAG|NGy*?X56(@u;e(d zpKwz*ZcQ19n_Pto*6njN8y>)bV~|b9XzE0ahQ1@3`%i*TG30dve(H}De2xt#nJfmK zTCqxY9E+|D7}H7?rnh8`>VgQP3XgAuW+OAKUKE?0A7&3P8NYh1@v7AE???DoPKXVc zc3Lc0ZP|DSwLK}hR{kv1D$bOoBWJ1kZ*R2w|lmP6(Zu3aqXKs6|` zO=CO!rbEV?LC$-LoLu&Pq#ChNAcNNfvSvn3jV1-9+59Pz{#1n@hvYpXYtJ*SJHy{!Eoh~`T;?&s` zYoio!3s2FfAUTI9?jg#f&VRMY!Td`#;M?j23({?^CJ(P$sq<*I=B4d2uPsyk#v7wG zLyaaRfK%(W&4Gm{K4ft4SRXLPTM3uF!ZGlIqMmPOX|+j@Wgm7nVRqNUDi}R!yB|<% zI9~V^T$|=tbHEL_K}&KJsjtq76D>bi(5Diuogj>7vZzUB>$j^hUzcKo&WY!vGD=rI z>rI;P$VXpETVqX%$Xn(PtkqGl*lK0BLI#CZgA(K|2a~57I@A*~ zWxQqWh&4X#S7-sp^>q9PvuJCCUMQH}h>HKGnzH(xb6VWnr6Z@qqnc9CIkbXBahX$T zOhLD{&}7v@if0+4dVqM(9dnBEWba__urXB8sKAG+Vs=(ZF%Z8WH{Z~0u4eajK6ZF9 zc9=-fFkk-zLHgu%V&v4RbO8#{9nUiI7>i2E(U35|q=oC)vO!9W!d|15nKZd|S$q;z zgyak)8OIzWV*;Xr#*(H&RUi^nNg1(UwGa@p&-RtSLXk`_17hB}Jh$Vo=|BcxpT)=mqma5qQ-Abphi@ zvh|YFiE#u)475~MO;%Uho~EW)zSGDYgxyib*ufd1!h;#F-|{0izX2{9m-56R6Ywr@zYyy*SBiKi_K8%{E>M!cNie95+!?>m_r%=ge``XW zDAS&3NaZ;U^Da7jiIGV2&Y$9mD#wGTZWQKf(e3yW5kRU^O4DP{(D@3|gSWL%2Sk|a zO-{Ap((B_ou<2Sco638O3@+-xwujDQ{A4E?P~wID5vI%m0+~$9Re2QPTF8e=#ols0 zFX>43gU@7N+P6s9@l>{*jKc`SMy0|L_dO;?wKMYN1fnNBBZ-xQVF;u^ad_l~xP&4) z&njxU%Uv5huk)?ltP}zd!b@b4rkEN+iiuwW5yz^au{HZd{MNE-XW0j8L!RD2l$AuL zvOlYd+Ro{hDd7()*2%UJlcqe^nOLjrCwx;9=*%f8J{3N9z^zw(dc29SYjiMJg=RLu zy>ea!kAXfWD6(QqwVtzVaPWS(rDgZ@cESkC1$Iy`seHb-s5{&bvT);{Hmc}}$utr# zZ+!8E0<#TA3Cga`YDe=CZ#YH6lP75kI0{0bD4FYZ z@S54CQvZjCEQ;;FexR1|IirAoqQ-Th*|Zk)iK10|dfctnrUPOysr`=GL3~JI7>cbH3>bs&+@wm1N>R@c*8WY#(V3peu9CKTVNY@s`1VJ zp{w@OS#8x-g*F@*Yrmz?)oJv;P68-2<^-myiCZ%w`m38`&dWYd_Gk<01F#-7lvU!7 z)nsdfz}i|TCo>ftw)E+ka)FM|8vK4lbhE%qd#!um_dz@N131>1U+Ag;dIAw`;>JGA zZ`-yN@c5+e@?n+07&X2nzyZNm!Jd0)DrDRwppArBb3G%CF2*ZD*{w~{>shwP9R0WM zgtD52nqZY+-$~ZbnQhZ&&ZA>)y5x3<&BgGt8UTjEEb2FRM6ZYC5)y-=IJ<3 zYW5GGb|B4Qp*-jsL-l&vpbK$>pQVSKJ4Eu`<7{)d<)NdVa!GBRCpHPJ3~p1GaHm(b zl4M%(VTGT(mnds-Ne4xR63T8ia^7KHlt|5C5y}OeM0o_1j}50{!f`p|p5~O;@$fu^ zPfP;~Z)#t@vj^98;gKhkVS?FkWJx9i62kS8hl#RNxK&%ebPSj^O!_uCJhO1>RpHGTUot#vdWxnjs{mSdWYkmnOx%&RtOfplE;J!u(;$P&X!^x9% z4sDFs_(4Cy^Q8ZZh{_FjV4jx=FZXn;VoF|X?S>y5{X&{1?84cLtg3vU6V7zkoTTuo5qaO}Nj+c@e z06pmCX%r+H)kv$325PKm7iy~tGPj!RHp#;6#BS8z-5uiUK*3ENS&?EF$rKq`vU_;C zTeHij2iwN|`fzq8%lQm0a7-_`{?#8CsqGT$O|4sp#&cgJJE{st82-C-y~0I;b~X54 zbX|l@G`U$a3!}zw;j?*ya4r8?t%kUz2DbG{qe7Gx-*;FFU1vfxYVceZxAfaQ{VLW3 ztt;k+Ifi&rCjp+(vO^!`<8epHq~oP^0WWOnQRecW(ka1$+&G#YYFgM^ zKX@1FK@Tq{EVxCsoxoPoU&=%KS<(*c>q}sBGBhlWe>PcC>NF4nB?{E@_+(9CZ7uaEIBYw zUwZ_I^tQfyPvq106#*0)ZQBLneF1iX5J0VTOT&NnFyz~j!_bhG_RZIf%W|1#Nnp07 zZF&i*Vgwk4emFmt9L=kFE?-!}!JYG`59}xOG=2_E!u^{iF3|WSIP(_?B>T~NPxdJ- zqrL~^bN>QP{0T((0&H*B-2lI42ERL;{J$Lnpx`27+Klo;1HXL^fIV=Jz}X34hi~66 zT;TTh+RgW#!TAw54CMMSx&=n6Z`<>@>M8r};6ENMi9`x1sJN(&;zzPDJUx_aN9m0Y zgXW0fB-p=;V_~4*g2X4xAQ^d=U`1{{Z3UbY8C=-a2PV~!1D|s)0ZOP}wi7_v&*#gn z!L6f@)$gSAT_72d>s#6E!;$lg&)IC|YLzg9pO{3HUm16N z@*{CG2G{`zZ0uPB-cqkhemNchCBLw~j3z*k5P&sueuASSpY@EIp+729X$pp$cEyFh z7Hs|2zQ+hw#MS41|K}i~qJyUX1`cz5pYDSRY2~-k`fj z+VZc*?M<^_{PaCR3=+>9qwKd z{*sU|%Q!45587Pk3c#oTF1kmzL%Vbl;FnF{`tzydalj`IKO#Ekubv$FL{iz53+0@} zqn^9d7Nm&fYoG1MRebY?>)y8}?LMXN_UG58jj(?XK%Ki<1Q|UE!7^>1JNyA(SBX+U8%;ygRhOK!8y^@cGHZgX?YER3Gotu>@%U0N}U- zl(Ng{cx9PAD7Q#3NFCGQoR}cU{tOd>s!Mr+PIOgFJ*Cb{W=^zX6$mbge7qz<-!G%5 z*#p6m)A?O~Uoh?$6k{JNXugSqrW5iD8-$!RaR-`a)IbKRf(dKl&q(;<5))VT9%8%M zz+I*_X`y}*+JY4@7W#K!%lDrLJd+#biXn8~aH~`#`sZL-g@0^cUOv^l27Yc?0FO)b z@m>MR!0(aVR1ncd!f_08<8Y9;EG_9%W$;~QNDRW^3vcAw_Y7}~)clw|Ll>I&G? zPF39ikBBn!wO>273-Kpm;P)Vi)T#Kd<1S`c33;Yc8+w`s&^|I?;%N%|S-<0Ep(^_} zeI?fGZ*z}+EL}bOI6GtAEPuQP>>sbs92ej)L7RJnQIr!_@rg8>=IxqJ8sQnjX0c`5*Qk0SM}3?ps&QHMzjc>T=3|McjD zEz9x|odf9Bd;|JGEx%lUJyCwWf3GFr_6ZR0bGr^m>PX?uuNldK165d621Ur>MMXNn zp1Zb4f&kDz60z%2X|q8;gTX(2PuabJ!k5|GCEx~!->hx{|3P_8aTEq_0(YI0|8sMo zil94z03*tvBQEkTE&L$vwl-XO+(bSVH0C(}ttC9h0#etsv1`)bzXagF^Zb$T7#Ik+ ze0~Om@)_mC+t(-d%H9F4t5One#*oO%g~VZRXkP((b-+cTzn6|@Lj03$|D7|*K-sU{ zJ;%I(!3uhj{%XyC8mGN6479deSZve^crCem;+F2exfLE{n<0D^!imk!Ik$a}lZ;tj zPYk{*JUK))&j{(cX`c^xIcb59T3ns0+x6_!P^5VFR`)lNC0|d70LNJFV6cS*tSKDt zFw1qQ?aRI8_yB9g5A*tzk8Q>aV9KoNL2;BkD&=H_D4P4t=-yZ)@2>qY24Uhpe zz!+5&d_i;d8zY}}G0)#Naj)gahlv_S&L;b4&Fm-f-GF_yDYhqhs2f)`nQ6A5o&a%V zu=1$N{aM5ov`=o<=H;RKu$S3#vD*g64V7W}_TYJm2}5k8#abQ) zKC^pHoBr}0#`u=$PpD4ZtGlMjhZg_Iur5Z$JA*^PXNM*q`1XJH(llrvqMs+Hs||f4 zenz5KF;I1vlrXTm=8j2pgyu=Z(vq6>9Inj3&do&8P(9`}SP+<@`mNWw*r?XKRMqN` zaKmgRsy(jXw~Ey-B|f8;JMrXbQx5+O}Doh@Z0|J1{c=Nw#s}B#UnK z+UXo($zxVZY1B5>(zI`9S*3I3r@)NbF^(9`GeG-_cM|W8o@3-((_F7N8YTQ(;CFCk z=$E|rNnn!&uzVQOKFAW`e?(4ckOt{N4QgytoOHnL-Fa z4{w)`qRpFRm%emCT!h4#NUWKTcp?|pGWsT>Ur2%c-v0kyj<}KPWgs05;ia%Lg?f43 zti75*a;o(2GQW%Ke-@*5Z%|cP9h}HX2nqwf1p>og{Ji`;ynOt;czFHXpIp4EVBW;u zMZ4&Vi8PDMgcv^jp17 zHG*am0LNPhNeb(8mT6e)j8Ta2*QSwYG7-lqqpdA`oo0{kNOtLM?^0xl24!3gIvpFTf_IVzP-t8 z1U|nl-*2~jB61!B{%^F2zY82JvhD`c3Jb?B#HR9+6=gzxi1mUOR8$9MxbDF^aJNBP zj~Kh%zJ1(`6{QU{Z08yJY5x@_;i)Mg>=W$c=KuDL{MjF5fljy9}7*SP=MhxWzw6>pwS0^*$%rgmECkL0N;v^Bbfa)oR>n zx<&mvb~NZ1)*`p__G5`oK<18`Rq0^6ERvXkk>%LSVaxlyem5Sw;^_4q31OC^jzaBT zwrA4@0yFuo(#6y9F9m{3UUQsq{F_NjdO+Jx_9K~nt3SgdB{TpPB869Pdv@hNnqc*b z=*mL41MEt;gX~CHp*jI2h!(HjKeAxpIO6UaAVGFL$lPwsSgdCDdG%+8ag~j9L%v*% z!oRqN`Oyse1hSmx1yVc(Ii9b99hzT8mmk}km(#C8i7vb3KXu6`-Q&F_skp~2Ua@Ch zqi)e*i8_+hoGJ=Y>|swsW~!4~9BXi)=&y2!NM;(v^h0y|x9>aTrtco!@-KDB6qcjw zha1dqg>AhH$vAq`^jAl{{)FhC)d%4sXwH;?TA7;6T}IF&Q_RU0bQmR3ODX{$;4fd^ z0~~8Mmwv~IH!)evsb^B+tU}d@t8|2`RddXPcCR_?vNHtGE`^JO=Y?2v3Llp*rFlpf zlEvDP_lPw1>aiy=<$f(+yoqoQiYCdwz)W=0d_8`vj;CI~*l%sZd_C=XTu(c;00`p) zCuci61Nj5K_Rp^dXUuwmo1AOc*92jo0dv>kzWbNAhEeakg!vEMd$^P4=G-s>;l$2t z_6EnMCQ`Qm|G=K>=Uzj)(N=0l$LK+79hYJ~jNet?0?SBoN)jCpE?gA!@zOPtH7g=J z931KnVtaqo=$p#g{jCXb$9G5Ji;tf_`vPrXTEl=s@^{a&Ux2S>vB9}y*9i}FnnjdMHdq<-cj(uB( z-`{+4Bf^-AH5jD#QN@Ef{JF7F!{w~)1jmi6BrH?Ute)OQ`j9FxgxGYuEt3Reqy*J9 z?2Ma?*d25H_2@aY3iXC%GoHQ;Yy9VpS-?80Iz&#@J2-zdrAs_)U!I|x4KoH2)@e^O zy(lJ0vRm>c3SBsie3%{8WjD(^@H|MrIM`EZ`XY1oP>p>6bs~BP$zLAXTt-XP^++aO zK9t7M;k9lr6U0kK8;&R#mHJ&qFda`?o@l6iQrW zla5ik%xb~bRDusYWFRhlJb;p1rw zDXw9)CWz@>a&bqBZ6!pp@fArdXee9@|U$F$oA1*s<7O%#liGv@9QSJ3H-_H0nz?7ZfSxbKR*yjtvq z1fK{*R6C0b#`wX8s|Q*1HjG2a253n0qGI%%T>y-^rM5nnnL=+`_{giM0Za+hv=2=M z*8&)e`#?8CY+Q1PYH~L|cPDc2VD_e9LN;s~O*31^3ToU7)F^ARa~^3Fm<#A~4f#JX zOjB~{7!0bQb-NHN)CD};BW_w~4Gr(0YNQZKHJW^D(Igk=He}pfMagO;&j_P44|`K8 z%O5c12diThWRISpqh5$X%TtAYJb^l-d8=a$>1N>_OM@Ueb%b3X;(?`NuyDN>8||n~Me9;3~|({~~eI4@5zv9N0d}!T-W&L%3uEm&qB( zl#M4u$(MOVwFD(+P`YY>P{u=J4nX|62b3;=soBR&R}ry` z{VsT;Hs*g+7o#|lE5JMtzqufMQ8^@n_(e$`<~Th-h-ohOURA;n`}@bPLPsm)Uj4+! zme(RG#LfpjbdB3w9L?*^PiA+8BRb}?^fUdZbZf*j>Y&*4mHFM1LsIv)BMyxa18)X` zD4R%{1H;5ZAa0ymc^6M3awQ@Egw4*F&+3H4P@<|NQp`hKQ zd29j8B3d0;RCj^aT{dQ6W_e1WFmqoZ6Q1m54Hu)<+uEzjm~u4w&?U*utq;DqY}`$- zrR=3KIp_^)V3GN<6vs^Ju;?*H$#IJV-jrC{1J2dsESia*626@XBb7>uZg(3Xmk*`j zv9PX4BwU)sSJL$)s`yEFyXV~5eBEZrmQTMks+N}!#D%ZaPxl~K`#!rH%?n4}q!*&5 z58v*lMR{CwWpyf#hO}^V-a{goWBy*^RB*AAsL@vA@1}G^~2)x|?XO*@D#m!rL}R-{-?UX30UR@?PAAMvgVhFg4jk zUxTMQIS2E^R5x-zuVE}a1?=N}z;5>ub8B=TJ|!}^KaZ7U+S$Nmw}CQUYSsw*PdgJYX&i8Pj`V84EcnVlJmN>ig3%Qj1Ic@bkxGVHIS z3>Tf0%YUlnjr{XBk@=&x6Wm5PkC%c>GIPKXE}Nrl{Y;n&Ju5|SEJF=h*?>w(nI*|X zg~g`$J5FL3q{^os7W7+w5s^l4X5D7ZjGdBxHfB|CQnct?xETPQa_KA5ya+vESQG3Z z?IOk_cVNb?s6iG@0O_T#i|pib$=o%6z8j6uk^c?acJp?De@15QBKh=~dW^*0A|Vl1 zKVt2u;U>5#ahKGdul6%U_`fKgG)|Y!t#PPlvm@L7&T-G6a3v;493f? z_Cu!8<=Iz2yWSeYClcAW42Le^r^PO0+a|HMrm?(ctX6sn`f_!#AUja0!&W-u5;*12uq8OFQO@F6qkDu6*J`uZ2;$E z6xYKEZ=by639+#|E!@J55l_gR6Vm+HEf0$wAJ~d z2nrQ2IhO=fm-UDIrV}etRvC(ad8?byVofrVm;7l85@O;)$z2v_BRrT&bIGO|=%rCV zX2OI?ehG^+hk9cYxV;D!mwe`fCDY%;+s-^N3!7ieW{sD!(+R6e>UtNdIVpVs-f<*##(Rnd*BhA#(&EVH@uY5)Q(o- zIMxM}*aIQq&}9YNqtR`YhFj_9c3!K(och^>i)cp4p)(|k2`6-oyds~%vmfRW6C|LnLBk> zCIW-WRIyu0WW$YxYw84x;)aG)*U@Gz^#Pd!7q_r6c2M-MacAL~$)kUYN@L6{v+{Vf zje7rnxtMlz`aq*zCR#Ufq=d02LY-*ra*FKu&D&h(dn{(L8!Gv-_tGocFE(f!8tZ@g zN3^VgxG(d;2|8Fi;=Dj7Z&m5Kh@Z;Gi}gh>^ZsqUV?2PTp$QQ$!|^YE&$41dg!b8= zqv;w%q;p7^qny(Cr@yye357E`N4+@$c{&J2lI_8j33*C~P2v^!-?|q@gvPsiA&m_C zzKT@+xAA(imZ`-6Z#u#XUZa3E9t%-$l7+Y%p@Y}i3Ayh~U$+su;L1Z?qWJpd<(Jy= zbA5Nl0q`Gu`_*BbIL+>!poCDK?Z{VR=vII`&=Jt_oi68IeSh9`)I&-F`(TC{KuZ34 zSDpYMrM$g6M+55K%|F`-Ne`bF(E^C*H=jvT{IyEo0@gooiXd8rdQ(4;^1BzH{}%br zik%_LFV&N`w>UjbMNy@R7v0f- ztiTf$f(a0a)r0a15=?lKQ1MU5)LN9FIaXj14gI=1Z)V&b~@tPi;X3O2 z+BXuc!qxF7i1mpJU+RP=2BrWN3R_xBc^20P>NpH13eeWJ+*?U3Uhnkdk`A;LRt~OP zC$8b`W_id;GS8VY8(cWug=q`tfotC%~?S~Ab*8bCZTkl;?pSy=fU@UPN;t$z$m?Z;a(wPhO) zSngj1P%C+IsW6nEG#=`z_Y29;sN2X6GUe7Lto-Ts#f55Bjg|h3@V_KIHGDYmGU-5E z?f)#M*tx!Vme9n|vNl>9@Tv}O>n`cJVvIkgMcE8<}U`6Bhh zSV5fPk!Yx=9y3)8mS5%Ki-z5oIr;C`R)`h7oF;P82Kc-!{& zn}_ZB?9F_jfP2A5rcI?A+}3Be0ZtCSdS2{Bp8UinU8frE{VF48rHlLt)1g6_@nlkr zpjbbCOf<5p!g5c*!N!s3zj>c)3`KQbEVz(7GG1#E&u%eE@jHaD6K@Mr;P!?e+2eCD zXXv&lG_)`n2n~3p!JmA5UVSK zI_1P%DFECRQk`}VPFhV;1|esI5k%;f-w7~Kg1J|_jzK`79p5!3v{xNNUBNyRP;U|Se#)0`Sf&?0M2tk z>)bCsPFJB#Z;YZLowwABN>1qs(!Ludau|J~;IZ>IwWILB_r_s4>8|nxLfzk6FxFRH zYxX$gO!?eX%y+)md2A*fY>*v?UY+dsV3)<-{YWX=7at(SKJnyve&QPS5pvU+Fc6vl zk z+tKAFB4pW~9y>&XeYZPo+$Gc+)+=it8&Mt`gK@}&*W6@N+xwSSbJO4$dXVy{ug@4Z zBNnc2ss_Gd^X>6VVDfJuTt=Gn+#HlBc~@1v0|%c}gOXC@cc%3FSy1rta`d5WbC8~1 z+%f%Os3)8k^=E7sVHXF3{6THB#S(GoR~PFDYfc6Y`+f4ZVQQD3Mu_kW+i1lob@yoM zx0(WtA<7rheH^|^!r@YtZ=0kB>|rPuoCcB~E+ck1W6T`8tVY5hmz0DEK_o<7+ScuI zq=G^<{!F5ks{h}m(k)guAmwtTE&PT9vK9rGpW+Rv9cIB_u1sT738BVU|GtEs<;UBv zXfj=X9J;rz=ctwZCnfxO6J723**+;Zr0SM*lMk4*7@akRverNTC%dWd-DC3pE=IA= zR4HX}!0H*bKhCv|Z#3XdSSkkAy=4o^C&Q5(02+*hH*7N+FAChH z{JORvjRsEl)yiMX%T2?khj;>hT?rN|@CzYt`myjEw9rDm0sbuCd>Z~9e1usbD?ia@ z#kEavv&1jPq9+@cW{I1G1VeZuf+3palGuBIK|fERH<9%DCq1ZpeD?e8$=%^O5mRJE zq|i6Cq~S+&J9Tv##mcV=tl{C7sZ~oXxTCRmTl)6rC!-0WD_lOtYGZX9!`d^Qg!^x1 z@bL1>3WueiMr?UDWNDG<)|fZv{dbbpG3FmTKP~LjQUS(Dx@O!@H*O#AR||H2Apt)Q zeVzo!&J}Cm^3BP}?&-wIvH&l&WQQV>Wn{_xY{P6KQ$azmJ~KR_mtxsSeHG;c3wyw= ziyIMGhy37@d&|)ImVS{H>A<{ZuGHvgQ zAzHrbU~L^o*SIbjC4bLYmQeyD(zbqYkVpd|+pdoJQn%f|>YrG`{_VkXc)+jyFYA|% z^x=NW`v?`I)YljlEM)(OLabLmd79MjyT+l8*5cKOGq$4~bDcM`iE6|J^~>R!E@y8} zkj(f6}Cn zR_SKXgoI)2qEl>?`xBS~~#f=r#*GkMH$fmEn7C(S00x>W)m- zb1>roRqHyRAD+?<-7{iLCX0s!r%}_cuEkB=)jhur*aeH%b{rHetydtJqIZ4r=gWJ{ z8G5qIvHBLIv60H)Ecvmr$FZp}3e|PWB3NXW5hu+RP6%LvXG2#+(JGMj%9;+fLoj5JY zyareppmSDDuaVZO^zgH6+Ko~tm3aC+3|$h zYeIrkNVvYa$xw5?Le}{2#|pffeQN1g{=*A|$G&d}}mHD(8*rvkL}1sK%;TL6pO7eJr5sa;*A zPqMr{mUt`4=o_S2#fK}*UBCcXTkH??k09rvLSo_P@@+;BcD@GgXt-Pfi|-3q@B2qK z_cvx8ai8r)T=*M)+L3{21j)ARy7utiQo52|^Ifxm;bEPmT(13wWV;XWZ!@JWRc&R& zIaCAvMzbb?!lbCb*&k+@p&3uTJm3K_fIgzRWXs+nOK{4 zxHWdzI49%I_ek5_>Fx?}pa{v`qQlPnDM+#Q2{yjmcAKY=8PI*%c zyH|};(Er1iXqoF5447@vUkATx+Kd`CTsQ8+gIaf{SH~FrZ7qavk*f~h&zO(xEuO!B zfr&2m{{h?pdnN;C?^oy?PwJF0AI_gwaB`k>^rk!-6?a2sOReaIr4%-)y&<*3}Ue-tycCb2FKl9|*-8D?SA*9-D;3Fy5cRSSe9vzvTv1 z<_J$(Tm-xz$4lv(z9M87wrIM7>qcxT>+62CwyztbXxXm*T~f(%;^A_z*#HTr?~H)A zHV7a#c3%BRN_7l`7naOv6<2E?nOHeVuwEcAWpTao4!+-iR=tvp=m2N6 ztQ?eOiXl6h5B#Dc9gOSxb@zZ%P~(vh(Hi{+SrTXK8UIPAocLL2%{jn6rWlPXWr1WO^VdmbLh7I z@!Ha`%_W5GMb|$6m2k&Sf$vWpU!XX*-Z3tx{C+-~+;&JBG=?BXPslmEBze8{DKeQ^ z+FMm3YJv(io6{pjgSn@pwq42JYY8Vz?XE9zh+FXSyt^x%N!*Fw7vLJe?zi$)R>v9n z(w(0<^svo>*=_Ti=@Rsfdr2f6h%W5o# zc5q7`@Lp(s6+yYsa#mRn@#kPj!}E4ThEz%BRd13N0`k>zFoA^{7ZOLx9r5IE3LS!_ z7g3ZtYnZd(5(zIS%U`o)x*`9t#LbTA!yEpccpm#3K#kkCE6Oy?G96a?P(EHa%pxfz z8uk2P8o+tmCz|IPUY!Mq1crP|YTqez-FyPzj!cgHVdU)RE}<$7t|~TZ0A<|LzRIt- zJhXY$%VfE_+M$f)d2CmJ5TN8h*5%VL*+l3zP>ea_;OsZO$4TY8*Z?tCZGAYQQBSyh zE%0!S4PiD4eK416FjfTNH0_5Hw-B-zIQC}poCf^fPw~wLfKj!1r`t^C3PCNGewF1* zl0r?BSKz|QJUkIHS=TriyHDUkr}Gw+;?~?CKa6ZTRJc-V+zlRl*D*Z|Xoc@oKl;;R z`i%w$9?I*;7Fgv!T7Upvzb<=g;+vay1B#kllR>pXlUd-QSPuC)Q*8#fds19<=hbbb6|h}WbavqesNdGz#K+!HxLmbvdv_o1 zdjzdt^ym`tcO*!f>aWD!Hdv5%tnypA?t&%Rk0Q+}Y$$-eqdO~UkYnnh3>=q52Sa4M zhV*8d<7#AMpXh}fSDRO~d-c~EdYV3d4D}{?6LJsJe$Ikpqasagwlo5ExoOdDoRQp( zH&jM$_0jdIsu6x`3R?c(((RRc0hGS{_HQAXHAS4pN0_-hz#|U(W--&o6 ze$~H@>+7l;=ucP5THT+kP%>s^g5O>YzvOW zVb{#y*y#Se8t^aR_PxkNCaQtw3qTGW{tq|bDQvvr5W999cyW1onRzet_WsWIO&Uo2 z4{3lcPX?2im<_}NFNV9&S&?kKS=!ktzC!$^j_PbfHMxQ|UH5;H^KF>W&Cs1tcjLB@ zHLS}!6H^->!70qD(PY$BtXyxNwDbgheu=wE)5>5-Q&Zqeu#*H#2@x737;gh#Z*E?e z=Mu#NC!4wBb-(kcyshs{Qe^0=jJjWG76va`@fC-Of%^t8s~cGgJ$FR+Y8&L6#YHTL z_4nwieB%Ev-28>ocRrZr3?;FUo-_BEudO>r@d43=Pbhg0z2-0Xn2Cz#CcjU|>u1j= z+Veoi20)7rFwyxx?0kvpwgUw!@9NMmJSv_e*VfJROU4f?i3BuieyrhpEiyMRp9>3A zfk6L+t+)sRH$i^BK>v>;>8+~)y)mlqgF-6NmN1U{n((&N72=!VN7uQQIJm=1t^0>R zzNDhj=$U0zXN}F20F?ha5Ts#M43cW%U;ycstr34=uz+W!YX9|h?|o&hW?1GlP* zTT_p*p;OlSNuBS}4GbHQVep&26zviV)gmN)lY%Jm9zKp&8dM!8k#b69T~b5tu2YwicKAyg zm`5Ck?o-&M_?q4-cR74 z7x#D?;nDgq?3bj{Ruh=H-|)kXAmO|Mwb+s1yLj?s(wcRLHXh_$>EPJL3bKFiAci+l zGvd&TDzkwxJ3>S$E?9=>fhXuUzE$BzUgtN1h}bDn+_P- z+?07+)C^jr;;l94#P3$4!GwJdGP?sHf}^4otCMBelY-=ru9$R&6g?rQDYm=+0U!*+ zOG8tjIhi5NVGwXtwS@i;%FZD=lR(?TVRvlXwr$(CZQHj0*tXrVZKLC)WBca5$(y{% zo7J!ewN{;T_TJx?2pNsZ(vQiqbW=~Zlab;il1Ku6V(iRmfItIJs-%~7SYkMF^|N_d zDsKMZE|21i<&~Ts@pXcJ24>72%Gh|6RGJD@BGEIzVB9CklosB{LSQe2oQrJUYMUw! z&NB`IML@z87t<q@s-qQ=uV1yjT#b@QaRMq-l8cX9)c9}JYazSS+Y8u?Yo7V z7rBB#nlNU4z^E4~W*O6@E98t~{F7E4kG_$p*b$Mx2)haQ;3Kawgp4+G6YMk1IE2FCH~p?6-U5fb!~nM@LG(gu7$sr*+< z{fu=@HO697oL{O%%FWv(-2OQu#)(viwT2Cgd4|ckgQ>qCh7&?4DKzFpDjM1B9_Ig- z%Qx_slFiJz6vk{?K|7OhWk_|=IdB2zmcMrt3AUhvWR1P)R^F0?R4-KP!>!S1cgw0e z*4BfWaH<*osK=&5F)T+6t$C(MH4F;ETPzc&gfst4WSOj&m)1r z81b&)KC~BO8}D zj0~K%?fkT0Y0EV~Aym+ial^hR{eflswGOm>?ZibHI94KMQZNUzKzf%TD0Q8YJpnR` zzEHN7Xt!+GFlS~OW_(7A%Jmou)oPhYF;k`y3sYo+hLPqmX06mDxZ@8HVQLMGP}(5? zDPOd14>804hVtE@^N(y)=}_uZu(nHw;?pcV8Az3ENeHJ8;tGi?=I3liszvCsrlmsY z_e^pIP(VUZicygZ%{&JRBetnt?L1cVO)o2HSr>FnEU5NV_b9!ClLJaqBubAed#8Af z8`%`xt4tV;{ec**-f*~msYYcBq@=l}Hm)Zs21y|u(H2D(A{+6f!CgwI%q6s1DP^B2 z34+VrCU}3#&1Rcqkl_}wbCdCC{2uRSYgd}na@Rl*5wEQm;&S_e29jvQL@s4<#W4Ys zWTH;W#>;jPVC_{jE;SyPwwGCg20&v{G*j-^hq4-b4c}HH=tx-KEC;3~qWvfvrYHK? zeomE}R`Cwlf{z|+{K27T!j)TgdI3$HIB0YAN>&-6uTIKP&1aE@$S7+WS6^FX&6%>H zbZ@N6pfh_mZdcX8>SX{k81}!Y5wPYIL>dy#6ORiQ@=?o~Vha#>7z_=84Sg+5^Q$FP z4L|>|_Ni_WlkSw^eXe|j926h1s3}WA;EPMoIq8$-&v19g-OFCH*w0&_NyW;Wl7YlCn$l|LpA2CxV$uYLel_<8G-~QB6sM(KFz~vmh*%b+~r;hCe%yB|g zEh|ZBoB93dwLM`8iB=<#s11^!EICH&0)!zZy?rQ-Jjzrgy~HJ;1L_W)l?2 zlWtJQIVi+HnPbWW;E=98upKbjl=HZhmqMHp%u01Xhz5-SQL!tDy?PIWZZtyC$k@!w z0%PEJzD@?Hh#OVCi1{MnU)jvc|93230wDZGe&AK5UaCijK20GaY*@O%n~sbDj|TG; zQcgK7I$|_+0t73oAR*FsrXe57%5|Eu^4Vm@3h-Q9$QJ~okimU9&46Oafk?OijOiGf z+@cFAapj&uvZ&rMB$ui4RSbAj8IW>dsLCwA+GIgK8sD~}yDZ3j83Mr{;ZQZ@!(q2< z2#Tu2#XV9{F9!*ZSk$>!td=lpbhvGVYm7px0A5vPZfr-$?B z@bq-LWhW>&AxAG8Oq9asShCH=&DGDw>GAaRh@08T&g;R0O>I`4ABYfHP(!Aa1`90* z6){Uu)gVL9F3m2o!X`-fW|C0m2|8EWR6agzapb1qdThE zkA3k=>tdw3u;<$6VWCjP?;)uYKDCfQL4t_uS14RSmJ?Y>tab(+b4aj^4Q+)T z=vEU6ABMOwvuPq%u!J|5ft6!SnJIqn$3`(2$~dq>bg4t*JV}0mij69TAQi(znY5z` z7Ap={hG8Vp0OB!~8C^+x>T<%I4xu)zN2f3{F91&8mG_r?`p6KhiqjgRG8nfh zO?OG+1$Va?k+Ee|SurS=ARX|kcyT37ghdj0s1vAAJs~oQfg?@i>TvjZMnnzVT!G45 zRUF55m}}|5O_)%EOW`7WNIn)MS%)Bdom$^B9~VrqOo9eOw)&Hg285Nl;s;Mrz5cFl z?XtoCfcNf{M^{iNax;NY=y0albiS>Z= ziSr|e5ceaHpW9xNv+CgNsJak?SyWH_17T%m9asxd8!eX541}l%6d8lxtS>{8yUI># zO+h^xE0gm}G(e&$j~%t10<>4T&Z5Y{O$B52FlIMGkoD%wp4_{i()LZ0EmK@@du*@3 z=u~CmRjMr}%le22_B0;FU#Tm>Z#Pxr30Yg7R#9Da=uO1a)jpq{yDRF$qb_6cmki}{ z8hbgW_R!~Sb$6)gN#A{6%0CEZ+lAzUN0lsD~1* z5d@he1ws+$PZ|IN-V{2!9+$PX^O}A<+&f)mNnO!`ZPEu7^k(@UFDb609N9^=e(S;R zJxSVMvqV|qhwCH*0CK-+Msn@bs@vI@5XHFy!8`-qMa9m-#AH}TA#_u7-|yew{$O6-M@vz? zAme&4c2Z56d~~VH5BasnKgRj8j(HBF1G^YYqqSsHb-77xJ}jwem1q6A_y82HidtzN>oW2Em#PVG$-rvI7COoTM92!ApQj2MAss4n`cCrDBuK1_!B`8M-iuGUO zZ`c(CGOinf39okDOZL%4#gn&9AnAnAA{|N<-HWRDZqe7gzb31xC0K6FWd4?V{}e*q zmzD8v-)TElY#&(R9%E7)IU?W%0TU^+s(TOb4Dd*EkZwOqPp%fkhTLk84E%AwywI(M zI*6+Mva4G5x*Hn8iPw$sP5KR9rCk#=2s^j@{q$)&&f=y1vlbcM zjUqpwovc>_>Cpio;quidI?bL*9@K&RKi-_Dgm8G37r*l;XUt|zvb1Ro+!PlAg5P5by|C`_Ms+bUOA*JZEW zwCk4N*PE^9NJ}2)%{k{xm-F+l`_%Rif9EzY?Ay3)yCyq$EwqaTQs>;tYQFHheg8B= zs`}Q%4rY*D%55%5*}!j5=?+Fqz7KZ6;{#0?l}f29@sBpAa;;glgi+l9IR{JMLt1Jt zKoLRfpHWa#qH7{1i&TC!pd_fnlC$WmmO|?G`z$#cB)-4a8*~9tickd$i>|9(_BXpp z{E&6V`^4*7tO7U%)xlwHt}pe0nR}?_MSX8je_+=AL|69({ceQm%>ceGQn*DCiuiC` zHYd3!HOb!w=%Bc3JgH!b9Mc9T!Of1qjwFzOV4OXYp#N4lMo|?Bs4uhX<$lo0(MX<&pppNFZyUxZs=U1#acfJrj`wBu;Pr#mRrJeN0kn= zYtryyjKef|LT==8fMmCuBEUHsAIjJ=E17lhaV*MgJFali>$v>bjT5SgzN3lUX{_FJ z)9$?dwSMakJAc1%Ys;2WNGY9oUh|`XriiT%!ppW=(Lm>b=-o78>!S8o{^cqzz_D0a z1Nvow6VOHloZ*aA9*Y3ME>lMzn=EpIJ!r(L3r4dtP9;&FA%LFzH-d9#(syf2mLiXZ9)zy5fR6&G9ohxhDsq>;kSUST#s=| zyk*d<&d>a@PADJyK#BcWd6d$Waub83PLn$C#Q$1cF#yUYDq4zlmX@hg-g+Lt8T^dT zbr}*W@;SU{{V1LmtVYJV8PG42bi-t{C@oluG$j2KVZZGE68!VL?f%}C^OVxW(-V>; zoo>K6c(WP&fJ_pY}=X^NGup6~6enVqX0zeQ-4#C%*F92;pMQiaK|j<%-nZNcmJFSjyX z+hy)sj5&G4-0H z>m!)Y`NG<(Ro2C}&FKy+fxahde4+Rg?Zk84Zbf zjQJ(mkY8<|amy#sl?2s`T4Z7W6pmh9YZn-YAZC_ay6;buW8?<7lc^uXcf47hT9EM_ z`L58N_Gij#Xq2RxSw>KX#JI0cOq`*t+29Al( z2Ey7nGVV8H*4!ZWI4L+J?MAjkk{QQDs!cnziabbW-ntC=Bjii&@~dS#k8S0e;1Ob! zW6}Xd=KHBROh*wpKUo1T zCkI)kwf=qLU|JE;MC6(pNjQ#L1WGvUCO~!1c>KPh34ol`Xse1~p#Zi_vd9pGZ zZe`cWjT|;|N@Nye9X{>%(*w7%oPA60Il2Zepb>hncNz(YjnxY9Cl?D>bhV>YFZRJj zYDwqa@}kT?XDLpI6$0wv^R&6qVTXZ8xf8@R4o{w98qI%}tykE(D1|(4E#F*Afp#@Q>PX!vYm9Qdwy(yy@6}weVew0?iq!uMnF?&k zXtcfup>Tn0e{5Vduvy%IEe(khk%9Twl2A`lLeO9EQSps(oLi+|P-$H8J=Bt`!D2lq zt;>k<$&{#=dG1x^-tRMW1v`z7p0ap8ubi^MSgDA)PE=8}kEDwFC#j zb&`bAl4+JtLzkD%q2bT9Q>NwG`V}Y^Df#`n-W1bL^S9Qd{H9^it|*Lr+PjqV_jiBR zEu&rDf7*Nh-0qR%jt0}n6xpH5e7o5XzTdHXo-@N9M-c-BsUwyYTf92?};*%LjnJ?zy+8lTqH3ZVq ziwt@^seAtPGXCm)_O+eCI%$3Og=N2pjVTNK5Mym>TKxWAdw;rawKeO%Hvd9xce*0` zS}8Okm(#j@%B|Y4`#EbD$TO_KPbos{%DF<5dnzjllTZD9jLdw}ZgIUazzNoD@=DjjF#4GCIZ(Biv6eFHcTpPv zzwm3_(aYl|sFH<0wTvo0`C27;etW4x6BTDOj@4hQNdQuZSP&awNOkWjngMI4^&p$# z#FQawg=OK9s;xJbq7h6`r`OMWk&GeLj%YPRS@@;^L-?xv zk%T+Sg$i83ExGVTojYdRDa#C(f~p{OwZ}_5v-<4%uw`8z3=Hi9^byisd}~4-pJz-d z`9A4uH7w_k%%dsL|Q?|m%6>$jQAUnTRp#<7+Pds7-{FHBxT%x>?JBTL_?f^ys_4(w!LyA4ns!<82 zr^lVt8{2N#?&#>|n3z!o=r34B%=3MkGW@gDt{wi0uoW(6AobI*Xe@s&Ij)EQtnYVD zo_;*0v{@CRize#uv++0N!WC^I-2&X&jH0BlF>K`RrJ^ZaexaKz&g)d z2HeT){fZ?i@%(VpE$0q#Ge%s*K2k_4e6bQS9WtcP zMc0BLqwyi5z2?3LD2((Yi8z6PkM1!d+0ea&+>wPO1vV#|r;(q2UTyj=8sqi`N$9NM z71mfNJ({o=$P$c#-TQ96d(kFOm>#xB0x8v={!xp2`lnSc-#ms>=BzdzW@f z<6$a}P1m$Q1yM%;HYX4|UOzbu8oIaAyJaK3|ocB6czkhP_kbdYto?7UJE5l5sj zCKTFCQsC#J00KopGRsuW7*h_jK%ULO`!g8=Py<8P)syFxbW{Jy~$I+>z@P-sY z-PUt$Kq_%dj%Or~EZbYhFEy#e&CSfl-KeP{6`I1xJx2=}^yCU5>9$ayv5g&~rBCeOA9L%rc+`}o;&?>|0^Y_MwH45E=SSxCY-5p~=( zm;gn~2;(1&G(5!N+=lb>?i*)Tkc+98Vq*g(4c4w(c5stC8np+8mR*UOmtIOS{)CEw z@S2iU$BkzZOEQ6tdI)AOnM^4eCUMLQ3z-Lr2n0z~Atr8Oeo7;s@E;gZtBOm^yGVIl zJkLu*A~OEX6~LY##z0IMcg0rmU&4Me9+Ctv7LfxmCX12!e0d6T-h;d1ZOudTvp{B| z8@W<8RG78&^=blAFq5-Z9siiBBkjCD(qT-n-apkvBQH2q^)r*7S8VmzyATf!>7U+z zclQKJYPzi2)@eF75Ve}{pb6oTMhq1mFjd}AbzY9xCE2)4 zyM|v$(eIAQ(rx@V9r*_ESE9U6RVf*(^fJ=k%}|4>kL(+DS5=(Z5g_yNGV|HK{>>&~ zCgquqoGdkx#Xf_RvC(l&$W0BzBu}fzc5Yv3|8d))46@WRU5;~IB-`Z5PBwF;l&-a; z05j*Yk!2Zm)7BT?w-@ zIlhQiz6>*lrH&&b)(_&wWj6?_p)Hf-&T6NBc5qh0Dm zimX#k?mQwhXQy^p75>|YfW6Kr_S1k3 zOnZR0bw>Sbf*+mkPYsA|UzQW&5Yfs4w;SWalx)7K%bgqixHh=hzgyFCkZ!L^8m-99;XKQ;J6fr&{!APT5ANyb%+Y z1J(f~XWvc=Pgoq=@VVXgvE*rZ^6xWkJeNT@urJsxr0iiA37yod2O})x9~`RKx)ARn z$QwPnF+IiKgS`YW4?Y4sSaEFJfY82ZZC`gsaw4R67nkc(^FB5apX4V>S&^x1>8nZPqoG=+kn3ylBY|MaOv%&@6Ux$M=}H1i#21io0~oB&Y(q zjm18@nuM?p4UW@pw`SNm;q!I$9U2A4UOmItCc+L0-?As4INz*D3nL<=N!$SlEJ0m^ z%rmDrVFxXBk$tx>fIuKmiUJ{Ze`vo~dw5R$dHs64d)eBwf~h2CusAtEHp&{(QuTCRLlw1Hcn^hFcO*= zi%L}G8g9RV&HkAnpA5V9{Y)%0-*Vf&PH*{LS!*LKotG43CS=SCc4z4cggtaRiQA6- z6d&P=lV|~UrRhgl9p=L}j1Okv^&M_kvdmS%n+mLxto=y!4&D)vDZjT<9+-mq%@9)= zLZkpwVN5YXS6}G`=$Q72EXU?nJwX4&bQMEN3$(HHlQrzFI#ArER}$m|JOqU0_?+FR zc1Bn|fcTp^tW!01t{)P-+oS8YL8`9Ue z30VFI!Vw@jO1OpOTm8;Ioy;Ge4zhOa+)UB??8&&++MQ*>MWq}mBX(BjIExs2mnk86 zLSY@VBVVO8dTE2j6p65hj;v?l_u4%4sbfhNA)J^F4Lamm{99DO>LTyizXI{)_yjef zt=ld1_}%9I{cIbF8G?rp^m*?kQzf`oH8xz?SWs1H)IG$dDYwj1Wi@(L;M{?ZX#m#({SH92WPuqOfrPMwQ?9XkB;lP8+H1IUV`Rd1AjVRUqd zA-}E2eOVvsC$ad5-oE2Y%Fxk9n`7b?RU>5m&4?k%&s3t+VnJk>jDkbH&P@4xU}!IO zC&}9ts$?m0FHPCi>P59UbF>C8QJ^XLHJLF*f&Oj4jO2P`XPlSZ8B`%}^HjxiO?QzO zRZ$~02~*p+<&h510LYt5Pd7H+0KZ12qPFi9Rhd79skK__kNpuA3l2dhfjY(6{L76K zD!j+;D|VY*fH>3~Kp-!J36rHlOV}Bt@)7Rm6KWU0MOL3&ZbTK}J*Mi{lR3mzm;@u> zo;vyrCCeyGC~Cq($E!cvB*qSJs*Ex{m{?Gs>4H@Bk0L3}T`cJ^8P}mpFeno1i#B9ygIGDF$IauCUzK7ZA-%3yMbc>|Haud%z-5Coxa@;RO|H!azB{zxM}Euj813ONIN@vs5UP zeHk>%DSEgJwJK=Cw=`w#4<_^t! z_SFdd`dikZ@wCnwq(lZ~uEyh@c-}GR@YH!)^Zh9d8@>!UcX`-04J#!;;2%OjP0&zN z;<@q{VFZVs`HhufgdSx*qQ;VjQB(+b2V|@wVkB%tA`helTO+MdA&cGXaxLKN?SKV} z79TQ(l>Vsjx^GsO(P&@N(9h9_jL9SKXT+Hs|G_x$no=~uZ~UMjBlc{R`1~N`G-e$3 z8{;?R3*rPPRKxON_Cw4uutXNfH#A<8#uz(Z&{oT_nPe_#>jSEBTvq^2TPgMEM%LEU za(3Lav+8EsQ62FGV|#d3!wAII0jnmjTviXWHORXk-P}22NBm~5w7O5f8g*oy0t`)rLDkeC zW&Ict4uspg=;60ovh474!;?*Q8}w}L!;cHYz5r(5;>fL~G3(PlIYiX_Kc$}T&Cl0reZ1b!gZ)3bzyzA^+6Gge)q0ze6yi5VB^GAwJVhMd756&85i zPmc92R9vkpr_92h8rKD3xakhVS+%^$xApP9K-L*_oi7;FCeHiG=N`eX;@8Zaa#&%a}T zZp9;0>2fYj&S=*F`6c^0|DeX=gSC0gDe^r?RB)Yyg%0EAQGrL8Aje6c z&Pp`j4EF4sf-h5=Mo}RV-ht2F?=dgFR~|kfvd7hdN;F$68u6iGxr_hGWexI;)DwY z&K2$o1w>32=5cX}^gCTfSpYIcAzcuHd?bLoUq)OS6|3$lN`!MXn2kzlF$!4jIuz=A zndK!u1#p73SBa5xz&=ty4Qf%DB9mum#7N*SwO@$K8%P&$#Qp8OB{9j0qG{BO)wXAC zdP_Vo_-~{7_wy;|0>3B>NC-t#jB#hLUEDXV7+a5g!eJ;U2Tt9(wpZ))`u}X(v43Cd zJE%QK8gC@46@-w3`K;2&0|bk$Yj%MEI07WaKui>LgfyD1syY^ z1DH>e7o!h?i2+Iehs>IhF?%T+>q#FX)vT1iO2XCsI7)A23K5eb_R%lKaejR%(GXbha75*JPItFNf2{^jFKPJt!xwq4j1pchI=``Xxk( z=%9^svE;bhZ8PBq!9~gair5Hlt#f4z1XG8Rpz9(QO})RB^aAV&RdX<~F`W2C+Js2L zlIdBGXVlDWl#DD7ebOie_C>mu@$(M^p?!Dpap2vuX&)AEhr1T#(ND|1UOm4L|GroR z$j#38pN;R|4&R=Q1Lb@Lypi)4J&%%ybCV@(pHQH^KufA5B*qLyoSzjTCUC(wq&VWp zA@LAe5Dn3<5mf(k6}ok5MK~-~$g(O>u3fZi%Sriu#0d#YaT+nkftBzPHd+y;B}Q>s z)E)Wgx8qUY4rvE|bl97)c`IGG(xtj&ty@Bp5ROQTh6kMoEq*@4^SJE8hM%N|80Q8! zGhG#^tSQ3iOQ6OT-9bb{C5%h41oPghZ(rr+ZYei@Gh-#p1ipBdZTG&=tbM!dU-gV% zeRsXv=RSSEdse?QHjFsGCGaC}D8PS0eiXuHEx*z=f+`GQd;?KT0F?!`^p7nZoKlU#z zPo^htZywpb4|f%dZ_sOO+xbP0gJQkezDLM`q1*E!l zQw?@P>?GYsS?|6@+kEO$vl8HTLNMY$623*tiV6aXN;L=gpuVu|!s9N@8Kl}OgVe0r zXJCn_vP0%?hVG_f3=x-A*5X?nMmrnJW}MNtSVWB1h${~B9B8B|{O4Vj(2mLIp9N^j zJUxYvm6H5b)W-=W``*yxdV^&Mt;#6W@=qm1Py~=jE-ZD55Yx>@Ippl5<69Q~c~mIaE_j(+zKClFdZ{rndhz5Q*g`7% zp*hPj!k4}bW(DJWm?>E}*61w=HyL_#nKJLJ>?>KT49jKyfE&) z7+MFA5`OggF^xcthr9xLf)1ouPt97zKc`B2WPa2x&A%$x?y={4tMtDM>e7V$O`gpJ|NH!-tKQ1Y&!aY|1iAyZ0Q1YH=hSVw zkcZ>_A@V)&`}foYGm^Jam|TPb7?3tvGUjZRG?&{kZAT^TJxa&f`3LHov*?oKt7a7X zV+C=Dj&)Wwhc`2; z<}q4!HQ}J3dM|T$EYc9Ea$EuFFWWV!_CHTkdAsihTmxQS;d0BS)&T8^h|(Y6XuX@m z9boi@qMLC`3ID6-`unEW-*boG!{4VI4d$O3@6v`XZLkpV2aI^)Tww?m5vfGM*ZBTh zL=j3Ez7ZE_cPk7uKlwrKQZj1h>I0jF^gxSgA`1KaPoej=MzvhN+pQr%PBDqZnP4A` z1UPVf9phF!V*pKo1-!(ktNvtnL0EF+%hrh%q)mKm(LiphJ zVG-X-Xo(0Sl6`OjIpfpm4t1cZ+?2S@KqV$cO4YGKiNb)tA@a`~ia+`h>V_qnymU^& zqVN;A$}Pfvfq@m%MFFGZ!u=RY2HQB9OV#XAM{LTS4hP3PIf$~9_}EDra57QoTCqde z-Lf?mtBX@cXfsy8#JCExe@cE)x&4din`$HqeuY9vr~T72>O5RNz7Qrs+t}arD6x&d zDTxWMTYm^SXHLQu2MqCnoOv&as;b^)l7eCq))>t*-ti*%g0z@F&o}!%!+#$g}F?&nu2e;tcaKmr1^ybJQ^JCAlSU^9T#0glub8=zGJ4#QyR*8(O&_QPJTJ;- zYi`Fh#OvLWKK@U@mI}my#Jb%pdqQt~A&C(WnMdjDvXU8{W-3M^FpWjAdb9R&$2ROE zT~;m5l1xJmuDN~@|E5zoI~jE0psgY&?oJvKVT+)c^>KJM7_O(-_K4tNcrovg%?8?r z>wDX-w*z>;tY|^+fy0vUpL{j*({NnH_Lg8R+qzJ{AR(mfZ0`yGI3SUG``~`>Or2+hXGHEvw5hC?;cOE6FmZPqn;? zX0KE97S7fHY)QyNbyXTzq=oYW`p$g5j>a8S;0kzscbS@pgxc1>a&ILlJU)!IyMR?S zV__-Kpux1q$BVe_AXhMr?Wny;iTMZJNejIVP-D|Wpq`MVK3N`6<7J1y;El*CU_pAL!sU^qy)wG}44O-dhT|91uc}%MFZ5Q%;rJ39`-^EQ?vtA* z9*rnYtdoTHuJubQimT~Wb+Xi!O zBcdR!u@t`wQc1}+7M`iHqkJ?MM?vu{*EY>ES{3VFc7gyOsWAh=_5|B%xRM9o_07Ls zA6fsd>y~9mG&tn3?-HiwN6x46Glm{!7PKw@E^@b}NvC_AxZR0kS4ETol9O8^i`;j= zFMm2zQxl?i4Gf2?U6&SIoz0Z3GyW`$S%oUHt|(Yz&;0}5Tg3Xru2$SU?C=qAhTTw2 zMVxbr7S*fbi4jXjUVH!_-YyYs*XZ(gZ5Ptg;3Yp@j-sP=-c+HRT9!rv=PV(;2ApqF zJvA26wm)gfYcJt@T3elEqKnr{O2d+p_||sq7_O|ET90&xDX*#DOP{&hY-<D zSAR>0c^}o#=sa~7h6$zNUL=ijJc*uR*#Skh)ls|6Cw_mwanRFOU46#{Yn>cE{I%G- zoBfz!KpXP+cr;_j|K6Xj>M47Hf4=j1U3e{P`h~vt$N^M0`01`Y^T*opvnT7It|@!9 zt_d!EcNy1j_4uj_&U_cVw)gv=&*%BSpSu$jr*&wOK;8^L1k{Km29-FcShFR}1*d** zb0WXkRs4dGP?uoEf&0TFbxMRI2jM9uN%X0&It8rwWg(4_r6u}I`H?o`hkh@F!0er? zC&5HLy*>gYc(-2J{ZTX+_+??8{vV&j*b)R2Me=X+J_6XdMna==AxDAA!RM9nJ2?8fMkRVJ)`Kir1eZ{Q8 zT?|-4AG3>S>aZ2mn#TWLq6>unT2r%bBMm7q+G~5Z4Wl{DuhwmHF2&6{MMRpd=gb8U z`UhejWROn{7bRjqfm|=e*U<{}WhwQzk+$9tS( z{4F+6QuCg%RS3W*+q%20&k`9mpFrH!FzRX*xo={s=w&VaZp;f})ui5kT_~Ee<5}vp zWpJBaY{16J`S$QpVDg#MKrWB&FL2X_<|uzWlD?QkZvoSP*^lrM^U4N|j_~>{xMHhj zKu-hc$kf!47Uj7WlPgTaQa!XdVPeJ4|GK#O_i%Gp{L|DUUK8+%A z+r^|*YO+PS5|klP@SBx+4lI=_eL2SACNsPhmD2PCPEMZgZIoR6#59|%u*i(pr_@qq z!d)p3B`|tl=(xp1)XYbl|845TE5rSHr(L)0;_9jQ%x`g74hG?{e?uiCE}zjpq@k~n zxAc}aP8{tGMC@8Kje<>CU+YVo=38G*5+O08gQwG&A|L$j`(oQ}=F7hBz44vodv_A_ z?tA`3f;(YtAHqP2LQ`^z5%8OQ7GmQ}{l?tQQ~+AzKGS{O-RV?*=z!#5?jrrBj31li zpy3;{WuqoL;xCZfh_|FLLbp$xpS%NsvdKP05`a59FTw_U!WmfbA+Uh(wq7GGW+vhi z2)qaPodiRY9Ww!|1@Dmg!H6O`04EnlL^DDc57BXY00o7?(mBS|1jzV42nIe7+4wn39-{I$hO3{|Q`IP*G6 z*7UV)MeJLIF%qPKvH8m!x`j@AlAiEr+?8h#St+={Q8T5~!E{mn7s!H}8EMbi2ls_w z_yqN#ewKg;y;B}XZa)8ga=rb)VZLn&fIw74szKv-yMxION0=30&Wu$lV!dpVwoB^j zsv((y)1x%6I*qM9K<{ThVX_}=wbFuS(txl3hfB0#T0|b@PNHBU@ANsuDJe^HSk2_C zR?(Z|+7t}?NK%c9xus`VsPM>polaEHYjjDvhIF}kX@eTV#C3}BkA7PCb;U)JFSUcx z@QpO_XZ}|0d!gLHdaV_8v$sWq=60pz{c?FAl^PYI*UVg3bTl&w=sE$R%H$wd!o6>p zOD3;FZOa*8hq|CZMI~IsToW^KPBC|TgkBS?7<4df2~*>Z;vEJAzk)8Xs1Bj*f}^zt zxY+of26lk>NiyMGdZdOWK;DvgcX_oT=nDlSzULkrma#;AVm^17r7*1!Aueg1flM&K zbu9xkH&`fGHHZk=Y~}@~YsN9c0!G}%VPtP!Go*tb<`A=7YS&S^n1N&#W6wjKl@hc5 zsn6M^D`JF#j3@Hw)C?*TmP0nt>)?RJ4XFzAhi|&#an6@RF>c(XVlylSn@Fcqf0tkfzFsC+s$Wp8Satn9fiP|YYa4>fQ2vfuK)!h!Kn{7U~+ z2mkzjyh{Gw?co{bm4tT?q_KCbntYT)+A1nrXq0^RjfI635qjmYJFw zMn`~Cf|934#kpezDVqI^6ynE8Oej(>to?Oday#WB7D7wOn;xC~3nd=pA!sr0mZqGd zGdB0A0Bs0c7ql>G9O=gV7a?+EHKYwiHuz_!L#SqaL|kOr-$lGib@1+m7t87SMOQS# zjtRhrFJJVtKXvB?E_lG(r~mcz)y{>_SKHO(s{H%6FHc8_3G7oc&<#=gsvrdeShg#ZKrsn2@KWyOpe;DDKPohR()(P0doM9 zuQh;sEte0R0^&?rHsaq}?ta%;Y=$APP)$zQ&K8u)DNwemenr^TtUdx*_4gd(3% zu!DQ5ZowB{S4|Q-MK#Cl#yFRdD_sJ6?E9j88k!9v=RANiro>}KuU}{?epkCKL-@}J zu_Q%>^LffiM-@klyRQS6EKQSnAPUV|)1G$Fv0BnlpFyB~{K1GYUJ|QBfu9DsZq`p- zb`#5l$vBlUaw@-^$R*8yf+MasS_4X&{WGT~OKCi+GLt?DvYkq+ic))iHc1@-ZZs;S z8OdLM74sq4ksb_VZKqkep`X}7=ZtvKyrQBvPYbLn(k1{wkBn5uv9e<7iF<3~sD^c8 zCTRh(15E!;FE$wJtUUUsDZDjS%NDh29kmfpBi%IkVWMTLLFGw}xH-`0(_5sQGCUqF#( zXuhdpu-3|^@xY@d^jc%^3yAE%z znH9!2*V0M@oNMd8N7$srwab=l%xUVNY8FAln_@dfc61cpteXohw;Pq0g-92!9XP&f zXOP)R2K~W@%d`Gq@YCt}VXik|9s(Ieav!u(@Se;en@Ila9W<=;xh8X+$3b+X9i5jH1K5q|2S8>9pYolW^ z0YQTq*8genaq#}Q|M7BgbZ~xj@&4%N$3`}oZ1|S7XY9J|f;SCQ(4c} zF}=#Nmn_}2mF8Ya&(=Q`8;T0qu07W6Pj=1Z+Ffej(;fbB`u6zb^1pt%kh|66=^{iT zYyWo3b*8p_r-}m(Ra_a=%eB+L)OY^v>FL`KN0$d5j*m_rDH&v++K>sYEqhi)md48? zL#?vBK8>h$czk|zaB+J6^QH1>?jIbSemYse;Y!&+rmGU6wz_m_>x9X_F&eJiWr!fR z%mg{Uc=zf1$2~!yPaByal3FEMn;H=uFar*w~46s^i0h$33b1k+-f%l}1x_wLw`GailHO;~_?hdRw7>cQTl~!a6{w8!eE5&yNnz z`X`6|%l_fVm8^F+_LNz^evn8U4HQC7?>JQ#i3NTW_lz#+O64EHZLsmo_^q0I*}} zr^Pb)>z9DI7@kfZmKHII@Yf2bGNFE2r#k2UDwvdHy|*r`3SVoxU_!0hNSl{;MDxid z^so3V_Wzhh_|Bf6@>$^j`EqZsTZsR<`|`>E<366;9$aDE{p0}h` z4GG8E8RQ*}{Xc{}6`avgUlk+q{d9EsxmjM^ZfBXA; zyM_3ldr$J;y*y8n-IHYZuPWJnsgLAu!h;EUM~4Qh6^2X=cH`;jaHVm-tw>@x92GDy z*?`dtG1*=)GP@!10i8u+HMaiayIptpn|8N_+yflpp&$6%C(M1H42hb-?pvR$KexB# zj%&H{zL;V-BhJIMU5H!x2#FSIEvw0Am!g-9@VmEG-G2k6JYuUqMrEY=wkc^;5Xn?1 z4ha|BN60bP-^j?AyO{{>W#C?|6`WKmzS!Z}>?-6lCm~GpY*|SZDaap7GM4Ke>1n~={Ih`@PW{y2uVv?ngZa78b!cO;5 zHEi-3V(*%Sqq3`_I^Ng_)8fUf+QN!gy;aO5`+&1c*)?%88Ga9OPpUXvXC8qh6m{r~s z1T7dSk48jRevil3*g<6;kQu?c+TSw`Vcu$?Khf~@D-wEH$*_^5U^Tc}SIWlVYaH&X zL6>+RHU=nd$Ew?wc5TZwN0ek#>rJ;*leOJfwrb63T;U8;GnL9cgO-Gtb24iR?qazS zsBrsQ2HH}?Q|^ql1h__H2W;R2o%o?(e>sPrGGNl``L|nb?VLh*5#w;w527hPNoMHf z-gZUz7WvauLoM?wYCzAXUM&j&m%8XQN1)O{qy}(_qs+1ZOMNL8f-LhkX$-mOnNSU{ z=#{Y?m=c@*1;C094$UDJtmA876+8o)t;Qo`dhVbSJM=PuC5HCRV4W)k69Pn5+H;qI ztTAeDK+Q^H>t>)DZ=N;w!p$KyWZTvD){Q|mV%h0&#zU*8PtS&*Cg(r$;%Z~}|9dZA z<>P;MUq0D?-p})N{_}MH^RIgTQ<>XC$=@rU@vMHIs#$OCed_XesoY#Q1f33#eK@3>5|99WK z%IE)h{rV~Y$GtpH`~TDa|F63L7w&(`^6b{!1KGtJ$_h341=ebbmFvqI4YK~arVdX} z$+LL>=Y(J7m%C5-Kkw%$Wo>74RKm|%i&uvY<&#qA02H?q6T(I%Ko}-$KBS-3 zOOs{dm*=AB^Ivs@f_TEj%f)o<&<~nu43ArJ$bElXA4?Q2Bp8I{O_`fR_ znm-9?Ojd@mfd6;*_jBjJyRUcmUOn;u`*^m{8RneCAp^|-1{~c^Nr;AtAApt>VecAG z2y>k+bRl#emPBwqgxHh>0c7!)soOxKh)ICCe?!2s*?KRe@+}mSiBcq^n2i0;O7lbi zw(X+RFqnf<8A+6cP>%vXB(CEg4lV~=D4OR-{lkw(?rh{vD4#`vvxN@mY(_)$7VQ-?4%71v3H$BpxQC#pDw$NoPWAQeC_IztnBQ_@#lZYZb8kuWx^nA*B#CjbynbR9^kIp*JkyR~;Mwk=lIvEm=2k1IsoX-3| z2+}QRvlu!{BZ3KW*!=3S*y~Ja=lUC+)vM!yWrA)KM^P|G?J;UgxVp>fic{2TkI`&? zBV{t7R*7yp&O3ZV5Jmx|*9e2*Ci=xH^y>?^WBuGV2V6`Yp5Pno2XOvFBM_inr*F>F zg87ap6vM#|4iWi`XHh^@cB(`Mfzk^fY{`_`e=!{i1Cd z04;k3uz>%+?(XOH|Gk&pH&6WkKAtVKhQt3Yw4UStEwqjc03oHW=L%p8t>qG63*GG+ zV9VJ;%iRQs8tb?W*g~sc2W+9WT?lNUbzBK-p#_%$jy%0_5aM{!Lo+O7mi9Me&m%9t zb(~CIE@(=f19?%>Lo$+*jGog&dvAR>miav)EL*JGon=by@9ur{9Y?X*o};t;$~s_p zt(_)^F}==ZL>*Gf8IN(~&gSZ~kXd@)cE8=zr%zxXdOWh?=_+8_0~oU)ZBs=*$R%=| z5pRk^pUrw`aB$xL*dDy=xA*p6n*s?VvB_|0HIC30N{u`j;poQ4QlgY*il~E*EN2vL zOJL`)HYh=cT6hiiueyY^onF+13>~n?$;ib~#FXW=z+W&il`7W4-nOq@q6a7ykZh;d ztz0VVA5^;7rCK(&7O@|CeuRS_0vpf&oXrLA!QtHWA>Fn$7V!{!i)ar+$Rj(`ayt(1hFZ- zHKOUKV;5UV9JuAP}!LcUbiTj%UmcuNE+q~ zt|Vp(L*tmv(8wQ;NlZd65WVq7;sZ$4w^QGnA~wYm=b_j__5RB6i~upLWh{@~0fsfm zy3rnb3v<-^Bzr@`i60UY`{ATy=nuEiZA+?6%mc?PJzMEzJ{JPI1i`v-nIYiv?vFP?lk2>OkQV7mptLGmX$- z^|Zz35oz^MOEHa0Wrfq)u?wkVr%Qj-vf<^*_&1o7%WE=kT22&di|6~Jx5p>w?ELu0 z{>2e`fAllF{qOMn=&*lqadi0KA-p&`IV>rZZC=vmlFYCl*hu`R>VrRWeLQm~Iin+w z&Pv;<>j_Ty^fHNkQ9^6=sy$}>eCVu0JK!&~*Af5EHUX|4`8H%})dG%u*l;^gv;+Y? zjW0j%cfY;#NX##jII!Cja$T-5h0x7zM^s>?U0 c^z=MEPtViycYFSS00030{|-~1N&ub+0AHM?umAu6 literal 0 HcmV?d00001 diff --git a/assets/sysdig/sysdig-1.16.9.tgz b/assets/sysdig/sysdig-1.16.9.tgz new file mode 100644 index 0000000000000000000000000000000000000000..37b834f627b6a1b907659dbd782d903b0946609e GIT binary patch literal 41329 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

#}Op@l~Pn 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 Vp8x3Q{|f*B|No5Nhi?Fe0RRKDc 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 literal 0 HcmV?d00001 diff --git a/charts/bitnami/kafka/Chart.lock b/charts/bitnami/kafka/Chart.lock index b3009cd7b..86957775a 100644 --- a/charts/bitnami/kafka/Chart.lock +++ b/charts/bitnami/kafka/Chart.lock @@ -1,9 +1,9 @@ dependencies: - name: zookeeper repository: oci://registry-1.docker.io/bitnamicharts - version: 12.1.0 + version: 12.1.1 - name: common repository: oci://registry-1.docker.io/bitnamicharts - version: 2.9.0 -digest: sha256:a54db8d2946ff889eaa08317cdc9eccbfe55722b08c147ee0799925cd1b43c93 -generated: "2023-08-23T10:11:09.64327+02:00" + version: 2.9.1 +digest: sha256:d80576ab604d6ae40689f985ffff711a95525fd2e04df86f7524300fb5c7b6de +generated: "2023-08-30T12:23:35.3141937Z" diff --git a/charts/bitnami/kafka/Chart.yaml b/charts/bitnami/kafka/Chart.yaml index a51e8b4dc..de988de9c 100644 --- a/charts/bitnami/kafka/Chart.yaml +++ b/charts/bitnami/kafka/Chart.yaml @@ -6,15 +6,15 @@ annotations: category: Infrastructure images: | - name: jmx-exporter - image: docker.io/bitnami/jmx-exporter:0.19.0-debian-11-r49 + image: docker.io/bitnami/jmx-exporter:0.19.0-debian-11-r57 - name: kafka-exporter - image: docker.io/bitnami/kafka-exporter:1.7.0-debian-11-r85 + image: docker.io/bitnami/kafka-exporter:1.7.0-debian-11-r93 - name: kafka - image: docker.io/bitnami/kafka:3.5.1-debian-11-r25 + image: docker.io/bitnami/kafka:3.5.1-debian-11-r35 - name: kubectl - image: docker.io/bitnami/kubectl:1.25.12-debian-11-r29 + image: docker.io/bitnami/kubectl:1.25.13-debian-11-r5 - name: os-shell - image: docker.io/bitnami/os-shell:11-debian-11-r43 + image: docker.io/bitnami/os-shell:11-debian-11-r51 licenses: Apache-2.0 apiVersion: v2 appVersion: 3.5.1 @@ -45,4 +45,4 @@ maintainers: name: kafka sources: - https://github.com/bitnami/charts/tree/main/bitnami/kafka -version: 25.1.2 +version: 25.1.4 diff --git a/charts/bitnami/kafka/README.md b/charts/bitnami/kafka/README.md index 705987fd8..e3a36a9f0 100644 --- a/charts/bitnami/kafka/README.md +++ b/charts/bitnami/kafka/README.md @@ -82,7 +82,7 @@ The command removes all the Kubernetes components associated with the chart and | ------------------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | --------------------- | | `image.registry` | Kafka image registry | `docker.io` | | `image.repository` | Kafka image repository | `bitnami/kafka` | -| `image.tag` | Kafka image tag (immutable tags are recommended) | `3.5.1-debian-11-r25` | +| `image.tag` | Kafka image tag (immutable tags are recommended) | `3.5.1-debian-11-r35` | | `image.digest` | Kafka image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` | | `image.pullPolicy` | Kafka image pull policy | `IfNotPresent` | | `image.pullSecrets` | Specify docker-registry secret names as an array | `[]` | @@ -365,73 +365,73 @@ The command removes all the Kubernetes components associated with the chart and ### Traffic Exposure parameters -| Name | Description | Value | -| ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ----------------------- | -| `service.type` | Kubernetes Service type | `ClusterIP` | -| `service.ports.client` | Kafka svc port for client connections | `9092` | -| `service.ports.controller` | Kafka svc port for controller connections. It is used if "kraft.enabled: true" | `9093` | -| `service.ports.interbroker` | Kafka svc port for inter-broker connections | `9094` | -| `service.ports.external` | Kafka svc port for external connections | `9095` | -| `service.extraPorts` | Extra ports to expose in the Kafka service (normally used with the `sidecar` value) | `[]` | -| `service.nodePorts.client` | Node port for the Kafka client connections | `""` | -| `service.nodePorts.external` | Node port for the Kafka external connections | `""` | -| `service.sessionAffinity` | Control where client requests go, to the same pod or round-robin | `None` | -| `service.sessionAffinityConfig` | Additional settings for the sessionAffinity | `{}` | -| `service.clusterIP` | Kafka service Cluster IP | `""` | -| `service.loadBalancerIP` | Kafka service Load Balancer IP | `""` | -| `service.loadBalancerSourceRanges` | Kafka service Load Balancer sources | `[]` | -| `service.externalTrafficPolicy` | Kafka service external traffic policy | `Cluster` | -| `service.annotations` | Additional custom annotations for Kafka service | `{}` | -| `service.headless.controller.annotations` | Annotations for the controller-eligible headless service. | `{}` | -| `service.headless.controller.labels` | Labels for the controller-eligible headless service. | `{}` | -| `service.headless.broker.annotations` | Annotations for the broker-only headless service. | `{}` | -| `service.headless.broker.labels` | Labels for the broker-only headless service. | `{}` | -| `externalAccess.enabled` | Enable Kubernetes external cluster access to Kafka brokers | `false` | -| `externalAccess.autoDiscovery.enabled` | Enable using an init container to auto-detect external IPs/ports by querying the K8s API | `false` | -| `externalAccess.autoDiscovery.image.registry` | Init container auto-discovery image registry | `docker.io` | -| `externalAccess.autoDiscovery.image.repository` | Init container auto-discovery image repository | `bitnami/kubectl` | -| `externalAccess.autoDiscovery.image.tag` | Init container auto-discovery image tag (immutable tags are recommended) | `1.25.12-debian-11-r29` | -| `externalAccess.autoDiscovery.image.digest` | Kubectl image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` | -| `externalAccess.autoDiscovery.image.pullPolicy` | Init container auto-discovery image pull policy | `IfNotPresent` | -| `externalAccess.autoDiscovery.image.pullSecrets` | Init container auto-discovery image pull secrets | `[]` | -| `externalAccess.autoDiscovery.resources.limits` | The resources limits for the auto-discovery init container | `{}` | -| `externalAccess.autoDiscovery.resources.requests` | The requested resources for the auto-discovery init container | `{}` | -| `externalAccess.controller.forceExpose` | If set to true, force exposing controller-eligible nodes although they are configured as controller-only nodes | `false` | -| `externalAccess.controller.service.type` | Kubernetes Service type for external access. It can be NodePort, LoadBalancer or ClusterIP | `LoadBalancer` | -| `externalAccess.controller.service.ports.external` | Kafka port used for external access when service type is LoadBalancer | `9094` | -| `externalAccess.controller.service.loadBalancerIPs` | Array of load balancer IPs for each Kafka broker. Length must be the same as replicaCount | `[]` | -| `externalAccess.controller.service.loadBalancerNames` | Array of load balancer Names for each Kafka broker. Length must be the same as replicaCount | `[]` | -| `externalAccess.controller.service.loadBalancerAnnotations` | Array of load balancer annotations for each Kafka broker. Length must be the same as replicaCount | `[]` | -| `externalAccess.controller.service.loadBalancerSourceRanges` | Address(es) that are allowed when service is LoadBalancer | `[]` | -| `externalAccess.controller.service.nodePorts` | Array of node ports used for each Kafka broker. Length must be the same as replicaCount | `[]` | -| `externalAccess.controller.service.externalIPs` | Use distinct service host IPs to configure Kafka external listener when service type is NodePort. Length must be the same as replicaCount | `[]` | -| `externalAccess.controller.service.useHostIPs` | Use service host IPs to configure Kafka external listener when service type is NodePort | `false` | -| `externalAccess.controller.service.usePodIPs` | using the MY_POD_IP address for external access. | `false` | -| `externalAccess.controller.service.domain` | Domain or external ip used to configure Kafka external listener when service type is NodePort or ClusterIP | `""` | -| `externalAccess.controller.service.publishNotReadyAddresses` | Indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready | `false` | -| `externalAccess.controller.service.labels` | Service labels for external access | `{}` | -| `externalAccess.controller.service.annotations` | Service annotations for external access | `{}` | -| `externalAccess.controller.service.extraPorts` | Extra ports to expose in the Kafka external service | `[]` | -| `externalAccess.broker.service.type` | Kubernetes Service type for external access. It can be NodePort, LoadBalancer or ClusterIP | `LoadBalancer` | -| `externalAccess.broker.service.ports.external` | Kafka port used for external access when service type is LoadBalancer | `9094` | -| `externalAccess.broker.service.loadBalancerIPs` | Array of load balancer IPs for each Kafka broker. Length must be the same as replicaCount | `[]` | -| `externalAccess.broker.service.loadBalancerNames` | Array of load balancer Names for each Kafka broker. Length must be the same as replicaCount | `[]` | -| `externalAccess.broker.service.loadBalancerAnnotations` | Array of load balancer annotations for each Kafka broker. Length must be the same as replicaCount | `[]` | -| `externalAccess.broker.service.loadBalancerSourceRanges` | Address(es) that are allowed when service is LoadBalancer | `[]` | -| `externalAccess.broker.service.nodePorts` | Array of node ports used for each Kafka broker. Length must be the same as replicaCount | `[]` | -| `externalAccess.broker.service.externalIPs` | Use distinct service host IPs to configure Kafka external listener when service type is NodePort. Length must be the same as replicaCount | `[]` | -| `externalAccess.broker.service.useHostIPs` | Use service host IPs to configure Kafka external listener when service type is NodePort | `false` | -| `externalAccess.broker.service.usePodIPs` | using the MY_POD_IP address for external access. | `false` | -| `externalAccess.broker.service.domain` | Domain or external ip used to configure Kafka external listener when service type is NodePort or ClusterIP | `""` | -| `externalAccess.broker.service.publishNotReadyAddresses` | Indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready | `false` | -| `externalAccess.broker.service.labels` | Service labels for external access | `{}` | -| `externalAccess.broker.service.annotations` | Service annotations for external access | `{}` | -| `externalAccess.broker.service.extraPorts` | Extra ports to expose in the Kafka external service | `[]` | -| `networkPolicy.enabled` | Specifies whether a NetworkPolicy should be created | `false` | -| `networkPolicy.allowExternal` | Don't require client label for connections | `true` | -| `networkPolicy.explicitNamespacesSelector` | A Kubernetes LabelSelector to explicitly select namespaces from which traffic could be allowed | `{}` | -| `networkPolicy.externalAccess.from` | customize the from section for External Access on tcp-external port | `[]` | -| `networkPolicy.egressRules.customRules` | Custom network policy rule | `{}` | +| Name | Description | Value | +| ------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | +| `service.type` | Kubernetes Service type | `ClusterIP` | +| `service.ports.client` | Kafka svc port for client connections | `9092` | +| `service.ports.controller` | Kafka svc port for controller connections. It is used if "kraft.enabled: true" | `9093` | +| `service.ports.interbroker` | Kafka svc port for inter-broker connections | `9094` | +| `service.ports.external` | Kafka svc port for external connections | `9095` | +| `service.extraPorts` | Extra ports to expose in the Kafka service (normally used with the `sidecar` value) | `[]` | +| `service.nodePorts.client` | Node port for the Kafka client connections | `""` | +| `service.nodePorts.external` | Node port for the Kafka external connections | `""` | +| `service.sessionAffinity` | Control where client requests go, to the same pod or round-robin | `None` | +| `service.sessionAffinityConfig` | Additional settings for the sessionAffinity | `{}` | +| `service.clusterIP` | Kafka service Cluster IP | `""` | +| `service.loadBalancerIP` | Kafka service Load Balancer IP | `""` | +| `service.loadBalancerSourceRanges` | Kafka service Load Balancer sources | `[]` | +| `service.externalTrafficPolicy` | Kafka service external traffic policy | `Cluster` | +| `service.annotations` | Additional custom annotations for Kafka service | `{}` | +| `service.headless.controller.annotations` | Annotations for the controller-eligible headless service. | `{}` | +| `service.headless.controller.labels` | Labels for the controller-eligible headless service. | `{}` | +| `service.headless.broker.annotations` | Annotations for the broker-only headless service. | `{}` | +| `service.headless.broker.labels` | Labels for the broker-only headless service. | `{}` | +| `externalAccess.enabled` | Enable Kubernetes external cluster access to Kafka brokers | `false` | +| `externalAccess.autoDiscovery.enabled` | Enable using an init container to auto-detect external IPs/ports by querying the K8s API | `false` | +| `externalAccess.autoDiscovery.image.registry` | Init container auto-discovery image registry | `docker.io` | +| `externalAccess.autoDiscovery.image.repository` | Init container auto-discovery image repository | `bitnami/kubectl` | +| `externalAccess.autoDiscovery.image.tag` | Init container auto-discovery image tag (immutable tags are recommended) | `1.25.13-debian-11-r5` | +| `externalAccess.autoDiscovery.image.digest` | Kubectl image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` | +| `externalAccess.autoDiscovery.image.pullPolicy` | Init container auto-discovery image pull policy | `IfNotPresent` | +| `externalAccess.autoDiscovery.image.pullSecrets` | Init container auto-discovery image pull secrets | `[]` | +| `externalAccess.autoDiscovery.resources.limits` | The resources limits for the auto-discovery init container | `{}` | +| `externalAccess.autoDiscovery.resources.requests` | The requested resources for the auto-discovery init container | `{}` | +| `externalAccess.controller.forceExpose` | If set to true, force exposing controller-eligible nodes although they are configured as controller-only nodes | `false` | +| `externalAccess.controller.service.type` | Kubernetes Service type for external access. It can be NodePort, LoadBalancer or ClusterIP | `LoadBalancer` | +| `externalAccess.controller.service.ports.external` | Kafka port used for external access when service type is LoadBalancer | `9094` | +| `externalAccess.controller.service.loadBalancerIPs` | Array of load balancer IPs for each Kafka broker. Length must be the same as replicaCount | `[]` | +| `externalAccess.controller.service.loadBalancerNames` | Array of load balancer Names for each Kafka broker. Length must be the same as replicaCount | `[]` | +| `externalAccess.controller.service.loadBalancerAnnotations` | Array of load balancer annotations for each Kafka broker. Length must be the same as replicaCount | `[]` | +| `externalAccess.controller.service.loadBalancerSourceRanges` | Address(es) that are allowed when service is LoadBalancer | `[]` | +| `externalAccess.controller.service.nodePorts` | Array of node ports used for each Kafka broker. Length must be the same as replicaCount | `[]` | +| `externalAccess.controller.service.externalIPs` | Use distinct service host IPs to configure Kafka external listener when service type is NodePort. Length must be the same as replicaCount | `[]` | +| `externalAccess.controller.service.useHostIPs` | Use service host IPs to configure Kafka external listener when service type is NodePort | `false` | +| `externalAccess.controller.service.usePodIPs` | using the MY_POD_IP address for external access. | `false` | +| `externalAccess.controller.service.domain` | Domain or external ip used to configure Kafka external listener when service type is NodePort or ClusterIP | `""` | +| `externalAccess.controller.service.publishNotReadyAddresses` | Indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready | `false` | +| `externalAccess.controller.service.labels` | Service labels for external access | `{}` | +| `externalAccess.controller.service.annotations` | Service annotations for external access | `{}` | +| `externalAccess.controller.service.extraPorts` | Extra ports to expose in the Kafka external service | `[]` | +| `externalAccess.broker.service.type` | Kubernetes Service type for external access. It can be NodePort, LoadBalancer or ClusterIP | `LoadBalancer` | +| `externalAccess.broker.service.ports.external` | Kafka port used for external access when service type is LoadBalancer | `9094` | +| `externalAccess.broker.service.loadBalancerIPs` | Array of load balancer IPs for each Kafka broker. Length must be the same as replicaCount | `[]` | +| `externalAccess.broker.service.loadBalancerNames` | Array of load balancer Names for each Kafka broker. Length must be the same as replicaCount | `[]` | +| `externalAccess.broker.service.loadBalancerAnnotations` | Array of load balancer annotations for each Kafka broker. Length must be the same as replicaCount | `[]` | +| `externalAccess.broker.service.loadBalancerSourceRanges` | Address(es) that are allowed when service is LoadBalancer | `[]` | +| `externalAccess.broker.service.nodePorts` | Array of node ports used for each Kafka broker. Length must be the same as replicaCount | `[]` | +| `externalAccess.broker.service.externalIPs` | Use distinct service host IPs to configure Kafka external listener when service type is NodePort. Length must be the same as replicaCount | `[]` | +| `externalAccess.broker.service.useHostIPs` | Use service host IPs to configure Kafka external listener when service type is NodePort | `false` | +| `externalAccess.broker.service.usePodIPs` | using the MY_POD_IP address for external access. | `false` | +| `externalAccess.broker.service.domain` | Domain or external ip used to configure Kafka external listener when service type is NodePort or ClusterIP | `""` | +| `externalAccess.broker.service.publishNotReadyAddresses` | Indicates that any agent which deals with endpoints for this Service should disregard any indications of ready/not-ready | `false` | +| `externalAccess.broker.service.labels` | Service labels for external access | `{}` | +| `externalAccess.broker.service.annotations` | Service annotations for external access | `{}` | +| `externalAccess.broker.service.extraPorts` | Extra ports to expose in the Kafka external service | `[]` | +| `networkPolicy.enabled` | Specifies whether a NetworkPolicy should be created | `false` | +| `networkPolicy.allowExternal` | Don't require client label for connections | `true` | +| `networkPolicy.explicitNamespacesSelector` | A Kubernetes LabelSelector to explicitly select namespaces from which traffic could be allowed | `{}` | +| `networkPolicy.externalAccess.from` | customize the from section for External Access on tcp-external port | `[]` | +| `networkPolicy.egressRules.customRules` | Custom network policy rule | `{}` | ### Volume Permissions parameters @@ -440,7 +440,7 @@ The command removes all the Kubernetes components associated with the chart and | `volumePermissions.enabled` | Enable init container that changes the owner and group of the persistent volume | `false` | | `volumePermissions.image.registry` | Init container volume-permissions image registry | `docker.io` | | `volumePermissions.image.repository` | Init container volume-permissions image repository | `bitnami/os-shell` | -| `volumePermissions.image.tag` | Init container volume-permissions image tag (immutable tags are recommended) | `11-debian-11-r43` | +| `volumePermissions.image.tag` | Init container volume-permissions image tag (immutable tags are recommended) | `11-debian-11-r51` | | `volumePermissions.image.digest` | Init container volume-permissions image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` | | `volumePermissions.image.pullPolicy` | Init container volume-permissions image pull policy | `IfNotPresent` | | `volumePermissions.image.pullSecrets` | Init container volume-permissions image pull secrets | `[]` | @@ -465,7 +465,7 @@ The command removes all the Kubernetes components associated with the chart and | `metrics.kafka.enabled` | Whether or not to create a standalone Kafka exporter to expose Kafka metrics | `false` | | `metrics.kafka.image.registry` | Kafka exporter image registry | `docker.io` | | `metrics.kafka.image.repository` | Kafka exporter image repository | `bitnami/kafka-exporter` | -| `metrics.kafka.image.tag` | Kafka exporter image tag (immutable tags are recommended) | `1.7.0-debian-11-r85` | +| `metrics.kafka.image.tag` | Kafka exporter image tag (immutable tags are recommended) | `1.7.0-debian-11-r93` | | `metrics.kafka.image.digest` | Kafka exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` | | `metrics.kafka.image.pullPolicy` | Kafka exporter image pull policy | `IfNotPresent` | | `metrics.kafka.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` | @@ -519,7 +519,7 @@ The command removes all the Kubernetes components associated with the chart and | `metrics.jmx.kafkaJmxPort` | JMX port where the exporter will collect metrics, exposed in the Kafka container. | `5555` | | `metrics.jmx.image.registry` | JMX exporter image registry | `docker.io` | | `metrics.jmx.image.repository` | JMX exporter image repository | `bitnami/jmx-exporter` | -| `metrics.jmx.image.tag` | JMX exporter image tag (immutable tags are recommended) | `0.19.0-debian-11-r49` | +| `metrics.jmx.image.tag` | JMX exporter image tag (immutable tags are recommended) | `0.19.0-debian-11-r57` | | `metrics.jmx.image.digest` | JMX exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` | | `metrics.jmx.image.pullPolicy` | JMX exporter image pull policy | `IfNotPresent` | | `metrics.jmx.image.pullSecrets` | Specify docker-registry secret names as an array | `[]` | @@ -1087,6 +1087,10 @@ This guide is an adaptation from upstream documentation: [Migrate from ZooKeeper ## Upgrading +### To 25.0.0 + +This major updates the Zookeeper subchart to it newest major, 12.0.0. For more information on this subchart's major, please refer to [zookeeper upgrade notes](https://github.com/bitnami/charts/tree/main/bitnami/zookeeper#to-1200). + ### To 24.0.0 This major version is a refactor of the Kafka chart and its architecture, to better adapt to Kraft features introduced in version 22.0.0. @@ -1209,10 +1213,6 @@ kubectl apply -f $NEW_PVC_MANIFEST_FILE Repeat this process for each replica you had in your Kafka cluster. Once completed, upgrade the cluster and the new Statefulset should reuse the existing PVCs. -### To 25.0.0 - -This major updates the Zookeeper subchart to it newest major, 12.0.0. For more information on this subchart's major, please refer to [zookeeper upgrade notes](https://github.com/bitnami/charts/tree/main/bitnami/zookeeper#to-1200). - ### To 23.0.0 This major updates Kafka to its newest version, 3.5.x. For more information, please refer to [kafka upgrade notes](https://kafka.apache.org/35/documentation.html#upgrade). @@ -1424,4 +1424,4 @@ Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and -limitations under the License. +limitations under the License. \ No newline at end of file diff --git a/charts/bitnami/kafka/charts/common/Chart.yaml b/charts/bitnami/kafka/charts/common/Chart.yaml index 644d2a798..5669a24b3 100644 --- a/charts/bitnami/kafka/charts/common/Chart.yaml +++ b/charts/bitnami/kafka/charts/common/Chart.yaml @@ -2,7 +2,7 @@ annotations: category: Infrastructure licenses: Apache-2.0 apiVersion: v2 -appVersion: 2.9.0 +appVersion: 2.9.1 description: A Library Helm Chart for grouping common logic between bitnami charts. This chart is not deployable by itself. home: https://bitnami.com @@ -20,4 +20,4 @@ name: common sources: - https://github.com/bitnami/charts type: library -version: 2.9.0 +version: 2.9.1 diff --git a/charts/bitnami/kafka/charts/common/templates/_affinities.tpl b/charts/bitnami/kafka/charts/common/templates/_affinities.tpl index b77534bb9..e85b1df45 100644 --- a/charts/bitnami/kafka/charts/common/templates/_affinities.tpl +++ b/charts/bitnami/kafka/charts/common/templates/_affinities.tpl @@ -60,12 +60,13 @@ Return a topologyKey definition {{/* Return a soft podAffinity/podAntiAffinity definition -{{ include "common.affinities.pods.soft" (dict "component" "FOO" "customLabels" .Values.podLabels "extraMatchLabels" .Values.extraMatchLabels "topologyKey" "BAR" "context" $) -}} +{{ include "common.affinities.pods.soft" (dict "component" "FOO" "customLabels" .Values.podLabels "extraMatchLabels" .Values.extraMatchLabels "topologyKey" "BAR" "extraPodAffinityTerms" .Values.extraPodAffinityTerms "context" $) -}} */}} {{- define "common.affinities.pods.soft" -}} {{- $component := default "" .component -}} {{- $customLabels := default (dict) .customLabels -}} {{- $extraMatchLabels := default (dict) .extraMatchLabels -}} +{{- $extraPodAffinityTerms := default (list) .extraPodAffinityTerms -}} preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: labelSelector: @@ -78,16 +79,30 @@ preferredDuringSchedulingIgnoredDuringExecution: {{- end }} topologyKey: {{ include "common.affinities.topologyKey" (dict "topologyKey" .topologyKey) }} weight: 1 + {{- range $extraPodAffinityTerms }} + - podAffinityTerm: + labelSelector: + matchLabels: {{- (include "common.labels.matchLabels" ( dict "customLabels" $customLabels "context" $.context )) | nindent 10 }} + {{- if not (empty $component) }} + {{ printf "app.kubernetes.io/component: %s" $component }} + {{- end }} + {{- range $key, $value := .extraMatchLabels }} + {{ $key }}: {{ $value | quote }} + {{- end }} + topologyKey: {{ include "common.affinities.topologyKey" (dict "topologyKey" .topologyKey) }} + weight: {{ .weight | default 1 -}} + {{- end -}} {{- end -}} {{/* Return a hard podAffinity/podAntiAffinity definition -{{ include "common.affinities.pods.hard" (dict "component" "FOO" "customLabels" .Values.podLabels "extraMatchLabels" .Values.extraMatchLabels "topologyKey" "BAR" "context" $) -}} +{{ include "common.affinities.pods.hard" (dict "component" "FOO" "customLabels" .Values.podLabels "extraMatchLabels" .Values.extraMatchLabels "topologyKey" "BAR" "extraPodAffinityTerms" .Values.extraPodAffinityTerms "context" $) -}} */}} {{- define "common.affinities.pods.hard" -}} {{- $component := default "" .component -}} {{- $customLabels := default (dict) .customLabels -}} {{- $extraMatchLabels := default (dict) .extraMatchLabels -}} +{{- $extraPodAffinityTerms := default (list) .extraPodAffinityTerms -}} requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: {{- (include "common.labels.matchLabels" ( dict "customLabels" $customLabels "context" .context )) | nindent 8 }} @@ -98,6 +113,17 @@ requiredDuringSchedulingIgnoredDuringExecution: {{ $key }}: {{ $value | quote }} {{- end }} topologyKey: {{ include "common.affinities.topologyKey" (dict "topologyKey" .topologyKey) }} + {{- range $extraPodAffinityTerms }} + - labelSelector: + matchLabels: {{- (include "common.labels.matchLabels" ( dict "customLabels" $customLabels "context" $.context )) | nindent 8 }} + {{- if not (empty $component) }} + {{ printf "app.kubernetes.io/component: %s" $component }} + {{- end }} + {{- range $key, $value := .extraMatchLabels }} + {{ $key }}: {{ $value | quote }} + {{- end }} + topologyKey: {{ include "common.affinities.topologyKey" (dict "topologyKey" .topologyKey) }} + {{- end -}} {{- end -}} {{/* diff --git a/charts/bitnami/kafka/charts/zookeeper/Chart.yaml b/charts/bitnami/kafka/charts/zookeeper/Chart.yaml index 3318f7bb8..20793df51 100644 --- a/charts/bitnami/kafka/charts/zookeeper/Chart.yaml +++ b/charts/bitnami/kafka/charts/zookeeper/Chart.yaml @@ -26,4 +26,4 @@ maintainers: name: zookeeper sources: - https://github.com/bitnami/charts/tree/main/bitnami/zookeeper -version: 12.1.0 +version: 12.1.1 diff --git a/charts/bitnami/kafka/charts/zookeeper/README.md b/charts/bitnami/kafka/charts/zookeeper/README.md index cc04e11f1..ba1fd588f 100644 --- a/charts/bitnami/kafka/charts/zookeeper/README.md +++ b/charts/bitnami/kafka/charts/zookeeper/README.md @@ -423,6 +423,10 @@ Find more information about how to deal with common errors related to Bitnami's ## Upgrading +### To 12.0.0 + +This new version of the chart includes the new ZooKeeper major version 3.9.x. For more information, please refer to [Zookeeper 3.9.0 Release Notes](https://zookeeper.apache.org/doc/r3.9.0/releasenotes.html) + ### To 11.0.0 This major version removes `commonAnnotations` and `commonLabels` from `volumeClaimTemplates`. Now annotations and labels can be set in volume claims using `persistence.annotations` and `persistence.labels` values. If the previous deployment has already set `commonAnnotations` and/or `commonLabels` values, to ensure a clean upgrade from previous version without loosing data, please set `persistence.annotations` and/or `persistence.labels` values with the same content as the common values. diff --git a/charts/bitnami/kafka/templates/broker/statefulset.yaml b/charts/bitnami/kafka/templates/broker/statefulset.yaml index bca8fd266..d899edb83 100644 --- a/charts/bitnami/kafka/templates/broker/statefulset.yaml +++ b/charts/bitnami/kafka/templates/broker/statefulset.yaml @@ -61,8 +61,8 @@ spec: affinity: {{- include "common.tplvalues.render" (dict "value" .Values.broker.affinity "context" $) | nindent 8 }} {{- else }} affinity: - podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.broker.podAffinityPreset "component" "kafka" "customLabels" $podLabels "context" $) | nindent 10 }} - podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.broker.podAntiAffinityPreset "component" "kafka" "customLabels" $podLabels "context" $) | nindent 10 }} + podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.broker.podAffinityPreset "component" "broker" "customLabels" $podLabels "context" $) | nindent 10 }} + podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.broker.podAntiAffinityPreset "component" "broker" "customLabels" $podLabels "context" $) | nindent 10 }} nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.broker.nodeAffinityPreset.type "key" .Values.broker.nodeAffinityPreset.key "values" .Values.broker.nodeAffinityPreset.values) | nindent 10 }} {{- end }} {{- if .Values.broker.nodeSelector }} diff --git a/charts/bitnami/kafka/templates/controller-eligible/statefulset.yaml b/charts/bitnami/kafka/templates/controller-eligible/statefulset.yaml index 072a14b2b..80ddc3727 100644 --- a/charts/bitnami/kafka/templates/controller-eligible/statefulset.yaml +++ b/charts/bitnami/kafka/templates/controller-eligible/statefulset.yaml @@ -61,8 +61,8 @@ spec: affinity: {{- include "common.tplvalues.render" (dict "value" .Values.controller.affinity "context" $) | nindent 8 }} {{- else }} affinity: - podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.controller.podAffinityPreset "component" "kafka" "customLabels" $podLabels "context" $) | nindent 10 }} - podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.controller.podAntiAffinityPreset "component" "kafka" "customLabels" $podLabels "context" $) | nindent 10 }} + podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.controller.podAffinityPreset "component" "controller-eligible" "customLabels" $podLabels "context" $) | nindent 10 }} + podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.controller.podAntiAffinityPreset "component" "controller-eligible" "customLabels" $podLabels "context" $) | nindent 10 }} nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.controller.nodeAffinityPreset.type "key" .Values.controller.nodeAffinityPreset.key "values" .Values.controller.nodeAffinityPreset.values) | nindent 10 }} {{- end }} {{- if .Values.controller.nodeSelector }} diff --git a/charts/bitnami/kafka/templates/metrics/deployment.yaml b/charts/bitnami/kafka/templates/metrics/deployment.yaml index bbcea7fba..16eb69f67 100644 --- a/charts/bitnami/kafka/templates/metrics/deployment.yaml +++ b/charts/bitnami/kafka/templates/metrics/deployment.yaml @@ -7,7 +7,7 @@ SPDX-License-Identifier: APACHE-2.0 {{- $releaseNamespace := include "common.names.namespace" . -}} {{- $clusterDomain := .Values.clusterDomain -}} {{- $fullname := include "common.names.fullname" . -}} -{{- $servicePort := int .Values.service.ports.client -}} +{{- $containerPort := int .Values.listeners.client.containerPort -}} apiVersion: {{ include "common.capabilities.deployment.apiVersion" . }} kind: Deployment metadata: @@ -40,8 +40,8 @@ spec: affinity: {{- include "common.tplvalues.render" ( dict "value" .Values.metrics.kafka.affinity "context" $) | nindent 8 }} {{- else }} affinity: - podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.metrics.kafka.podAffinityPreset "component" "metrics" "customLabels" $podLabels "context" $) | nindent 10 }} - podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.metrics.kafka.podAntiAffinityPreset "component" "metrics" "customLabels" $podLabels "context" $) | nindent 10 }} + podAffinity: {{- include "common.affinities.pods" (dict "type" .Values.metrics.kafka.podAffinityPreset "component" "cluster-metrics" "customLabels" $podLabels "context" $) | nindent 10 }} + podAntiAffinity: {{- include "common.affinities.pods" (dict "type" .Values.metrics.kafka.podAntiAffinityPreset "component" "cluster-metrics" "customLabels" $podLabels "context" $) | nindent 10 }} nodeAffinity: {{- include "common.affinities.nodes" (dict "type" .Values.metrics.kafka.nodeAffinityPreset.type "key" .Values.metrics.kafka.nodeAffinityPreset.key "values" .Values.metrics.kafka.nodeAffinityPreset.values) | nindent 10 }} {{- end }} {{- if .Values.metrics.kafka.nodeSelector }} @@ -92,10 +92,10 @@ spec: - | kafka_exporter \ {{- range $i := until (int .Values.controller.replicaCount) }} - --kafka.server={{ $fullname }}-controller-{{ $i }}.{{ $fullname }}-controller-headless.{{ $releaseNamespace }}.svc.{{ $clusterDomain }}:{{ $servicePort }} \ + --kafka.server={{ $fullname }}-controller-{{ $i }}.{{ $fullname }}-controller-headless.{{ $releaseNamespace }}.svc.{{ $clusterDomain }}:{{ $containerPort }} \ {{- end }} {{- range $i := until (int .Values.broker.replicaCount) }} - --kafka.server={{ $fullname }}-broker-{{ $i }}.{{ $fullname }}-broker-headless.{{ $releaseNamespace }}.svc.{{ $clusterDomain }}:{{ $servicePort }} \ + --kafka.server={{ $fullname }}-broker-{{ $i }}.{{ $fullname }}-broker-headless.{{ $releaseNamespace }}.svc.{{ $clusterDomain }}:{{ $containerPort }} \ {{- end }} {{- if regexFind "SASL" (upper .Values.listeners.client.protocol) }} --sasl.enabled \ diff --git a/charts/bitnami/kafka/values.yaml b/charts/bitnami/kafka/values.yaml index 2c2ffb965..c8e6cb728 100644 --- a/charts/bitnami/kafka/values.yaml +++ b/charts/bitnami/kafka/values.yaml @@ -80,7 +80,7 @@ diagnosticMode: image: registry: docker.io repository: bitnami/kafka - tag: 3.5.1-debian-11-r25 + tag: 3.5.1-debian-11-r35 digest: "" ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' @@ -1254,7 +1254,7 @@ externalAccess: image: registry: docker.io repository: bitnami/kubectl - tag: 1.25.12-debian-11-r29 + tag: 1.25.13-debian-11-r5 digest: "" ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' @@ -1504,7 +1504,7 @@ volumePermissions: image: registry: docker.io repository: bitnami/os-shell - tag: 11-debian-11-r43 + tag: 11-debian-11-r51 digest: "" pullPolicy: IfNotPresent ## Optionally specify an array of imagePullSecrets. @@ -1586,7 +1586,7 @@ metrics: image: registry: docker.io repository: bitnami/kafka-exporter - tag: 1.7.0-debian-11-r85 + tag: 1.7.0-debian-11-r93 digest: "" ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' @@ -1840,7 +1840,7 @@ metrics: image: registry: docker.io repository: bitnami/jmx-exporter - tag: 0.19.0-debian-11-r49 + tag: 0.19.0-debian-11-r57 digest: "" ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' diff --git a/charts/bitnami/wordpress/Chart.lock b/charts/bitnami/wordpress/Chart.lock index 103d2831c..2e18fffa0 100644 --- a/charts/bitnami/wordpress/Chart.lock +++ b/charts/bitnami/wordpress/Chart.lock @@ -4,9 +4,9 @@ dependencies: version: 6.6.0 - name: mariadb repository: oci://registry-1.docker.io/bitnamicharts - version: 13.1.0 + version: 13.1.2 - name: common repository: oci://registry-1.docker.io/bitnamicharts - version: 2.9.0 -digest: sha256:19433d22b87927464569967e128b716709f4b8e8c99e59c5b6d00b6c61ed98f4 -generated: "2023-08-23T12:48:27.768104+02:00" + version: 2.9.1 +digest: sha256:5df6e862af69422cc6e287bf9dd560b3a1e56d3b49b4bc81132b0db10903cd80 +generated: "2023-08-30T09:41:25.351778314Z" diff --git a/charts/bitnami/wordpress/Chart.yaml b/charts/bitnami/wordpress/Chart.yaml index 646700ca1..f3668fe61 100644 --- a/charts/bitnami/wordpress/Chart.yaml +++ b/charts/bitnami/wordpress/Chart.yaml @@ -6,14 +6,14 @@ annotations: category: CMS images: | - name: apache-exporter - image: docker.io/bitnami/apache-exporter:1.0.1-debian-11-r23 + image: docker.io/bitnami/apache-exporter:1.0.1-debian-11-r29 - name: os-shell - image: docker.io/bitnami/os-shell:11-debian-11-r45 + image: docker.io/bitnami/os-shell:11-debian-11-r51 - name: wordpress - image: docker.io/bitnami/wordpress:6.3.0-debian-11-r13 + image: docker.io/bitnami/wordpress:6.3.1-debian-11-r0 licenses: Apache-2.0 apiVersion: v2 -appVersion: 6.3.0 +appVersion: 6.3.1 dependencies: - condition: memcached.enabled name: memcached @@ -47,4 +47,4 @@ maintainers: name: wordpress sources: - https://github.com/bitnami/charts/tree/main/bitnami/wordpress -version: 17.1.3 +version: 17.1.4 diff --git a/charts/bitnami/wordpress/README.md b/charts/bitnami/wordpress/README.md index 86919cab6..89eaad526 100644 --- a/charts/bitnami/wordpress/README.md +++ b/charts/bitnami/wordpress/README.md @@ -78,15 +78,15 @@ The command removes all the Kubernetes components associated with the chart and ### WordPress Image parameters -| Name | Description | Value | -| ------------------- | --------------------------------------------------------------------------------------------------------- | --------------------- | -| `image.registry` | WordPress image registry | `docker.io` | -| `image.repository` | WordPress image repository | `bitnami/wordpress` | -| `image.tag` | WordPress image tag (immutable tags are recommended) | `6.3.0-debian-11-r13` | -| `image.digest` | WordPress image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` | -| `image.pullPolicy` | WordPress image pull policy | `IfNotPresent` | -| `image.pullSecrets` | WordPress image pull secrets | `[]` | -| `image.debug` | Specify if debug values should be set | `false` | +| Name | Description | Value | +| ------------------- | --------------------------------------------------------------------------------------------------------- | -------------------- | +| `image.registry` | WordPress image registry | `docker.io` | +| `image.repository` | WordPress image repository | `bitnami/wordpress` | +| `image.tag` | WordPress image tag (immutable tags are recommended) | `6.3.1-debian-11-r0` | +| `image.digest` | WordPress image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` | +| `image.pullPolicy` | WordPress image pull policy | `IfNotPresent` | +| `image.pullSecrets` | WordPress image pull secrets | `[]` | +| `image.debug` | Specify if debug values should be set | `false` | ### WordPress Configuration parameters @@ -249,7 +249,7 @@ The command removes all the Kubernetes components associated with the chart and | `volumePermissions.enabled` | Enable init container that changes the owner/group of the PV mount point to `runAsUser:fsGroup` | `false` | | `volumePermissions.image.registry` | OS Shell + Utility image registry | `docker.io` | | `volumePermissions.image.repository` | OS Shell + Utility image repository | `bitnami/os-shell` | -| `volumePermissions.image.tag` | OS Shell + Utility image tag (immutable tags are recommended) | `11-debian-11-r45` | +| `volumePermissions.image.tag` | OS Shell + Utility image tag (immutable tags are recommended) | `11-debian-11-r51` | | `volumePermissions.image.digest` | OS Shell + Utility image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` | | `volumePermissions.image.pullPolicy` | OS Shell + Utility image pull policy | `IfNotPresent` | | `volumePermissions.image.pullSecrets` | OS Shell + Utility image pull secrets | `[]` | @@ -281,7 +281,7 @@ The command removes all the Kubernetes components associated with the chart and | `metrics.enabled` | Start a sidecar prometheus exporter to expose metrics | `false` | | `metrics.image.registry` | Apache exporter image registry | `docker.io` | | `metrics.image.repository` | Apache exporter image repository | `bitnami/apache-exporter` | -| `metrics.image.tag` | Apache exporter image tag (immutable tags are recommended) | `1.0.1-debian-11-r23` | +| `metrics.image.tag` | Apache exporter image tag (immutable tags are recommended) | `1.0.1-debian-11-r29` | | `metrics.image.digest` | Apache exporter image digest in the way sha256:aa.... Please note this parameter, if set, will override the tag | `""` | | `metrics.image.pullPolicy` | Apache exporter image pull policy | `IfNotPresent` | | `metrics.image.pullSecrets` | Apache exporter image pull secrets | `[]` | diff --git a/charts/bitnami/wordpress/charts/common/Chart.yaml b/charts/bitnami/wordpress/charts/common/Chart.yaml index 644d2a798..5669a24b3 100644 --- a/charts/bitnami/wordpress/charts/common/Chart.yaml +++ b/charts/bitnami/wordpress/charts/common/Chart.yaml @@ -2,7 +2,7 @@ annotations: category: Infrastructure licenses: Apache-2.0 apiVersion: v2 -appVersion: 2.9.0 +appVersion: 2.9.1 description: A Library Helm Chart for grouping common logic between bitnami charts. This chart is not deployable by itself. home: https://bitnami.com @@ -20,4 +20,4 @@ name: common sources: - https://github.com/bitnami/charts type: library -version: 2.9.0 +version: 2.9.1 diff --git a/charts/bitnami/wordpress/charts/common/templates/_affinities.tpl b/charts/bitnami/wordpress/charts/common/templates/_affinities.tpl index b77534bb9..e85b1df45 100644 --- a/charts/bitnami/wordpress/charts/common/templates/_affinities.tpl +++ b/charts/bitnami/wordpress/charts/common/templates/_affinities.tpl @@ -60,12 +60,13 @@ Return a topologyKey definition {{/* Return a soft podAffinity/podAntiAffinity definition -{{ include "common.affinities.pods.soft" (dict "component" "FOO" "customLabels" .Values.podLabels "extraMatchLabels" .Values.extraMatchLabels "topologyKey" "BAR" "context" $) -}} +{{ include "common.affinities.pods.soft" (dict "component" "FOO" "customLabels" .Values.podLabels "extraMatchLabels" .Values.extraMatchLabels "topologyKey" "BAR" "extraPodAffinityTerms" .Values.extraPodAffinityTerms "context" $) -}} */}} {{- define "common.affinities.pods.soft" -}} {{- $component := default "" .component -}} {{- $customLabels := default (dict) .customLabels -}} {{- $extraMatchLabels := default (dict) .extraMatchLabels -}} +{{- $extraPodAffinityTerms := default (list) .extraPodAffinityTerms -}} preferredDuringSchedulingIgnoredDuringExecution: - podAffinityTerm: labelSelector: @@ -78,16 +79,30 @@ preferredDuringSchedulingIgnoredDuringExecution: {{- end }} topologyKey: {{ include "common.affinities.topologyKey" (dict "topologyKey" .topologyKey) }} weight: 1 + {{- range $extraPodAffinityTerms }} + - podAffinityTerm: + labelSelector: + matchLabels: {{- (include "common.labels.matchLabels" ( dict "customLabels" $customLabels "context" $.context )) | nindent 10 }} + {{- if not (empty $component) }} + {{ printf "app.kubernetes.io/component: %s" $component }} + {{- end }} + {{- range $key, $value := .extraMatchLabels }} + {{ $key }}: {{ $value | quote }} + {{- end }} + topologyKey: {{ include "common.affinities.topologyKey" (dict "topologyKey" .topologyKey) }} + weight: {{ .weight | default 1 -}} + {{- end -}} {{- end -}} {{/* Return a hard podAffinity/podAntiAffinity definition -{{ include "common.affinities.pods.hard" (dict "component" "FOO" "customLabels" .Values.podLabels "extraMatchLabels" .Values.extraMatchLabels "topologyKey" "BAR" "context" $) -}} +{{ include "common.affinities.pods.hard" (dict "component" "FOO" "customLabels" .Values.podLabels "extraMatchLabels" .Values.extraMatchLabels "topologyKey" "BAR" "extraPodAffinityTerms" .Values.extraPodAffinityTerms "context" $) -}} */}} {{- define "common.affinities.pods.hard" -}} {{- $component := default "" .component -}} {{- $customLabels := default (dict) .customLabels -}} {{- $extraMatchLabels := default (dict) .extraMatchLabels -}} +{{- $extraPodAffinityTerms := default (list) .extraPodAffinityTerms -}} requiredDuringSchedulingIgnoredDuringExecution: - labelSelector: matchLabels: {{- (include "common.labels.matchLabels" ( dict "customLabels" $customLabels "context" .context )) | nindent 8 }} @@ -98,6 +113,17 @@ requiredDuringSchedulingIgnoredDuringExecution: {{ $key }}: {{ $value | quote }} {{- end }} topologyKey: {{ include "common.affinities.topologyKey" (dict "topologyKey" .topologyKey) }} + {{- range $extraPodAffinityTerms }} + - labelSelector: + matchLabels: {{- (include "common.labels.matchLabels" ( dict "customLabels" $customLabels "context" $.context )) | nindent 8 }} + {{- if not (empty $component) }} + {{ printf "app.kubernetes.io/component: %s" $component }} + {{- end }} + {{- range $key, $value := .extraMatchLabels }} + {{ $key }}: {{ $value | quote }} + {{- end }} + topologyKey: {{ include "common.affinities.topologyKey" (dict "topologyKey" .topologyKey) }} + {{- end -}} {{- end -}} {{/* diff --git a/charts/bitnami/wordpress/charts/mariadb/Chart.yaml b/charts/bitnami/wordpress/charts/mariadb/Chart.yaml index 455d8d61a..e3cef98b1 100644 --- a/charts/bitnami/wordpress/charts/mariadb/Chart.yaml +++ b/charts/bitnami/wordpress/charts/mariadb/Chart.yaml @@ -33,4 +33,4 @@ maintainers: name: mariadb sources: - https://github.com/bitnami/charts/tree/main/bitnami/mariadb -version: 13.1.0 +version: 13.1.2 diff --git a/charts/bitnami/wordpress/charts/mariadb/templates/primary/svc.yaml b/charts/bitnami/wordpress/charts/mariadb/templates/primary/svc.yaml index f0066aa70..adf3685e0 100644 --- a/charts/bitnami/wordpress/charts/mariadb/templates/primary/svc.yaml +++ b/charts/bitnami/wordpress/charts/mariadb/templates/primary/svc.yaml @@ -27,7 +27,7 @@ spec: externalTrafficPolicy: {{ .Values.primary.service.externalTrafficPolicy | quote }} {{- end }} {{- if and (eq .Values.primary.service.type "LoadBalancer") .Values.primary.service.loadBalancerSourceRanges }} - loadBalancerSourceRanges: {{ .Values.primary.service.loadBalancerSourceRanges }} + loadBalancerSourceRanges: {{- toYaml .Values.primary.service.loadBalancerSourceRanges | nindent 4 }} {{ end }} {{- if (and (eq .Values.primary.service.type "LoadBalancer") (not (empty .Values.primary.service.loadBalancerIP))) }} loadBalancerIP: {{ .Values.primary.service.loadBalancerIP }} diff --git a/charts/bitnami/wordpress/charts/mariadb/templates/secondary/svc.yaml b/charts/bitnami/wordpress/charts/mariadb/templates/secondary/svc.yaml index 30388144c..36fd81042 100644 --- a/charts/bitnami/wordpress/charts/mariadb/templates/secondary/svc.yaml +++ b/charts/bitnami/wordpress/charts/mariadb/templates/secondary/svc.yaml @@ -28,7 +28,7 @@ spec: externalTrafficPolicy: {{ .Values.secondary.service.externalTrafficPolicy | quote }} {{- end }} {{- if and (eq .Values.secondary.service.type "LoadBalancer") .Values.secondary.service.loadBalancerSourceRanges }} - loadBalancerSourceRanges: {{ .Values.secondary.service.loadBalancerSourceRanges }} + loadBalancerSourceRanges: {{- toYaml .Values.secondary.service.loadBalancerSourceRanges | nindent 4 }} {{ end }} {{- if and (eq .Values.secondary.service.type "LoadBalancer") (not (empty .Values.secondary.service.loadBalancerIP)) }} loadBalancerIP: {{ .Values.secondary.service.loadBalancerIP }} diff --git a/charts/bitnami/wordpress/values.yaml b/charts/bitnami/wordpress/values.yaml index 5ac7f6ad9..35374622d 100644 --- a/charts/bitnami/wordpress/values.yaml +++ b/charts/bitnami/wordpress/values.yaml @@ -76,7 +76,7 @@ diagnosticMode: image: registry: docker.io repository: bitnami/wordpress - tag: 6.3.0-debian-11-r13 + tag: 6.3.1-debian-11-r0 digest: "" ## Specify a imagePullPolicy ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' @@ -766,7 +766,7 @@ volumePermissions: image: registry: docker.io repository: bitnami/os-shell - tag: 11-debian-11-r45 + tag: 11-debian-11-r51 digest: "" pullPolicy: IfNotPresent ## Optionally specify an array of imagePullSecrets. @@ -860,7 +860,7 @@ metrics: image: registry: docker.io repository: bitnami/apache-exporter - tag: 1.0.1-debian-11-r23 + tag: 1.0.1-debian-11-r29 digest: "" pullPolicy: IfNotPresent ## Optionally specify an array of imagePullSecrets. diff --git a/charts/fairwinds/polaris/Chart.yaml b/charts/fairwinds/polaris/Chart.yaml index f3551a4fd..71a403186 100644 --- a/charts/fairwinds/polaris/Chart.yaml +++ b/charts/fairwinds/polaris/Chart.yaml @@ -12,4 +12,4 @@ maintainers: - email: robertb@fairwinds.com name: rbren name: polaris -version: 5.13.0 +version: 5.14.0 diff --git a/charts/fairwinds/polaris/README.md b/charts/fairwinds/polaris/README.md index 5e9ed0452..b4e0a2948 100644 --- a/charts/fairwinds/polaris/README.md +++ b/charts/fairwinds/polaris/README.md @@ -79,6 +79,7 @@ the 0.10.0 version of this chart will only work on kubernetes 1.14.0+ | webhook.validate | bool | `true` | Enables the Validating Webhook, to reject resources with issues | | webhook.mutate | bool | `false` | Enables the Mutating Webhook, to modify resources with issues | | webhook.replicas | int | `2` | Number of replicas | +| webhook.logLevel | string | `"info"` | Set the logging level for the Webhook command | | webhook.nodeSelector | object | `{}` | Webhook pod nodeSelector | | webhook.tolerations | list | `[]` | Webhook pod tolerations | | webhook.affinity | object | `{}` | Webhook pods affinity | diff --git a/charts/fairwinds/polaris/templates/webhook.deployment.yaml b/charts/fairwinds/polaris/templates/webhook.deployment.yaml index 1e085c5fc..dc8c6fe5e 100644 --- a/charts/fairwinds/polaris/templates/webhook.deployment.yaml +++ b/charts/fairwinds/polaris/templates/webhook.deployment.yaml @@ -52,6 +52,9 @@ spec: {{- end }} - --validate={{ .Values.webhook.validate }} - --mutate={{ .Values.webhook.mutate }} + {{- if .Values.webhook.logLevel }} + - --log-level={{ .Values.webhook.logLevel }} + {{- end }} image: '{{.Values.image.repository}}:{{.Values.image.tag | default .Chart.AppVersion }}' imagePullPolicy: '{{.Values.image.pullPolicy}}' ports: diff --git a/charts/fairwinds/polaris/values.yaml b/charts/fairwinds/polaris/values.yaml index 024462a6f..cd8461828 100644 --- a/charts/fairwinds/polaris/values.yaml +++ b/charts/fairwinds/polaris/values.yaml @@ -139,6 +139,8 @@ webhook: mutate: false # webhook.replicas -- Number of replicas replicas: 2 + # webhook.logLevel -- Set the logging level for the Webhook command + logLevel: info # webhook.nodeSelector -- Webhook pod nodeSelector nodeSelector: {} # webhook.tolerations -- Webhook pod tolerations diff --git a/charts/harbor/harbor/Chart.yaml b/charts/harbor/harbor/Chart.yaml index 7a69cca9f..6b093bb1a 100644 --- a/charts/harbor/harbor/Chart.yaml +++ b/charts/harbor/harbor/Chart.yaml @@ -4,11 +4,11 @@ annotations: catalog.cattle.io/kube-version: '>=1.20-0' catalog.cattle.io/release-name: harbor apiVersion: v1 -appVersion: 2.8.4 +appVersion: 2.9.0 description: An open source trusted cloud native registry that stores, signs, and scans content home: https://goharbor.io -icon: https://raw.githubusercontent.com/goharbor/website/master/static/img/logos/harbor-icon-color.png +icon: https://raw.githubusercontent.com/goharbor/website/main/static/img/logos/harbor-icon-color.png keywords: - docker - registry @@ -24,4 +24,4 @@ name: harbor sources: - https://github.com/goharbor/harbor - https://github.com/goharbor/harbor-helm -version: 1.12.4 +version: 1.13.0 diff --git a/charts/harbor/harbor/README.md b/charts/harbor/harbor/README.md index 85cc537c6..f30598cc0 100644 --- a/charts/harbor/harbor/README.md +++ b/charts/harbor/harbor/README.md @@ -1,6 +1,6 @@ # Helm Chart for Harbor -**Notes:** The master branch is in heavy development, please use the other stable versions instead. A highly available solution for Harbor based on chart can be find [here](docs/High%20Availability.md). And refer to the [guide](docs/Upgrade.md) to upgrade the existing deployment. +**Notes:** The master branch is in heavy development, please use the other stable versions instead. A highly available solution for Harbor based on chart can be found [here](docs/High%20Availability.md). And refer to the [guide](docs/Upgrade.md) to upgrade the existing deployment. This repository, including the issues, focuses on deploying Harbor chart via helm. For functionality issues or Harbor questions, please open issues on [goharbor/harbor](https://github.com/goharbor/harbor) @@ -38,7 +38,7 @@ The following items can be set via `--set` flag during installation or configure The external URL for Harbor core service is used to: 1. populate the docker/helm commands showed on portal -2. populate the token service URL returned to docker/notary client +2. populate the token service URL returned to docker client Format: `protocol://domain[:port]`. Usually: @@ -83,37 +83,30 @@ The following table lists the configurable parameters of the Harbor chart and th | `expose.tls.certSource` | The source of the TLS certificate. Set as `auto`, `secret` or `none` and fill the information in the corresponding section: 1) auto: generate the TLS certificate automatically 2) secret: read the TLS certificate from the specified secret. The TLS certificate can be generated manually or by cert manager 3) none: configure no TLS certificate for the ingress. If the default TLS certificate is configured in the ingress controller, choose this option | `auto` | | `expose.tls.auto.commonName` | The common name used to generate the certificate, it's necessary when the type isn't `ingress` | | | `expose.tls.secret.secretName` | The name of secret which contains keys named: `tls.crt` - the certificate; `tls.key` - the private key | | -| `expose.tls.secret.notarySecretName` | The name of secret which contains keys named: `tls.crt` - the certificate; `tls.key` - the private key. Only needed when the `expose.type` is `ingress` | | | `expose.ingress.hosts.core` | The host of Harbor core service in ingress rule | `core.harbor.domain` | -| `expose.ingress.hosts.notary` | The host of Harbor Notary service in ingress rule | `notary.harbor.domain` | | `expose.ingress.controller` | The ingress controller type. Currently supports `default`, `gce`, `alb`, `f5-bigip` and `ncp` | `default` | | `expose.ingress.kubeVersionOverride` | Allows the ability to override the kubernetes version used while templating the ingress | | | `expose.ingress.annotations` | The annotations used commonly for ingresses | | | `expose.ingress.harbor.annotations` | The annotations specific to harbor ingress | {} | | `expose.ingress.harbor.labels` | The labels specific to harbor ingress | {} | -| `expose.ingress.notary.annotations` | The annotations specific to notary ingress | {} | -| `expose.ingress.notary.labels` | The labels specific to notary ingress | {} | | `expose.clusterIP.name` | The name of ClusterIP service | `harbor` | | `expose.clusterIP.annotations` | The annotations attached to the ClusterIP service | {} | | `expose.clusterIP.ports.httpPort` | The service port Harbor listens on when serving HTTP | `80` | | `expose.clusterIP.ports.httpsPort` | The service port Harbor listens on when serving HTTPS | `443` | -| `expose.clusterIP.ports.notaryPort` | The service port Notary listens on. Only needed when `notary.enabled` is set to `true` | `4443` | | `expose.nodePort.name` | The name of NodePort service | `harbor` | | `expose.nodePort.ports.http.port` | The service port Harbor listens on when serving HTTP | `80` | | `expose.nodePort.ports.http.nodePort` | The node port Harbor listens on when serving HTTP | `30002` | | `expose.nodePort.ports.https.port` | The service port Harbor listens on when serving HTTPS | `443` | | `expose.nodePort.ports.https.nodePort` | The node port Harbor listens on when serving HTTPS | `30003` | -| `expose.nodePort.ports.notary.port` | The service port Notary listens on. Only needed when `notary.enabled` is set to `true` | `4443` | -| `expose.nodePort.ports.notary.nodePort` | The node port Notary listens on. Only needed when `notary.enabled` is set to `true` | `30004` | | `expose.loadBalancer.name` | The name of service | `harbor` | | `expose.loadBalancer.IP` | The IP of the loadBalancer. It only works when loadBalancer supports assigning IP | `""` | | `expose.loadBalancer.ports.httpPort` | The service port Harbor listens on when serving HTTP | `80` | | `expose.loadBalancer.ports.httpsPort` | The service port Harbor listens on when serving HTTPS | `30002` | -| `expose.loadBalancer.ports.notaryPort` | The service port Notary listens on. Only needed when `notary.enabled` is set to `true` | | | `expose.loadBalancer.annotations` | The annotations attached to the loadBalancer service | {} | | `expose.loadBalancer.sourceRanges` | List of IP address ranges to assign to loadBalancerSourceRanges | [] | | **Internal TLS** | | | | `internalTLS.enabled` | Enable TLS for the components (core, jobservice, portal, registry, trivy) | `false` | +| `internalTLS.strong_ssl_ciphers` | Enable strong ssl ciphers for nginx and portal | `false` | `internalTLS.certSource` | Method to provide TLS for the components, options are `auto`, `manual`, `secret`. | `auto` | | `internalTLS.trustCa` | The content of trust CA, only available when `certSource` is `manual`. **Note**: all the internal certificates of the components must be issued by this CA | | | `internalTLS.core.secretName` | The secret name for core component, only available when `certSource` is `secret`. The secret must contain keys named: `ca.crt` - the CA certificate which is used to issue internal key and crt pair for components and all Harbor components must be issued by the same CA, `tls.crt` - the content of the TLS cert file, `tls.key` - the content of the TLS key file. | | @@ -201,6 +194,7 @@ The following table lists the configurable parameters of the Harbor chart and th | `nginx.nodeSelector` | Node labels for pod assignment | `{}` | | `nginx.tolerations` | Tolerations for pod assignment | `[]` | | `nginx.affinity` | Node/Pod affinities | `{}` | +| `nginx.topologySpreadConstraints` | Constraints that define how Pods are spread across failure-domains like regions or availability zones | `[]` | | `nginx.podAnnotations` | Annotations to add to the nginx pod | `{}` | | `nginx.priorityClassName` | The priority class to run the pod as | | | **Portal** | | | @@ -213,6 +207,7 @@ The following table lists the configurable parameters of the Harbor chart and th | `portal.nodeSelector` | Node labels for pod assignment | `{}` | | `portal.tolerations` | Tolerations for pod assignment | `[]` | | `portal.affinity` | Node/Pod affinities | `{}` | +| `portal.topologySpreadConstraints` | Constraints that define how Pods are spread across failure-domains like regions or availability zones | `[]` | | `portal.podAnnotations` | Annotations to add to the portal pod | `{}` | | `portal.priorityClassName` | The priority class to run the pod as | | | **Core** | | | @@ -226,8 +221,11 @@ The following table lists the configurable parameters of the Harbor chart and th | `core.nodeSelector` | Node labels for pod assignment | `{}` | | `core.tolerations` | Tolerations for pod assignment | `[]` | | `core.affinity` | Node/Pod affinities | `{}` | +| `core.topologySpreadConstraints` | Constraints that define how Pods are spread across failure-domains like regions or availability zones | `[]` | | `core.podAnnotations` | Annotations to add to the core pod | `{}` | | `core.serviceAnnotations` | Annotations to add to the core service | `{}` | +| `core.configureUserSettings` | A JSON string to set in the environment variable `CONFIG_OVERWRITE_JSON` to configure user settings. See the [official docs](https://goharbor.io/docs/latest/install-config/configure-user-settings-cli/#configure-users-settings-using-an-environment-variable). | | +| `core.quotaUpdateProvider` | The provider for updating project quota(usage), there are 2 options, redis or db. By default it is implemented by db but you can configure it to redis which can improve the performance of high concurrent pushing to the same project, and reduce the database connections spike and occupies. Using redis will bring up some delay for quota usage updation for display, so only suggest switch provider to redis if you were ran into the db connections spike around the scenario of high concurrent pushing to same project, no improvment for other scenes. | `db` | | `core.secret` | Secret is used when core server communicates with other components. If a secret key is not specified, Helm will generate one. Must be a string of 16 chars. | | | `core.secretName` | Fill the name of a kubernetes secret if you want to use your own TLS certificate and private key for token encryption/decryption. The secret must contain keys named: `tls.crt` - the certificate and `tls.key` - the private key. The default key pair will be used if it isn't set | | | `core.tokenKey` | PEM-formatted RSA private key used to sign service tokens. Only used if `core.secretName` is unset. If set, `core.tokenCert` MUST also be set. | | @@ -253,6 +251,7 @@ The following table lists the configurable parameters of the Harbor chart and th | `jobservice.nodeSelector` | Node labels for pod assignment | `{}` | | `jobservice.tolerations` | Tolerations for pod assignment | `[]` | | `jobservice.affinity` | Node/Pod affinities | `{}` | +| `jobservice.topologySpreadConstraints` | Constraints that define how Pods are spread across failure-domains like regions or availability zones | `[]` | | `jobservice.podAnnotations` | Annotations to add to the jobservice pod | `{}` | | `jobservice.priorityClassName` | The priority class to run the pod as | | | `jobservice.secret` | Secret is used when job service communicates with other components. If a secret key is not specified, Helm will generate one. Must be a string of 16 chars. | | @@ -269,12 +268,13 @@ The following table lists the configurable parameters of the Harbor chart and th | `registry.automountServiceAccountToken` | Mount serviceAccountToken? | `false` | | `registry.tolerations` | Tolerations for pod assignment | `[]` | | `registry.affinity` | Node/Pod affinities | `{}` | +| `registry.topologySpreadConstraints` | Constraints that define how Pods are spread across failure-domains like regions or availability zones | `[]` | | `registry.middleware` | Middleware is used to add support for a CDN between backend storage and `docker pull` recipient. See [official docs](https://github.com/docker/distribution/blob/master/docs/configuration.md#middleware). | | | `registry.podAnnotations` | Annotations to add to the registry pod | `{}` | | `registry.priorityClassName` | The priority class to run the pod as | | | `registry.secret` | Secret is used to secure the upload state from client and registry storage backend. See [official docs](https://github.com/docker/distribution/blob/master/docs/configuration.md#http). If a secret key is not specified, Helm will generate one. Must be a string of 16 chars. | | -| `registry.credentials.username` | The username for accessing the registry instance, which is hosted by htpasswd auth mode. More details see [official docs](https://github.com/docker/distribution/blob/master/docs/configuration.md#htpasswd). | `harbor_registry_user` | -| `registry.credentials.password` | The password for accessing the registry instance, which is hosted by htpasswd auth mode. More details see [official docs](https://github.com/docker/distribution/blob/master/docs/configuration.md#htpasswd). It is suggested you update this value before installation. | `harbor_registry_password` | +| `registry.credentials.username` | The username that harbor core uses internally to access the registry instance. Together with the `registry.credentials.password`, a htpasswd  is created. This is an alternative to providing `registry.credentials.htpasswdString`. For more details see [official docs](https://github.com/docker/distribution/blob/master/docs/configuration.md#htpasswd). | `harbor_registry_user` | +| `registry.credentials.password` | The password that harbor core uses internally to access the registry instance. Together with the `registry.credentials.username`, a htpasswd  is created. This is an alternative to providing `registry.credentials.htpasswdString`. For more details see [official docs](https://github.com/docker/distribution/blob/master/docs/configuration.md#htpasswd). It is suggested you update this value before installation. | `harbor_registry_password` | | `registry.credentials.existingSecret` | An existing secret containing the password for accessing the registry instance, which is hosted by htpasswd auth mode. More details see [official docs](https://github.com/docker/distribution/blob/master/docs/configuration.md#htpasswd). The key must be `REGISTRY_PASSWD` | `""` | | `registry.credentials.htpasswdString` | Login and password in htpasswd string format. Excludes `registry.credentials.username` and `registry.credentials.password`. May come in handy when integrating with tools like argocd or flux. This allows the same line to be generated each time the template is rendered, instead of the `htpasswd` function from helm, which generates different lines each time because of the salt. | undefined | | `registry.relativeurls` | If true, the registry returns relative URLs in Location headers. The client is responsible for resolving the correct URL. Needed if harbor is behind a reverse proxy | `false` | @@ -300,26 +300,7 @@ The following table lists the configurable parameters of the Harbor chart and th | `trivy.timeout` | The duration to wait for scan completion | `5m0s` | | `trivy.gitHubToken` | The GitHub access token to download [Trivy DB][trivy-db] (see [GitHub rate limiting][trivy-rate-limiting]) | | | `trivy.priorityClassName` | The priority class to run the pod as | | -| **Notary** | | | -| `notary.enabled` | Enable Notary? | `true` | -| `notary.server.image.repository` | Repository for notary server image | `goharbor/notary-server-photon` | -| `notary.server.image.tag` | Tag for notary server image | `dev` | -| `notary.server.replicas` | The replica count | `1` | -| `notary.server.resources` | The [resources] to allocate for container | undefined | -| `notary.server.priorityClassName` | The priority class to run the pod as | | -| `notary.server.automountServiceAccountToken` | Mount serviceAccountToken? | `false` | -| `notary.signer.image.repository` | Repository for notary signer image | `goharbor/notary-signer-photon` | -| `notary.signer.image.tag` | Tag for notary signer image | `dev` | -| `notary.signer.replicas` | The replica count | `1` | -| `notary.signer.resources` | The [resources] to allocate for container | undefined | -| `notary.signer.priorityClassName` | The priority class to run the pod as | | -| `notary.signer.automountServiceAccountToken` | Mount serviceAccountToken? | `false` | -| `notary.nodeSelector` | Node labels for pod assignment | `{}` | -| `notary.tolerations` | Tolerations for pod assignment | `[]` | -| `notary.affinity` | Node/Pod affinities | `{}` | -| `notary.podAnnotations` | Annotations to add to the notary pod | `{}` | -| `notary.serviceAnnotations` | Annotations to add to the notary service | `{}` | -| `notary.secretName` | Fill the name of a kubernetes secret if you want to use your own TLS certificate authority, certificate and private key for notary communications. The secret must contain keys named `ca.crt`, `tls.crt` and `tls.key` that contain the CA, certificate and private key. They will be generated if not set. | | +| `trivy.topologySpreadConstraints` | The priority class to run the pod as | | | **Database** | | | | `database.type` | If external database is used, set it to `external` | `internal` | | `database.internal.image.repository` | Repository for database image | `goharbor/harbor-db` | @@ -341,8 +322,6 @@ The following table lists the configurable parameters of the Harbor chart and th | `database.external.username` | The username of external database | `user` | | `database.external.password` | The password of external database | `password` | | `database.external.coreDatabase` | The database used by core service | `registry` | -| `database.external.notaryServerDatabase` | The database used by Notary server | `notary_server` | -| `database.external.notarySignerDatabase` | The database used by Notary signer | `notary_signer` | | `database.external.existingSecret` | An existing password containing the database password. the key must be `password`. | `""` | | `database.external.sslmode` | Connection method of external database (require, verify-full, verify-ca, disable) | `disable` | | `database.maxIdleConns` | The maximum number of connections in the idle connection pool. If it <=0, no idle connections are retained. | `50` | @@ -384,6 +363,7 @@ The following table lists the configurable parameters of the Harbor chart and th | `exporter.nodeSelector` | Node labels for pod assignment | `{}` | | `exporter.tolerations` | Tolerations for pod assignment | `[]` | | `exporter.affinity` | Node/Pod affinities | `{}` | +| `exporter.topologySpreadConstraints` | Constraints that define how Pods are spread across failure-domains like regions or availability zones | `[]` | | `exporter.automountServiceAccountToken` | Mount serviceAccountToken? | `false` | | `exporter.cacheDuration` | the cache duration for information that exporter collected from Harbor | `30` | | `exporter.cacheCleanInterval` | cache clean interval for information that exporter collected from Harbor | `14400` | diff --git a/charts/harbor/harbor/conf/notary-server.json b/charts/harbor/harbor/conf/notary-server.json deleted file mode 100644 index b3c262413..000000000 --- a/charts/harbor/harbor/conf/notary-server.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "server": { - "http_addr": ":4443" - }, - "trust_service": { - "type": "remote", - "hostname": "{{ template "harbor.notary-signer" . }}", - "port": "7899", - "tls_ca_file": "/etc/ssl/notary/ca.crt", - "key_algorithm": "ecdsa" - }, - "logging": { - "level": "{{ .Values.logLevel }}" - }, - "storage": { - "backend": "postgres", - "db_url": "{{ template "harbor.database.notaryServer" . }}" - }, - "auth": { - "type": "token", - "options": { - "realm": "{{ .Values.externalURL }}/service/token", - "service": "harbor-notary", - "issuer": "harbor-token-issuer", - "rootcertbundle": "/root.crt" - } - } -} \ No newline at end of file diff --git a/charts/harbor/harbor/conf/notary-signer.json b/charts/harbor/harbor/conf/notary-signer.json deleted file mode 100644 index 75a4d68bd..000000000 --- a/charts/harbor/harbor/conf/notary-signer.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "server": { - "grpc_addr": ":7899", - "tls_cert_file": "/etc/ssl/notary/tls.crt", - "tls_key_file": "/etc/ssl/notary/tls.key" - }, - "logging": { - "level": "{{ .Values.logLevel }}" - }, - "storage": { - "backend": "postgres", - "db_url": "{{ template "harbor.database.notarySigner" . }}", - "default_alias": "defaultalias" - } -} \ No newline at end of file diff --git a/charts/harbor/harbor/templates/_helpers.tpl b/charts/harbor/harbor/templates/_helpers.tpl index 130ad5c04..95a28a6c5 100644 --- a/charts/harbor/harbor/templates/_helpers.tpl +++ b/charts/harbor/harbor/templates/_helpers.tpl @@ -111,22 +111,6 @@ app: "{{ template "harbor.name" . }}" {{- end -}} {{- end -}} -{{- define "harbor.database.notaryServerDatabase" -}} - {{- if eq .Values.database.type "internal" -}} - {{- printf "%s" "notaryserver" -}} - {{- else -}} - {{- .Values.database.external.notaryServerDatabase -}} - {{- end -}} -{{- end -}} - -{{- define "harbor.database.notarySignerDatabase" -}} - {{- if eq .Values.database.type "internal" -}} - {{- printf "%s" "notarysigner" -}} - {{- else -}} - {{- .Values.database.external.notarySignerDatabase -}} - {{- end -}} -{{- end -}} - {{- define "harbor.database.sslmode" -}} {{- if eq .Values.database.type "internal" -}} {{- printf "%s" "disable" -}} @@ -135,14 +119,6 @@ app: "{{ template "harbor.name" . }}" {{- end -}} {{- end -}} -{{- define "harbor.database.notaryServer" -}} -postgres://{{ template "harbor.database.username" . }}:{{ template "harbor.database.escapedRawPassword" . }}@{{ template "harbor.database.host" . }}:{{ template "harbor.database.port" . }}/{{ template "harbor.database.notaryServerDatabase" . }}?sslmode={{ template "harbor.database.sslmode" . }} -{{- end -}} - -{{- define "harbor.database.notarySigner" -}} -postgres://{{ template "harbor.database.username" . }}:{{ template "harbor.database.escapedRawPassword" . }}@{{ template "harbor.database.host" . }}:{{ template "harbor.database.port" . }}/{{ template "harbor.database.notarySignerDatabase" . }}?sslmode={{ template "harbor.database.sslmode" . }} -{{- end -}} - {{- define "harbor.redis.scheme" -}} {{- with .Values.redis }} {{- ternary "redis+sentinel" "redis" (and (eq .type "external" ) (not (not .external.sentinelMasterSet))) }} @@ -263,14 +239,6 @@ postgres://{{ template "harbor.database.username" . }}:{{ template "harbor.datab {{- printf "%s-trivy" (include "harbor.fullname" .) -}} {{- end -}} -{{- define "harbor.notary-server" -}} - {{- printf "%s-notary-server" (include "harbor.fullname" .) -}} -{{- end -}} - -{{- define "harbor.notary-signer" -}} - {{- printf "%s-notary-signer" (include "harbor.fullname" .) -}} -{{- end -}} - {{- define "harbor.nginx" -}} {{- printf "%s-nginx" (include "harbor.fullname" .) -}} {{- end -}} @@ -283,12 +251,8 @@ postgres://{{ template "harbor.database.username" . }}:{{ template "harbor.datab {{- printf "%s-ingress" (include "harbor.fullname" .) -}} {{- end -}} -{{- define "harbor.ingress-notary" -}} - {{- printf "%s-ingress-notary" (include "harbor.fullname" .) -}} -{{- end -}} - {{- define "harbor.noProxy" -}} - {{- printf "%s,%s,%s,%s,%s,%s,%s,%s,%s,%s" (include "harbor.core" .) (include "harbor.jobservice" .) (include "harbor.database" .) (include "harbor.notary-server" .) (include "harbor.notary-signer" .) (include "harbor.registry" .) (include "harbor.portal" .) (include "harbor.trivy" .) (include "harbor.exporter" .) .Values.proxy.noProxy -}} + {{- printf "%s,%s,%s,%s,%s,%s,%s,%s" (include "harbor.core" .) (include "harbor.jobservice" .) (include "harbor.database" .) (include "harbor.registry" .) (include "harbor.portal" .) (include "harbor.trivy" .) (include "harbor.exporter" .) .Values.proxy.noProxy -}} {{- end -}} {{- define "harbor.caBundleVolume" -}} @@ -303,7 +267,7 @@ postgres://{{ template "harbor.database.username" . }}:{{ template "harbor.datab subPath: ca.crt {{- end -}} -{{/* scheme for all components except notary because it only support http mode */}} +{{/* scheme for all components because it only support http mode */}} {{- define "harbor.component.scheme" -}} {{- if .Values.internalTLS.enabled -}} {{- printf "https" -}} @@ -506,16 +470,6 @@ postgres://{{ template "harbor.database.username" . }}:{{ template "harbor.datab {{- end -}} {{- end -}} -{{- define "harbor.tlsNotarySecretForIngress" -}} - {{- if eq .Values.expose.tls.certSource "none" -}} - {{- printf "" -}} - {{- else if eq .Values.expose.tls.certSource "secret" -}} - {{- .Values.expose.tls.secret.notarySecretName -}} - {{- else -}} - {{- include "harbor.ingress" . -}} - {{- end -}} -{{- end -}} - {{- define "harbor.tlsSecretForNginx" -}} {{- if eq .Values.expose.tls.certSource "secret" -}} {{- .Values.expose.tls.secret.secretName -}} @@ -537,7 +491,7 @@ postgres://{{ template "harbor.database.username" . }}:{{ template "harbor.datab TRACE_SAMPLE_RATE: "{{ .Values.trace.sample_rate }}" TRACE_NAMESPACE: "{{ .Values.trace.namespace }}" {{- if .Values.trace.attributes }} - TRACE_ATTRIBUTES: "{{ .Values.trace.attributes | toJson }}" + TRACE_ATTRIBUTES: {{ .Values.trace.attributes | toJson | squote }} {{- end }} {{- if eq .Values.trace.provider "jaeger" }} TRACE_JAEGER_ENDPOINT: "{{ .Values.trace.jaeger.endpoint }}" diff --git a/charts/harbor/harbor/templates/core/core-cm.yaml b/charts/harbor/harbor/templates/core/core-cm.yaml index 96562cc06..7d284c899 100644 --- a/charts/harbor/harbor/templates/core/core-cm.yaml +++ b/charts/harbor/harbor/templates/core/core-cm.yaml @@ -26,8 +26,6 @@ data: JOBSERVICE_URL: "{{ template "harbor.jobserviceURL" . }}" REGISTRY_URL: "{{ template "harbor.registryURL" . }}" TOKEN_SERVICE_URL: "{{ template "harbor.tokenServiceURL" . }}" - WITH_NOTARY: "{{ .Values.notary.enabled }}" - NOTARY_URL: "http://{{ template "harbor.notary-server" . }}:4443" CORE_LOCAL_URL: "{{ ternary "https://127.0.0.1:8443" "http://127.0.0.1:8080" .Values.internalTLS.enabled }}" WITH_TRIVY: {{ .Values.trivy.enabled | quote }} TRIVY_ADAPTER_URL: "{{ template "harbor.trivyAdapterURL" . }}" @@ -83,3 +81,7 @@ data: CACHE_ENABLED: "true" CACHE_EXPIRE_HOURS: "{{ .Values.cache.expireHours }}" {{- end }} + + {{- if .Values.core.quotaUpdateProvider }} + QUOTA_UPDATE_PROVIDER: "{{ .Values.core.quotaUpdateProvider }}" + {{- end }} \ No newline at end of file diff --git a/charts/harbor/harbor/templates/core/core-dpl.yaml b/charts/harbor/harbor/templates/core/core-dpl.yaml index 2ca8b0c5e..8d202498d 100644 --- a/charts/harbor/harbor/templates/core/core-dpl.yaml +++ b/charts/harbor/harbor/templates/core/core-dpl.yaml @@ -17,6 +17,9 @@ spec: labels: {{ include "harbor.matchLabels" . | indent 8 }} component: core +{{- if .Values.core.podLabels }} +{{ toYaml .Values.core.podLabels | indent 8 }} +{{- end }} annotations: checksum/configmap: {{ include (print $.Template.BasePath "/core/core-cm.yaml") . | sha256sum }} checksum/secret: {{ include (print $.Template.BasePath "/core/core-secret.yaml") . | sha256sum }} @@ -42,6 +45,16 @@ spec: {{- end }} automountServiceAccountToken: {{ .Values.core.automountServiceAccountToken | default false }} terminationGracePeriodSeconds: 120 +{{- with .Values.core.topologySpreadConstraints}} + topologySpreadConstraints: +{{- range . }} + - {{ . | toYaml | indent 8 | trim }} + labelSelector: + matchLabels: +{{ include "harbor.matchLabels" $ | indent 12 }} + component: core +{{- end }} +{{- end }} containers: - name: core image: {{ .Values.core.image.repository }}:{{ .Values.core.image.tag }} @@ -117,6 +130,9 @@ spec: name: {{ .Values.registry.credentials.existingSecret }} key: REGISTRY_PASSWD {{- end }} +{{- with .Values.core.extraEnvVars }} +{{- toYaml . | nindent 10 }} +{{- end }} ports: - containerPort: {{ template "harbor.core.containerPort" . }} volumeMounts: diff --git a/charts/harbor/harbor/templates/core/core-secret.yaml b/charts/harbor/harbor/templates/core/core-secret.yaml index 20f835b1d..23b352b47 100644 --- a/charts/harbor/harbor/templates/core/core-secret.yaml +++ b/charts/harbor/harbor/templates/core/core-secret.yaml @@ -25,4 +25,7 @@ data: REGISTRY_CREDENTIAL_PASSWORD: {{ .Values.registry.credentials.password | b64enc | quote }} {{- end }} CSRF_KEY: {{ .Values.core.xsrfKey | default (randAlphaNum 32) | b64enc | quote }} +{{- if .Values.core.configureUserSettings }} + CONFIG_OVERWRITE_JSON: {{ .Values.core.configureUserSettings | b64enc | quote }} +{{- end }} {{- template "harbor.traceJaegerPassword" . }} diff --git a/charts/harbor/harbor/templates/database/database-ss.yaml b/charts/harbor/harbor/templates/database/database-ss.yaml index 733243c71..3b08b07ef 100644 --- a/charts/harbor/harbor/templates/database/database-ss.yaml +++ b/charts/harbor/harbor/templates/database/database-ss.yaml @@ -19,6 +19,9 @@ spec: labels: {{ include "harbor.labels" . | indent 8 }} component: database +{{- if .Values.database.podLabels }} +{{ toYaml .Values.database.podLabels | indent 8 }} +{{- end }} annotations: checksum/secret: {{ include (print $.Template.BasePath "/database/database-secret.yaml") . | sha256sum }} {{- if .Values.database.podAnnotations }} @@ -102,6 +105,9 @@ spec: # more detail refer to https://github.com/goharbor/harbor-helm/issues/756 - name: PGDATA value: "/var/lib/postgresql/data/pgdata" +{{- with .Values.database.internal.extraEnvVars }} +{{- toYaml . | nindent 10 }} +{{- end }} volumeMounts: - name: database-data mountPath: /var/lib/postgresql/data diff --git a/charts/harbor/harbor/templates/exporter/exporter-dpl.yaml b/charts/harbor/harbor/templates/exporter/exporter-dpl.yaml index 5ff36f48a..6d2e1f53a 100644 --- a/charts/harbor/harbor/templates/exporter/exporter-dpl.yaml +++ b/charts/harbor/harbor/templates/exporter/exporter-dpl.yaml @@ -18,7 +18,15 @@ spec: labels: {{ include "harbor.labels" . | indent 8 }} component: exporter +{{- if .Values.exporter.podLabels }} +{{ toYaml .Values.exporter.podLabels | indent 8 }} +{{- end }} annotations: +{{- if and .Values.internalTLS.enabled (eq .Values.internalTLS.certSource "auto") }} + checksum/tls: {{ include (print $.Template.BasePath "/internal/auto-tls.yaml") . | sha256sum }} +{{- else if and .Values.internalTLS.enabled (eq .Values.internalTLS.certSource "manual") }} + checksum/tls: {{ include (print $.Template.BasePath "/core/core-tls.yaml") . | sha256sum }} +{{- end }} {{- if .Values.exporter.podAnnotations }} {{ toYaml .Values.exporter.podAnnotations | indent 8 }} {{- end }} @@ -34,6 +42,16 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} automountServiceAccountToken: {{ .Values.exporter.automountServiceAccountToken | default false }} +{{- with .Values.exporter.topologySpreadConstraints }} + topologySpreadConstraints: +{{- range . }} + - {{ . | toYaml | indent 8 | trim }} + labelSelector: + matchLabels: +{{ include "harbor.matchLabels" $ | indent 12 }} + component: exporter +{{- end }} +{{- end }} containers: - name: exporter image: {{ .Values.exporter.image.repository }}:{{ .Values.exporter.image.tag }} @@ -74,6 +92,10 @@ spec: {{- if .Values.exporter.resources }} resources: {{ toYaml .Values.exporter.resources | indent 10 }} +{{- end }} +{{- with .Values.exporter.extraEnvVars }} + env: +{{- toYaml . | nindent 10 }} {{- end }} ports: - containerPort: {{ template "harbor.core.containerPort" . }} diff --git a/charts/harbor/harbor/templates/ingress/ingress.yaml b/charts/harbor/harbor/templates/ingress/ingress.yaml index eedd13604..e4c06939c 100644 --- a/charts/harbor/harbor/templates/ingress/ingress.yaml +++ b/charts/harbor/harbor/templates/ingress/ingress.yaml @@ -8,7 +8,6 @@ {{- $_ := set . "v2_path" "/v2/*" -}} {{- $_ := set . "chartrepo_path" "/chartrepo/*" -}} {{- $_ := set . "controller_path" "/c/*" -}} - {{- $_ := set . "notary_path" "/" -}} {{- else if eq .Values.expose.ingress.controller "ncp" }} {{- $_ := set . "portal_path" "/.*" -}} {{- $_ := set . "api_path" "/api/.*" -}} @@ -16,7 +15,6 @@ {{- $_ := set . "v2_path" "/v2/.*" -}} {{- $_ := set . "chartrepo_path" "/chartrepo/.*" -}} {{- $_ := set . "controller_path" "/c/.*" -}} - {{- $_ := set . "notary_path" "/.*" -}} {{- else }} {{- $_ := set . "portal_path" "/" -}} {{- $_ := set . "api_path" "/api/" -}} @@ -24,7 +22,6 @@ {{- $_ := set . "v2_path" "/v2/" -}} {{- $_ := set . "chartrepo_path" "/chartrepo/" -}} {{- $_ := set . "controller_path" "/c/" -}} - {{- $_ := set . "notary_path" "/" -}} {{- end }} --- @@ -145,65 +142,4 @@ spec: host: {{ $ingress.hosts.core }} {{- end }} -{{- if .Values.notary.enabled }} ---- -{{- if semverCompare "<1.14-0" (include "harbor.ingress.kubeVersion" .) }} -apiVersion: extensions/v1beta1 -{{- else if semverCompare "<1.19-0" (include "harbor.ingress.kubeVersion" .) }} -apiVersion: networking.k8s.io/v1beta1 -{{- else }} -apiVersion: networking.k8s.io/v1 -{{- end }} -kind: Ingress -metadata: - name: "{{ template "harbor.ingress-notary" . }}" - labels: -{{ include "harbor.labels" . | indent 4 }} -{{- if $ingress.notary.labels }} -{{ toYaml $ingress.notary.labels | indent 4 }} -{{- end }} - annotations: -{{ toYaml $ingress.annotations | indent 4 }} -{{- if eq .Values.expose.ingress.controller "ncp" }} - ncp/use-regex: "true" - {{- if $tls.enabled }} - ncp/http-redirect: "true" - {{- end }} -{{- end }} -{{- if $ingress.notary.annotations }} -{{ toYaml $ingress.notary.annotations | indent 4 }} -{{- end }} -spec: - {{- if $ingress.className }} - ingressClassName: {{ $ingress.className }} - {{- end }} - {{- if $tls.enabled }} - tls: - - secretName: {{ template "harbor.tlsNotarySecretForIngress" . }} - {{- if $ingress.hosts.notary }} - hosts: - - {{ $ingress.hosts.notary }} - {{- end }} - {{- end }} - rules: - - http: - paths: - - path: {{ .notary_path }} -{{- if semverCompare "<1.19-0" (include "harbor.ingress.kubeVersion" .) }} - backend: - serviceName: {{ template "harbor.notary-server" . }} - servicePort: 4443 -{{- else }} - pathType: Prefix - backend: - service: - name: {{ template "harbor.notary-server" . }} - port: - number: 4443 -{{- end -}} - {{- if $ingress.hosts.notary }} - host: {{ $ingress.hosts.notary }} - {{- end }} -{{- end }} - {{- end }} diff --git a/charts/harbor/harbor/templates/ingress/secret.yaml b/charts/harbor/harbor/templates/ingress/secret.yaml index 0d89af99a..41507b3dd 100644 --- a/charts/harbor/harbor/templates/ingress/secret.yaml +++ b/charts/harbor/harbor/templates/ingress/secret.yaml @@ -1,6 +1,6 @@ {{- if eq (include "harbor.autoGenCertForIngress" .) "true" }} {{- $ca := genCA "harbor-ca" 365 }} -{{- $cert := genSignedCert .Values.expose.ingress.hosts.core nil (list .Values.expose.ingress.hosts.core .Values.expose.ingress.hosts.notary) 365 $ca }} +{{- $cert := genSignedCert .Values.expose.ingress.hosts.core nil (list .Values.expose.ingress.hosts.core) 365 $ca }} apiVersion: v1 kind: Secret metadata: diff --git a/charts/harbor/harbor/templates/jobservice/jobservice-dpl.yaml b/charts/harbor/harbor/templates/jobservice/jobservice-dpl.yaml index 32df454b1..32df97db7 100644 --- a/charts/harbor/harbor/templates/jobservice/jobservice-dpl.yaml +++ b/charts/harbor/harbor/templates/jobservice/jobservice-dpl.yaml @@ -22,6 +22,9 @@ spec: labels: {{ include "harbor.labels" . | indent 8 }} component: jobservice +{{- if .Values.jobservice.podLabels }} +{{ toYaml .Values.jobservice.podLabels | indent 8 }} +{{- end }} annotations: checksum/configmap: {{ include (print $.Template.BasePath "/jobservice/jobservice-cm.yaml") . | sha256sum }} checksum/configmap-env: {{ include (print $.Template.BasePath "/jobservice/jobservice-cm-env.yaml") . | sha256sum }} @@ -48,6 +51,16 @@ spec: {{- end }} automountServiceAccountToken: {{ .Values.jobservice.automountServiceAccountToken | default false }} terminationGracePeriodSeconds: 120 +{{- with .Values.jobservice.topologySpreadConstraints}} + topologySpreadConstraints: +{{- range . }} + - {{ . | toYaml | indent 8 | trim }} + labelSelector: + matchLabels: +{{ include "harbor.matchLabels" $ | indent 12 }} + component: jobservice +{{- end }} +{{- end }} containers: - name: jobservice image: {{ .Values.jobservice.image.repository }}:{{ .Values.jobservice.image.tag }} @@ -93,6 +106,9 @@ spec: name: {{ .Values.registry.credentials.existingSecret }} key: REGISTRY_PASSWD {{- end }} +{{- with .Values.jobservice.extraEnvVars }} +{{- toYaml . | nindent 10 }} +{{- end }} envFrom: - configMapRef: name: "{{ template "harbor.jobservice" . }}-env" diff --git a/charts/harbor/harbor/templates/metrics/metrics-svcmon.yaml b/charts/harbor/harbor/templates/metrics/metrics-svcmon.yaml index ad8522974..1122ef01e 100644 --- a/charts/harbor/harbor/templates/metrics/metrics-svcmon.yaml +++ b/charts/harbor/harbor/templates/metrics/metrics-svcmon.yaml @@ -1,4 +1,4 @@ -{{- if and ( .Capabilities.APIVersions.Has "monitoring.coreos.com/v1" ) .Values.metrics.enabled .Values.metrics.serviceMonitor.enabled }} +{{- if and .Values.metrics.enabled .Values.metrics.serviceMonitor.enabled }} apiVersion: monitoring.coreos.com/v1 kind: ServiceMonitor metadata: diff --git a/charts/harbor/harbor/templates/nginx/configmap-https.yaml b/charts/harbor/harbor/templates/nginx/configmap-https.yaml index 74c667e00..56c943a61 100644 --- a/charts/harbor/harbor/templates/nginx/configmap-https.yaml +++ b/charts/harbor/harbor/templates/nginx/configmap-https.yaml @@ -36,12 +36,6 @@ data: server "{{ template "harbor.portal" . }}:{{ template "harbor.portal.servicePort" . }}"; } - {{- if .Values.notary.enabled }} - upstream notary-server { - server {{ template "harbor.notary-server" . }}:4443; - } - {{- end }} - log_format timed_combined '[$time_local]:$remote_addr - ' '"$request" $status $body_bytes_sent ' '"$http_referer" "$http_user_agent" ' @@ -54,47 +48,6 @@ data: "" $scheme; } - {{- if .Values.notary.enabled }} - server { - {{- if .Values.ipFamily.ipv4.enabled }} - listen 4443 ssl; - {{- end}} - {{- if .Values.ipFamily.ipv6.enabled}} - listen [::]:4443 ssl; - {{- end }} - server_tokens off; - # ssl - ssl_certificate /etc/nginx/cert/tls.crt; - ssl_certificate_key /etc/nginx/cert/tls.key; - - # recommendations from https://raymii.org/s/tutorials/strong_ssl_security_on_nginx.html - ssl_protocols tlsv1.2; - ssl_ciphers '!aNULL:kECDH+AESGCM:ECDH+AESGCM:RSA+AESGCM:kECDH+AES:ECDH+AES:RSA+AES:'; - ssl_prefer_server_ciphers on; - ssl_session_cache shared:ssl:10m; - - # disable any limits to avoid http 413 for large image uploads - client_max_body_size 0; - - # required to avoid http 411: see issue #1486 (https://github.com/docker/docker/issues/1486) - chunked_transfer_encoding on; - - location /v2/ { - proxy_pass http://notary-server/v2/; - proxy_set_header Host $http_host; - proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; - proxy_set_header X-Forwarded-Proto $x_forwarded_proto; - - proxy_buffering off; - proxy_request_buffering off; - - proxy_send_timeout 900; - proxy_read_timeout 900; - } - } - {{- end }} - server { {{- if .Values.ipFamily.ipv4.enabled }} listen 8443 ssl; @@ -109,8 +62,12 @@ data: ssl_certificate_key /etc/nginx/cert/tls.key; # Recommendations from https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html - ssl_protocols TLSv1.2; + ssl_protocols TLSv1.2 TLSv1.3; + {{- if .Values.internalTLS.strong_ssl_ciphers }} + ssl_ciphers ECDHE+AESGCM:DHE+AESGCM:ECDHE+RSA+SHA256:DHE+RSA+SHA256:!AES128; + {{ else }} ssl_ciphers '!aNULL:kECDH+AESGCM:ECDH+AESGCM:RSA+AESGCM:kECDH+AES:ECDH+AES:RSA+AES:'; + {{- end }} ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; diff --git a/charts/harbor/harbor/templates/nginx/deployment.yaml b/charts/harbor/harbor/templates/nginx/deployment.yaml index bc1de0abf..8290d497b 100644 --- a/charts/harbor/harbor/templates/nginx/deployment.yaml +++ b/charts/harbor/harbor/templates/nginx/deployment.yaml @@ -18,6 +18,9 @@ spec: labels: {{ include "harbor.labels" . | indent 8 }} component: nginx +{{- if .Values.nginx.podLabels }} +{{ toYaml .Values.nginx.podLabels | indent 8 }} +{{- end }} annotations: {{- if not .Values.expose.tls.enabled }} checksum/configmap: {{ include (print $.Template.BasePath "/nginx/configmap-http.yaml") . | sha256sum }} @@ -42,6 +45,16 @@ spec: {{- toYaml . | nindent 8 }} {{- end }} automountServiceAccountToken: {{ .Values.nginx.automountServiceAccountToken | default false }} +{{- with .Values.nginx.topologySpreadConstraints}} + topologySpreadConstraints: +{{- range . }} + - {{ . | toYaml | indent 8 | trim }} + labelSelector: + matchLabels: +{{ include "harbor.matchLabels" $ | indent 12 }} + component: nginx +{{- end }} +{{- end }} containers: - name: nginx image: "{{ .Values.nginx.image.repository }}:{{ .Values.nginx.image.tag }}" @@ -69,6 +82,10 @@ spec: {{- if .Values.nginx.resources }} resources: {{ toYaml .Values.nginx.resources | indent 10 }} +{{- end }} +{{- with .Values.nginx.extraEnvVars }} + env: +{{- toYaml . | nindent 10 }} {{- end }} ports: - containerPort: 8080 diff --git a/charts/harbor/harbor/templates/nginx/service.yaml b/charts/harbor/harbor/templates/nginx/service.yaml index df4da0944..12021bfd1 100644 --- a/charts/harbor/harbor/templates/nginx/service.yaml +++ b/charts/harbor/harbor/templates/nginx/service.yaml @@ -22,11 +22,6 @@ spec: port: {{ $clusterIP.ports.httpsPort }} targetPort: 8443 {{- end }} - {{- if .Values.notary.enabled }} - - name: notary - port: {{ $clusterIP.ports.notaryPort }} - targetPort: 4443 - {{- end }} {{- else if eq .Values.expose.type "nodePort" }} {{- $nodePort := .Values.expose.nodePort }} name: {{ $nodePort.name }} @@ -49,14 +44,6 @@ spec: nodePort: {{ $nodePort.ports.https.nodePort }} {{- end }} {{- end }} - {{- if .Values.notary.enabled }} - - name: notary - port: {{ $nodePort.ports.notary.port }} - targetPort: 4443 - {{- if $nodePort.ports.notary.nodePort }} - nodePort: {{ $nodePort.ports.notary.nodePort }} - {{- end }} - {{- end }} {{- else if eq .Values.expose.type "loadBalancer" }} {{- $loadBalancer := .Values.expose.loadBalancer }} name: {{ $loadBalancer.name }} @@ -84,11 +71,6 @@ spec: port: {{ $loadBalancer.ports.httpsPort }} targetPort: 8443 {{- end }} - {{- if .Values.notary.enabled }} - - name: notary - port: {{ $loadBalancer.ports.notaryPort }} - targetPort: 4443 - {{- end }} {{- end }} selector: {{ include "harbor.matchLabels" . | indent 4 }} diff --git a/charts/harbor/harbor/templates/notary/notary-secret.yaml b/charts/harbor/harbor/templates/notary/notary-secret.yaml deleted file mode 100644 index 6de63dd8c..000000000 --- a/charts/harbor/harbor/templates/notary/notary-secret.yaml +++ /dev/null @@ -1,22 +0,0 @@ -{{- if and .Values.notary.enabled }} -apiVersion: v1 -kind: Secret -metadata: - name: {{ template "harbor.notary-server" . }} - labels: -{{ include "harbor.labels" . | indent 4 }} - component: notary -type: Opaque -data: - {{- if not .Values.notary.secretName }} - {{- $ca := genCA "harbor-notary-ca" 365 }} - {{- $cert := genSignedCert (include "harbor.notary-signer" .) nil (list (include "harbor.notary-signer" .)) 365 $ca }} - ca.crt: {{ $ca.Cert | b64enc | quote }} - tls.crt: {{ $cert.Cert | b64enc | quote }} - tls.key: {{ $cert.Key | b64enc | quote }} - {{- end }} - server.json: {{ tpl (.Files.Get "conf/notary-server.json") . | b64enc }} - signer.json: {{ tpl (.Files.Get "conf/notary-signer.json") . | b64enc }} - NOTARY_SERVER_DB_URL: {{ include "harbor.database.notaryServer" . | b64enc }} - NOTARY_SIGNER_DB_URL: {{ include "harbor.database.notarySigner" . | b64enc }} -{{- end }} diff --git a/charts/harbor/harbor/templates/notary/notary-server.yaml b/charts/harbor/harbor/templates/notary/notary-server.yaml deleted file mode 100644 index 64cfd293f..000000000 --- a/charts/harbor/harbor/templates/notary/notary-server.yaml +++ /dev/null @@ -1,111 +0,0 @@ -{{ if .Values.notary.enabled }} -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ template "harbor.notary-server" . }} - labels: -{{ include "harbor.labels" . | indent 4 }} - component: notary-server -spec: - replicas: {{ .Values.notary.server.replicas }} - selector: - matchLabels: -{{ include "harbor.matchLabels" . | indent 6 }} - component: notary-server - template: - metadata: - labels: -{{ include "harbor.labels" . | indent 8 }} - component: notary-server - annotations: - checksum/secret: {{ include (print $.Template.BasePath "/notary/notary-secret.yaml") . | sha256sum }} - checksum/secret-core: {{ include (print $.Template.BasePath "/core/core-secret.yaml") . | sha256sum }} -{{- if .Values.notary.server.podAnnotations }} -{{ toYaml .Values.notary.server.podAnnotations | indent 8 }} -{{- end }} - spec: - securityContext: - runAsUser: 10000 - fsGroup: 10000 -{{- if .Values.notary.server.serviceAccountName }} - serviceAccountName: {{ .Values.notary.server.serviceAccountName }} -{{- end -}} - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - automountServiceAccountToken: {{ .Values.notary.server.automountServiceAccountToken | default false }} - containers: - - name: notary-server - image: {{ .Values.notary.server.image.repository }}:{{ .Values.notary.server.image.tag }} - imagePullPolicy: {{ .Values.imagePullPolicy }} - livenessProbe: - httpGet: - path: /_notary_server/health - scheme: "HTTP" - port: 4443 - initialDelaySeconds: 300 - periodSeconds: 10 - readinessProbe: - httpGet: - path: /_notary_server/health - scheme: "HTTP" - port: 4443 - initialDelaySeconds: 20 - periodSeconds: 10 -{{- if .Values.notary.server.resources }} - resources: -{{ toYaml .Values.notary.server.resources | indent 10 }} -{{- end }} - env: - - name: MIGRATIONS_PATH - value: migrations/server/postgresql - - name: DB_URL - valueFrom: - secretKeyRef: - name: {{ template "harbor.notary-server" . }} - key: NOTARY_SERVER_DB_URL - volumeMounts: - - name: config - mountPath: /etc/notary/server-config.postgres.json - subPath: server.json - - name: token-service-certificate - mountPath: /root.crt - subPath: tls.crt - - name: signer-certificate - mountPath: /etc/ssl/notary/ca.crt - subPath: ca.crt - volumes: - - name: config - secret: - secretName: "{{ template "harbor.notary-server" . }}" - - name: token-service-certificate - secret: - {{- if .Values.core.secretName }} - secretName: {{ .Values.core.secretName }} - {{- else }} - secretName: {{ template "harbor.core" . }} - {{- end }} - - name: signer-certificate - secret: - {{- if .Values.notary.secretName }} - secretName: {{ .Values.notary.secretName }} - {{- else }} - secretName: {{ template "harbor.notary-server" . }} - {{- end }} - {{- with .Values.notary.server.nodeSelector }} - nodeSelector: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.notary.server.affinity }} - affinity: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.notary.server.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} - {{- end }} - {{- if .Values.notary.server.priorityClassName }} - priorityClassName: {{ .Values.notary.server.priorityClassName }} - {{- end }} -{{ end }} diff --git a/charts/harbor/harbor/templates/notary/notary-signer.yaml b/charts/harbor/harbor/templates/notary/notary-signer.yaml deleted file mode 100644 index d94e4909b..000000000 --- a/charts/harbor/harbor/templates/notary/notary-signer.yaml +++ /dev/null @@ -1,105 +0,0 @@ -{{ if .Values.notary.enabled }} -apiVersion: apps/v1 -kind: Deployment -metadata: - name: {{ template "harbor.notary-signer" . }} - labels: -{{ include "harbor.labels" . | indent 4 }} - component: notary-signer -spec: - replicas: {{ .Values.notary.signer.replicas }} - selector: - matchLabels: -{{ include "harbor.matchLabels" . | indent 6 }} - component: notary-signer - template: - metadata: - labels: -{{ include "harbor.labels" . | indent 8 }} - component: notary-signer - annotations: - checksum/secret: {{ include (print $.Template.BasePath "/notary/notary-secret.yaml") . | sha256sum }} -{{- if .Values.notary.signer.podAnnotations }} -{{ toYaml .Values.notary.signer.podAnnotations | indent 8 }} -{{- end }} - spec: - securityContext: - runAsUser: 10000 - fsGroup: 10000 -{{- if .Values.notary.signer.serviceAccountName }} - serviceAccountName: {{ .Values.notary.signer.serviceAccountName }} -{{- end -}} - {{- with .Values.imagePullSecrets }} - imagePullSecrets: - {{- toYaml . | nindent 8 }} - {{- end }} - automountServiceAccountToken: {{ .Values.notary.signer.automountServiceAccountToken | default false }} - containers: - - name: notary-signer - image: {{ .Values.notary.signer.image.repository }}:{{ .Values.notary.signer.image.tag }} - imagePullPolicy: {{ .Values.imagePullPolicy }} - livenessProbe: - httpGet: - path: / - scheme: "HTTPS" - port: 7899 - initialDelaySeconds: 300 - periodSeconds: 10 - readinessProbe: - httpGet: - path: / - scheme: "HTTPS" - port: 7899 - initialDelaySeconds: 20 - periodSeconds: 10 -{{- if .Values.notary.signer.resources }} - resources: -{{ toYaml .Values.notary.signer.resources | indent 10 }} -{{- end }} - env: - - name: MIGRATIONS_PATH - value: migrations/signer/postgresql - - name: DB_URL - valueFrom: - secretKeyRef: - name: {{ template "harbor.notary-server" . }} - key: NOTARY_SIGNER_DB_URL - - name: NOTARY_SIGNER_DEFAULTALIAS - value: defaultalias - volumeMounts: - - name: config - mountPath: /etc/notary/signer-config.postgres.json - subPath: signer.json - - name: signer-certificate - mountPath: /etc/ssl/notary/tls.crt - subPath: tls.crt - - name: signer-certificate - mountPath: /etc/ssl/notary/tls.key - subPath: tls.key - volumes: - - name: config - secret: - secretName: "{{ template "harbor.notary-server" . }}" - - name: signer-certificate - secret: - {{- if .Values.notary.secretName }} - secretName: {{ .Values.notary.secretName }} - {{- else }} - secretName: {{ template "harbor.notary-server" . }} - {{- end }} - {{- with .Values.notary.signer.nodeSelector }} - nodeSelector: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.notary.signer.affinity }} - affinity: -{{ toYaml . | indent 8 }} - {{- end }} - {{- with .Values.notary.signer.tolerations }} - tolerations: -{{ toYaml . | indent 8 }} - {{- end }} - {{- if .Values.notary.signer.priorityClassName }} - priorityClassName: {{ .Values.notary.signer.priorityClassName }} - {{- end }} -{{ end }} diff --git a/charts/harbor/harbor/templates/notary/notary-svc.yaml b/charts/harbor/harbor/templates/notary/notary-svc.yaml deleted file mode 100644 index b6aa42d89..000000000 --- a/charts/harbor/harbor/templates/notary/notary-svc.yaml +++ /dev/null @@ -1,35 +0,0 @@ -{{ if .Values.notary.enabled }} -apiVersion: v1 -kind: Service -metadata: - name: {{ template "harbor.notary-server" . }} - labels: -{{ include "harbor.labels" . | indent 4 }} -{{- with .Values.notary.serviceAnnotations }} - annotations: - {{- toYaml . | nindent 4 }} -{{- end }} -spec: -{{- if or (eq .Values.expose.ingress.controller "gce") (eq .Values.expose.ingress.controller "alb") (eq .Values.expose.ingress.controller "f5-bigip") }} - type: NodePort -{{- end }} - ports: - - port: 4443 - selector: -{{ include "harbor.matchLabels" . | indent 4 }} - component: notary-server - ---- -apiVersion: v1 -kind: Service -metadata: - name: {{ template "harbor.notary-signer" . }} - labels: -{{ include "harbor.labels" . | indent 4 }} -spec: - ports: - - port: 7899 - selector: -{{ include "harbor.matchLabels" . | indent 4 }} - component: notary-signer -{{ end }} diff --git a/charts/harbor/harbor/templates/portal/configmap.yaml b/charts/harbor/harbor/templates/portal/configmap.yaml index 1cea8ab63..7b2118e72 100644 --- a/charts/harbor/harbor/templates/portal/configmap.yaml +++ b/charts/harbor/harbor/templates/portal/configmap.yaml @@ -30,8 +30,12 @@ data: ssl_certificate_key /etc/harbor/ssl/portal/tls.key; # Recommendations from https://raymii.org/s/tutorials/Strong_SSL_Security_On_nginx.html - ssl_protocols TLSv1.2; + ssl_protocols TLSv1.2 TLSv1.3; + {{- if .Values.internalTLS.strong_ssl_ciphers }} + ssl_ciphers ECDHE+AESGCM:DHE+AESGCM:ECDHE+RSA+SHA256:DHE+RSA+SHA256:!AES128; + {{ else }} ssl_ciphers '!aNULL:kECDH+AESGCM:ECDH+AESGCM:RSA+AESGCM:kECDH+AES:ECDH+AES:RSA+AES:'; + {{- end }} ssl_prefer_server_ciphers on; ssl_session_cache shared:SSL:10m; {{- else }} diff --git a/charts/harbor/harbor/templates/portal/deployment.yaml b/charts/harbor/harbor/templates/portal/deployment.yaml index d3469deef..959a3fd7b 100644 --- a/charts/harbor/harbor/templates/portal/deployment.yaml +++ b/charts/harbor/harbor/templates/portal/deployment.yaml @@ -17,6 +17,9 @@ spec: labels: {{ include "harbor.matchLabels" . | indent 8 }} component: portal +{{- if .Values.portal.podLabels }} +{{ toYaml .Values.portal.podLabels | indent 8 }} +{{- end }} annotations: {{- if and .Values.internalTLS.enabled (eq .Values.internalTLS.certSource "auto") }} checksum/tls: {{ include (print $.Template.BasePath "/internal/auto-tls.yaml") . | sha256sum }} @@ -39,6 +42,16 @@ spec: serviceAccountName: {{ .Values.portal.serviceAccountName }} {{- end }} automountServiceAccountToken: {{ .Values.portal.automountServiceAccountToken | default false }} +{{- with .Values.portal.topologySpreadConstraints}} + topologySpreadConstraints: +{{- range . }} + - {{ . | toYaml | indent 8 | trim }} + labelSelector: + matchLabels: +{{ include "harbor.matchLabels" $ | indent 12 }} + component: portal +{{- end }} +{{- end }} containers: - name: portal image: {{ .Values.portal.image.repository }}:{{ .Values.portal.image.tag }} @@ -46,6 +59,10 @@ spec: {{- if .Values.portal.resources }} resources: {{ toYaml .Values.portal.resources | indent 10 }} +{{- end }} +{{- with .Values.portal.extraEnvVars }} + env: +{{- toYaml . | nindent 10 }} {{- end }} livenessProbe: httpGet: diff --git a/charts/harbor/harbor/templates/redis/statefulset.yaml b/charts/harbor/harbor/templates/redis/statefulset.yaml index 74b7581fd..371b0fd5a 100644 --- a/charts/harbor/harbor/templates/redis/statefulset.yaml +++ b/charts/harbor/harbor/templates/redis/statefulset.yaml @@ -19,6 +19,9 @@ spec: labels: {{ include "harbor.labels" . | indent 8 }} component: redis +{{- if .Values.redis.podLabels }} +{{ toYaml .Values.redis.podLabels | indent 8 }} +{{- end }} {{- if .Values.redis.podAnnotations }} annotations: {{ toYaml .Values.redis.podAnnotations | indent 8 }} @@ -53,6 +56,10 @@ spec: {{- if .Values.redis.internal.resources }} resources: {{ toYaml .Values.redis.internal.resources | indent 10 }} +{{- end }} +{{- with .Values.redis.internal.extraEnvVars }} + env: +{{- toYaml . | nindent 10 }} {{- end }} volumeMounts: - name: data diff --git a/charts/harbor/harbor/templates/registry/registry-dpl.yaml b/charts/harbor/harbor/templates/registry/registry-dpl.yaml index 118a165d4..fddba9fa8 100644 --- a/charts/harbor/harbor/templates/registry/registry-dpl.yaml +++ b/charts/harbor/harbor/templates/registry/registry-dpl.yaml @@ -24,6 +24,9 @@ spec: labels: {{ include "harbor.labels" . | indent 8 }} component: registry +{{- if .Values.registry.podLabels }} +{{ toYaml .Values.registry.podLabels | indent 8 }} +{{- end }} annotations: checksum/configmap: {{ include (print $.Template.BasePath "/registry/registry-cm.yaml") . | sha256sum }} checksum/secret: {{ include (print $.Template.BasePath "/registry/registry-secret.yaml") . | sha256sum }} @@ -51,6 +54,16 @@ spec: {{- end }} automountServiceAccountToken: {{ .Values.registry.automountServiceAccountToken | default false }} terminationGracePeriodSeconds: 120 +{{- with .Values.registry.topologySpreadConstraints}} + topologySpreadConstraints: +{{- range . }} + - {{ . | toYaml | indent 8 | trim }} + labelSelector: + matchLabels: +{{ include "harbor.matchLabels" $ | indent 12 }} + component: registry +{{- end }} +{{- end }} containers: - name: registry image: {{ .Values.registry.registry.image.repository }}:{{ .Values.registry.registry.image.tag }} @@ -107,6 +120,9 @@ spec: name: {{ .Values.persistence.imageChartStorage.azure.existingSecret }} key: AZURE_STORAGE_ACCESS_KEY {{- end }} +{{- with .Values.registry.registry.extraEnvVars }} +{{- toYaml . | nindent 8 }} +{{- end }} ports: - containerPort: {{ template "harbor.registry.containerPort" . }} - containerPort: 5001 @@ -172,6 +188,10 @@ spec: name: "{{ template "harbor.registry" . }}" - secretRef: name: "{{ template "harbor.registryCtl" . }}" + {{- if .Values.persistence.imageChartStorage.s3.existingSecret }} + - secretRef: + name: {{ .Values.persistence.imageChartStorage.s3.existingSecret }} + {{- end }} env: - name: CORE_SECRET valueFrom: @@ -215,6 +235,9 @@ spec: name: {{ .Values.persistence.imageChartStorage.azure.existingSecret }} key: AZURE_STORAGE_ACCESS_KEY {{- end }} +{{- with .Values.registry.controller.extraEnvVars }} +{{- toYaml . | nindent 8 }} +{{- end }} ports: - containerPort: {{ template "harbor.registryctl.containerPort" . }} volumeMounts: diff --git a/charts/harbor/harbor/templates/trivy/trivy-sts.yaml b/charts/harbor/harbor/templates/trivy/trivy-sts.yaml index 37b19ac2d..aba23c9e8 100644 --- a/charts/harbor/harbor/templates/trivy/trivy-sts.yaml +++ b/charts/harbor/harbor/templates/trivy/trivy-sts.yaml @@ -19,6 +19,9 @@ spec: labels: {{ include "harbor.labels" . | indent 8 }} component: trivy +{{- if .Values.trivy.podLabels }} +{{ toYaml .Values.trivy.podLabels | indent 8 }} +{{- end }} annotations: checksum/secret: {{ include (print $.Template.BasePath "/trivy/trivy-secret.yaml") . | sha256sum }} {{- if and .Values.internalTLS.enabled (eq .Values.internalTLS.certSource "auto") }} @@ -41,6 +44,16 @@ spec: runAsUser: 10000 fsGroup: 10000 automountServiceAccountToken: {{ .Values.trivy.automountServiceAccountToken | default false }} +{{- with .Values.trivy.topologySpreadConstraints}} + topologySpreadConstraints: +{{- range . }} + - {{ . | toYaml | indent 8 | trim }} + labelSelector: + matchLabels: +{{ include "harbor.matchLabels" $ | indent 12 }} + component: trivy +{{- end }} +{{- end }} containers: - name: trivy image: {{ .Values.trivy.image.repository }}:{{ .Values.trivy.image.tag }} @@ -111,6 +124,9 @@ spec: secretKeyRef: name: {{ template "harbor.trivy" . }} key: redisURL +{{- with .Values.trivy.extraEnvVars }} +{{- toYaml . | nindent 12 }} +{{- end }} ports: - name: api-server containerPort: {{ template "harbor.trivy.containerPort" . }} diff --git a/charts/harbor/harbor/values.yaml b/charts/harbor/harbor/values.yaml index 11d2c4a57..1160c94eb 100644 --- a/charts/harbor/harbor/values.yaml +++ b/charts/harbor/harbor/values.yaml @@ -26,15 +26,9 @@ expose: # "tls.crt" - the certificate # "tls.key" - the private key secretName: "" - # The name of secret which contains keys named: - # "tls.crt" - the certificate - # "tls.key" - the private key - # Only needed when the "expose.type" is "ingress". - notarySecretName: "" ingress: hosts: core: core.harbor.domain - notary: notary.harbor.domain # set to the type of ingress controller if it has specific requirements. # leave as `default` for most ingress controllers. # set to `gce` if using the GCE ingress controller @@ -52,11 +46,6 @@ expose: ingress.kubernetes.io/proxy-body-size: "0" nginx.ingress.kubernetes.io/ssl-redirect: "true" nginx.ingress.kubernetes.io/proxy-body-size: "0" - notary: - # notary ingress-specific annotations - annotations: {} - # notary ingress-specific labels - labels: {} harbor: # harbor ingress-specific annotations annotations: {} @@ -71,10 +60,6 @@ expose: # The service port Harbor listens on when serving HTTP httpPort: 80 # The service port Harbor listens on when serving HTTPS - httpsPort: 443 - # The service port Notary listens on. Only needed when notary.enabled - # is set to true - notaryPort: 4443 nodePort: # The name of NodePort service name: harbor @@ -89,12 +74,6 @@ expose: port: 443 # The node port Harbor listens on when serving HTTPS nodePort: 30003 - # Only needed when notary.enabled is set to true - notary: - # The service port Notary listens on - port: 4443 - # The node port Notary listens on - nodePort: 30004 loadBalancer: # The name of LoadBalancer service name: harbor @@ -105,15 +84,12 @@ expose: httpPort: 80 # The service port Harbor listens on when serving HTTPS httpsPort: 443 - # The service port Notary listens on. Only needed when notary.enabled - # is set to true - notaryPort: 4443 annotations: {} sourceRanges: [] # The external URL for Harbor core service. It is used to # 1) populate the docker/helm commands showed on portal -# 2) populate the token service URL returned to docker/notary client +# 2) populate the token service URL returned to docker client # # Format: protocol://domain[:port]. Usually: # 1) if "expose.type" is "ingress", the "domain" should be @@ -127,10 +103,12 @@ expose: externalURL: https://core.harbor.domain # The internal TLS used for harbor components secure communicating. In order to enable https -# in each components tls cert files need to provided in advance. +# in each component tls cert files need to provided in advance. internalTLS: # If internal TLS enabled enabled: false + # enable strong ssl ciphers (default: false) + strong_ssl_ciphers: false # There are three ways to provide tls # 1) "auto" will generate cert automatically # 2) "manual" need provide cert file manually in following value @@ -249,14 +227,14 @@ persistence: annotations: {} # Define which storage backend is used for registry to store # images and charts. Refer to - # https://github.com/docker/distribution/blob/master/docs/configuration.md#storage + # https://github.com/distribution/distribution/blob/main/docs/configuration.md#storage # for the detail. imageChartStorage: # Specify whether to disable `redirect` for images and chart storage, for # backends which not supported it (such as using minio for `s3` storage type), please disable # it. To disable redirects, simply set `disableredirect` to `true` instead. # Refer to - # https://github.com/docker/distribution/blob/master/docs/configuration.md#redirect + # https://github.com/distribution/distribution/blob/main/docs/configuration.md#redirect # for the detail. disableredirect: false # Specify the "caBundleSecretName" if the storage service uses a self-signed certificate. @@ -284,7 +262,7 @@ persistence: encodedkey: base64-encoded-json-key-file #rootdirectory: /gcs/object/name/prefix #chunksize: "5242880" - # To use existing secret, the key must be gcs-key.json + # To use existing secret, the key must be GCS_KEY_DATA existingSecret: "" useWorkloadIdentity: false s3: @@ -400,7 +378,7 @@ enableMigrateHelmHook: false nginx: image: repository: goharbor/nginx-photon - tag: v2.8.4 + tag: v2.9.0 # set the service account to be used, default if left empty serviceAccountName: "" # mount the service account token @@ -411,18 +389,27 @@ nginx: # requests: # memory: 256Mi # cpu: 100m + extraEnvVars: [] nodeSelector: {} tolerations: [] affinity: {} + # Spread Pods across failure-domains like regions, availability zones or nodes + topologySpreadConstraints: [] + # - maxSkew: 1 + # topologyKey: topology.kubernetes.io/zone + # nodeTaintsPolicy: Honor + # whenUnsatisfiable: DoNotSchedule ## Additional deployment annotations podAnnotations: {} + ## Additional deployment labels + podLabels: {} ## The priority class to run the pod as priorityClassName: portal: image: repository: goharbor/harbor-portal - tag: v2.8.4 + tag: v2.9.0 # set the service account to be used, default if left empty serviceAccountName: "" # mount the service account token @@ -433,18 +420,27 @@ portal: # requests: # memory: 256Mi # cpu: 100m + extraEnvVars: [] nodeSelector: {} tolerations: [] affinity: {} + # Spread Pods across failure-domains like regions, availability zones or nodes + topologySpreadConstraints: [] + # - maxSkew: 1 + # topologyKey: topology.kubernetes.io/zone + # nodeTaintsPolicy: Honor + # whenUnsatisfiable: DoNotSchedule ## Additional deployment annotations podAnnotations: {} + ## Additional deployment labels + podLabels: {} ## The priority class to run the pod as priorityClassName: core: image: repository: goharbor/harbor-core - tag: v2.8.4 + tag: v2.9.0 # set the service account to be used, default if left empty serviceAccountName: "" # mount the service account token @@ -459,18 +455,37 @@ core: # requests: # memory: 256Mi # cpu: 100m + extraEnvVars: [] nodeSelector: {} tolerations: [] affinity: {} + # Spread Pods across failure-domains like regions, availability zones or nodes + topologySpreadConstraints: [] + # - maxSkew: 1 + # topologyKey: topology.kubernetes.io/zone + # nodeTaintsPolicy: Honor + # whenUnsatisfiable: DoNotSchedule ## Additional deployment annotations podAnnotations: {} + ## Additional deployment labels + podLabels: {} ## Additional service annotations serviceAnnotations: {} + ## User settings configuration json string + configureUserSettings: + # The provider for updating project quota(usage), there are 2 options, redis or db. + # By default it is implemented by db but you can configure it to redis which + # can improve the performance of high concurrent pushing to the same project, + # and reduce the database connections spike and occupies. + # Using redis will bring up some delay for quota usage updation for display, so only + # suggest switch provider to redis if you were ran into the db connections spike around + # the scenario of high concurrent pushing to same project, no improvment for other scenes. + quotaUpdateProvider: db # Or redis # Secret is used when core server communicates with other components. # If a secret key is not specified, Helm will generate one. # Must be a string of 16 chars. secret: "" - # Fill the name of a kubernetes secret if you want to use your own + # Fill in the name of a kubernetes secret if you want to use your own # TLS certificate and private key for token encryption/decryption. # The secret must contain keys named: # "tls.key" - the private key @@ -497,7 +512,7 @@ core: jobservice: image: repository: goharbor/harbor-jobservice - tag: v2.8.4 + tag: v2.9.0 replicas: 1 revisionHistoryLimit: 10 # set the service account to be used, default if left empty @@ -525,11 +540,20 @@ jobservice: # requests: # memory: 256Mi # cpu: 100m + extraEnvVars: [] nodeSelector: {} tolerations: [] affinity: {} + # Spread Pods across failure-domains like regions, availability zones or nodes + topologySpreadConstraints: + # - maxSkew: 1 + # topologyKey: topology.kubernetes.io/zone + # nodeTaintsPolicy: Honor + # whenUnsatisfiable: DoNotSchedule ## Additional deployment annotations podAnnotations: {} + ## Additional deployment labels + podLabels: {} # Secret is used when job service communicates with other components. # If a secret key is not specified, Helm will generate one. # Must be a string of 16 chars. @@ -545,32 +569,42 @@ registry: registry: image: repository: goharbor/registry-photon - tag: v2.8.4 + tag: v2.9.0 # resources: # requests: # memory: 256Mi # cpu: 100m + extraEnvVars: [] controller: image: repository: goharbor/harbor-registryctl - tag: v2.8.4 + tag: v2.9.0 # resources: # requests: # memory: 256Mi # cpu: 100m + extraEnvVars: [] replicas: 1 revisionHistoryLimit: 10 nodeSelector: {} tolerations: [] affinity: {} + # Spread Pods across failure-domains like regions, availability zones or nodes + topologySpreadConstraints: [] + # - maxSkew: 1 + # topologyKey: topology.kubernetes.io/zone + # nodeTaintsPolicy: Honor + # whenUnsatisfiable: DoNotSchedule ## Additional deployment annotations podAnnotations: {} + ## Additional deployment labels + podLabels: {} ## The priority class to run the pod as priorityClassName: # Secret is used to secure the upload state from client # and registry storage backend. - # See: https://github.com/docker/distribution/blob/master/docs/configuration.md#http + # See: https://github.com/distribution/distribution/blob/main/docs/configuration.md#http # If a secret key is not specified, Helm will generate one. # Must be a string of 16 chars. secret: "" @@ -610,7 +644,7 @@ trivy: # repository the repository for Trivy adapter image repository: goharbor/trivy-adapter-photon # tag the tag for Trivy adapter image - tag: v2.8.4 + tag: v2.9.0 # set the service account to be used, default if left empty serviceAccountName: "" # mount the service account token @@ -668,66 +702,23 @@ trivy: limits: cpu: 1 memory: 1Gi + extraEnvVars: [] nodeSelector: {} tolerations: [] affinity: {} + # Spread Pods across failure-domains like regions, availability zones or nodes + topologySpreadConstraints: [] + # - maxSkew: 1 + # topologyKey: topology.kubernetes.io/zone + # nodeTaintsPolicy: Honor + # whenUnsatisfiable: DoNotSchedule ## Additional deployment annotations podAnnotations: {} + ## Additional deployment labels + podLabels: {} ## The priority class to run the pod as priorityClassName: -notary: - enabled: true - server: - # set the service account to be used, default if left empty - serviceAccountName: "" - # mount the service account token - automountServiceAccountToken: false - image: - repository: goharbor/notary-server-photon - tag: v2.8.4 - replicas: 1 - # resources: - # requests: - # memory: 256Mi - # cpu: 100m - nodeSelector: {} - tolerations: [] - affinity: {} - ## Additional deployment annotations - podAnnotations: {} - ## The priority class to run the pod as - priorityClassName: - ## Additional service annotations - serviceAnnotations: {} - signer: - # set the service account to be used, default if left empty - serviceAccountName: "" - # mount the service account token - automountServiceAccountToken: false - image: - repository: goharbor/notary-signer-photon - tag: v2.8.4 - replicas: 1 - # resources: - # requests: - # memory: 256Mi - # cpu: 100m - nodeSelector: {} - tolerations: [] - affinity: {} - ## Additional deployment annotations - podAnnotations: {} - ## The priority class to run the pod as - priorityClassName: - # Fill the name of a kubernetes secret if you want to use your own - # TLS certificate authority, certificate and private key for notary - # communications. - # The secret must contain keys named ca.crt, tls.crt and tls.key that - # contain the CA, certificate and private key. - # They will be generated if not set. - secretName: "" - database: # if external database is used, set "type" to "external" # and fill the connection information in "external" section @@ -739,7 +730,7 @@ database: automountServiceAccountToken: false image: repository: goharbor/harbor-db - tag: v2.8.4 + tag: v2.9.0 # The initial superuser password for internal database password: "changeit" # The size limit for Shared memory, pgSQL use it for shared_buffer @@ -756,6 +747,7 @@ database: # The timeout used in readinessProbe; 1 to 5 seconds readinessProbe: timeoutSeconds: 1 + extraEnvVars: [] nodeSelector: {} tolerations: [] affinity: {} @@ -778,8 +770,6 @@ database: username: "user" password: "password" coreDatabase: "registry" - notaryServerDatabase: "notary_server" - notarySignerDatabase: "notary_signer" # if using existing secret, the key must be "password" existingSecret: "" # "disable" - No SSL @@ -799,6 +789,8 @@ database: maxOpenConns: 900 ## Additional deployment annotations podAnnotations: {} + ## Additional deployment labels + podLabels: {} redis: # if external Redis is used, set "type" to "external" @@ -811,11 +803,12 @@ redis: automountServiceAccountToken: false image: repository: goharbor/redis-photon - tag: v2.8.4 + tag: v2.9.0 # resources: # requests: # memory: 256Mi # cpu: 100m + extraEnvVars: [] nodeSelector: {} tolerations: [] affinity: {} @@ -855,6 +848,8 @@ redis: existingSecret: "" ## Additional deployment annotations podAnnotations: {} + ## Additional deployment labels + podLabels: {} exporter: replicas: 1 @@ -863,16 +858,25 @@ exporter: # requests: # memory: 256Mi # cpu: 100m + extraEnvVars: [] podAnnotations: {} + ## Additional deployment labels + podLabels: {} serviceAccountName: "" # mount the service account token automountServiceAccountToken: false image: repository: goharbor/harbor-exporter - tag: v2.8.4 + tag: v2.9.0 nodeSelector: {} tolerations: [] affinity: {} + # Spread Pods across failure-domains like regions, availability zones or nodes + topologySpreadConstraints: [] + # - maxSkew: 1 + # topologyKey: topology.kubernetes.io/zone + # nodeTaintsPolicy: Honor + # whenUnsatisfiable: DoNotSchedule cacheDuration: 23 cacheCleanInterval: 14400 ## The priority class to run the pod as @@ -894,7 +898,7 @@ metrics: port: 8001 ## Create prometheus serviceMonitor to scrape harbor metrics. ## This requires the monitoring.coreos.com/v1 CRD. Please see - ## https://github.com/prometheus-operator/prometheus-operator/blob/master/Documentation/user-guides/getting-started.md + ## https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/getting-started.md ## serviceMonitor: enabled: false diff --git a/charts/koor-tech/koor-operator/Chart.lock b/charts/koor-tech/koor-operator/Chart.lock index 248ebeb36..0567501a2 100644 --- a/charts/koor-tech/koor-operator/Chart.lock +++ b/charts/koor-tech/koor-operator/Chart.lock @@ -3,4 +3,4 @@ dependencies: repository: https://charts.jetstack.io version: v1.12.3 digest: sha256:3110ca458f8a903dc025408701614af03df859bf827824478ed68c785b0e6209 -generated: "2023-08-29T05:47:05.106503476Z" +generated: "2023-08-30T06:44:07.371307817Z" diff --git a/charts/koor-tech/koor-operator/Chart.yaml b/charts/koor-tech/koor-operator/Chart.yaml index 0c232a661..eec7b2b8b 100644 --- a/charts/koor-tech/koor-operator/Chart.yaml +++ b/charts/koor-tech/koor-operator/Chart.yaml @@ -14,7 +14,7 @@ annotations: catalog.cattle.io/kube-version: '>=1.19.0' catalog.cattle.io/release-name: koor-operator apiVersion: v2 -appVersion: v0.3.5 +appVersion: v0.3.6 dependencies: - alias: certmanager condition: certmanager.enabled @@ -33,4 +33,4 @@ name: koor-operator sources: - https://github.com/koor-tech/koor-operator/ type: application -version: 0.3.5 +version: 0.3.6 diff --git a/charts/koor-tech/koor-operator/README.md b/charts/koor-tech/koor-operator/README.md index b1fecff31..eebfaa460 100644 --- a/charts/koor-tech/koor-operator/README.md +++ b/charts/koor-tech/koor-operator/README.md @@ -52,7 +52,7 @@ The following table lists the configurable parameters of the rook-operator chart | `controllerManager.manager.args` | Operator args | `["--health-probe-bind-address=:8081","--metrics-bind-address=127.0.0.1:8080","--leader-elect"]` | | `controllerManager.manager.containerSecurityContext` | Operator container security context | `{"allowPrivilegeEscalation":false,"capabilities":{"drop":["ALL"]}}` | | `controllerManager.manager.image.repository` | Operator image repository | `"docker.io/koorinc/koor-operator"` | -| `controllerManager.manager.image.tag` | Operator image tag | `"v0.3.5"` | +| `controllerManager.manager.image.tag` | Operator image tag | `"v0.3.6"` | | `controllerManager.manager.resources` | Operator container resources | `{"limits":{"cpu":"500m","memory":"512Mi"},"requests":{"cpu":"10m","memory":"128Mi"}}` | | `controllerManager.replicas` | | `1` | | `koorCluster.spec.dashboardEnabled` | Enable the Ceph MGR dashboard. | `true` | diff --git a/charts/koor-tech/koor-operator/templates/koorcluster-job.yaml b/charts/koor-tech/koor-operator/templates/koorcluster-job.yaml index 3d5e12b2f..cfb3ca5bd 100644 --- a/charts/koor-tech/koor-operator/templates/koorcluster-job.yaml +++ b/charts/koor-tech/koor-operator/templates/koorcluster-job.yaml @@ -8,6 +8,7 @@ metadata: {{- include "koor-operator.labels" . | nindent 4 }} spec: backoffLimit: 20 + ttlSecondsAfterFinished: 0 template: metadata: name: {{ include "koor-operator.jobName" . }} diff --git a/charts/koor-tech/koor-operator/values.yaml b/charts/koor-tech/koor-operator/values.yaml index 930cfc193..47e31e11f 100644 --- a/charts/koor-tech/koor-operator/values.yaml +++ b/charts/koor-tech/koor-operator/values.yaml @@ -49,7 +49,7 @@ controllerManager: # -- Operator image repository repository: docker.io/koorinc/koor-operator # -- Operator image tag - tag: v0.3.5 + tag: v0.3.6 # -- Operator container resources resources: limits: diff --git a/charts/kuma/kuma/Chart.yaml b/charts/kuma/kuma/Chart.yaml index d5ba4ccf0..cd1b29d8b 100644 --- a/charts/kuma/kuma/Chart.yaml +++ b/charts/kuma/kuma/Chart.yaml @@ -4,7 +4,7 @@ annotations: catalog.cattle.io/namespace: kuma-system catalog.cattle.io/release-name: kuma apiVersion: v2 -appVersion: 2.3.2 +appVersion: 2.4.0 description: A Helm chart for the Kuma Control Plane home: https://github.com/kumahq/kuma icon: https://kuma.io/assets/images/brand/kuma-logo-new.svg @@ -20,4 +20,4 @@ maintainers: name: nickolaev name: kuma type: application -version: 2.3.2 +version: 2.4.0 diff --git a/charts/kuma/kuma/README.md b/charts/kuma/kuma/README.md index 938ded5a5..0d2f33a77 100644 --- a/charts/kuma/kuma/README.md +++ b/charts/kuma/kuma/README.md @@ -2,7 +2,7 @@ A Helm chart for the Kuma Control Plane -![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![Version: 2.3.2](https://img.shields.io/badge/Version-2.3.2-informational?style=flat-square) ![AppVersion: 2.3.2](https://img.shields.io/badge/AppVersion-2.3.2-informational?style=flat-square) +![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![Version: 2.4.0](https://img.shields.io/badge/Version-2.4.0-informational?style=flat-square) ![AppVersion: 2.4.0](https://img.shields.io/badge/AppVersion-2.4.0-informational?style=flat-square) **Homepage:** diff --git a/charts/kuma/kuma/crds/kuma.io_circuitbreakers.yaml b/charts/kuma/kuma/crds/kuma.io_circuitbreakers.yaml index 196b7c1db..8a0af998e 100644 --- a/charts/kuma/kuma/crds/kuma.io_circuitbreakers.yaml +++ b/charts/kuma/kuma/crds/kuma.io_circuitbreakers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: circuitbreakers.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_containerpatches.yaml b/charts/kuma/kuma/crds/kuma.io_containerpatches.yaml index 20849b10b..5fbde85cf 100644 --- a/charts/kuma/kuma/crds/kuma.io_containerpatches.yaml +++ b/charts/kuma/kuma/crds/kuma.io_containerpatches.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: containerpatches.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_dataplaneinsights.yaml b/charts/kuma/kuma/crds/kuma.io_dataplaneinsights.yaml index 7e892d597..79a541f21 100644 --- a/charts/kuma/kuma/crds/kuma.io_dataplaneinsights.yaml +++ b/charts/kuma/kuma/crds/kuma.io_dataplaneinsights.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: dataplaneinsights.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_dataplanes.yaml b/charts/kuma/kuma/crds/kuma.io_dataplanes.yaml index 82cfefe31..1f0088638 100644 --- a/charts/kuma/kuma/crds/kuma.io_dataplanes.yaml +++ b/charts/kuma/kuma/crds/kuma.io_dataplanes.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: dataplanes.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_externalservices.yaml b/charts/kuma/kuma/crds/kuma.io_externalservices.yaml index eed56190b..02be62004 100644 --- a/charts/kuma/kuma/crds/kuma.io_externalservices.yaml +++ b/charts/kuma/kuma/crds/kuma.io_externalservices.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: externalservices.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_faultinjections.yaml b/charts/kuma/kuma/crds/kuma.io_faultinjections.yaml index ba4b468d5..5eeef6418 100644 --- a/charts/kuma/kuma/crds/kuma.io_faultinjections.yaml +++ b/charts/kuma/kuma/crds/kuma.io_faultinjections.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: faultinjections.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_healthchecks.yaml b/charts/kuma/kuma/crds/kuma.io_healthchecks.yaml index ca183c9b7..c138c08e7 100644 --- a/charts/kuma/kuma/crds/kuma.io_healthchecks.yaml +++ b/charts/kuma/kuma/crds/kuma.io_healthchecks.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: healthchecks.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_meshaccesslogs.yaml b/charts/kuma/kuma/crds/kuma.io_meshaccesslogs.yaml index a38c61452..411c1bb2c 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshaccesslogs.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshaccesslogs.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshaccesslogs.kuma.io spec: group: kuma.io @@ -16,7 +16,14 @@ spec: singular: meshaccesslog scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .spec.targetRef.kind + name: TargetRef Kind + type: string + - jsonPath: .spec.targetRef.name + name: TargetRef Name + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: @@ -97,6 +104,11 @@ spec: type: string type: object type: array + body: + description: Body is a raw string or an OTLP any + value as described at https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-body + It can contain placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + x-kubernetes-preserve-unknown-fields: true endpoint: description: Endpoint of OpenTelemetry collector. An empty port defaults to 4317. @@ -160,6 +172,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -194,6 +207,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -275,6 +289,11 @@ spec: type: string type: object type: array + body: + description: Body is a raw string or an OTLP any + value as described at https://github.com/open-telemetry/opentelemetry-specification/blob/main/specification/logs/data-model.md#field-body + It can contain placeholders available on https://www.envoyproxy.io/docs/envoy/latest/configuration/observability/access_log/usage#command-operators + x-kubernetes-preserve-unknown-fields: true endpoint: description: Endpoint of OpenTelemetry collector. An empty port defaults to 4317. @@ -338,6 +357,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -368,3 +388,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/charts/kuma/kuma/crds/kuma.io_meshcircuitbreakers.yaml b/charts/kuma/kuma/crds/kuma.io_meshcircuitbreakers.yaml index 6cf06361d..ffae58e55 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshcircuitbreakers.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshcircuitbreakers.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshcircuitbreakers.kuma.io spec: group: kuma.io @@ -16,7 +16,14 @@ spec: singular: meshcircuitbreaker scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .spec.targetRef.kind + name: TargetRef Kind + type: string + - jsonPath: .spec.targetRef.name + name: TargetRef Name + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: @@ -301,6 +308,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -335,6 +343,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -619,6 +628,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -649,3 +659,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/charts/kuma/kuma/crds/kuma.io_meshes.yaml b/charts/kuma/kuma/crds/kuma.io_meshes.yaml index 8e5f84539..7e1848086 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshes.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshes.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshes.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_meshfaultinjections.yaml b/charts/kuma/kuma/crds/kuma.io_meshfaultinjections.yaml index b8f55fbb2..be0a3a7ca 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshfaultinjections.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshfaultinjections.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshfaultinjections.kuma.io spec: group: kuma.io @@ -16,7 +16,14 @@ spec: singular: meshfaultinjection scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .spec.targetRef.kind + name: TargetRef Kind + type: string + - jsonPath: .spec.targetRef.name + name: TargetRef Name + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: @@ -127,6 +134,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -161,6 +169,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -186,3 +195,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/charts/kuma/kuma/crds/kuma.io_meshgatewayinstances.yaml b/charts/kuma/kuma/crds/kuma.io_meshgatewayinstances.yaml index 4b2958a61..b0056e5ad 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshgatewayinstances.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshgatewayinstances.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshgatewayinstances.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_meshgatewayroutes.yaml b/charts/kuma/kuma/crds/kuma.io_meshgatewayroutes.yaml index 032cffecb..81ffb9b48 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshgatewayroutes.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshgatewayroutes.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshgatewayroutes.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_meshgateways.yaml b/charts/kuma/kuma/crds/kuma.io_meshgateways.yaml index 98f98f574..76eba91ac 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshgateways.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshgateways.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshgateways.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_meshhealthchecks.yaml b/charts/kuma/kuma/crds/kuma.io_meshhealthchecks.yaml index 1ce431463..f97352a7d 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshhealthchecks.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshhealthchecks.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshhealthchecks.kuma.io spec: group: kuma.io @@ -16,7 +16,14 @@ spec: singular: meshhealthcheck scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .spec.targetRef.kind + name: TargetRef Kind + type: string + - jsonPath: .spec.targetRef.name + name: TargetRef Name + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: @@ -45,6 +52,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -270,6 +278,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -300,3 +309,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/charts/kuma/kuma/crds/kuma.io_meshhttproutes.yaml b/charts/kuma/kuma/crds/kuma.io_meshhttproutes.yaml index d75796690..23e575e7e 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshhttproutes.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshhttproutes.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshhttproutes.kuma.io spec: group: kuma.io @@ -16,7 +16,14 @@ spec: singular: meshhttproute scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .spec.targetRef.kind + name: TargetRef Kind + type: string + - jsonPath: .spec.targetRef.name + name: TargetRef Name + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: @@ -45,6 +52,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -88,6 +96,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -181,6 +190,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -473,6 +483,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -499,3 +510,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/charts/kuma/kuma/crds/kuma.io_meshinsights.yaml b/charts/kuma/kuma/crds/kuma.io_meshinsights.yaml index 5391c4b88..f9c307168 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshinsights.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshinsights.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshinsights.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_meshloadbalancingstrategies.yaml b/charts/kuma/kuma/crds/kuma.io_meshloadbalancingstrategies.yaml index d4861794d..0edd941bc 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshloadbalancingstrategies.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshloadbalancingstrategies.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshloadbalancingstrategies.kuma.io spec: group: kuma.io @@ -16,7 +16,14 @@ spec: singular: meshloadbalancingstrategy scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .spec.targetRef.kind + name: TargetRef Kind + type: string + - jsonPath: .spec.targetRef.name + name: TargetRef Name + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: @@ -46,6 +53,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -382,6 +390,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -412,3 +421,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/charts/kuma/kuma/crds/kuma.io_meshproxypatches.yaml b/charts/kuma/kuma/crds/kuma.io_meshproxypatches.yaml index c6a223035..42b4cd47c 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshproxypatches.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshproxypatches.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshproxypatches.kuma.io spec: group: kuma.io @@ -16,7 +16,14 @@ spec: singular: meshproxypatch scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .spec.targetRef.kind + name: TargetRef Kind + type: string + - jsonPath: .spec.targetRef.name + name: TargetRef Name + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: @@ -475,6 +482,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -501,3 +509,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/charts/kuma/kuma/crds/kuma.io_meshratelimits.yaml b/charts/kuma/kuma/crds/kuma.io_meshratelimits.yaml index 84c03219e..abfd51f34 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshratelimits.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshratelimits.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshratelimits.kuma.io spec: group: kuma.io @@ -16,7 +16,14 @@ spec: singular: meshratelimit scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .spec.targetRef.kind + name: TargetRef Kind + type: string + - jsonPath: .spec.targetRef.name + name: TargetRef Name + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: @@ -165,6 +172,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -199,6 +207,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -224,3 +233,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/charts/kuma/kuma/crds/kuma.io_meshretries.yaml b/charts/kuma/kuma/crds/kuma.io_meshretries.yaml index a136c8fa0..d724395a3 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshretries.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshretries.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshretries.kuma.io spec: group: kuma.io @@ -16,7 +16,14 @@ spec: singular: meshretry scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .spec.targetRef.kind + name: TargetRef Kind + type: string + - jsonPath: .spec.targetRef.name + name: TargetRef Name + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: @@ -45,6 +52,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -364,6 +372,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -394,3 +403,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/charts/kuma/kuma/crds/kuma.io_meshtcproutes.yaml b/charts/kuma/kuma/crds/kuma.io_meshtcproutes.yaml index 11b589189..1bc3081aa 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshtcproutes.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshtcproutes.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshtcproutes.kuma.io spec: group: kuma.io @@ -16,7 +16,14 @@ spec: singular: meshtcproute scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .spec.targetRef.kind + name: TargetRef Kind + type: string + - jsonPath: .spec.targetRef.name + name: TargetRef Name + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: @@ -45,6 +52,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -88,6 +96,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -132,6 +141,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -163,3 +173,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/charts/kuma/kuma/crds/kuma.io_meshtimeouts.yaml b/charts/kuma/kuma/crds/kuma.io_meshtimeouts.yaml index c49cf77da..c55e957a8 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshtimeouts.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshtimeouts.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshtimeouts.kuma.io spec: group: kuma.io @@ -16,7 +16,14 @@ spec: singular: meshtimeout scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .spec.targetRef.kind + name: TargetRef Kind + type: string + - jsonPath: .spec.targetRef.name + name: TargetRef Name + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: @@ -96,6 +103,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -130,6 +138,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -210,6 +219,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -240,3 +250,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/charts/kuma/kuma/crds/kuma.io_meshtraces.yaml b/charts/kuma/kuma/crds/kuma.io_meshtraces.yaml index c6561b212..0e8b08c9d 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshtraces.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshtraces.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshtraces.kuma.io spec: group: kuma.io @@ -16,7 +16,14 @@ spec: singular: meshtrace scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .spec.targetRef.kind + name: TargetRef Kind + type: string + - jsonPath: .spec.targetRef.name + name: TargetRef Name + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: @@ -193,6 +200,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -218,3 +226,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/charts/kuma/kuma/crds/kuma.io_meshtrafficpermissions.yaml b/charts/kuma/kuma/crds/kuma.io_meshtrafficpermissions.yaml index 83e1920c2..3ab56942e 100644 --- a/charts/kuma/kuma/crds/kuma.io_meshtrafficpermissions.yaml +++ b/charts/kuma/kuma/crds/kuma.io_meshtrafficpermissions.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: meshtrafficpermissions.kuma.io spec: group: kuma.io @@ -16,7 +16,14 @@ spec: singular: meshtrafficpermission scope: Namespaced versions: - - name: v1alpha1 + - additionalPrinterColumns: + - jsonPath: .spec.targetRef.kind + name: TargetRef Kind + type: string + - jsonPath: .spec.targetRef.name + name: TargetRef Name + type: string + name: v1alpha1 schema: openAPIV3Schema: properties: @@ -63,6 +70,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -97,6 +105,7 @@ spec: enum: - Mesh - MeshSubset + - MeshGateway - MeshService - MeshServiceSubset - MeshHTTPRoute @@ -122,3 +131,4 @@ spec: type: object served: true storage: true + subresources: {} diff --git a/charts/kuma/kuma/crds/kuma.io_proxytemplates.yaml b/charts/kuma/kuma/crds/kuma.io_proxytemplates.yaml index 6b05719d8..111d4450f 100644 --- a/charts/kuma/kuma/crds/kuma.io_proxytemplates.yaml +++ b/charts/kuma/kuma/crds/kuma.io_proxytemplates.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: proxytemplates.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_ratelimits.yaml b/charts/kuma/kuma/crds/kuma.io_ratelimits.yaml index 2bd6dcacd..cc6fa13fa 100644 --- a/charts/kuma/kuma/crds/kuma.io_ratelimits.yaml +++ b/charts/kuma/kuma/crds/kuma.io_ratelimits.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: ratelimits.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_retries.yaml b/charts/kuma/kuma/crds/kuma.io_retries.yaml index 01cb88902..865df1b2f 100644 --- a/charts/kuma/kuma/crds/kuma.io_retries.yaml +++ b/charts/kuma/kuma/crds/kuma.io_retries.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: retries.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_serviceinsights.yaml b/charts/kuma/kuma/crds/kuma.io_serviceinsights.yaml index a85e134ce..135eaedda 100644 --- a/charts/kuma/kuma/crds/kuma.io_serviceinsights.yaml +++ b/charts/kuma/kuma/crds/kuma.io_serviceinsights.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: serviceinsights.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_timeouts.yaml b/charts/kuma/kuma/crds/kuma.io_timeouts.yaml index a04dd9d6f..b2f8b3d60 100644 --- a/charts/kuma/kuma/crds/kuma.io_timeouts.yaml +++ b/charts/kuma/kuma/crds/kuma.io_timeouts.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: timeouts.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_trafficlogs.yaml b/charts/kuma/kuma/crds/kuma.io_trafficlogs.yaml index 2e1b5e864..c74f9a90f 100644 --- a/charts/kuma/kuma/crds/kuma.io_trafficlogs.yaml +++ b/charts/kuma/kuma/crds/kuma.io_trafficlogs.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: trafficlogs.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_trafficpermissions.yaml b/charts/kuma/kuma/crds/kuma.io_trafficpermissions.yaml index 820cf2b13..b9469c8c9 100644 --- a/charts/kuma/kuma/crds/kuma.io_trafficpermissions.yaml +++ b/charts/kuma/kuma/crds/kuma.io_trafficpermissions.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: trafficpermissions.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_trafficroutes.yaml b/charts/kuma/kuma/crds/kuma.io_trafficroutes.yaml index b2ce22ebf..1e3158363 100644 --- a/charts/kuma/kuma/crds/kuma.io_trafficroutes.yaml +++ b/charts/kuma/kuma/crds/kuma.io_trafficroutes.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: trafficroutes.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_traffictraces.yaml b/charts/kuma/kuma/crds/kuma.io_traffictraces.yaml index 24bedcbe9..f85ababd9 100644 --- a/charts/kuma/kuma/crds/kuma.io_traffictraces.yaml +++ b/charts/kuma/kuma/crds/kuma.io_traffictraces.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: traffictraces.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_virtualoutbounds.yaml b/charts/kuma/kuma/crds/kuma.io_virtualoutbounds.yaml index 19e7be87c..a5fe905e0 100644 --- a/charts/kuma/kuma/crds/kuma.io_virtualoutbounds.yaml +++ b/charts/kuma/kuma/crds/kuma.io_virtualoutbounds.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: virtualoutbounds.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_zoneegresses.yaml b/charts/kuma/kuma/crds/kuma.io_zoneegresses.yaml index 780d25682..b202d0fb8 100644 --- a/charts/kuma/kuma/crds/kuma.io_zoneegresses.yaml +++ b/charts/kuma/kuma/crds/kuma.io_zoneegresses.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: zoneegresses.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_zoneegressinsights.yaml b/charts/kuma/kuma/crds/kuma.io_zoneegressinsights.yaml index e1221ab49..50c7f6864 100644 --- a/charts/kuma/kuma/crds/kuma.io_zoneegressinsights.yaml +++ b/charts/kuma/kuma/crds/kuma.io_zoneegressinsights.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: zoneegressinsights.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_zoneingresses.yaml b/charts/kuma/kuma/crds/kuma.io_zoneingresses.yaml index c91cd56cb..0754071e2 100644 --- a/charts/kuma/kuma/crds/kuma.io_zoneingresses.yaml +++ b/charts/kuma/kuma/crds/kuma.io_zoneingresses.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: zoneingresses.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_zoneingressinsights.yaml b/charts/kuma/kuma/crds/kuma.io_zoneingressinsights.yaml index 72a3a304f..87d2c06ab 100644 --- a/charts/kuma/kuma/crds/kuma.io_zoneingressinsights.yaml +++ b/charts/kuma/kuma/crds/kuma.io_zoneingressinsights.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: zoneingressinsights.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_zoneinsights.yaml b/charts/kuma/kuma/crds/kuma.io_zoneinsights.yaml index 92cf14ad6..fa149598a 100644 --- a/charts/kuma/kuma/crds/kuma.io_zoneinsights.yaml +++ b/charts/kuma/kuma/crds/kuma.io_zoneinsights.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: zoneinsights.kuma.io spec: group: kuma.io diff --git a/charts/kuma/kuma/crds/kuma.io_zones.yaml b/charts/kuma/kuma/crds/kuma.io_zones.yaml index 09cb5d9c5..bcd73a05b 100644 --- a/charts/kuma/kuma/crds/kuma.io_zones.yaml +++ b/charts/kuma/kuma/crds/kuma.io_zones.yaml @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.12.0 + controller-gen.kubebuilder.io/version: v0.13.0 name: zones.kuma.io spec: group: kuma.io diff --git a/charts/redpanda/redpanda/Chart.lock b/charts/redpanda/redpanda/Chart.lock index 908228a74..cba1014c1 100644 --- a/charts/redpanda/redpanda/Chart.lock +++ b/charts/redpanda/redpanda/Chart.lock @@ -6,4 +6,4 @@ dependencies: repository: https://charts.redpanda.com version: 0.1.5 digest: sha256:dd7afd55f6eb7e9b3a91b0e5eeda47138e23c255b32d277ad4cb3a7ad3ec1b1f -generated: "2023-08-29T00:48:34.845874471Z" +generated: "2023-08-29T23:24:16.635099387Z" diff --git a/charts/redpanda/redpanda/Chart.yaml b/charts/redpanda/redpanda/Chart.yaml index c1abd30d6..866b5a362 100644 --- a/charts/redpanda/redpanda/Chart.yaml +++ b/charts/redpanda/redpanda/Chart.yaml @@ -37,4 +37,4 @@ name: redpanda sources: - https://github.com/redpanda-data/helm-charts type: application -version: 5.1.7 +version: 5.2.0 diff --git a/charts/redpanda/redpanda/templates/console/configmap-and-deployment.yaml b/charts/redpanda/redpanda/templates/console/configmap-and-deployment.yaml index 265b22be6..e2d9486dc 100644 --- a/charts/redpanda/redpanda/templates/console/configmap-and-deployment.yaml +++ b/charts/redpanda/redpanda/templates/console/configmap-and-deployment.yaml @@ -61,7 +61,7 @@ limitations under the License. "enabled" $values.connectors.enabled "clusters" (list (dict - "url" (printf "http://%s.%s.svc.cluster.local:%s" (include "connectors.serviceName" $connectorsValues) .Release.Namespace ($values.connectors.connectors.restPort | toString )) + "url" (printf "http://%s.%s.svc.%s:%s" (include "connectors.serviceName" $connectorsValues) .Release.Namespace ($values.clusterDomain | trimSuffix ".") ($values.connectors.connectors.restPort | toString )) "name" "connectors" "tls" (dict "enabled" "false" @@ -248,4 +248,4 @@ limitations under the License. {{ $helmVars := merge $consoleValues $helmVars }} --- {{ include (print .Subcharts.console.Template.BasePath "/deployment.yaml") $helmVars }} -{{ end }} \ No newline at end of file +{{ end }} diff --git a/charts/redpanda/redpanda/templates/service.internal.yaml b/charts/redpanda/redpanda/templates/service.internal.yaml index 0f1cb94e1..1dcd041a8 100644 --- a/charts/redpanda/redpanda/templates/service.internal.yaml +++ b/charts/redpanda/redpanda/templates/service.internal.yaml @@ -28,6 +28,9 @@ metadata: {{- with include "full.labels" . }} {{- . | nindent 4 }} {{- end }} +{{- with dig "service" "internal" "annotations" dict .Values.AsMap }} + annotations: {{ toYaml . | nindent 4 }} +{{- end }} spec: type: ClusterIP publishNotReadyAddresses: true diff --git a/charts/redpanda/redpanda/values.schema.json b/charts/redpanda/redpanda/values.schema.json index a3bb2e3e8..14f43484b 100644 --- a/charts/redpanda/redpanda/values.schema.json +++ b/charts/redpanda/redpanda/values.schema.json @@ -55,6 +55,14 @@ "properties": { "name": { "type": "string" + }, + "internal": { + "type": "object", + "properties": { + "annotations": { + "type": "object" + } + } } } }, diff --git a/charts/redpanda/redpanda/values.yaml b/charts/redpanda/redpanda/values.yaml index 19cd9ebdf..93e78328b 100644 --- a/charts/redpanda/redpanda/values.yaml +++ b/charts/redpanda/redpanda/values.yaml @@ -60,6 +60,15 @@ image: # service: # -- set service.name to override the default service name # name: redpanda +# -- internal Service +# internal: +# -- add annotations to the internal Service +# annotations: {} +# +# -- eg. for a bare metal install using external-dns +# annotations: +# "external-dns.alpha.kubernetes.io/hostname": redpanda.domain.dom +# "external-dns.alpha.kubernetes.io/endpoints-type": HostIP # -- Pull secrets may be used to provide credentials to image repositories # See https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ diff --git a/charts/sysdig/sysdig/CHANGELOG.md b/charts/sysdig/sysdig/CHANGELOG.md index 0246ca1a5..8905f1e90 100644 --- a/charts/sysdig/sysdig/CHANGELOG.md +++ b/charts/sysdig/sysdig/CHANGELOG.md @@ -10,6 +10,12 @@ Manual edits are supported only below '## Change Log' and should be used exclusively to fix incorrect entries and not to add new ones. ## Change Log +# v1.16.9 +### Chores +* **sysdig, node-analyzer** [0ba5baa3](https://github.com/sysdiglabs/charts/commit/0ba5baa3e690be1c2c3a92c4928558efffb33539): bump sysdig/vuln-runtime-scanner to v1.5.5 ([#1320](https://github.com/sysdiglabs/charts/issues/1320)) + + * * Runtime Scanner bumped to 1.5.5 + * Fixed a bug that could cause the Runtime Scanner to perform unneeded rescans # v1.16.8 ### Chores * **sysdig, node-analyzer** [17d2e503](https://github.com/sysdiglabs/charts/commit/17d2e50326f587b154f43beb706627416ca6a4b6): bump sysdig/vuln-runtime-scanner to v1.5.4 ([#1305](https://github.com/sysdiglabs/charts/issues/1305)) diff --git a/charts/sysdig/sysdig/Chart.yaml b/charts/sysdig/sysdig/Chart.yaml index 06ce7e4f2..bf26c79b6 100644 --- a/charts/sysdig/sysdig/Chart.yaml +++ b/charts/sysdig/sysdig/Chart.yaml @@ -19,4 +19,4 @@ name: sysdig sources: - https://app.sysdigcloud.com/#/settings/user - https://github.com/draios/sysdig -version: 1.16.8 +version: 1.16.9 diff --git a/charts/sysdig/sysdig/README.md b/charts/sysdig/sysdig/README.md index cf6f1d063..e95834dc0 100644 --- a/charts/sysdig/sysdig/README.md +++ b/charts/sysdig/sysdig/README.md @@ -262,7 +262,7 @@ The following table lists the configurable parameters of the Sysdig chart and th | `nodeAnalyzer.runtimeScanner.deploy` | Deploys the Runtime Scanner. | `false` | | `nodeAnalyzer.runtimeScanner.extraMounts` | Specifies a container engine custom socket path (docker, containerd, CRI-O). | | | `nodeAnalyzer.runtimeScanner.image.repository` | The image repository to pull the Runtime Scanner from. | `sysdig/vuln-runtime-scanner` | -| `nodeAnalyzer.runtimeScanner.image.tag` | The image tag to pull the Runtime Scanner. | `1.5.4` | +| `nodeAnalyzer.runtimeScanner.image.tag` | The image tag to pull the Runtime Scanner. | `1.5.5` | | `nodeAnalyzer.runtimeScanner.image.digest` | The image digest to pull. | ` ` | | `nodeAnalyzer.runtimeScanner.image.pullPolicy` | The image pull policy for the Runtime Scanner. | `IfNotPresent` | | `nodeAnalyzer.runtimeScanner.resources.requests.cpu` | Runtime Scanner CPU requests per node. | `250m` | diff --git a/charts/sysdig/sysdig/RELEASE-NOTES.md b/charts/sysdig/sysdig/RELEASE-NOTES.md index ad77fdb69..53ffe00bb 100644 --- a/charts/sysdig/sysdig/RELEASE-NOTES.md +++ b/charts/sysdig/sysdig/RELEASE-NOTES.md @@ -1,8 +1,8 @@ # What's Changed ### Chores -- **sysdig, node-analyzer** [17d2e503](https://github.com/sysdiglabs/charts/commit/17d2e50326f587b154f43beb706627416ca6a4b6): bump sysdig/vuln-runtime-scanner to v1.5.4 ([#1305](https://github.com/sysdiglabs/charts/issues/1305)) +- **sysdig, node-analyzer** [0ba5baa3](https://github.com/sysdiglabs/charts/commit/0ba5baa3e690be1c2c3a92c4928558efffb33539): bump sysdig/vuln-runtime-scanner to v1.5.5 ([#1320](https://github.com/sysdiglabs/charts/issues/1320)) - * * Runtime Scanner bumped to 1.5.4 - * Fixed a misbehavior of the image layer analyzer, which could lead to non-existing software artifacts being reported in the SBOM as a result of incorrect handling of opaque directories (ESC-3511). -#### Full diff: https://github.com/sysdiglabs/charts/compare/sysdig-deploy-1.18.0...sysdig-1.16.8 + * * Runtime Scanner bumped to 1.5.5 + * Fixed a bug that could cause the Runtime Scanner to perform unneeded rescans +#### Full diff: https://github.com/sysdiglabs/charts/compare/sysdig-deploy-1.19.4...sysdig-1.16.9 diff --git a/charts/sysdig/sysdig/values.yaml b/charts/sysdig/sysdig/values.yaml index 0a15a4b74..14ffb54cf 100644 --- a/charts/sysdig/sysdig/values.yaml +++ b/charts/sysdig/sysdig/values.yaml @@ -505,7 +505,7 @@ nodeAnalyzer: deploy: false image: repository: sysdig/vuln-runtime-scanner - tag: 1.5.4 + tag: 1.5.5 digest: pullPolicy: IfNotPresent diff --git a/charts/yugabyte/yugabyte/.helmignore b/charts/yugabyte/yugabyte/.helmignore deleted file mode 100644 index 3598c3003..000000000 --- a/charts/yugabyte/yugabyte/.helmignore +++ /dev/null @@ -1 +0,0 @@ -tests \ No newline at end of file diff --git a/charts/yugabyte/yugabyte/Chart.yaml b/charts/yugabyte/yugabyte/Chart.yaml index 2f619973e..89bba8d44 100644 --- a/charts/yugabyte/yugabyte/Chart.yaml +++ b/charts/yugabyte/yugabyte/Chart.yaml @@ -3,20 +3,18 @@ annotations: catalog.cattle.io/display-name: YugabyteDB catalog.cattle.io/kube-version: '>=1.18-0' catalog.cattle.io/release-name: yugabyte - charts.openshift.io/name: yugabyte -apiVersion: v2 -appVersion: 2.18.2.1-b1 +apiVersion: v1 +appVersion: 2.14.12.0-b19 description: YugabyteDB is the high-performance distributed SQL database for building global, internet-scale apps. home: https://www.yugabyte.com icon: https://avatars0.githubusercontent.com/u/17074854?s=200&v=4 -kubeVersion: '>=1.18-0' maintainers: -- email: sanketh@yugabyte.com - name: Sanketh Indarapu -- email: gjalla@yugabyte.com - name: Govardhan Reddy Jalla +- email: ram@yugabyte.com + name: Ram Sri +- email: arnav@yugabyte.com + name: Arnav Agarwal name: yugabyte sources: - https://github.com/yugabyte/yugabyte-db -version: 2.18.2+1 +version: 2.14.12 diff --git a/charts/yugabyte/yugabyte/app-readme.md b/charts/yugabyte/yugabyte/app-readme.md index 61c618012..48c8c43d2 100644 --- a/charts/yugabyte/yugabyte/app-readme.md +++ b/charts/yugabyte/yugabyte/app-readme.md @@ -1 +1 @@ -This chart bootstraps an RF3 YugabyteDB version 2.18.2.1-b1 cluster using the Helm Package Manager. +This chart bootstraps an RF3 Yugabyte DB version 2.14.12.0-b19 cluster using the Helm Package Manager. diff --git a/charts/yugabyte/yugabyte/generate_kubeconfig.py b/charts/yugabyte/yugabyte/generate_kubeconfig.py index f4c2d14ab..b974c0f2d 100644 --- a/charts/yugabyte/yugabyte/generate_kubeconfig.py +++ b/charts/yugabyte/yugabyte/generate_kubeconfig.py @@ -11,209 +11,84 @@ from sys import exit import json import base64 import tempfile -import time -import os.path -def run_command(command_args, namespace=None, as_json=True, log_command=True): - command = ["kubectl"] +def run_command(command_args, namespace=None, as_json=True): + command = ['kubectl'] if namespace: - command.extend(["--namespace", namespace]) + command.extend(['--namespace', namespace]) command.extend(command_args) if as_json: - command.extend(["-o", "json"]) - if log_command: - print("Running command: {}".format(" ".join(command))) - output = check_output(command) - if as_json: - return json.loads(output) + command.extend(['-o', 'json']) + return json.loads(check_output(command)) else: - return output.decode("utf8") + return check_output(command).decode('utf8') -def create_sa_token_secret(directory, sa_name, namespace): - """Creates a service account token secret for sa_name in - namespace. Returns the name of the secret created. - - Ref: - https://k8s.io/docs/concepts/configuration/secret/#service-account-token-secrets - - """ - token_secret = { - "apiVersion": "v1", - "data": { - "do-not-delete-used-for-yugabyte-anywhere": "MQ==", - }, - "kind": "Secret", - "metadata": { - "annotations": { - "kubernetes.io/service-account.name": sa_name, - }, - "name": sa_name, - }, - "type": "kubernetes.io/service-account-token", - } - token_secret_file_name = os.path.join(directory, "token_secret.yaml") - with open(token_secret_file_name, "w") as token_secret_file: - json.dump(token_secret, token_secret_file) - run_command(["apply", "-f", token_secret_file_name], namespace) - return sa_name - - -def get_secret_data(secret, namespace): - """Returns the secret in JSON format if it has ca.crt and token in - it, else returns None. It retries 3 times with 1 second timeout - for the secret to be populated with this data. - - """ - secret_data = None - num_retries = 5 - timeout = 2 - while True: - secret_json = run_command(["get", "secret", secret], namespace) - if "ca.crt" in secret_json["data"] and "token" in secret_json["data"]: - secret_data = secret_json - break - - num_retries -= 1 - if num_retries == 0: - break - print( - "Secret '{}' is not populated. Sleep {}s, ({} retries left)".format( - secret, timeout, num_retries - ) - ) - time.sleep(timeout) - return secret_data - - -def get_secrets_for_sa(sa_name, namespace): - """Returns a list of all service account token secrets associated - with the given sa_name in the namespace. - - """ - secrets = run_command( - [ - "get", - "secret", - "--field-selector", - "type=kubernetes.io/service-account-token", - "-o", - 'jsonpath="{.items[?(@.metadata.annotations.kubernetes\.io/service-account\.name == "' - + sa_name - + '")].metadata.name}"', - ], - as_json=False, - ) - return secrets.strip('"').split() - - -parser = argparse.ArgumentParser(description="Generate KubeConfig with Token") -parser.add_argument("-s", "--service_account", help="Service Account name", required=True) -parser.add_argument("-n", "--namespace", help="Kubernetes namespace", default="kube-system") -parser.add_argument("-c", "--context", help="kubectl context") -parser.add_argument("-o", "--output_file", help="output file path") +parser = argparse.ArgumentParser(description='Generate KubeConfig with Token') +parser.add_argument('-s', '--service_account', help='Service Account name', required=True) +parser.add_argument('-n', '--namespace', help='Kubernetes namespace', default='kube-system') +parser.add_argument('-c', '--context', help='kubectl context') args = vars(parser.parse_args()) # if the context is not provided we use the current-context -context = args["context"] +context = args['context'] if context is None: - context = run_command(["config", "current-context"], args["namespace"], as_json=False) + context = run_command(['config', 'current-context'], + args['namespace'], as_json=False) -cluster_attrs = run_command( - ["config", "get-contexts", context.strip(), "--no-headers"], args["namespace"], as_json=False -) +cluster_attrs = run_command(['config', 'get-contexts', context.strip(), + '--no-headers'], args['namespace'], as_json=False) cluster_name = cluster_attrs.strip().split()[2] -endpoint = run_command( - [ - "config", - "view", - "-o", - 'jsonpath="{.clusters[?(@.name =="' + cluster_name + '")].cluster.server}"', - ], - args["namespace"], - as_json=False, -) -service_account_info = run_command(["get", "sa", args["service_account"]], args["namespace"]) - -tmpdir = tempfile.TemporaryDirectory() - -# Get the token and ca.crt from service account secret. -sa_secrets = list() - -# Get secrets specified in the service account, there can be multiple -# of them, and not all are service account token secrets. -if "secrets" in service_account_info: - sa_secrets = [secret["name"] for secret in service_account_info["secrets"]] - -# Find the existing additional service account token secrets -sa_secrets.extend(get_secrets_for_sa(args["service_account"], args["namespace"])) +endpoint = run_command(['config', 'view', '-o', + 'jsonpath="{.clusters[?(@.name =="' + + cluster_name + '")].cluster.server}"'], + args['namespace'], as_json=False) +service_account_info = run_command(['get', 'sa', args['service_account']], + args['namespace']) +# some ServiceAccounts have multiple secrets, and not all them have a +# ca.crt and a token. +sa_secrets = [secret['name'] for secret in service_account_info['secrets']] secret_data = None for secret in sa_secrets: - secret_data = get_secret_data(secret, args["namespace"]) - if secret_data is not None: - break - -# Kubernetes 1.22+ doesn't create the service account token secret by -# default, we have to create one. + secret_json = run_command(['get', 'secret', secret], args['namespace']) + if 'ca.crt' not in secret_json['data'] and 'token' not in secret_json['data']: + continue + secret_data = secret_json if secret_data is None: - print("No usable secret found for '{}', creating one.".format(args["service_account"])) - token_secret = create_sa_token_secret(tmpdir.name, args["service_account"], args["namespace"]) - secret_data = get_secret_data(token_secret, args["namespace"]) - if secret_data is None: - exit( - "Failed to generate kubeconfig: No usable credentials found for '{}'.".format( - args["service_account"] - ) - ) + exit("No usable secret found for '{}'.".format(args['service_account'])) +context_name = '{}-{}'.format(args['service_account'], cluster_name) +kube_config = '/tmp/{}.conf'.format(args['service_account']) -context_name = "{}-{}".format(args["service_account"], cluster_name) -kube_config = args["output_file"] -if not kube_config: - kube_config = "/tmp/{}.conf".format(args["service_account"]) +with tempfile.NamedTemporaryFile() as ca_crt_file: + ca_crt = base64.b64decode(secret_data['data']['ca.crt']) + ca_crt_file.write(ca_crt) + ca_crt_file.flush() + # create kubeconfig entry + set_cluster_cmd = ['config', 'set-cluster', cluster_name, + '--kubeconfig={}'.format(kube_config), + '--server={}'.format(endpoint.strip('"')), + '--embed-certs=true', + '--certificate-authority={}'.format(ca_crt_file.name)] + run_command(set_cluster_cmd, as_json=False) +user_token = base64.b64decode(secret_data['data']['token']).decode('utf-8') +set_credentials_cmd = ['config', 'set-credentials', context_name, + '--token={}'.format(user_token), + '--kubeconfig={}'.format(kube_config)] +run_command(set_credentials_cmd, as_json=False) -ca_crt_file_name = os.path.join(tmpdir.name, "ca.crt") -ca_crt_file = open(ca_crt_file_name, "wb") -ca_crt_file.write(base64.b64decode(secret_data["data"]["ca.crt"])) -ca_crt_file.close() - -# create kubeconfig entry -set_cluster_cmd = [ - "config", - "set-cluster", - cluster_name, - "--kubeconfig={}".format(kube_config), - "--server={}".format(endpoint.strip('"')), - "--embed-certs=true", - "--certificate-authority={}".format(ca_crt_file_name), -] -run_command(set_cluster_cmd, as_json=False) - -user_token = base64.b64decode(secret_data["data"]["token"]).decode("utf-8") -set_credentials_cmd = [ - "config", - "set-credentials", - context_name, - "--token={}".format(user_token), - "--kubeconfig={}".format(kube_config), -] -run_command(set_credentials_cmd, as_json=False, log_command=False) - -set_context_cmd = [ - "config", - "set-context", - context_name, - "--cluster={}".format(cluster_name), - "--user={}".format(context_name), - "--kubeconfig={}".format(kube_config), -] +set_context_cmd = ['config', 'set-context', context_name, + '--cluster={}'.format(cluster_name), + '--user={}'.format(context_name), + '--kubeconfig={}'.format(kube_config)] run_command(set_context_cmd, as_json=False) -use_context_cmd = ["config", "use-context", context_name, "--kubeconfig={}".format(kube_config)] +use_context_cmd = ['config', 'use-context', context_name, + '--kubeconfig={}'.format(kube_config)] run_command(use_context_cmd, as_json=False) print("Generated the kubeconfig file: {}".format(kube_config)) diff --git a/charts/yugabyte/yugabyte/openshift.values.yaml b/charts/yugabyte/yugabyte/openshift.values.yaml deleted file mode 100644 index d2784b23e..000000000 --- a/charts/yugabyte/yugabyte/openshift.values.yaml +++ /dev/null @@ -1,4 +0,0 @@ -# OCP compatible values for yugabyte - -Image: - repository: "quay.io/yugabyte/yugabyte-ubi" diff --git a/charts/yugabyte/yugabyte/questions.yaml b/charts/yugabyte/yugabyte/questions.yaml index 6befa49e1..c88fd43c0 100644 --- a/charts/yugabyte/yugabyte/questions.yaml +++ b/charts/yugabyte/yugabyte/questions.yaml @@ -16,7 +16,7 @@ questions: label: YugabyteDB image repository description: "YugabyteDB image repository" - variable: Image.tag - default: "2.5.1.0-b153" + default: "2.14.1.0-b36" required: true type: string label: YugabyteDB image tag diff --git a/charts/yugabyte/yugabyte/templates/_helpers.tpl b/charts/yugabyte/yugabyte/templates/_helpers.tpl index 7206a4270..460d711fe 100644 --- a/charts/yugabyte/yugabyte/templates/_helpers.tpl +++ b/charts/yugabyte/yugabyte/templates/_helpers.tpl @@ -26,7 +26,7 @@ Generate common labels. {{- define "yugabyte.labels" }} heritage: {{ .Values.helm2Legacy | ternary "Tiller" (.Release.Service | quote) }} release: {{ .Release.Name | quote }} -chart: {{ .Chart.Name | quote }} +chart: {{ .Values.oldNamingStyle | ternary .Chart.Name (include "yugabyte.chart" .) | quote }} component: {{ .Values.Component | quote }} {{- if .Values.commonLabels}} {{ toYaml .Values.commonLabels }} @@ -56,89 +56,6 @@ release: {{ .root.Release.Name | quote }} {{- end }} {{- end }} -{{/* -Create secrets in DBNamespace from other namespaces by iterating over envSecrets. -*/}} -{{- define "yugabyte.envsecrets" -}} -{{- range $v := .secretenv }} -{{- if $v.valueFrom.secretKeyRef.namespace }} -{{- $secretObj := (lookup -"v1" -"Secret" -$v.valueFrom.secretKeyRef.namespace -$v.valueFrom.secretKeyRef.name) -| default dict }} -{{- $secretData := (get $secretObj "data") | default dict }} -{{- $secretValue := (get $secretData $v.valueFrom.secretKeyRef.key) | default "" }} -{{- if (and (not $secretValue) (not $v.valueFrom.secretKeyRef.optional)) }} -{{- required (printf "Secret or key missing for %s/%s in namespace: %s" -$v.valueFrom.secretKeyRef.name -$v.valueFrom.secretKeyRef.key -$v.valueFrom.secretKeyRef.namespace) -nil }} -{{- end }} -{{- if $secretValue }} -apiVersion: v1 -kind: Secret -metadata: - {{- $secretfullname := printf "%s-%s-%s-%s" - $.root.Release.Name - $v.valueFrom.secretKeyRef.namespace - $v.valueFrom.secretKeyRef.name - $v.valueFrom.secretKeyRef.key - }} - name: {{ printf "%s-%s-%s-%s-%s-%s" - $.root.Release.Name - ($v.valueFrom.secretKeyRef.namespace | substr 0 5) - ($v.valueFrom.secretKeyRef.name | substr 0 5) - ( $v.valueFrom.secretKeyRef.key | substr 0 5) - (sha256sum $secretfullname | substr 0 4) - ($.suffix) - | lower | replace "." "" | replace "_" "" - }} - namespace: "{{ $.root.Release.Namespace }}" - labels: - {{- include "yugabyte.labels" $.root | indent 4 }} -type: Opaque # should it be an Opaque secret? -data: - {{ $v.valueFrom.secretKeyRef.key }}: {{ $secretValue | quote }} -{{- end }} -{{- end }} ---- -{{- end }} -{{- end }} - -{{/* -Add env secrets to DB statefulset. -*/}} -{{- define "yugabyte.addenvsecrets" -}} -{{- range $v := .secretenv }} -- name: {{ $v.name }} - valueFrom: - secretKeyRef: - {{- if $v.valueFrom.secretKeyRef.namespace }} - {{- $secretfullname := printf "%s-%s-%s-%s" - $.root.Release.Name - $v.valueFrom.secretKeyRef.namespace - $v.valueFrom.secretKeyRef.name - $v.valueFrom.secretKeyRef.key - }} - name: {{ printf "%s-%s-%s-%s-%s-%s" - $.root.Release.Name - ($v.valueFrom.secretKeyRef.namespace | substr 0 5) - ($v.valueFrom.secretKeyRef.name | substr 0 5) - ($v.valueFrom.secretKeyRef.key | substr 0 5) - (sha256sum $secretfullname | substr 0 4) - ($.suffix) - | lower | replace "." "" | replace "_" "" - }} - {{- else }} - name: {{ $v.valueFrom.secretKeyRef.name }} - {{- end }} - key: {{ $v.valueFrom.secretKeyRef.key }} - optional: {{ $v.valueFrom.secretKeyRef.optional | default "false" }} -{{- end }} -{{- end }} {{/* Create Volume name. */}} @@ -167,21 +84,18 @@ Generate a preflight check script invocation. */}} {{- define "yugabyte.preflight_check" -}} {{- if not .Values.preflight.skipAll -}} -{{- $port := .Preflight.Port -}} -{{- range $addr := split "," .Preflight.Addr -}} if [ -f /home/yugabyte/tools/k8s_preflight.py ]; then PYTHONUNBUFFERED="true" /home/yugabyte/tools/k8s_preflight.py \ dnscheck \ - --addr="{{ $addr }}" \ -{{- if not $.Values.preflight.skipBind }} - --port="{{ $port }}" + --addr="{{ .Preflight.Addr }}" \ +{{- if not .Values.preflight.skipBind }} + --port="{{ .Preflight.Port }}" {{- else }} --skip_bind {{- end }} fi && \ -{{ end }} -{{- end }} -{{- end }} +{{- end -}} +{{- end -}} {{/* Get YugaByte fs data directories. @@ -206,20 +120,12 @@ Get files from fs data directories for readiness / liveness probes. Generate server FQDN. */}} {{- define "yugabyte.server_fqdn" -}} - {{- if .Values.multicluster.createServicePerPod -}} + {{- if (and .Values.istioCompatibility.enabled .Values.multicluster.createServicePerPod) -}} {{- printf "$(HOSTNAME).$(NAMESPACE).svc.%s" .Values.domainName -}} - {{- else if (and .Values.oldNamingStyle .Values.multicluster.createServiceExports) -}} - {{ $membershipName := required "A valid membership name is required! Please set multicluster.kubernetesClusterId" .Values.multicluster.kubernetesClusterId }} - {{- printf "$(HOSTNAME).%s.%s.$(NAMESPACE).svc.clusterset.local" $membershipName .Service.name -}} {{- else if .Values.oldNamingStyle -}} {{- printf "$(HOSTNAME).%s.$(NAMESPACE).svc.%s" .Service.name .Values.domainName -}} {{- else -}} - {{- if .Values.multicluster.createServiceExports -}} - {{ $membershipName := required "A valid membership name is required! Please set multicluster.kubernetesClusterId" .Values.multicluster.kubernetesClusterId }} - {{- printf "$(HOSTNAME).%s.%s-%s.$(NAMESPACE).svc.clusterset.local" $membershipName (include "yugabyte.fullname" .) .Service.name -}} - {{- else -}} - {{- printf "$(HOSTNAME).%s-%s.$(NAMESPACE).svc.%s" (include "yugabyte.fullname" .) .Service.name .Values.domainName -}} - {{- end -}} + {{- printf "$(HOSTNAME).%s-%s.$(NAMESPACE).svc.%s" (include "yugabyte.fullname" .) .Service.name .Values.domainName -}} {{- end -}} {{- end -}} @@ -232,25 +138,10 @@ Generate server broadcast address. {{/* Generate server RPC bind address. - -In case of multi-cluster services (MCS), we set it to $(POD_IP) to -ensure YCQL uses a resolvable address. -See https://github.com/yugabyte/yugabyte-db/issues/16155 - -We use a workaround for above in case of Istio by setting it to -$(POD_IP) and localhost. Master doesn't support that combination, so -we stick to 0.0.0.0, which works for master. */}} {{- define "yugabyte.rpc_bind_address" -}} - {{- $port := index .Service.ports "tcp-rpc-port" -}} {{- if .Values.istioCompatibility.enabled -}} - {{- if (eq .Service.name "yb-masters") -}} - 0.0.0.0:{{ $port }} - {{- else -}} - $(POD_IP):{{ $port }},127.0.0.1:{{ $port }} - {{- end -}} - {{- else if (or .Values.multicluster.createServiceExports .Values.multicluster.createServicePerPod) -}} - $(POD_IP):{{ $port }} + 0.0.0.0:{{ index .Service.ports "tcp-rpc-port" -}} {{- else -}} {{- include "yugabyte.server_fqdn" . -}} {{- end -}} @@ -267,7 +158,7 @@ Generate server web interface. Generate server CQL proxy bind address. */}} {{- define "yugabyte.cql_proxy_bind_address" -}} - {{- if or .Values.istioCompatibility.enabled .Values.multicluster.createServiceExports .Values.multicluster.createServicePerPod -}} + {{- if .Values.istioCompatibility.enabled -}} 0.0.0.0:{{ index .Service.ports "tcp-yql-port" -}} {{- else -}} {{- include "yugabyte.server_fqdn" . -}} @@ -312,10 +203,10 @@ Compute the maximum number of unavailable pods based on the number of master rep Set consistent issuer name. */}} {{- define "yugabyte.tls_cm_issuer" -}} - {{- if .Values.tls.certManager.bootstrapSelfsigned -}} - {{ .Values.oldNamingStyle | ternary "yugabyte-selfsigned" (printf "%s-selfsigned" (include "yugabyte.fullname" .)) }} + {{- if .Values.tls.certManager.useClusterIssuer -}} + {{ .Values.tls.certManager.clusterIssuer }} {{- else -}} - {{ .Values.tls.certManager.useClusterIssuer | ternary .Values.tls.certManager.clusterIssuer .Values.tls.certManager.issuer}} + {{ .Values.oldNamingStyle | ternary "yugabyte-selfsigned" (printf "%s-selfsigned" (include "yugabyte.fullname" .)) }} {{- end -}} {{- end -}} @@ -355,51 +246,3 @@ Set consistent issuer name. {{- end -}} {{- end -}} {{- end -}} - -{{/* - Default nodeAffinity for multi-az deployments -*/}} -{{- define "yugabyte.multiAZNodeAffinity" -}} -requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: failure-domain.beta.kubernetes.io/zone - operator: In - values: - - {{ .Values.AZ }} - - matchExpressions: - - key: topology.kubernetes.io/zone - operator: In - values: - - {{ .Values.AZ }} -{{- end -}} - -{{/* - Default podAntiAffinity for master and tserver - - This requires "appLabelArgs" to be passed in - defined in service.yaml - we have a .root and a .label in appLabelArgs -*/}} -{{- define "yugabyte.podAntiAffinity" -}} -preferredDuringSchedulingIgnoredDuringExecution: -- weight: 100 - podAffinityTerm: - labelSelector: - matchExpressions: - {{- if .root.Values.oldNamingStyle }} - - key: app - operator: In - values: - - "{{ .label }}" - {{- else }} - - key: app.kubernetes.io/name - operator: In - values: - - "{{ .label }}" - - key: release - operator: In - values: - - {{ .root.Release.Name | quote }} - {{- end }} - topologyKey: kubernetes.io/hostname -{{- end -}} diff --git a/charts/yugabyte/yugabyte/templates/certificates.yaml b/charts/yugabyte/yugabyte/templates/certificates.yaml index 07fc2e5f5..f8dd4acb5 100644 --- a/charts/yugabyte/yugabyte/templates/certificates.yaml +++ b/charts/yugabyte/yugabyte/templates/certificates.yaml @@ -1,7 +1,7 @@ {{- $root := . -}} --- {{- if $root.Values.tls.certManager.enabled }} -{{- if $root.Values.tls.certManager.bootstrapSelfsigned }} +{{- if not $root.Values.tls.certManager.useClusterIssuer }} --- apiVersion: cert-manager.io/v1 kind: Issuer @@ -37,38 +37,13 @@ spec: ca: secretName: {{ $root.Values.oldNamingStyle | ternary "yugabyte-ca" (printf "%s-ca" (include "yugabyte.fullname" $root)) }} --- -{{- else }} -{{/* when bootstrapSelfsigned = false, ie. when using an external CA. -Create a Secret with just the rootCA.cert value and mount into master/tserver pods. -This will be used as a fall back in case the Secret generated by cert-manager does not -have a root ca.crt. This can happen for certain certificate issuers like LetsEncrypt. -*/}} ---- -apiVersion: v1 -kind: Secret -metadata: - name: {{ printf "%s-root-ca" (include "yugabyte.fullname" $root) }} - namespace: "{{ $root.Release.Namespace }}" - labels: - {{- include "yugabyte.labels" $root | indent 4 }} -type: Opaque -data: - ca.crt: {{ $root.Values.tls.rootCA.cert }} ---- {{- end }} -{{/* -The below Certificate resource will trigger cert-manager to issue crt/key into Secrets. -These secrets are mounted into master/tserver pods. -*/}} {{- range .Values.Services }} {{- $service := . -}} {{- $appLabelArgs := dict "label" .label "root" $root -}} {{- $serviceValues := (dict "Service" $service "Values" $root.Values "Chart" $root.Chart "Release" $root.Release) -}} -{{- $replicas := (eq .name "yb-masters") | ternary $root.Values.replicas.master $root.Values.replicas.tserver -}} - -{{- if (gt (int $replicas) 0) }} --- apiVersion: cert-manager.io/v1 kind: Certificate @@ -90,29 +65,28 @@ spec: secretName: {{ $root.Values.oldNamingStyle | ternary (printf "%s-yugabyte-tls-cert" $service.label) (printf "%s-%s-tls-cert" (include "yugabyte.fullname" $root) $service.label) }} duration: {{ $root.Values.tls.certManager.certificates.duration | quote }} renewBefore: {{ $root.Values.tls.certManager.certificates.renewBefore | quote }} + commonName: yugabyte-{{ .name }} isCA: false privateKey: algorithm: {{ $root.Values.tls.certManager.certificates.algorithm | quote }} encoding: PKCS8 size: {{ $root.Values.tls.certManager.certificates.keySize }} - rotationPolicy: Always usages: - server auth - client auth # At least one of a DNS Name, URI, or IP address is required. dnsNames: + {{- $replicas := (eq .name "yb-masters") | ternary $root.Values.replicas.master $root.Values.replicas.tserver -}} {{- range $index := until ( int ( $replicas ) ) }} {{- $nodeOldStyle := printf "%s-%d.%s.%s.svc.%s" $service.label $index $service.name $root.Release.Namespace $root.Values.domainName }} {{- $nodeNewStyle := printf "%s-%s-%d.%s-%s.%s.svc.%s" (include "yugabyte.fullname" $root) $service.label $index (include "yugabyte.fullname" $root) $service.name $root.Release.Namespace $root.Values.domainName }} {{- $node := $root.Values.oldNamingStyle | ternary $nodeOldStyle $nodeNewStyle }} - {{$node}} {{- end }} - - {{ printf "%s-%s.%s.svc.%s" (include "yugabyte.fullname" $root) $service.name $root.Release.Namespace $root.Values.domainName }} uris: [] ipAddresses: [] --- {{- end }} -{{- end }} --- apiVersion: cert-manager.io/v1 @@ -140,7 +114,6 @@ spec: algorithm: {{ $root.Values.tls.certManager.certificates.algorithm | quote }} encoding: PKCS8 size: {{ $root.Values.tls.certManager.certificates.keySize }} - rotationPolicy: Always usages: - client auth dnsNames: [] diff --git a/charts/yugabyte/yugabyte/templates/debug_config_map.yaml b/charts/yugabyte/yugabyte/templates/debug_config_map.yaml deleted file mode 100644 index a15c4fc9a..000000000 --- a/charts/yugabyte/yugabyte/templates/debug_config_map.yaml +++ /dev/null @@ -1,23 +0,0 @@ ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "yugabyte.fullname" . }}-master-hooks - namespace: "{{ .Release.Namespace }}" -data: -{{- range $index := until ( int ( .Values.replicas.master ) ) }} - yb-master-{{.}}-pre_debug_hook.sh: "echo 'hello-from-pre' " - yb-master-{{.}}-post_debug_hook.sh: "echo 'hello-from-post' " -{{- end }} ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: {{ include "yugabyte.fullname" . }}-tserver-hooks - namespace: "{{ .Release.Namespace }}" -data: -{{- range $index := until ( int ( .Values.replicas.tserver) ) }} - yb-tserver-{{.}}-pre_debug_hook.sh: "echo 'hello-from-pre' " - yb-tserver-{{.}}-post_debug_hook.sh: "echo 'hello-from-post' " -{{- end }} ---- diff --git a/charts/yugabyte/yugabyte/templates/multicluster/common-tserver-service.yaml b/charts/yugabyte/yugabyte/templates/multicluster-common-tserver-service.yaml similarity index 100% rename from charts/yugabyte/yugabyte/templates/multicluster/common-tserver-service.yaml rename to charts/yugabyte/yugabyte/templates/multicluster-common-tserver-service.yaml diff --git a/charts/yugabyte/yugabyte/templates/multicluster/service-per-pod.yaml b/charts/yugabyte/yugabyte/templates/multicluster-multiple-services.yaml similarity index 82% rename from charts/yugabyte/yugabyte/templates/multicluster/service-per-pod.yaml rename to charts/yugabyte/yugabyte/templates/multicluster-multiple-services.yaml index 15e09dce8..a26b39018 100644 --- a/charts/yugabyte/yugabyte/templates/multicluster/service-per-pod.yaml +++ b/charts/yugabyte/yugabyte/templates/multicluster-multiple-services.yaml @@ -11,19 +11,11 @@ metadata: labels: {{- include "yugabyte.applabel" ($appLabelArgs) | indent 4 }} {{- include "yugabyte.labels" $ | indent 4 }} - service-type: "non-endpoint" spec: ports: {{- range $label, $port := $server.ports }} - {{- if (eq $label "grpc-ybc-port") }} - {{- if $.Values.ybc.enabled }} - name: {{ $label | quote }} port: {{ $port }} - {{- end }} - {{- else }} - - name: {{ $label | quote }} - port: {{ $port }} - {{- end }} {{- end}} selector: statefulset.kubernetes.io/pod-name: {{ $podName | quote }} diff --git a/charts/yugabyte/yugabyte/templates/multicluster/mcs-service-export.yaml b/charts/yugabyte/yugabyte/templates/multicluster/mcs-service-export.yaml deleted file mode 100644 index eeafcb1bb..000000000 --- a/charts/yugabyte/yugabyte/templates/multicluster/mcs-service-export.yaml +++ /dev/null @@ -1,21 +0,0 @@ -{{- /* - Ref - https://cloud.google.com/kubernetes-engine/docs/how-to/multi-cluster-services#registering_a_service_for_export - https://github.com/kubernetes/enhancements/tree/master/keps/sig-multicluster/1645-multi-cluster-services-api#exporting-services -*/}} -{{- if .Values.multicluster.createServiceExports }} -apiVersion: {{ .Values.multicluster.mcsApiVersion }} -kind: ServiceExport -metadata: - name: {{ .Values.oldNamingStyle | ternary "yb-masters" (printf "%s-%s" (include "yugabyte.fullname" .) "yb-masters") | quote }} - namespace: "{{ .Release.Namespace }}" - labels: - {{- include "yugabyte.labels" . | indent 4 }} ---- -apiVersion: {{ .Values.multicluster.mcsApiVersion }} -kind: ServiceExport -metadata: - name: {{ .Values.oldNamingStyle | ternary "yb-tservers" (printf "%s-%s" (include "yugabyte.fullname" .) "yb-tservers") | quote }} - namespace: "{{ .Release.Namespace }}" - labels: - {{- include "yugabyte.labels" . | indent 4 }} -{{ end -}} diff --git a/charts/yugabyte/yugabyte/templates/secrets.yaml b/charts/yugabyte/yugabyte/templates/secrets.yaml deleted file mode 100644 index 0bd903457..000000000 --- a/charts/yugabyte/yugabyte/templates/secrets.yaml +++ /dev/null @@ -1,7 +0,0 @@ -{{- $root := . -}} ---- # Create secrets from other namespaces for masters. -{{- $data := dict "secretenv" $.Values.master.secretEnv "root" . "suffix" "master"}} -{{- include "yugabyte.envsecrets" $data }} ---- # Create secrets from other namespaces for tservers. -{{- $data := dict "secretenv" $.Values.tserver.secretEnv "root" . "suffix" "tserver" }} -{{- include "yugabyte.envsecrets" $data }} \ No newline at end of file diff --git a/charts/yugabyte/yugabyte/templates/service.yaml b/charts/yugabyte/yugabyte/templates/service.yaml index 6a7ea4683..697e4776d 100644 --- a/charts/yugabyte/yugabyte/templates/service.yaml +++ b/charts/yugabyte/yugabyte/templates/service.yaml @@ -24,7 +24,7 @@ data: {{- end }} --- {{- end }} ---- + {{- range .Values.Services }} {{- $service := . -}} {{- $appLabelArgs := dict "label" .label "root" $root -}} @@ -46,29 +46,12 @@ data: {{- range $index := until ( int ( $replicas ) ) }} {{- $nodeOldStyle := printf "%s-%d.%s.%s.svc.%s" $service.label $index $service.name $root.Release.Namespace $root.Values.domainName }} {{- $nodeNewStyle := printf "%s-%s-%d.%s-%s.%s.svc.%s" (include "yugabyte.fullname" $root) $service.label $index (include "yugabyte.fullname" $root) $service.name $root.Release.Namespace $root.Values.domainName }} - -{{- if $root.Values.multicluster.createServiceExports -}} - {{- $nodeOldStyle = printf "%s-%d.%s.%s.%s.svc.clusterset.local" $service.label $index $root.Values.multicluster.kubernetesClusterId $service.name $root.Release.Namespace }} - {{- $nodeNewStyle = printf "%s-%s-%d.%s.%s-%s.%s.svc.clusterset.local" (include "yugabyte.fullname" $root) $service.label $index $root.Values.multicluster.kubernetesClusterId (include "yugabyte.fullname" $root) $service.name $root.Release.Namespace }} -{{- end -}} - -{{- if $root.Values.multicluster.createServicePerPod -}} - {{- $nodeOldStyle = printf "%s-%d.%s.svc.%s" $service.label $index $root.Release.Namespace $root.Values.domainName }} - {{- $nodeNewStyle = printf "%s-%s-%d.%s.svc.%s" (include "yugabyte.fullname" $root) $service.label $index $root.Release.Namespace $root.Values.domainName }} -{{- end -}} - {{- $node := $root.Values.oldNamingStyle | ternary $nodeOldStyle $nodeNewStyle }} {{- if $root.Values.tls.rootCA.key }} -{{- $dns1 := printf "*.%s-%s.%s" (include "yugabyte.fullname" $root) $service.name $root.Release.Namespace }} +{{- $dns1 := printf "*.*.%s" $root.Release.Namespace }} {{- $dns2 := printf "%s.svc.%s" $dns1 $root.Values.domainName }} -{{- if $root.Values.multicluster.createServiceExports -}} - {{- $dns1 = printf "*.%s.%s-%s.%s.svc.clusterset.local" $root.Values.multicluster.kubernetesClusterId (include "yugabyte.fullname" $root) $service.name $root.Release.Namespace }} -{{- end -}} -{{- if $root.Values.multicluster.createServicePerPod -}} - {{- $dns1 = printf "*.%s.svc.%s" $root.Release.Namespace $root.Values.domainName }} -{{- end -}} {{- $rootCA := buildCustomCert $root.Values.tls.rootCA.cert $root.Values.tls.rootCA.key -}} -{{- $server := genSignedCert $node ( default nil ) (list $node $dns1 $dns2 ) 3650 $rootCA }} +{{- $server := genSignedCert $node ( default nil ) (list $dns1 $dns2 ) 3650 $rootCA }} node.{{$node}}.crt: {{ $server.Cert | b64enc }} node.{{$node}}.key: {{ $server.Key | b64enc }} {{- else }} @@ -92,20 +75,13 @@ spec: clusterIP: None ports: {{- range $label, $port := .ports }} - {{- if (eq $label "grpc-ybc-port") }} - {{- if $root.Values.ybc.enabled }} - name: {{ $label | quote }} port: {{ $port }} - {{- end }} - {{- else }} - - name: {{ $label | quote }} - port: {{ $port }} - {{- end }} {{- end}} selector: {{- include "yugabyte.appselector" ($appLabelArgs) | indent 4 }} -{{- if $root.Values.enableLoadBalancer }} +{{ if $root.Values.enableLoadBalancer }} {{- range $endpoint := $root.Values.serviceEndpoints }} {{- if eq $service.label $endpoint.app }} --- @@ -118,12 +94,11 @@ metadata: labels: {{- include "yugabyte.applabel" ($appLabelArgs) | indent 4 }} {{- include "yugabyte.labels" $root | indent 4 }} - service-type: "endpoint" spec: - {{- if eq $root.Release.Service "Tiller" }} + {{ if eq $root.Release.Service "Tiller" }} clusterIP: - {{- else }} - {{- if $endpoint.clusterIP }} + {{ else }} + {{ if $endpoint.clusterIP }} clusterIP: {{ $endpoint.clusterIP }} {{- end }} {{- end }} @@ -141,7 +116,7 @@ spec: {{- end }} {{- end}} {{- end}} -{{- end}} +{{ end }} --- apiVersion: apps/v1 @@ -222,9 +197,6 @@ spec: labels: {{- include "yugabyte.applabel" ($appLabelArgs) | indent 8 }} {{- include "yugabyte.labels" $root | indent 8 }} - {{- if $root.Values.istioCompatibility.enabled }} - sidecar.istio.io/inject: "true" - {{- end }} {{- if eq .name "yb-masters" }} {{- with $root.Values.master.podLabels }}{{ toYaml . | nindent 8 }}{{ end }} {{- else }} @@ -242,6 +214,7 @@ spec: nodeSelector: {{ toYaml $root.Values.nodeSelector | indent 8 }} {{- end }} + terminationGracePeriodSeconds: 300 {{- if eq .name "yb-masters" }} # yb-masters {{- if $root.Values.master.tolerations }} tolerations: @@ -253,72 +226,50 @@ spec: {{- with $root.Values.tserver.tolerations }}{{ toYaml . | nindent 8 }}{{ end }} {{- end }} {{- end }} - terminationGracePeriodSeconds: 300 affinity: - # Set the anti-affinity selector scope to YB masters and tservers. - {{- $nodeAffinityData := dict}} - {{- if eq .name "yb-masters" -}} - {{- $nodeAffinityData = get $root.Values.master.affinity "nodeAffinity" | default (dict) -}} - {{- else -}} - {{- $nodeAffinityData = get $root.Values.tserver.affinity "nodeAffinity" | default (dict) -}} - {{- end -}} + # Set the anti-affinity selector scope to YB masters. {{ if $root.Values.AZ }} - {{- $userSelectorTerms := dig "requiredDuringSchedulingIgnoredDuringExecution" "nodeSelectorTerms" "" $nodeAffinityData | default (list) -}} - {{- $baseAffinity := include "yugabyte.multiAZNodeAffinity" $root | fromYaml -}} - {{- $requiredSchedule := (list) -}} - {{- if $userSelectorTerms -}} - {{- range $userSelectorTerms -}} - {{- $userTerm := . -}} - {{- range $baseAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms -}} - {{- $matchExpr := concat .matchExpressions $userTerm.matchExpressions | dict "matchExpressions" -}} - {{- $requiredSchedule = mustMerge $matchExpr $userTerm | append $requiredSchedule -}} - {{- end -}} - {{- end -}} - {{- else -}} - {{- $requiredSchedule = $baseAffinity.requiredDuringSchedulingIgnoredDuringExecution.nodeSelectorTerms -}} - {{- end -}} - - {{- with $baseAffinity.requiredDuringSchedulingIgnoredDuringExecution -}} - {{- $_ := set . "nodeSelectorTerms" $requiredSchedule -}} - {{- end -}} - {{- $nodeAffinityData = mustMerge $baseAffinity $nodeAffinityData -}} - {{- end -}} - - {{- $podAntiAffinityData := dict -}} - {{- $basePodAntiAffinity := include "yugabyte.podAntiAffinity" ($appLabelArgs) | fromYaml -}} - {{- if eq .name "yb-masters" -}} - {{- with $root.Values.master.affinity -}} - {{- $userPodAntiAffinity := get . "podAntiAffinity" | default (dict) -}} - {{- if $userPodAntiAffinity -}} - {{- $preferredList := dig "preferredDuringSchedulingIgnoredDuringExecution" "" $userPodAntiAffinity | default (list) | concat $basePodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution}} - {{- $_ := set $basePodAntiAffinity "preferredDuringSchedulingIgnoredDuringExecution" $preferredList -}} - {{- end -}} - {{- $podAntiAffinityData = mustMerge $basePodAntiAffinity $userPodAntiAffinity -}} - {{- end -}} - {{- else -}} - {{- with $root.Values.tserver.affinity -}} - {{- $userPodAntiAffinity := get . "podAntiAffinity" | default (dict) -}} - {{- if $userPodAntiAffinity -}} - {{- $preferredList := dig "preferredDuringSchedulingIgnoredDuringExecution" "" $userPodAntiAffinity | default (list) | concat $basePodAntiAffinity.preferredDuringSchedulingIgnoredDuringExecution}} - {{- $_ := set $basePodAntiAffinity "preferredDuringSchedulingIgnoredDuringExecution" $preferredList -}} - {{- end -}} - {{- $podAntiAffinityData = mustMerge $basePodAntiAffinity $userPodAntiAffinity -}} - {{- end -}} - {{- end -}} - - {{- if eq .name "yb-masters" -}} - {{- if $nodeAffinityData -}} - {{- $_ := set $root.Values.master.affinity "nodeAffinity" $nodeAffinityData -}} - {{- end -}} - {{- $_ := set $root.Values.master.affinity "podAntiAffinity" $podAntiAffinityData -}} - {{ toYaml $root.Values.master.affinity | nindent 8 }} - {{- else -}} - {{- if $nodeAffinityData -}} - {{- $_ := set $root.Values.tserver.affinity "nodeAffinity" $nodeAffinityData -}} - {{- end -}} - {{- $_ := set $root.Values.tserver.affinity "podAntiAffinity" $podAntiAffinityData -}} - {{ toYaml $root.Values.tserver.affinity | nindent 8 }} + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: failure-domain.beta.kubernetes.io/zone + operator: In + values: + - {{ $root.Values.AZ }} + - matchExpressions: + - key: topology.kubernetes.io/zone + operator: In + values: + - {{ $root.Values.AZ }} {{ end }} + podAntiAffinity: + preferredDuringSchedulingIgnoredDuringExecution: + - weight: 100 + podAffinityTerm: + labelSelector: + matchExpressions: + {{- if $root.Values.oldNamingStyle }} + - key: app + operator: In + values: + - "{{ .label }}" + {{- else }} + - key: app.kubernetes.io/name + operator: In + values: + - "{{ .label }}" + - key: release + operator: In + values: + - {{ $root.Release.Name | quote }} + {{- end }} + topologyKey: kubernetes.io/hostname + {{- if eq .name "yb-masters" }} + {{- with $root.Values.master.affinity }}{{ toYaml . | nindent 8 }}{{ end }} + {{- else }} + {{- with $root.Values.tserver.affinity }}{{ toYaml . | nindent 8 }}{{ end }} + {{- end }} containers: - name: "{{ .label }}" image: "{{ $root.Values.Image.repository }}:{{ $root.Values.Image.tag }}" @@ -365,20 +316,18 @@ spec: - name: YBDEVOPS_CORECOPY_DIR value: "/mnt/disk0/cores" {{- if eq .name "yb-masters" }} - {{- with $root.Values.master.extraEnv }}{{ toYaml . | nindent 8 }}{{- end }} - {{- $data := dict "secretenv" $root.Values.master.secretEnv "root" $root "suffix" "master"}} - {{- include "yugabyte.addenvsecrets" $data | nindent 8 }} + {{- with $root.Values.master.extraEnv }}{{ toYaml . | nindent 8 }}{{ end }} + {{- with $root.Values.master.secretEnv }}{{ toYaml . | nindent 8 }}{{ end }} {{- else }} - {{- with $root.Values.tserver.extraEnv }}{{ toYaml . | nindent 8 }}{{- end }} - {{- $data := dict "secretenv" $root.Values.tserver.secretEnv "root" $root "suffix" "tserver" }} - {{- include "yugabyte.addenvsecrets" $data | nindent 8 }} + {{- with $root.Values.tserver.extraEnv }}{{ toYaml . | nindent 8 }}{{ end }} + {{- with $root.Values.tserver.secretEnv }}{{ toYaml . | nindent 8 }}{{ end }} {{- end }} {{- if and $root.Values.tls.enabled $root.Values.tls.clientToServer (ne .name "yb-masters") }} - name: SSL_CERTFILE value: /root/.yugabytedb/root.crt {{- end }} resources: - {{- if eq .name "yb-masters" }} + {{ if eq .name "yb-masters" }} {{ toYaml $root.Values.resource.master | indent 10 }} {{ else }} {{ toYaml $root.Values.resource.tserver | indent 10 }} @@ -409,13 +358,10 @@ spec: {{- $rpcPreflight := include "yugabyte.preflight_check" (set $serviceValues "Preflight" $rpcDict) -}} {{- if $rpcPreflight -}}{{ $rpcPreflight | nindent 12 }}{{ end -}} {{- $broadcastAddr := include "yugabyte.server_broadcast_address" $serviceValues -}} - {{/* skip bind check for servicePerPod multi-cluster, we cannot/don't bind to service IP */}} - {{- if not $root.Values.multicluster.createServicePerPod }} - {{- $broadcastPort := index $service.ports "tcp-rpc-port" -}} - {{- $broadcastDict := dict "Addr" $broadcastAddr "Port" $broadcastPort -}} - {{- $broadcastPreflight := include "yugabyte.preflight_check" (set $serviceValues "Preflight" $broadcastDict) -}} - {{- if $broadcastPreflight -}}{{ $broadcastPreflight | nindent 12 }}{{ end -}} - {{- end }} + {{- $broadcastPort := index $service.ports "tcp-rpc-port" -}} + {{- $broadcastDict := dict "Addr" $broadcastAddr "Port" $broadcastPort -}} + {{- $broadcastPreflight := include "yugabyte.preflight_check" (set $serviceValues "Preflight" $broadcastDict) -}} + {{- if $broadcastPreflight -}}{{ $broadcastPreflight | nindent 12 }}{{ end -}} {{- $webserverAddr := include "yugabyte.webserver_interface" $serviceValues -}} {{- $webserverPort := index $service.ports "http-ui" -}} {{- $webserverDict := dict "Addr" $webserverAddr "Port" $webserverPort -}} @@ -426,25 +372,6 @@ spec: else k8s_parent="" fi && \ - {{- if and $root.Values.tls.enabled $root.Values.tls.certManager.enabled }} - echo "Creating ephemeral /opt/certs/yugabyte/ as symlink to persisted /mnt/disk0/certs/" && \ - mkdir -p /mnt/disk0/certs && \ - mkdir -p /opt/certs && \ - ln -s /mnt/disk0/certs /opt/certs/yugabyte && \ - if [[ ! -f /opt/certs/yugabyte/ca.crt ]]; then - echo "Fresh install of /opt/certs/yugabyte/ca.crt" - cp /home/yugabyte/cert-manager/ca.crt /opt/certs/yugabyte/ca.crt; - fi && \ - cmp -s /home/yugabyte/cert-manager/ca.crt /opt/certs/yugabyte/ca.crt;sameRootCA=$? && \ - if [[ $sameRootCA -eq 0 ]]; then - echo "Refreshing tls certs at /opt/certs/yugabyte/"; - cp /home/yugabyte/cert-manager/tls.crt /opt/certs/yugabyte/node.{{$rpcAddr}}.crt; - cp /home/yugabyte/cert-manager/tls.key /opt/certs/yugabyte/node.{{$rpcAddr}}.key; - chmod 600 /opt/certs/yugabyte/* - else - echo "WARNING: Not refreshing certificates as the root ca.crt has changed" - fi && \ - {{- end }} {{- if eq .name "yb-masters" }} exec ${k8s_parent} /home/yugabyte/bin/yb-master \ {{- if not $root.Values.storage.ephemeral }} @@ -548,18 +475,10 @@ spec: {{- end }} ports: {{- range $label, $port := .ports }} - {{- if not (eq $label "grpc-ybc-port") }} - containerPort: {{ $port }} name: {{ $label | quote }} - {{- end }} {{- end}} volumeMounts: - {{- if (eq .name "yb-tservers") }} - - name: tserver-tmp - mountPath: /tmp - {{- end }} - - name: debug-hooks-volume - mountPath: /opt/debug_hooks_config {{ if not $root.Values.storage.ephemeral }} {{- range $index := until (int ($storageInfo.count)) }} - name: {{ $root.Values.oldNamingStyle | ternary (printf "datadir%d" $index) (printf "%s%d" (include "yugabyte.volume_name" $root) $index) }} @@ -568,7 +487,7 @@ spec: {{- end }} {{- if $root.Values.tls.enabled }} - name: {{ $root.Values.oldNamingStyle | ternary (printf "%s-yugabyte-tls-cert" .label) (printf "%s-%s-tls-cert" (include "yugabyte.fullname" $root) .label) }} - mountPath: {{ $root.Values.tls.certManager.enabled | ternary "/home/yugabyte/cert-manager" "/opt/certs/yugabyte" }} + mountPath: /opt/certs/yugabyte readOnly: true - name: {{ $root.Values.oldNamingStyle | ternary "yugabyte-tls-client-cert" (printf "%s-client-tls" (include "yugabyte.fullname" $root)) }} mountPath: /root/.yugabytedb/ @@ -609,78 +528,7 @@ spec: subPath: cores {{- end }} - {{- if and (eq .name "yb-tservers") ($root.Values.ybc.enabled) }} - - name: yb-controller - image: "{{ $root.Values.Image.repository }}:{{ $root.Values.Image.tag }}" - imagePullPolicy: {{ $root.Values.Image.pullPolicy }} - lifecycle: - postStart: - exec: - command: - - "bash" - - "-c" - - > - mkdir -p /mnt/disk0/yw-data/controller/tmp; - mkdir -p /mnt/disk0/yw-data/controller/conf; - mkdir -p /mnt/disk0/ybc-data/controller/logs; - mkdir -p /tmp/yugabyte/controller; - ln -sf /mnt/disk0/ybc-data/controller/logs /tmp/yugabyte/controller; - ln -sf /mnt/disk0/yw-data/controller/bin /tmp/yugabyte/controller; - rm -f /tmp/yugabyte/controller/yb-controller.pid; - {{- if and $root.Values.tls.enabled $root.Values.tls.certManager.enabled }} - mkdir -p /opt/certs; - ln -sf /mnt/disk0/certs /opt/certs/yugabyte; - {{- end }} - command: - - "/sbin/tini" - - "--" - args: - - "/bin/bash" - - "-c" - - > - while true; do - sleep 60; - /home/yugabyte/tools/k8s_ybc_parent.py status || /home/yugabyte/tools/k8s_ybc_parent.py start; - done - {{- with index $service.ports "grpc-ybc-port" }} - ports: - - containerPort: {{ . }} - name: "grpc-ybc-port" - {{- end }} - volumeMounts: - - name: tserver-tmp - mountPath: /tmp - {{- if not $root.Values.storage.ephemeral }} - {{- range $index := until (int ($storageInfo.count)) }} - - name: {{ $root.Values.oldNamingStyle | ternary (printf "datadir%d" $index) (printf "%s%d" (include "yugabyte.volume_name" $root) $index) }} - mountPath: /mnt/disk{{ $index }} - {{- end }} - {{- end }} - {{- if $root.Values.tls.enabled }} - - name: {{ $root.Values.oldNamingStyle | ternary (printf "%s-yugabyte-tls-cert" .label) (printf "%s-%s-tls-cert" (include "yugabyte.fullname" $root) .label) }} - mountPath: {{ $root.Values.tls.certManager.enabled | ternary "/home/yugabyte/cert-manager" "/opt/certs/yugabyte" }} - readOnly: true - {{- end }} - {{- if ($root.Values.tserver.extraVolumeMounts) -}} - {{- include "yugabyte.isExtraVolumesMappingExists" $root.Values.tserver -}} - {{- $root.Values.tserver.extraVolumeMounts | toYaml | nindent 10 -}} - {{- end -}} - {{- end}} - volumes: - {{- if (eq .name "yb-masters") }} - - name: debug-hooks-volume - configMap: - name: {{ include "yugabyte.fullname" $root }}-master-hooks - defaultMode: 0755 - {{- else if (eq .name "yb-tservers") }} - - name: debug-hooks-volume - configMap: - name: {{ include "yugabyte.fullname" $root }}-tserver-hooks - defaultMode: 0755 - - name: tserver-tmp - emptyDir: {} - {{- end }} {{ if not $root.Values.storage.ephemeral }} {{- range $index := until (int ($storageInfo.count)) }} - name: {{ $root.Values.oldNamingStyle | ternary (printf "datadir%d" $index) (printf "%s%d" (include "yugabyte.volume_name" $root) $index) }} @@ -689,24 +537,25 @@ spec: {{- end }} {{- end }} {{- if $root.Values.tls.enabled }} - {{- if $root.Values.tls.certManager.enabled }} - {{- /* certManager enabled */}} - - name: {{ $root.Values.oldNamingStyle | ternary (printf "%s-yugabyte-tls-cert" .label) (printf "%s-%s-tls-cert" (include "yugabyte.fullname" $root) .label) }} - projected: - sources: - {{- if not $root.Values.tls.certManager.bootstrapSelfsigned }} - - secret: - name: {{ printf "%s-root-ca" (include "yugabyte.fullname" $root) }} - {{- end }} - - secret: - name: {{ $root.Values.oldNamingStyle | ternary (printf "%s-yugabyte-tls-cert" .label) (printf "%s-%s-tls-cert" (include "yugabyte.fullname" $root) .label) }} - {{- else }} - {{/* certManager disabled */}} - name: {{ $root.Values.oldNamingStyle | ternary (printf "%s-yugabyte-tls-cert" .label) (printf "%s-%s-tls-cert" (include "yugabyte.fullname" $root) .label) }} secret: secretName: {{ $root.Values.oldNamingStyle | ternary (printf "%s-yugabyte-tls-cert" .label) (printf "%s-%s-tls-cert" (include "yugabyte.fullname" $root) .label) }} + {{- if $root.Values.tls.certManager.enabled }} + items: + {{- $replicas := (eq .name "yb-masters") | ternary $root.Values.replicas.master $root.Values.replicas.tserver -}} + {{- range $index := until ( int ( $replicas ) ) }} + {{- $nodeOldStyle := printf "%s-%d.%s.%s.svc.%s" $service.label $index $service.name $root.Release.Namespace $root.Values.domainName }} + {{- $nodeNewStyle := printf "%s-%s-%d.%s-%s.%s.svc.%s" (include "yugabyte.fullname" $root) $service.label $index (include "yugabyte.fullname" $root) $service.name $root.Release.Namespace $root.Values.domainName }} + {{- $node := $root.Values.oldNamingStyle | ternary $nodeOldStyle $nodeNewStyle }} + - key: tls.crt + path: node.{{$node}}.crt + - key: tls.key + path: node.{{$node}}.key + {{- end }} + - key: ca.crt + path: ca.crt + {{- end }} defaultMode: 256 - {{- end }} - name: {{ $root.Values.oldNamingStyle | ternary "yugabyte-tls-client-cert" (printf "%s-client-tls" (include "yugabyte.fullname" $root)) }} secret: secretName: {{ $root.Values.oldNamingStyle | ternary "yugabyte-tls-client-cert" (printf "%s-client-tls" (include "yugabyte.fullname" $root)) }} diff --git a/charts/yugabyte/yugabyte/values.yaml b/charts/yugabyte/yugabyte/values.yaml index a93f26ba0..6cd0ad11d 100644 --- a/charts/yugabyte/yugabyte/values.yaml +++ b/charts/yugabyte/yugabyte/values.yaml @@ -2,15 +2,10 @@ # This is a YAML-formatted file. # Declare variables to be passed into your templates. Component: "yugabytedb" - -fullnameOverride: "" -nameOverride: "" - Image: repository: "yugabytedb/yugabyte" - tag: 2.18.2.1-b1 + tag: 2.14.12.0-b19 pullPolicy: IfNotPresent - pullSecretName: "" storage: ephemeral: false # will not allocate PVs when true @@ -26,38 +21,27 @@ storage: resource: master: requests: - cpu: "2" + cpu: 2 memory: 2Gi limits: - cpu: "2" + cpu: 2 memory: 2Gi tserver: requests: - cpu: "2" + cpu: 2 memory: 4Gi limits: - cpu: "2" + cpu: 2 memory: 4Gi replicas: master: 3 tserver: 3 - ## Used to set replication factor when isMultiAz is set to true - totalMasters: 3 partition: master: 0 tserver: 0 -# Used in Multi-AZ setup -masterAddresses: "" - -isMultiAz: false -AZ: "" - -# Disable the YSQL -disableYsql: false - tls: # Set to true to enable the TLS. enabled: false @@ -68,33 +52,25 @@ tls: # Set enabled to true to use cert-manager instead of providing your own rootCA certManager: enabled: false - # Will create own ca certificate and issuer when set to true - bootstrapSelfsigned: true - # Use ClusterIssuer when set to true, otherwise use Issuer + # Will create own ca certificate and issuer when set to false useClusterIssuer: false - # Name of ClusterIssuer to use when useClusterIssuer is true + # ignored when useClusterIssuer is false clusterIssuer: cluster-ca - # Name of Issuer to use when useClusterIssuer is false - issuer: yugabyte-ca certificates: # The lifetime before cert-manager will issue a new certificate. # The re-issued certificates will not be automatically reloaded by the service. # It is necessary to provide some external means of restarting the pods. duration: 2160h # 90d renewBefore: 360h # 15d - algorithm: RSA # ECDSA or RSA - # Can be 2048, 4096 or 8192 for RSA + algorithm: ECDSA # ECDSA or RSA + # Can be 2046, 4096 or 8192 for RSA # Or 256, 384 or 521 for ECDSA - keySize: 2048 + keySize: 521 - ## When certManager.enabled=false, rootCA.cert and rootCA.key are used to generate TLS certs. - ## When certManager.enabled=true and boostrapSelfsigned=true, rootCA is ignored. - ## When certManager.enabled=true and bootstrapSelfsigned=false, only rootCA.cert is used - ## to verify TLS certs generated and signed by the external provider. + # Will be ignored when certManager.enabled=true rootCA: cert: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUM2VENDQWRHZ0F3SUJBZ0lCQVRBTkJna3Foa2lHOXcwQkFRc0ZBREFXTVJRd0VnWURWUVFERXd0WmRXZGgKWW5sMFpTQkVRakFlRncweE9UQXlNRGd3TURRd01qSmFGdzB5T1RBeU1EVXdNRFF3TWpKYU1CWXhGREFTQmdOVgpCQU1UQzFsMVoyRmllWFJsSUVSQ01JSUJJakFOQmdrcWhraUc5dzBCQVFFRkFBT0NBUThBTUlJQkNnS0NBUUVBCnVOMWF1aWc4b2pVMHM0OXF3QXhrT2FCaHkwcTlyaVg2akVyZWJyTHJOWDJOeHdWQmNVcWJkUlhVc3VZNS96RUQKUC9CZTNkcTFuMm9EQ2ZGVEwweGkyNFdNZExRcnJBMndCdzFtNHM1WmQzcEJ1U04yWHJkVVhkeUx6dUxlczJNbgovckJxcWRscXp6LzAyTk9TOE9SVFZCUVRTQTBSOFNMQ1RjSGxMQmRkMmdxZ1ZmemVXRlVObXhWQ2EwcHA5UENuCmpUamJJRzhJWkh5dnBkTyt3aURQM1Y1a1ZEaTkvbEtUaGUzcTFOeDg5VUNFcnRJa1pjSkYvWEs3aE90MU1sOXMKWDYzb2lVMTE1Q2svbGFGRjR6dWgrZk9VenpOVXRXeTc2RE92cm5pVGlaU0tQZDBBODNNa2l2N2VHaDVkV3owWgpsKzJ2a3dkZHJaRzVlaHhvbGhGS3pRSURBUUFCbzBJd1FEQU9CZ05WSFE4QkFmOEVCQU1DQXFRd0hRWURWUjBsCkJCWXdGQVlJS3dZQkJRVUhBd0VHQ0NzR0FRVUZCd01DTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3RFFZSktvWkkKaHZjTkFRRUxCUUFEZ2dFQkFEQjVRbmlYd1ptdk52eG5VbS9sTTVFbms3VmhTUzRUZldIMHY4Q0srZWZMSVBTbwpVTkdLNXU5UzNEUWlvaU9SN1Vmc2YrRnk1QXljMmNUY1M2UXBxTCt0V1QrU1VITXNJNk9oQ05pQ1gvQjNKWERPCkd2R0RIQzBVOHo3aWJTcW5zQ2Rid05kajAyM0lwMHVqNE9DVHJ3azZjd0RBeXlwVWkwN2tkd28xYWJIWExqTnAKamVQMkwrY0hkc2dKM1N4WWpkK1kvei9IdmFrZG1RZDJTL1l2V0R3aU1SRDkrYmZXWkJVRHo3Y0QyQkxEVmU0aAp1bkFaK3NyelR2Sjd5dkVodzlHSDFyajd4Qm9VNjB5SUUrYSszK2xWSEs4WnBSV0NXMnh2eWNrYXJSKytPS2NKClFsL04wWExqNWJRUDVoUzdhOTdhQktTamNqY3E5VzNGcnhJa2tKST0KLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=" key: "LS0tLS1CRUdJTiBSU0EgUFJJVkFURSBLRVktLS0tLQpNSUlFcEFJQkFBS0NBUUVBdU4xYXVpZzhvalUwczQ5cXdBeGtPYUJoeTBxOXJpWDZqRXJlYnJMck5YMk54d1ZCCmNVcWJkUlhVc3VZNS96RURQL0JlM2RxMW4yb0RDZkZUTDB4aTI0V01kTFFyckEyd0J3MW00czVaZDNwQnVTTjIKWHJkVVhkeUx6dUxlczJNbi9yQnFxZGxxenovMDJOT1M4T1JUVkJRVFNBMFI4U0xDVGNIbExCZGQyZ3FnVmZ6ZQpXRlVObXhWQ2EwcHA5UENualRqYklHOElaSHl2cGRPK3dpRFAzVjVrVkRpOS9sS1RoZTNxMU54ODlVQ0VydElrClpjSkYvWEs3aE90MU1sOXNYNjNvaVUxMTVDay9sYUZGNHp1aCtmT1V6ek5VdFd5NzZET3ZybmlUaVpTS1BkMEEKODNNa2l2N2VHaDVkV3owWmwrMnZrd2RkclpHNWVoeG9saEZLelFJREFRQUJBb0lCQUJsdW1tU3gxR1djWER1Mwpwei8wZEhWWkV4c2NsU3U0SGRmZkZPcTF3cFlCUjlmeGFTZGsxQzR2YXF1UjhMaWl6WWVtVWViRGgraitkSnlSCmpwZ2JNaDV4S1BtRkw5empwU3ZUTkN4UHB3OUF5bm5sM3dyNHZhcU1CTS9aZGpuSGttRC9kQzBadEEvL0JIZ3YKNHk4d3VpWCsvUWdVaER0Z1JNcmR1ZUZ1OVlKaFo5UE9jYXkzSkkzMFhEYjdJSS9vNFNhYnhTcFI3bTg5WjY0NwpUb3hsOEhTSzl0SUQxbkl1bHVpTmx1dHI1RzdDdE93WTBSc2N5dmZ2elg4a1d2akpLZVJVbmhMSCtXVFZOaExICjdZc0tMNmlLa1NkckMzeWVPWnV4R0pEbVdrZVgxTzNPRUVGYkc4TjVEaGNqL0lXbDh1dGt3LzYwTEthNHBCS2cKTXhtNEx3RUNnWUVBNnlPRkhNY2pncHYxLzlHZC8yb3c2YmZKcTFjM1dqQkV2cnM2ZXNyMzgrU3UvdVFneXJNcAo5V01oZElpb2dYZjVlNjV5ZlIzYVBXcjJJdWMxZ0RUNlYycDZFR2h0NysyQkF1YkIzczloZisycVNRY1lkS3pmCnJOTDdKalE4ZEVGZWdYd041cHhKOTRTTVFZNEI4Qm9hOHNJWTd3TzU4dHpVMjZoclVnanFXQ1VDZ1lFQXlVUUIKNzViWlh6MGJ5cEc5NjNwYVp0bGlJY0cvUk1XMnVPOE9rVFNYSGdDSjBob25uRm5IMGZOc1pGTHdFWEtnTTRORworU3ZNbWtUekE5eVVSMHpIMFJ4UW44L1YzVWZLT2k5RktFeWx6NzNiRkV6ZW1QSEppQm12NWQ4ZTlOenZmU0E0CkdpRTYrYnFyV3VVWWRoRWlYTnY1SFNPZ3I4bUx1TzJDbGlmNTg0a0NnWUFlZzlDTmlJWmlOODAzOHNNWFYzZWIKalI5ZDNnYXY3SjJ2UnVyeTdvNDVGNDlpUXNiQ3AzZWxnY1RnczY5eWhkaFpwYXp6OGNEVndhREpyTW16cHF4cQpWY1liaFFIblppSWM5MGRubS9BaVF2eWJWNUZqNnQ5b05VVWtreGpaV1haalJXOGtZMW55QmtDUmJWVnhER0k4CjZOV0ZoeTFGaUVVVGNJcms3WVZFQlFLQmdRREpHTVIrYWRFamtlRlUwNjVadkZUYmN0VFVPY3dzb1Foalc2akkKZVMyTThxakNYeE80NnhQMnVTeFNTWFJKV3FpckQ3NDRkUVRvRjRCaEdXS21veGI3M3pqSGxWaHcwcXhDMnJ4VQorZENxODE0VXVJR3BlOTBMdWU3QTFlRU9kRHB1WVdUczVzc1FmdTE3MG5CUWQrcEhzaHNFZkhhdmJjZkhyTGpQCjQzMmhVUUtCZ1FDZ3hMZG5Pd2JMaHZLVkhhdTdPVXQxbGpUT240SnB5bHpnb3hFRXpzaDhDK0ZKUUQ1bkFxZXEKZUpWSkNCd2VkallBSDR6MUV3cHJjWnJIN3IyUTBqT2ZFallwU1dkZGxXaWh4OTNYODZ0aG83UzJuUlYrN1hNcQpPVW9ZcVZ1WGlGMWdMM1NGeHZqMHhxV3l0d0NPTW5DZGFCb0M0Tkw3enJtL0lZOEUwSkw2MkE9PQotLS0tLUVORCBSU0EgUFJJVkFURSBLRVktLS0tLQo=" - ## When tls.certManager.enabled=false ## nodeCert and clientCert will be used only when rootCA.key is empty. ## Will be ignored and genSignedCert will be used to generate ## node and client certs if rootCA.key is provided. @@ -109,38 +85,33 @@ tls: gflags: master: default_memory_limit_to_ram_ratio: 0.85 - tserver: {} +# tserver: # use_cassandra_authentication: false PodManagementPolicy: Parallel enableLoadBalancer: true -ybc: - enabled: false +isMultiAz: false domainName: "cluster.local" serviceEndpoints: - name: "yb-master-ui" type: LoadBalancer - annotations: {} - clusterIP: "" ## Sets the Service's externalTrafficPolicy - externalTrafficPolicy: "" + # externalTrafficPolicy: "" app: "yb-master" - loadBalancerIP: "" + # loadBalancerIP: "" ports: http-ui: "7000" - name: "yb-tserver-service" type: LoadBalancer - annotations: {} - clusterIP: "" ## Sets the Service's externalTrafficPolicy - externalTrafficPolicy: "" + # externalTrafficPolicy: "" app: "yb-tserver" - loadBalancerIP: "" + # loadBalancerIP: "" ports: tcp-yql-port: "9042" tcp-yedis-port: "6379" @@ -167,11 +138,8 @@ Services: http-ycql-met: "12000" http-yedis-met: "11000" http-ysql-met: "13000" - grpc-ybc-port: "18018" - -## Should be set to true only if Istio is being used. This also adds -## the Istio sidecar injection labels to the pods. +## Should be set to true only if Istio is being used. ## TODO: remove this once ## https://github.com/yugabyte/yugabyte-db/issues/5641 is fixed. ## @@ -188,22 +156,6 @@ multicluster: ## failover. Useful when using new naming style. createCommonTserverService: false - ## Enable it to deploy YugabyteDB in a multi-cluster services enabled - ## Kubernetes cluster (KEP-1645). This will create ServiceExport. - ## GKE Ref - https://cloud.google.com/kubernetes-engine/docs/how-to/multi-cluster-services#registering_a_service_for_export - ## You can use this gist for the reference to deploy the YugabyteDB in a multi-cluster scenario. - ## Gist - https://gist.github.com/baba230896/78cc9bb6f4ba0b3d0e611cd49ed201bf - createServiceExports: false - - ## Mandatory variable when createServiceExports is set to true. - ## Use: In case of GKE, you need to pass GKE Hub Membership Name. - ## GKE Ref - https://cloud.google.com/kubernetes-engine/docs/how-to/multi-cluster-services#enabling - kubernetesClusterId: "" - - ## mcsApiVersion is used for the MCS resources created by the - ## chart. Set to net.gke.io/v1 when using GKE MCS. - mcsApiVersion: "multicluster.x-k8s.io/v1alpha1" - serviceMonitor: ## If true, two ServiceMonitor CRs are created. One for yb-master ## and one for yb-tserver @@ -279,22 +231,9 @@ affinity: {} statefulSetAnnotations: {} -networkAnnotation: {} - -commonLabels: {} - master: ## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#affinity-v1-core ## This might override the default affinity from service.yaml - # To successfully merge, we need to follow rules for merging nodeSelectorTerms that kubernentes - # has. Each new node selector term is ORed together, and each match expression or match field in - # a single selector is ANDed together. - # This means, if a pod needs to be scheduled on a label 'custom_label_1' with a value - # 'custom_value_1', we need to add this 'subterm' to each of our pre-defined node affinity - # terms. - # - # Pod anti affinity is a simpler merge. Each term is applied separately, and the weight is tracked. - # The pod that achieves the highest weight is selected. ## Example. # affinity: # podAntiAffinity: @@ -306,8 +245,6 @@ master: # values: # - "yb-master" # topologyKey: kubernetes.io/hostname - # - # For further examples, see examples/yugabyte/affinity_overrides.yaml affinity: {} ## Extra environment variables passed to the Master pods. @@ -368,15 +305,6 @@ master: tserver: ## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#affinity-v1-core ## This might override the default affinity from service.yaml - # To successfully merge, we need to follow rules for merging nodeSelectorTerms that kubernentes - # has. Each new node selector term is ORed together, and each match expression or match field in - # a single selector is ANDed together. - # This means, if a pod needs to be scheduled on a label 'custom_label_1' with a value - # 'custom_value_1', we need to add this 'subterm' to each of our pre-defined node affinity - # terms. - # - # Pod anti affinity is a simpler merge. Each term is applied separately, and the weight is tracked. - # The pod that achieves the highest weight is selected. ## Example. # affinity: # podAntiAffinity: @@ -388,7 +316,6 @@ tserver: # values: # - "yb-tserver" # topologyKey: kubernetes.io/hostname - # For further examples, see examples/yugabyte/affinity_overrides.yaml affinity: {} ## Extra environment variables passed to the TServer pods. @@ -401,16 +328,13 @@ tserver: # fieldPath: status.hostIP extraEnv: [] - ## secretEnv variables are used to expose secrets data as env variables in the tserver pods. - ## If namespace field is not specified we assume that user already - ## created the secret in the same namespace as DB pods. - ## Example + # secretEnv variables are used to expose secrets data as env variables in the tserver pods. + # TODO Add namespace also to support copying secrets from other namespace. # secretEnv: # - name: MYSQL_LDAP_PASSWORD # valueFrom: # secretKeyRef: # name: secretName - # namespace: my-other-namespace-with-ldap-secret # key: password secretEnv: [] diff --git a/charts/yugabyte/yugaware/Chart.yaml b/charts/yugabyte/yugaware/Chart.yaml index 7751fdee8..81be36a18 100644 --- a/charts/yugabyte/yugaware/Chart.yaml +++ b/charts/yugabyte/yugaware/Chart.yaml @@ -3,20 +3,15 @@ annotations: catalog.cattle.io/display-name: YugabyteDB Anywhere catalog.cattle.io/kube-version: '>=1.18-0' catalog.cattle.io/release-name: yugaware - charts.openshift.io/name: yugaware -apiVersion: v2 -appVersion: 2.18.2.1-b1 -description: YugabyteDB Anywhere provides deployment, orchestration, and monitoring - for managing YugabyteDB clusters. YugabyteDB Anywhere can create a YugabyteDB cluster - with multiple pods provided by Kubernetes or OpenShift and logically grouped together - to form one logical distributed database. +apiVersion: v1 +appVersion: 2.14.12.0-b19 +description: YugaWare is YugaByte Database's Orchestration and Management console. home: https://www.yugabyte.com icon: https://avatars0.githubusercontent.com/u/17074854?s=200&v=4 -kubeVersion: '>=1.18-0' maintainers: -- email: sanketh@yugabyte.com - name: Sanketh Indarapu -- email: gjalla@yugabyte.com - name: Govardhan Reddy Jalla +- email: ram@yugabyte.com + name: Ram Sri +- email: arnav@yugabyte.com + name: Arnav Agarwal name: yugaware -version: 2.18.2+1 +version: 2.14.12 diff --git a/charts/yugabyte/yugaware/README.md b/charts/yugabyte/yugaware/README.md index 0d190c0be..fa27ce3e0 100644 --- a/charts/yugabyte/yugaware/README.md +++ b/charts/yugabyte/yugaware/README.md @@ -1,7 +1,5 @@ YugabyteDB Anywhere gives you the simplicity and support to deliver a private database-as-a-service (DBaaS) at scale. Use YugabyteDB Anywhere to deploy YugabyteDB across any cloud anywhere in the world with a few clicks, simplify day 2 operations through automation, and get the services needed to realize business outcomes with the database. -YugabyteDB Anywhere can be deployed using this Helm chart. Detailed documentation is available at: -- [Install YugabyteDB Anywhere software - Kubernetes](https://docs.yugabyte.com/preview/yugabyte-platform/install-yugabyte-platform/install-software/kubernetes/) -- [Install YugabyteDB Anywhere software - OpenShift (Helm based)](https://docs.yugabyte.com/preview/yugabyte-platform/install-yugabyte-platform/install-software/openshift/#helm-based-installation) +YugabyteDB Anywhere can be deployed using this helm chart. Detailed documentation is available at [![Artifact HUB](https://img.shields.io/endpoint?url=https://artifacthub.io/badge/repository/yugabyte)](https://artifacthub.io/packages/search?repo=yugabyte) diff --git a/charts/yugabyte/yugaware/openshift.values.yaml b/charts/yugabyte/yugaware/openshift.values.yaml deleted file mode 100644 index f156a5535..000000000 --- a/charts/yugabyte/yugaware/openshift.values.yaml +++ /dev/null @@ -1,29 +0,0 @@ -# OCP compatible values for yugaware - -image: - - repository: quay.io/yugabyte/yugaware-ubi - - postgres: - registry: registry.redhat.io - tag: 1-88.1661531722 - name: rhscl/postgresql-13-rhel7 - - prometheus: - registry: registry.redhat.io - tag: v4.11.0 - name: openshift4/ose-prometheus - - nginx: - registry: registry.access.redhat.com - tag: 1-60.1665590917 - name: ubi8/nginx-120 - -rbac: - create: false - -ocpCompatibility: - enabled: true - -securityContext: - enabled: false diff --git a/charts/yugabyte/yugaware/questions.yaml b/charts/yugabyte/yugaware/questions.yaml index 904b9cf75..0f2a48dd3 100644 --- a/charts/yugabyte/yugaware/questions.yaml +++ b/charts/yugabyte/yugaware/questions.yaml @@ -15,7 +15,7 @@ questions: label: Yugabyte Platform image repository description: "Yugabyte Platform image repository" - variable: image.tag - default: "2.5.1.0-b153" + default: "2.14.1.0-b36" required: false type: string label: Yugabyte Platform image tag diff --git a/charts/yugabyte/yugaware/templates/_default_values.tpl b/charts/yugabyte/yugaware/templates/_default_values.tpl deleted file mode 100644 index 95ccbdb47..000000000 --- a/charts/yugabyte/yugaware/templates/_default_values.tpl +++ /dev/null @@ -1,18 +0,0 @@ -{{/* - The usage of helm upgrade [RELEASE] [CHART] --reuse-values --set [variable]:[value] throws an - error in the event that new entries are inserted to the values chart. - - This is because reuse-values flag uses the values from the last release. If --set (/--set-file/ - --set-string/--values/-f) is applied with the reuse-values flag, the values from the last - release are overridden for those variables alone, and newer changes to the chart are - unacknowledged. - - https://medium.com/@kcatstack/understand-helm-upgrade-flags-reset-values-reuse-values-6e58ac8f127e - - To prevent errors while applying upgrade with --reuse-values and --set flags after introducing - new variables, default values can be specified in this file. -*/}} - -{{- define "get_nginx_proxyReadTimeoutSec" -}} - {{ .Values.nginx.proxyReadTimeoutSec | default 600 }} -{{- end -}} diff --git a/charts/yugabyte/yugaware/templates/_helpers.tpl b/charts/yugabyte/yugaware/templates/_helpers.tpl index 232797171..ffe8e65cf 100644 --- a/charts/yugabyte/yugaware/templates/_helpers.tpl +++ b/charts/yugabyte/yugaware/templates/_helpers.tpl @@ -134,100 +134,3 @@ Make list of allowed CORS origins {{- end -}} ] {{- end -}} - -{{/* -Get or generate server cert and key -*/}} -{{- define "getOrCreateServerCert" -}} -{{- $root := .Root -}} -{{- if and $root.Values.tls.certificate $root.Values.tls.key -}} -server.key: {{ $root.Values.tls.key }} -server.crt: {{ $root.Values.tls.certificate }} -{{- else -}} - {{- $result := (lookup "v1" "Secret" .Namespace .Name).data -}} - {{- if $result -}} -server.key: {{ index $result "server.key" }} -server.crt: {{ index $result "server.crt" }} - {{- else -}} - {{- $cert := genSelfSignedCert $root.Values.tls.hostname nil nil 3560 -}} -server.key: {{ $cert.Key | b64enc }} -server.crt: {{ $cert.Cert | b64enc }} - {{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Get or generate server key cert in pem format -*/}} -{{- define "getOrCreateServerPem" -}} -{{- $root := .Root -}} -{{- if and $root.Values.tls.certificate $root.Values.tls.key -}} -{{- $decodedKey := $root.Values.tls.key | b64dec -}} -{{- $decodedCert := $root.Values.tls.certificate | b64dec -}} -{{- $serverPemContentTemp := ( printf "%s\n%s" $decodedKey $decodedCert ) -}} -{{- $serverPemContent := $serverPemContentTemp | b64enc -}} -server.pem: {{ $serverPemContent }} -{{- else -}} - {{- $result := (lookup "v1" "Secret" .Namespace .Name).data -}} - {{- if $result -}} -{{- $serverPemContent := ( index $result "server.pem" ) -}} -server.pem: {{ $serverPemContent }} - {{- else -}} - {{- $cert := genSelfSignedCert $root.Values.tls.hostname nil nil 3560 -}} -{{- $serverPemContentTemp := ( printf "%s\n%s" $cert.Key $cert.Cert ) -}} -{{- $serverPemContent := $serverPemContentTemp | b64enc -}} -server.pem: {{ $serverPemContent }} - {{- end -}} -{{- end -}} -{{- end -}} - -{{/* -Check export of nss_wrapper environment variables required -*/}} -{{- define "checkNssWrapperExportRequired" -}} - {{- if .Values.securityContext.enabled -}} - {{- if and (ne (int .Values.securityContext.runAsUser) 0) (ne (int .Values.securityContext.runAsUser) 10001) -}} - {{- printf "true" -}} - {{- end -}} - {{- else -}} - {{- printf "false" -}} - {{- end -}} -{{- end -}} - - -{{/* - Verify the extraVolumes and extraVolumeMounts mappings. - Every extraVolumes should have extraVolumeMounts -*/}} -{{- define "yugaware.isExtraVolumesMappingExists" -}} - {{- $lenExtraVolumes := len .extraVolumes -}} - {{- $lenExtraVolumeMounts := len .extraVolumeMounts -}} - - {{- if and (eq $lenExtraVolumeMounts 0) (gt $lenExtraVolumes 0) -}} - {{- fail "You have not provided the extraVolumeMounts for extraVolumes." -}} - {{- else if and (eq $lenExtraVolumes 0) (gt $lenExtraVolumeMounts 0) -}} - {{- fail "You have not provided the extraVolumes for extraVolumeMounts." -}} - {{- else if and (gt $lenExtraVolumes 0) (gt $lenExtraVolumeMounts 0) -}} - {{- $volumeMountsList := list -}} - {{- range .extraVolumeMounts -}} - {{- $volumeMountsList = append $volumeMountsList .name -}} - {{- end -}} - - {{- $volumesList := list -}} - {{- range .extraVolumes -}} - {{- $volumesList = append $volumesList .name -}} - {{- end -}} - - {{- range $volumesList -}} - {{- if not (has . $volumeMountsList) -}} - {{- fail (printf "You have not provided the extraVolumeMounts for extraVolume %s" .) -}} - {{- end -}} - {{- end -}} - - {{- range $volumeMountsList -}} - {{- if not (has . $volumesList) -}} - {{- fail (printf "You have not provided the extraVolumes for extraVolumeMounts %s" .) -}} - {{- end -}} - {{- end -}} - {{- end -}} -{{- end -}} diff --git a/charts/yugabyte/yugaware/templates/certificates.yaml b/charts/yugabyte/yugaware/templates/certificates.yaml deleted file mode 100644 index ff4b7021a..000000000 --- a/charts/yugabyte/yugaware/templates/certificates.yaml +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright (c) YugaByte, Inc. - -{{- $root := . }} -{{- $tls := $root.Values.tls }} -{{- if and $tls.enabled $tls.certManager.enabled }} -{{- if $tls.certManager.genSelfsigned }} -{{- if $tls.certManager.useClusterIssuer }} ---- -apiVersion: cert-manager.io/v1 -kind: ClusterIssuer -metadata: - name: {{ $root.Release.Name }}-yugaware-cluster-issuer -spec: - selfSigned: {} -{{- else }} # useClusterIssuer=false ---- -apiVersion: cert-manager.io/v1 -kind: Issuer -metadata: - name: {{ $root.Release.Name }}-yugaware-issuer - namespace: {{ $root.Release.Namespace }} -spec: - selfSigned: {} ---- -{{- end }} # useClusterIssuer ---- -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: {{ $root.Release.Name }}-yugaware-ui-root-ca - namespace: {{ $root.Release.Namespace }} -spec: - isCA: true - commonName: Yugaware self signed CA - secretName: {{ .Release.Name }}-yugaware-root-ca - secretTemplate: - labels: - app: "{{ template "yugaware.name" . }}" - chart: "{{ template "yugaware.chart" . }}" - release: {{ .Release.Name | quote }} - heritage: {{ .Release.Service | quote }} - duration: {{ $tls.certManager.configuration.duration | quote }} - renewBefore: {{ $tls.certManager.configuration.renewBefore | quote }} - privateKey: - algorithm: {{ $tls.certManager.configuration.algorithm | quote }} - encoding: PKCS8 - size: {{ $tls.certManager.configuration.keySize }} - rotationPolicy: Always - issuerRef: - {{- if $tls.certManager.useClusterIssuer }} - name: {{ $root.Release.Name }}-yugaware-cluster-issuer - kind: ClusterIssuer - {{- else }} - name: {{ $root.Release.Name }}-yugaware-issuer - kind: Issuer - {{- end }} ---- -apiVersion: cert-manager.io/v1 -kind: Issuer -metadata: - name: {{ $root.Release.Name }}-yugaware-ca-issuer - namespace: {{ $root.Release.Namespace }} -spec: - ca: - secretName: {{ .Release.Name }}-yugaware-root-ca ---- -{{- end }} # genSelfsigned ---- -apiVersion: cert-manager.io/v1 -kind: Certificate -metadata: - name: {{ $root.Release.Name }}-yugaware-ui-tls - namespace: {{ $root.Release.Namespace }} -spec: - isCA: false - commonName: {{ $tls.hostname }} - secretName: {{ .Release.Name }}-yugaware-tls-cert - secretTemplate: - labels: - app: "{{ template "yugaware.name" . }}" - chart: "{{ template "yugaware.chart" . }}" - release: {{ .Release.Name | quote }} - heritage: {{ .Release.Service | quote }} - duration: {{ $tls.certManager.configuration.duration | quote }} - renewBefore: {{ $tls.certManager.configuration.renewBefore | quote }} - privateKey: - algorithm: {{ $tls.certManager.configuration.algorithm | quote }} - encoding: PKCS8 - size: {{ $tls.certManager.configuration.keySize }} - rotationPolicy: Always - issuerRef: - name: {{ $tls.certManager.genSelfsigned | ternary (printf "%s%s" $root.Release.Name "-yugaware-ca-issuer") ($tls.certManager.useClusterIssuer | ternary $tls.certManager.clusterIssuer $tls.certManager.issuer) }} - {{- if $tls.certManager.useClusterIssuer }} - kind: ClusterIssuer - {{- else }} - kind: Issuer - {{- end }} ---- -{{- end }} diff --git a/charts/yugabyte/yugaware/templates/configs.yaml b/charts/yugabyte/yugaware/templates/configs.yaml index 6c9cd550e..76b2f80cf 100644 --- a/charts/yugabyte/yugaware/templates/configs.yaml +++ b/charts/yugabyte/yugaware/templates/configs.yaml @@ -31,40 +31,28 @@ data: log.override.path = "/opt/yugabyte/yugaware/data/logs" db { - default.dbname=${POSTGRES_DB} {{ if .Values.postgres.external.host }} default.host="{{ .Values.postgres.external.host }}" default.port={{ .Values.postgres.external.port }} + default.url="jdbc:postgresql://"${db.default.host}":"${db.default.port}"/"${POSTGRES_DB}${db.default.params} {{ else if eq .Values.ip_version_support "v6_only" }} - default.host="[::1]" + default.host="::1" + default.url="jdbc:postgresql://[::1]:"${db.default.port}"/"${POSTGRES_DB}${db.default.params} {{ else }} default.host="127.0.0.1" + default.url="jdbc:postgresql://127.0.0.1:"${db.default.port}"/"${POSTGRES_DB}${db.default.params} {{ end }} - default.url="jdbc:postgresql://"${db.default.host}":"${db.default.port}"/"${db.default.dbname}${db.default.params} default.params="{{ .Values.jdbcParams }}" + default.driver=org.postgresql.Driver default.username=${POSTGRES_USER} default.password=${POSTGRES_PASSWORD} - {{ if .Values.yugaware.cloud.enabled }} - perf_advisor.driver="org.hsqldb.jdbc.JDBCDriver" - perf_advisor.url="jdbc:hsqldb:mem:perf-advisor" - perf_advisor.createDatabaseIfMissing=false - perf_advisor.username="sa" - perf_advisor.password="sa" - perf_advisor.migration.auto=false - perf_advisor.migration.disabled=true - {{ else }} - perf_advisor.url="jdbc:postgresql://"${db.default.host}":"${db.default.port}"/"${db.perf_advisor.dbname}${db.default.params} - perf_advisor.createDatabaseUrl="jdbc:postgresql://"${db.default.host}":"${db.default.port}"/"${db.default.dbname}${db.default.params} - {{ end }} + default.logStatements=true + default.migration.initOnMigrate=true + default.migration.auto=true } - - {{- if and (not .Values.useNginxProxy) (.Values.tls.enabled) }} - https.port = 9443 - play.server.https.keyStore { - path = /opt/certs/server.pem - type = PEM + ebean { + default = ["com.yugabyte.yw.models.*"] } - {{- end }} yb { {{- if .Values.yugaware.universe_boot_script }} @@ -98,8 +86,6 @@ data: kubernetes.storageClass = "{{ .Values.yugaware.storageClass }}" kubernetes.pullSecretName = "{{ .Values.image.pullSecret }}" url = "https://{{ .Values.tls.hostname }}" - # GKE MCS takes 7 to 10 minutes to setup DNS - wait_for_server_timeout = 15 minutes } play.filters { @@ -140,8 +126,7 @@ data: {{- range $key, $value := .Values.additionalAppConf.nonStringConf }} {{ $key }} = {{ $value }} {{- end }} -{{- if and .Values.tls.enabled (not .Values.tls.certManager.enabled) }} -{{- if .Values.useNginxProxy }} +{{- if .Values.tls.enabled }} --- apiVersion: v1 kind: Secret @@ -154,27 +139,10 @@ metadata: heritage: {{ .Release.Service | quote }} type: Opaque data: -{{- include "getOrCreateServerCert" (dict "Namespace" .Release.Namespace "Root" . "Name" (printf "%s%s" .Release.Name "-yugaware-tls-cert")) | nindent 2 }} + server.crt: {{ .Values.tls.certificate }} + server.key: {{ .Values.tls.key }} {{- end }} -{{ if not .Values.useNginxProxy }} ---- -apiVersion: v1 -kind: Secret -metadata: - name: {{ .Release.Name }}-yugaware-tls-pem - labels: - app: "{{ template "yugaware.name" . }}" - chart: "{{ template "yugaware.chart" . }}" - release: {{ .Release.Name | quote }} - heritage: {{ .Release.Service | quote }} -type: Opaque -data: -{{- include "getOrCreateServerPem" (dict "Namespace" .Release.Namespace "Root" . "Name" (printf "%s%s" .Release.Name "-yugaware-tls-pem")) | nindent 2 }} -{{ end }} -{{- end }} - -{{- if .Values.useNginxProxy }} --- apiVersion: v1 kind: ConfigMap @@ -193,7 +161,7 @@ data: listen {{ eq .Values.ip_version_support "v6_only" | ternary "[::]:8080" "8080" }}; server_name {{ .Values.tls.hostname }}; return 301 https://$host$request_uri; - } + } {{- end }} server { @@ -212,7 +180,7 @@ data: {{- end }} proxy_http_version 1.1; proxy_set_header X-Real-IP $remote_addr; - proxy_set_header X-Forwarded-For $remote_addr; + proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_set_header Host $host; @@ -230,9 +198,7 @@ data: client_max_body_size {{ .Values.nginx.upload_size }}; } } -{{ end }} --- -{{- if not (and (.Values.ocpCompatibility.enabled) (eq .Values.image.postgres.registry "registry.redhat.io")) }} apiVersion: v1 kind: ConfigMap metadata: @@ -258,26 +224,6 @@ data: docker-upgrade pg_upgrade | tee -a /pg_upgrade_logs/pg_upgrade_11_to_14.log; echo "host all all all scram-sha-256" >> "${PGDATANEW}/pg_hba.conf"; fi -{{- end }} -{{- if .Values.securityContext.enabled }} ---- -apiVersion: "v1" -kind: ConfigMap -metadata: - name: {{ .Release.Name }}-yugaware-pg-prerun - labels: - app: {{ template "yugaware.name" . }} - chart: {{ template "yugaware.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Values.helm2Legacy | ternary "Tiller" (.Release.Service | quote) }} -data: - pg-prerun.sh: | - #!/bin/bash - set -x -o errexit - - mkdir -p $PGDATA && chown -R $PG_UID:$PG_GID $PGDATA; -{{- end }} -{{- if .Values.useNginxProxy }} --- apiVersion: v1 kind: ConfigMap @@ -306,8 +252,6 @@ data: uwsgi_temp_path /tmp/uwsgi_temp; scgi_temp_path /tmp/scgi_temp; - proxy_read_timeout {{ template "get_nginx_proxyReadTimeoutSec" . }}; - include /etc/nginx/mime.types; default_type application/octet-stream; @@ -326,7 +270,6 @@ data: include /etc/nginx/conf.d/*.conf; } -{{- end }} {{- if .Values.prometheus.remoteWrite.tls.enabled }} --- apiVersion: v1 @@ -396,11 +339,7 @@ data: - 'container_cpu_usage_seconds_total{pod=~"(.*)yb-(.*)"}' - 'container_memory_working_set_bytes{pod=~"(.*)yb-(.*)"}' # kube-state-metrics - # Supports >= OCP v4.4 - # OCP v4.4 has upgraded the KSM from 1.8.0 to 1.9.5. - # https://docs.openshift.com/container-platform/4.4/release_notes/ocp-4-4-release-notes.html#ocp-4-4-cluster-monitoring-version-updates - # - 'kube_pod_container_resource_requests_cpu_cores{pod=~"(.*)yb-(.*)"}' - - 'kube_pod_container_resource_requests{pod=~"(.*)yb-(.*)", unit="core"}' + - 'kube_pod_container_resource_requests_cpu_cores{pod=~"(.*)yb-(.*)"}' static_configs: - targets: @@ -420,12 +359,6 @@ data: regex: "(.*)" target_label: "container_name" replacement: "$1" - # rename new name of the CPU metric to the old name and label - # ref: https://github.com/kubernetes/kube-state-metrics/blob/master/CHANGELOG.md#v200-alpha--2020-09-16 - - source_labels: ["__name__", "unit"] - regex: "kube_pod_container_resource_requests;core" - target_label: "__name__" - replacement: "kube_pod_container_resource_requests_cpu_cores" {{- else }} @@ -476,8 +409,8 @@ data: - targets: ['kube-state-metrics.kube-system.svc.{{.Values.domainName}}:8080'] metric_relabel_configs: # Only keep the metrics which we care about - - source_labels: ["__name__", "unit"] - regex: "kube_pod_container_resource_requests;core" + - source_labels: ["__name__"] + regex: "kube_pod_container_resource_requests_cpu_cores" action: keep # Save the name of the metric so we can group_by since we cannot by __name__ directly... - source_labels: ["__name__"] @@ -496,16 +429,6 @@ data: - source_labels: ["pod_name"] regex: "(.*)yb-(.*)" action: keep - # rename new name of the CPU metric to the old name and label - # ref: https://github.com/kubernetes/kube-state-metrics/blob/master/CHANGELOG.md#v200-alpha--2020-09-16 - - source_labels: ["__name__", "unit"] - regex: "kube_pod_container_resource_requests;core" - target_label: "__name__" - replacement: "kube_pod_container_resource_requests_cpu_cores" - # Keep metrics for CPU, discard duplicate metrics - - source_labels: ["__name__"] - regex: "kube_pod_container_resource_requests_cpu_cores" - action: keep - job_name: 'kubernetes-cadvisor' @@ -559,12 +482,6 @@ data: '{{ eq .Values.ip_version_support "v6_only" | ternary "[::1]" "127.0.0.1" }}:9000' ] - - job_name: 'node-agent' - metrics_path: "/metrics" - file_sd_configs: - - files: - - '/opt/yugabyte/prometheus/targets/node-agent.*.json' - - job_name: "node" file_sd_configs: - files: @@ -650,8 +567,6 @@ data: replacement: "$1" - job_name: "yugabyte" - tls_config: - insecure_skip_verify: true metrics_path: "/prometheus-metrics" file_sd_configs: - files: diff --git a/charts/yugabyte/yugaware/templates/global-config.yaml b/charts/yugabyte/yugaware/templates/global-config.yaml index 4d7f54f45..925e1bbb7 100644 --- a/charts/yugabyte/yugaware/templates/global-config.yaml +++ b/charts/yugabyte/yugaware/templates/global-config.yaml @@ -16,8 +16,8 @@ data: postgres_user: {{ .Values.postgres.external.user | b64enc | quote }} postgres_password: {{ .Values.postgres.external.pass | b64enc | quote }} {{- else }} - postgres_db: {{ .Values.postgres.dbname | b64enc | quote }} - postgres_user: {{ .Values.postgres.user | b64enc | quote }} + postgres_db: {{ "yugaware" | b64enc | quote }} + postgres_user: {{ "postgres" | b64enc | quote }} postgres_password: {{ include "getOrGeneratePasswordConfigMapToSecret" (dict "Namespace" .Release.Namespace "Name" (printf "%s%s" .Release.Name "-yugaware-global-config") "Key" "postgres_password") | quote }} {{- end }} app_secret: {{ randAlphaNum 64 | b64enc | b64enc | quote }} diff --git a/charts/yugabyte/yugaware/templates/rbac.yaml b/charts/yugabyte/yugaware/templates/rbac.yaml index d05dfaeec..907f9e1ce 100644 --- a/charts/yugabyte/yugaware/templates/rbac.yaml +++ b/charts/yugabyte/yugaware/templates/rbac.yaml @@ -1,4 +1,3 @@ -{{ if not .Values.yugaware.serviceAccount }} apiVersion: v1 kind: ServiceAccount metadata: @@ -11,7 +10,6 @@ metadata: annotations: {{ toYaml .Values.yugaware.serviceAccountAnnotations | indent 4 }} {{- end }} -{{ end }} {{- if .Values.rbac.create }} {{- if .Values.ocpCompatibility.enabled }} --- @@ -23,7 +21,7 @@ metadata: app: yugaware subjects: - kind: ServiceAccount - name: {{ .Values.yugaware.serviceAccount | default .Release.Name }} + name: {{ .Release.Name }} namespace: {{ .Release.Namespace }} roleRef: kind: ClusterRole @@ -31,31 +29,15 @@ roleRef: apiGroup: rbac.authorization.k8s.io {{- else }} --- -apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole +apiVersion: rbac.authorization.k8s.io/v1 metadata: name: {{ .Release.Name }} + labels: + k8s-app: yugaware + kubernetes.io/cluster-service: "true" + addonmanager.kubernetes.io/mode: Reconcile rules: -- apiGroups: ["policy"] - resources: - - poddisruptionbudgets - verbs: ["get", "create", "delete", "patch"] -- apiGroups: [""] - resources: - - services - verbs: ["get", "delete", "create", "patch", "list", "watch"] -- apiGroups: ["apps"] - resources: - - statefulsets - verbs: ["get", "delete", "create", "patch", "scale"] -- apiGroups: [""] - resources: - - secrets - verbs: ["create", "list", "get", "delete", "update", "patch"] -- apiGroups: ["cert-manager.io"] - resources: - - certificates - verbs: ["create", "delete", "get", "patch"] - apiGroups: [""] resources: - nodes @@ -64,8 +46,7 @@ rules: - endpoints - pods - pods/exec - - configmaps # added configmaps resource - verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] # added all verbs for configmaps + verbs: ["get", "list", "watch", "create"] - apiGroups: - extensions resources: @@ -78,13 +59,13 @@ rules: - namespaces - secrets - pods/portforward - - events # added events resource - verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] # added all verbs for events + verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] - apiGroups: ["", "extensions"] resources: - deployments - services verbs: ["create", "get", "list", "watch", "update", "delete"] + --- kind: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1 @@ -96,7 +77,7 @@ metadata: addonmanager.kubernetes.io/mode: Reconcile subjects: - kind: ServiceAccount - name: {{ .Values.yugaware.serviceAccount | default .Release.Name }} + name: {{ .Release.Name }} namespace: {{ .Release.Namespace }} roleRef: kind: ClusterRole diff --git a/charts/yugabyte/yugaware/templates/service.yaml b/charts/yugabyte/yugaware/templates/service.yaml index 8620cee08..8b93d84cb 100644 --- a/charts/yugabyte/yugaware/templates/service.yaml +++ b/charts/yugabyte/yugaware/templates/service.yaml @@ -24,24 +24,14 @@ spec: {{- end }} {{- end }} ports: -{{- if and (.Values.tls.enabled) (.Values.useNginxProxy) }} +{{- if .Values.tls.enabled }} - name: ui-tls port: 443 targetPort: 8443 -{{- else if .Values.tls.enabled }} - - name: ui-tls - port: 443 - targetPort: 9443 {{- end }} -{{- if .Values.useNginxProxy }} - name: ui port: 80 targetPort: 8080 -{{- else }} - - name: ui - port: 80 - targetPort: 9000 -{{- end }} - name: metrics port: 9090 selector: @@ -50,10 +40,6 @@ spec: {{- if and (eq .Values.yugaware.service.type "LoadBalancer") (.Values.yugaware.service.ip) }} loadBalancerIP: "{{ .Values.yugaware.service.ip }}" {{- end }} - {{- if .Values.yugaware.service.loadBalancerSourceRanges }} - loadBalancerSourceRanges: - {{- toYaml .Values.yugaware.service.loadBalancerSourceRanges | nindent 4 }} - {{- end }} {{- end }} {{- if .Values.yugaware.serviceMonitor.enabled }} --- diff --git a/charts/yugabyte/yugaware/templates/statefulset.yaml b/charts/yugabyte/yugaware/templates/statefulset.yaml index fbf914b1b..33a260ada 100644 --- a/charts/yugabyte/yugaware/templates/statefulset.yaml +++ b/charts/yugabyte/yugaware/templates/statefulset.yaml @@ -25,11 +25,8 @@ spec: {{- end }} labels: app: {{ .Release.Name }}-yugaware -{{- if .Values.yugaware.pod.labels }} -{{ toYaml .Values.yugaware.pod.labels | indent 8 }} -{{- end }} spec: - serviceAccountName: {{ .Values.yugaware.serviceAccount | default .Release.Name }} + serviceAccountName: {{ .Release.Name }} imagePullSecrets: - name: {{ .Values.image.pullSecret }} {{- if .Values.securityContext.enabled }} @@ -39,30 +36,6 @@ spec: fsGroupChangePolicy: {{ .Values.securityContext.fsGroupChangePolicy }} {{- end }} {{- end }} - {{- if .Values.nodeSelector }} - nodeSelector: -{{ toYaml .Values.nodeSelector | indent 8}} - {{- end }} - {{- if .Values.tolerations }} - tolerations: - {{- with .Values.tolerations }}{{ toYaml . | nindent 8 }}{{ end }} - {{- end }} - {{- if .Values.zoneAffinity }} - affinity: - nodeAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - nodeSelectorTerms: - - matchExpressions: - - key: failure-domain.beta.kubernetes.io/zone - operator: In - values: -{{ toYaml .Values.zoneAffinity | indent 18 }} - - matchExpressions: - - key: topology.kubernetes.io/zone - operator: In - values: -{{ toYaml .Values.zoneAffinity | indent 18 }} - {{- end }} volumes: - name: yugaware-storage persistentVolumeClaim: @@ -84,7 +57,6 @@ spec: - key: universe_boot_script path: universe-boot-script.sh {{- end }} - {{- if .Values.useNginxProxy }} - name: nginx-config configMap: name: {{ .Release.Name }}-yugaware-nginx-config @@ -97,7 +69,6 @@ spec: items: - key: nginx.conf path: nginx.conf - {{- end }} - name: prometheus-config configMap: name: {{ .Release.Name }}-yugaware-prometheus-config @@ -112,55 +83,25 @@ spec: - key: init-permissions.sh path: init-permissions.sh {{- end }} - {{- if and (.Values.tls.enabled) (.Values.useNginxProxy) }} + {{- if .Values.tls.enabled }} - name: {{ .Release.Name }}-yugaware-tls-cert secret: secretName: {{ .Release.Name }}-yugaware-tls-cert - {{- if .Values.tls.certManager.enabled }} - items: - - key: tls.crt - path: server.crt - - key: tls.key - path: server.key - {{- end }} - {{- end }} - {{- if and (not .Values.useNginxProxy) (.Values.tls.enabled) }} - - name: {{ .Release.Name }}-yugaware-tls-pem - secret: - secretName: {{ .Release.Name }}-yugaware-tls-pem - items: - - key: server.pem - path: server.pem {{- end }} {{- if .Values.prometheus.remoteWrite.tls.enabled }} - name: {{ .Release.Name }}-yugaware-prometheus-remote-write-tls secret: secretName: {{ .Release.Name }}-yugaware-prometheus-remote-write-tls {{- end }} - {{- if not (and (.Values.ocpCompatibility.enabled) (eq .Values.image.postgres.registry "registry.redhat.io")) }} - name: pg-upgrade-11-to-14 configMap: name: {{ .Release.Name }}-yugaware-pg-upgrade items: - key: pg-upgrade-11-to-14.sh path: pg-upgrade-11-to-14.sh - {{- end }} - - name: pg-init - configMap: - name: {{ .Release.Name }}-yugaware-pg-prerun - items: - - key: pg-prerun.sh - path: pg-prerun.sh - {{- if .Values.postgres.extraVolumes -}} - {{- include "yugaware.isExtraVolumesMappingExists" .Values.postgres -}} - {{- .Values.postgres.extraVolumes | toYaml | nindent 8 -}} - {{ end }} initContainers: - image: {{ include "full_yugaware_image" . }} imagePullPolicy: {{ .Values.image.pullPolicy }} - {{- if .Values.initContainers.prometheusConfiguration.resources }} - resources: {{- toYaml .Values.initContainers.prometheusConfiguration.resources | nindent 12 }} - {{ end -}} name: prometheus-configuration {{- if .Values.securityContext.enabled }} command: @@ -188,13 +129,9 @@ spec: - name: init-container-script mountPath: /init-container {{- end }} - {{- if not (and (.Values.ocpCompatibility.enabled) (eq .Values.image.postgres.registry "registry.redhat.io")) }} - image: {{ include "full_image" (dict "containerName" "postgres-upgrade" "root" .) }} imagePullPolicy: {{ .Values.image.pullPolicy }} name: postgres-upgrade - {{- if .Values.initContainers.postgresUpgrade.resources }} - resources: {{- toYaml .Values.initContainers.postgresUpgrade.resources | nindent 12 }} - {{ end -}} command: - 'bash' - '-c' @@ -224,46 +161,12 @@ spec: - name: yugaware-storage mountPath: /pg_upgrade_logs subPath: postgres_data_14 - {{- end }} - {{- if .Values.securityContext.enabled }} - - image: {{ include "full_image" (dict "containerName" "postgres" "root" .) }} - name: postgres-init - {{- if .Values.initContainers.postgresInit.resources }} - resources: {{- toYaml .Values.initContainers.postgresInit.resources | nindent 12 }} - {{ end -}} - imagePullPolicy: {{ .Values.image.pullPolicy }} - command: ["/bin/bash", "/pg_prerun/pg-prerun.sh"] - env: - - name: PGDATA - value: /var/lib/postgresql/data/pgdata - - name: PG_UID - value: {{ .Values.securityContext.runAsUser | quote }} - - name: PG_GID - value: {{ .Values.securityContext.runAsGroup | quote }} - volumeMounts: - - name: yugaware-storage - mountPath: /var/lib/postgresql/data - subPath: postgres_data_14 - - name: pg-init - mountPath: /pg_prerun - {{- end }} containers: {{ if not .Values.postgres.external.host }} - name: postgres image: {{ include "full_image" (dict "containerName" "postgres" "root" .) }} imagePullPolicy: {{ .Values.image.pullPolicy }} - args: - {{- if and (.Values.ocpCompatibility.enabled) (eq .Values.image.postgres.registry "registry.redhat.io") }} - - "run-postgresql" - {{- end }} - - "-c" - - "huge_pages=off" - {{- if .Values.securityContext.enabled }} - securityContext: - runAsUser: {{ required "runAsUser cannot be empty" .Values.securityContext.runAsUser }} - runAsGroup: {{ .Values.securityContext.runAsGroup | default 0 }} - runAsNonRoot: {{ .Values.securityContext.runAsNonRoot }} - {{- end }} + args: ["-c", "huge_pages=off"] env: - name: POSTGRES_USER valueFrom: @@ -280,37 +183,8 @@ spec: secretKeyRef: name: {{ .Release.Name }}-yugaware-global-config key: postgres_db - {{- if and (.Values.ocpCompatibility.enabled) (eq .Values.image.postgres.registry "registry.redhat.io") }} - # Hardcoded the POSTGRESQL_USER because it's mandatory env var in RH PG image - # It doesn't have access to create the DB, so YBA fails to create the perf_advisor DB. - # Need to use admin user of RH PG image (postgres) - # Changing the user name won't be possible moving forward for OpenShift certified chart - - name: POSTGRESQL_USER - value: pg-yba - # valueFrom: - # secretKeyRef: - # name: {{ .Release.Name }}-yugaware-global-config - # key: postgres_user - - name: POSTGRESQL_PASSWORD - valueFrom: - secretKeyRef: - name: {{ .Release.Name }}-yugaware-global-config - key: postgres_password - - name: POSTGRESQL_ADMIN_PASSWORD - valueFrom: - secretKeyRef: - name: {{ .Release.Name }}-yugaware-global-config - key: postgres_password - - name: POSTGRESQL_DATABASE - valueFrom: - secretKeyRef: - name: {{ .Release.Name }}-yugaware-global-config - key: postgres_db - {{- else }} - # The RH Postgres image doesn't allow this directory to be changed. - name: PGDATA value: /var/lib/postgresql/data/pgdata - {{- end }} ports: - containerPort: 5432 name: postgres @@ -322,17 +196,8 @@ spec: volumeMounts: - name: yugaware-storage - {{- if and (.Values.ocpCompatibility.enabled) (eq .Values.image.postgres.registry "registry.redhat.io") }} - mountPath: /var/lib/pgsql/data - subPath: postgres_data_13 - {{- else }} mountPath: /var/lib/postgresql/data subPath: postgres_data_14 - {{- end }} - {{- if .Values.postgres.extraVolumeMounts -}} - {{- include "yugaware.isExtraVolumesMappingExists" .Values.postgres -}} - {{- .Values.postgres.extraVolumeMounts | toYaml | nindent 12 -}} - {{- end -}} {{ end }} - name: prometheus image: {{ include "full_image" (dict "containerName" "prometheus" "root" .) }} @@ -358,9 +223,6 @@ spec: subPath: prometheus.yml - name: yugaware-storage mountPath: /prometheus/ - - mountPath: /opt/yugabyte/yugaware/data/keys/ - name: yugaware-storage - subPath: data/keys {{- if .Values.prometheus.scrapeNodes }} - name: yugaware-storage mountPath: /opt/yugabyte/prometheus/targets @@ -382,9 +244,6 @@ spec: - --web.enable-admin-api - --web.enable-lifecycle - --storage.tsdb.retention.time={{ .Values.prometheus.retentionTime }} - - --query.max-concurrency={{ .Values.prometheus.queryConcurrency }} - - --query.max-samples={{ .Values.prometheus.queryMaxSamples }} - - --query.timeout={{ .Values.prometheus.queryTimeout }} ports: - containerPort: 9090 - name: yugaware @@ -401,18 +260,12 @@ spec: resources: {{ toYaml .Values.yugaware.resources | indent 12 }} {{- end }} - args: ["bin/yugaware","-Dconfig.file=/data/application.docker.conf"] + + command: [ "/sbin/tini", "--"] + args: + - "bin/yugaware" + - "-Dconfig.file=/data/application.docker.conf" env: - # Conditionally set these env variables, if runAsUser is not 0(root) - # or 10001(yugabyte). - {{- if eq (include "checkNssWrapperExportRequired" .) "true" }} - - name: NSS_WRAPPER_GROUP - value: "/tmp/group.template" - - name: NSS_WRAPPER_PASSWD - value: "/tmp/passwd.template" - - name: LD_PRELOAD - value: "/usr/lib64/libnss_wrapper.so" - {{- end }} - name: POSTGRES_USER valueFrom: secretKeyRef: @@ -433,7 +286,6 @@ spec: secretKeyRef: name: {{ .Release.Name }}-yugaware-global-config key: app_secret - {{- with .Values.yugaware.extraEnv }}{{ toYaml . | nindent 12 }}{{ end }} ports: - containerPort: 9000 name: yugaware @@ -450,9 +302,6 @@ spec: - name: yugaware-storage mountPath: /opt/yugabyte/releases/ subPath: releases - - name: yugaware-storage - mountPath: /opt/yugabyte/ybc/releases/ - subPath: ybc_releases # old path for backward compatibility - name: yugaware-storage mountPath: /opt/releases/ @@ -466,16 +315,9 @@ spec: - name: yugaware-storage mountPath: /prometheus_configs subPath: prometheus.yml - {{- if and (not .Values.useNginxProxy) (.Values.tls.enabled) }} - - name: {{ .Release.Name }}-yugaware-tls-pem - mountPath: /opt/certs/ - readOnly: true - {{- end }} - {{- if .Values.useNginxProxy }} - name: nginx image: {{ include "full_image" (dict "containerName" "nginx" "root" .) }} imagePullPolicy: {{ .Values.image.pullPolicy }} - args: ["nginx", "-g", "daemon off;"] ports: - containerPort: 8080 @@ -495,7 +337,6 @@ spec: mountPath: /opt/certs/ readOnly: true {{- end }} - {{- end }} {{ if .Values.sidecars }} {{ toYaml .Values.sidecars | indent 8 }} {{ end }} diff --git a/charts/yugabyte/yugaware/templates/tests/test.yaml b/charts/yugabyte/yugaware/templates/tests/test.yaml deleted file mode 100644 index 1c36fe948..000000000 --- a/charts/yugabyte/yugaware/templates/tests/test.yaml +++ /dev/null @@ -1,35 +0,0 @@ -apiVersion: v1 -kind: Pod -metadata: - name: {{ .Release.Name }}-yugaware-test - labels: - app: {{ .Release.Name }}-yugaware-test - chart: {{ template "yugaware.chart" . }} - release: {{ .Release.Name }} - annotations: - "helm.sh/hook": test -spec: - imagePullSecrets: - - name: {{ .Values.image.pullSecret }} - containers: - - name: yugaware-test - image: {{ include "full_yugaware_image" . }} - command: - - '/bin/bash' - - '-ec' - {{- if .Values.tls.enabled }} - - > - curl --head -k https://{{ .Release.Name }}-yugaware-ui - {{- else }} - - > - curl --head http://{{ .Release.Name }}-yugaware-ui - {{- end }} - # Hard coded resources to the test pod. - resources: - limits: - cpu: "1" - memory: "512Mi" - requests: - cpu: "0.5" - memory: "256Mi" - restartPolicy: Never diff --git a/charts/yugabyte/yugaware/tests/test_resources.yaml b/charts/yugabyte/yugaware/tests/test_resources.yaml deleted file mode 100644 index cc793a585..000000000 --- a/charts/yugabyte/yugaware/tests/test_resources.yaml +++ /dev/null @@ -1,40 +0,0 @@ -suite: Resources verification -templates: -- statefulset.yaml -- configs.yaml -tests: -- it: YBA container - template: statefulset.yaml - asserts: - - isNotEmpty: - path: spec.template.spec.containers[?(@.name == "yugaware")].resources.requests - -- it: Postgres container - template: statefulset.yaml - asserts: - - isNotEmpty: - path: spec.template.spec.containers[?(@.name == "postgres")].resources.requests - -- it: Prometheus container - template: statefulset.yaml - asserts: - - isNotEmpty: - path: spec.template.spec.containers[?(@.name == "prometheus")].resources.requests - -- it: Postgres-init initContainer - template: statefulset.yaml - asserts: - - isNotEmpty: - path: spec.template.spec.initContainers[?(@.name == "postgres-init")].resources.requests - -- it: Prometheus-configuration initContainer - template: statefulset.yaml - asserts: - - isNotEmpty: - path: spec.template.spec.initContainers[?(@.name == "prometheus-configuration")].resources.requests - -- it: Postgres-upgrade initContainer - template: statefulset.yaml - asserts: - - isNotEmpty: - path: spec.template.spec.initContainers[?(@.name == "postgres-upgrade")].resources.requests diff --git a/charts/yugabyte/yugaware/values.yaml b/charts/yugabyte/yugaware/values.yaml index 99fc380be..c838dc47f 100644 --- a/charts/yugabyte/yugaware/values.yaml +++ b/charts/yugabyte/yugaware/values.yaml @@ -2,26 +2,20 @@ # This is a YAML-formatted file. # Declare variables to be passed into your templates. -fullnameOverride: "" -nameOverride: "" - -# Cloud team will retain nginx for sometime -# until they start creating a separate pool -useNginxProxy: false - image: commonRegistry: "" # Setting commonRegistry to say, quay.io overrides the registry settings for all images # including the yugaware image repository: quay.io/yugabyte/yugaware - tag: 2.18.2.1-b1 + tag: 2.14.12.0-b19 pullPolicy: IfNotPresent pullSecret: yugabyte-k8s-pull-secret ## Docker config JSON File name ## If set, this file content will be used to automatically create secret named as above - pullSecretFile: "" - + # pullSecretFile: + + postgres: registry: "" tag: '14.8' @@ -34,12 +28,12 @@ image: prometheus: registry: "" - tag: v2.44.0 + tag: v2.46.0 name: prom/prometheus nginx: registry: "" - tag: 1.25.0 + tag: 1.25.1 name: nginxinc/nginx-unprivileged yugaware: @@ -48,39 +42,30 @@ yugaware: storageClass: "" storageAnnotations: {} multiTenant: false - ## Name of existing ServiceAccount. When provided, the chart won't create a ServiceAccount. - ## It will attach the required RBAC roles to it. - ## Helpful in Yugabyte Platform GKE App. - serviceAccount: '' + serviceAccount: yugaware serviceMonitor: enabled: false annotations: {} serviceAccountAnnotations: {} service: annotations: {} - clusterIP: "" enabled: true ip: "" type: "LoadBalancer" - ## whitelist source CIDRs - #loadBalancerSourceRanges: - #- 0.0.0.0/0 - #- 192.168.100.0/24 pod: annotations: {} - labels: {} health: username: "" password: "" email: "" resources: requests: - cpu: "2" + cpu: 2 memory: 4Gi enableProxyMetricsAuth: true ## List of additional alowed CORS origins in case of complex rev-proxy additionAllowedCorsOrigins: [] - proxyEndpointTimeoutMs: 3 minute + proxyEndpointTimeoutMs: 1 minute ## Enables features specific for cloud deployments cloud: enabled: false @@ -91,16 +76,8 @@ yugaware: # Note that the default of 0 doesn't really make sense since a StatefulSet isn't allowed to schedule extra replicas. However it is maintained as the default while we do additional testing. This value will likely change in the future. maxUnavailable: 0 - universe_boot_script: "" - - extraEnv: [] - ## Configure PostgreSQL part of the application postgres: - # DO NOT CHANGE if using OCP Certified helm chart - user: postgres - dbname: yugaware - service: ## Expose internal Postgres as a Service enabled: false @@ -113,12 +90,12 @@ postgres: resources: requests: - cpu: "0.5" + cpu: 0.5 memory: 1Gi # If external.host is set then we will connect to an external postgres database server instead of starting our own. external: - host: "" + host: null port: 5432 pass: "" dbname: postgres @@ -127,65 +104,22 @@ postgres: ## JDBC connection parameters including the leading `?`. jdbcParams: "" - - ## Extra volumes - ## extraVolumesMounts are mandatory for each extraVolumes. - ## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#volume-v1-core - ## Example: - # extraVolumes: - # - name: custom-nfs-vol - # persistentVolumeClaim: - # claimName: some-nfs-claim - extraVolumes: [] - - ## Extra volume mounts - ## Ref: https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.22/#volumemount-v1-core - ## Example: - # extraVolumeMounts: - # - name: custom-nfs-vol - # mountPath: /home/yugabyte/nfs-backup - extraVolumeMounts: [] - tls: enabled: false hostname: "localhost" - ## Expects base 64 encoded values for certificate and key. - certificate: "" - key: "" + certificate: "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUZDVENDQXZHZ0F3SUJBZ0lVTlhvN2N6T2dyUWQrU09wOWdNdE00b1Vva3hFd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0ZERVNNQkFHQTFVRUF3d0piRzlqWVd4b2IzTjBNQjRYRFRJeE1EUXdOakExTXpnMU4xb1hEVE14TURRdwpOREExTXpnMU4xb3dGREVTTUJBR0ExVUVBd3dKYkc5allXeG9iM04wTUlJQ0lqQU5CZ2txaGtpRzl3MEJBUUVGCkFBT0NBZzhBTUlJQ0NnS0NBZ0VBMUxsSTFBLzRPOVIzSkNlN1N2MUxYVXhDSmxoTWpIWUoxV1FNVmcvai82RHkKazRTTmY0MkFLQjI0dFJFK2lEWTBNaTJrRWhJcVZ4TFdPN0hkWHVSN0tYNGxSZWFVVkRFTUtYUWNQUC9QWDZkbwpwZVZTUFpSVjVHNHNxTElXUFFkTVdIam9IQWx1aml5dGJsSVJUUWdLU3QrMmpuREFDN0dxRURMREdhNXRUWEM2CktRWkNtOERlaklOUTMzaGU2TDN0Q2hBRnhJM1pwY21sR0twbzdKVXJSUG14Mk9zTHFRcTB5dEVVK0lGZGppWHEKaHJLeFR0NUhHM3M3ZUNWaTRXdlZPelVGUitJbWRlQzBRZTBXeG5iZlZUMnJkVitQL1FaVXhWSEVtWnBPc0k2LwpmczhlK1dsMlduWXY1TTg5MWkxZER3Zi9lMDdiN20xQVRKdDRtTGRldzBtd1V4UGFGT2pDMDh6cU94NmF0cGhLClU1eHNWQmhGNVhyME9DeTQyMzN0MU5URXdWUEFDOFcwQmhHdldTRXBQTXNTKzM1b2lueEFrcFQzL01ibFpjNisKcXhSYUh6MHJhSksvVGIzelVKVWxWZFkxbGl5MVYyVjNxWEU2NWlsOUFHZ2pIaHhBNFBwSktCbzZ0WVRUT3pnTworL25mc0toMk95aE8zUWxBZ0JFUHlYUm5wL0xGSTVuQ2gzdjNiOXlabFNrSk05NkVoWEJ1bHhWUWN3L2p3N2NxCkRLSlBEeHFUQy9rWUs1V0FVZGhkWG1KQkRNMFBLcngzUGVOYjRsYnQzSTFIZW1QRDBoZktiWFd6alhiVTJQdWQKdjZmT0dXTDRLSFpaem9KZ1ljMFovRXRUMEpCR09GM09mMW42N2c5dDRlUnAzbEVSL09NM0FPY1dRbWFvOHlVQwpBd0VBQWFOVE1GRXdIUVlEVlIwT0JCWUVGTU00SjA4WG8wUGY1cTlOSWZiMGYyRzZqc1FoTUI4R0ExVWRJd1FZCk1CYUFGTU00SjA4WG8wUGY1cTlOSWZiMGYyRzZqc1FoTUE4R0ExVWRFd0VCL3dRRk1BTUJBZjh3RFFZSktvWkkKaHZjTkFRRUxCUUFEZ2dJQkFBRmxrWVJkdzA0Zm9vT29BelUyaU5ORGV1aiszemhIeFQ5eU9iSkdwREZIRitoZQpuY1ZRWGZpMitHNjBWY0xuZERsWFhmbDZLOSs4ME55aEg4QjR1UEJNTWhoWG01MjJmYnJac1dFcnR3WE1rM2prClZ5UVA3MGk2NHE1ZGVrZzhoYzI0SXhFUlVsam9XM2lDTTdrb0VxaG15VkpGeDNxMVdobFEwdzNkWVpMQVNRclYKU0RpL2JGWjlqOXVtWVdoc0Y4QjFPSThPVjNlL0YyakU1UCtoTlJJazAzbW9zWE1Rdy9iZ3ZzV0hvSkZ5blB4UApHNGUzUjBob2NnbzI0Q2xOQ21YMWFBUms5c1pyN2h0NlVsM1F1d0dMdzZkK2I5emxrUW56TzFXQzc5ekVNU1R0ClRRRzFNT2ZlL2dTVkR3dThTSnpBOHV1Z0pYTktWWkxCZlpaNW41Tk9sOHdpOVVLa1BVUW4wOHo3VWNYVDR5ZnQKZHdrbnZnWDRvMFloUnNQNHpPWDF6eWxObzhqRDhRNlV1SkdQSksrN1JnUm8zVERPV3k4MEZpUzBxRmxrSFdMKwptT0pUWGxzaEpwdHE5b1c1eGx6N1lxTnFwZFVnRmNyTjJLQWNmaGVlNnV3SUFnOFJteTQvRlhRZjhKdXluSG5oClFhVlFnTEpEeHByZTZVNk5EdWg1Y1VsMUZTcWNCUGFPY0x0Q0ViVWg5ckQxajBIdkRnTUUvTTU2TGp1UGdGZlEKMS9xeXlDUkFjc2NCSnVMYjRxcXRUb25tZVZ3T1BBbzBsNXBjcC9JcjRTcTdwM0NML0kwT0o1SEhjcmY3d3JWSgpQVWgzdU1LbWVHVDRyeDdrWlQzQzBXenhUU0loc0lZOU12MVRtelF4MEprQm93c2NYaUYrcXkvUkl5UVgKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQo=" + key: "LS0tLS1CRUdJTiBQUklWQVRFIEtFWS0tLS0tCk1JSUpRd0lCQURBTkJna3Foa2lHOXcwQkFRRUZBQVNDQ1Mwd2dna3BBZ0VBQW9JQ0FRRFV1VWpVRC9nNzFIY2sKSjd0Sy9VdGRURUltV0V5TWRnblZaQXhXRCtQL29QS1RoSTEvallBb0hiaTFFVDZJTmpReUxhUVNFaXBYRXRZNwpzZDFlNUhzcGZpVkY1cFJVTVF3cGRCdzgvODlmcDJpbDVWSTlsRlhrYml5b3NoWTlCMHhZZU9nY0NXNk9MSzF1ClVoRk5DQXBLMzdhT2NNQUxzYW9RTXNNWnJtMU5jTG9wQmtLYndONk1nMURmZUY3b3ZlMEtFQVhFamRtbHlhVVkKcW1qc2xTdEUrYkhZNnd1cENyVEswUlQ0Z1YyT0plcUdzckZPM2tjYmV6dDRKV0xoYTlVN05RVkg0aVoxNExSQgo3UmJHZHQ5VlBhdDFYNC85QmxURlVjU1ptazZ3anI5K3p4NzVhWFphZGkva3p6M1dMVjBQQi85N1R0dnViVUJNCm0zaVl0MTdEU2JCVEU5b1U2TUxUek9vN0hwcTJtRXBUbkd4VUdFWGxldlE0TExqYmZlM1UxTVRCVThBTHhiUUcKRWE5WklTazh5eEw3Zm1pS2ZFQ1NsUGY4eHVWbHpyNnJGRm9mUFN0b2tyOU52Zk5RbFNWVjFqV1dMTFZYWlhlcApjVHJtS1gwQWFDTWVIRURnK2trb0dqcTFoTk03T0E3NytkK3dxSFk3S0U3ZENVQ0FFUS9KZEdlbjhzVWptY0tICmUvZHYzSm1WS1FrejNvU0ZjRzZYRlZCekQrUER0eW9Nb2s4UEdwTUwrUmdybFlCUjJGMWVZa0VNelE4cXZIYzkKNDF2aVZ1M2NqVWQ2WThQU0Y4cHRkYk9OZHRUWSs1Mi9wODRaWXZnb2Rsbk9nbUJoelJuOFMxUFFrRVk0WGM1LwpXZnJ1RDIzaDVHbmVVUkg4NHpjQTV4WkNacWp6SlFJREFRQUJBb0lDQUFmY2lScDlOSmxSY3MyOVFpaTFUN0cwCi9jVFpBb3MyV1lxdlZkMWdYUGEzaGY5NXFKa01LNjVQMnVHbUwzOXRNV1NoVnl6cnl2REkyMjM5VnNjSS9wdzcKOHppd0dzODV1TTlYWVN2SDhHd0NqZFdEc2hSZ2hRUWFKa0JkeElDZzRtdHFuSGxjeDk4dE80T1dPTmwxOEp0dgp4UmxpaFZacFRIV295cGtLWHpPN2RNWExXMjdTSStkaGV2Mm5QeXF1eWpIVEFjT1AwbmxVQ0d2dThFMjkvWWxoCkNQZVJTQzhKSEVGYWxNSFNWaGpJd2ZBVWJvVVJwZU1ZSE15RjVTK2JncGZiajhSbVVUR09DbHRkWGJnYjhJai8KN0hROEFlQkIrYVFKTDVEVnFRN1JWN1ppQlMwR2ZyODlHdXdEMUs4em9mcktPdURkdXpjR2hwZk9MeGpGdmhTOApSQ2Y1Z3BFMzg0aWlHc2tWZC9mZDJLK3NhSmk0L09HbHo0aHhhc1hDcTN1TXB5OTZPNFRrMXZzM3BXdWZNVmJXCnR2d1Mrcjhvbk9uOXZqa3lqOU11eUpId1BpSlNGMUt0ZzhPUU5WMlVST0xXcHlYMWk4Z2xoMXdSelRTQ2diQnMKZ3ZxWkFvaU1pWFh3SlVXN3Zpb0RLZjI0TnZvcjViaVNzeUh0MHVKUVZJaW1iK1prTFJwTWdwRlkyTlcrTnd6LwoxOW9DS2ZUVVpWNkJia09IK0NoOUowLy9hTTRGNnUvMTI4V0UxalJQU05mdWQ0b0dpdGVPNXRsRDNWSXRsb1hlCjNyWVMrcTNuYXU1RStWc2FRZGFVNzhrSnpXYmUrWURmQ1JwWGd6TkloSkMyQ1k5d0RSK3hIaVFwbzdLSHV6dngKUkpuRjhIcGwzdWhIdWxEam44dEpBb0lCQVFEeGxhVVIwN1l6TGF2OVZtamZCenpZMjcwOU9tWnhpa3NtRnlhWApKTkJMQVB3SGdXOEVCUHdKOEprSDhXR1NTekp1OXZGd1JDVEVqZ1J5dWUvS05DWnNmUWF2UDg3dzhablJHaEhjCklHUUV1MFN3bmJzZXFJK1VWa0M5amZjaFE4dlowM0dQTGZ6bWpsSW9PNkNLTVM3TlV2Ynk5MksvOHRVVWRtWWgKMmJJa2N4V0J1RDJoenh3K1ZId3ArWktMQ0FPZi9sOG8vQ20xQ1dZSFNGdVYzTkl3T016Z2FKaExJODJNR08zQwpuODZTMXcweGc2MHB5dUV6L0hXZS9JMFZkRGNsWlgyNC9jalVBb01kQlkvSGY4Tkh2ZUNhZExQeXI3eGpRY2NLClAzN0RhdFRyK2RTZ2RoVkxzUDRRRzVVZEZxNUlMSHoxTXBkb2xXZ2pDSlZqcTZMekFvSUJBUURoYXNYdVRzMDIKNEkvYkRlSGRZSmw2Q1NzVUh2NmJXL3dpYlRhd2dpbDh5RUNWS2x6eFY4eENwWnoxWVhRQlY1YnVvQlArbjZCWApnVHgzTTJHc2R5UU1xdGRCWG9qdGp1czB6ekFNQVQzOWNmdWlHMGR0YXF3eWJMVlEwYThDZnFmMDVyUmZ0ekVmCmtTUDk2d01kVUEyTGdCbnU4akwzOU41UkxtK2RpZUdxeDAwYmJTa3l5UE9HNHIvcDl6KzN6TmVmeUhmbm94bTkKUnQza1RpeGhVNkd4UGhOSnZpWEUrWUpwT0dKVXMvK2dUWWpjUE1zRW9ONHIyR215cUs3S21NZExFa3Y1SHliWgprbmNsV2FMVFlhNEpjMjJUaWZJd01NTWMwaCtBMkJVckdjZFZ6MTA0UXluUFZQZDdXcEszenhqcjRPUHh1YnQ2CjZvTWk2REdRSVNlSEFvSUJBUURTK1YyVHFQRDMxczNaU3VvQXc2Qld2ZWVRbmZ5eThSUFpxdVFQb0oycXNxeG0KblpsbXlEZVhNcDloK1dHOVVhQTBtY0dWeWx6VnJqU2lRRkR4cEFOZVFQMWlkSFh6b3ZveVN2TUg2dDJONkVELwpnRy9XUVZ4S0xkMFI3UFhCL2lQN0VaV2RkWXJqaWF5ajZCYTJPR2RuOWlrbFcvZklLM2Y4QzczN2w5TGoxQUVYCkxOL2QvREh0R1BqcDYwTVgyYUxZeVZzdlBxL3BvdENRVVpkeDA4dFhRM05nRXRmVTN1cDFpNXV2bU1IZEtLTWoKOTV0MDRQRTA1aWVOOVgzOEcyYkJhTldYaFVJcUxCdDJiOUgxWmxVU3hQWnR6TGNObkgwSHJYejJMU2MxMzRrYwpueXdhQ2FWbFdhYzJSL0E3Mi8vTmxkUjJpWDBDWDEvM0lGcmVGUmtUQW9JQkFBbGt0S2pRbWRhZWx3QU8zUW1uCm05MnRBaUdOaFJpZVJheDlscGpXWTdveWNoYUZOR2hPTzFIUHF2SEN4TjNGYzZHd0JBVkpTNW81NVhZbUt2elAKM2kyMDlORmhpaDAwSm5NRjZ6K2swWnQ5STNwRzNyd2RoTjE1RURrMDg3RUw3QjNWZTFDOXhvdEZOaFcvdEZxRgpXbnNrdEcvem9kSVpYeVpNNUJQUmloamV3MFRRVUxZd0Q0M2daeFR0MjdiaUQxNDJNV0R5dUFEZU1pTHdhd01IClJDYXBxbzRaSVdQSzdmZEtoVFo0WmIrZFc0V3A5dC9UZ0U2ZGJ4SWwyMXJQOFFZYzFoT2tpNjduWHBXczNZOG4KYytRcTdqY0d1WlB1aEVMd01xWGcyMGozZ3duOVlTb1dDbWo4Wm0rNmY0Q3ZYWjkrdUtEN0YyZncyOVFaanU4dApvb01DZ2dFQkFPbVVHZ1VoT0tUVys1eEpkZlFKRUVXUncyVFF6Z2l6dSt3aVkzaDYrYXNTejRNY0srVGx6bWxVCmFHT013dFhTUzc0RXIxVmlCVXMrZnJKekFPR21IV0ExZWdtaGVlY1BvaE9ybTh5WkVueVJOSkRhWC9UUXBSUnEKaVdoWENBbjJTWFQxcFlsYVBzMjdkbXpFWnQ3UlVUSkJZZ1hHZXQ4dXFjUXZaVDJZK3N6cHFNV3UzaEpWdmIxdgpZNGRJWE12RG1aV1BPVjFwbHJEaTVoc214VW05TDVtWk1IblllNzFOYkhsaEIxK0VUNXZmWFZjOERzU1RRZWRRCitDRHJKNGQ0em85dFNCa2pwYTM5M2RDRjhCSURESUQyWkVJNCtBVW52NWhTNm82NitOLzBONlp3cXkwc2pKY0cKQ21LeS9tNUpqVzFJWDMxSmZ1UU5Ldm9YNkRFN0Zkaz0KLS0tLS1FTkQgUFJJVkFURSBLRVktLS0tLQo=" sslProtocols: "" # if set, override default Nginx SSL protocols setting - ## cert-manager values - ## If cert-manager is enabled: - ## If genSelfsigned: true: - ## Create a self-signed issuer/clusterIssuer - ## Generate a rootCA using the above issuer. - ## Generate a tls certificate with secret name as: {{ .Release.Name }}-yugaware-tls-cert - ## Else if genSelfsigned: false: - ## Expect a clusterIssuer/issuer to be provided by user - ## Generate a tls cert based on above issuer with secret name as: {{ .Release.Name }}-yugaware-tls-cert - certManager: - enabled: false - genSelfsigned: true - useClusterIssuer: false - clusterIssuer: cluster-ca - issuer: yugaware-ca - ## Configuration for the TLS certificate requested from Issuer/ClusterIssuer - configuration: - duration: 8760h # 90d - renewBefore: 240h # 15d - algorithm: RSA # ECDSA or RSA - # Can be 2048, 4096 or 8192 for RSA - # Or 256, 384 or 521 for ECDSA - keySize: 2048 ## yugaware pod Security Context ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ securityContext: - enabled: true + enabled: false ## fsGroup related values are set at the pod level. fsGroup: 10001 fsGroupChangePolicy: "OnRootMismatch" - ## Expected to have runAsUser values != 0 when - ## runAsNonRoot is set to true, otherwise container creation fails. + ## The following values are set for yugaware and prometheus containers. + ## Setting runAsUser other than 10001 will fail the VM universe deployment flow. runAsUser: 10001 runAsGroup: 10001 runAsNonRoot: true @@ -209,11 +143,9 @@ nginx: resources: requests: - cpu: "0.25" + cpu: 0.25 memory: 300Mi - proxyReadTimeoutSec: 600 - rbac: ## Set this to false if you don't have enough permissions to create ## ClusterRole and Binding, for example an OpenShift cluster. When @@ -229,45 +161,15 @@ ocpCompatibility: # Extra containers to add to the pod. sidecars: [] -## Following two controls for placement of pod - nodeSelector and AZ affinity. -## Note: Remember to also provide a yugaware.StorageClass that has a olumeBindingMode of -## WaitForFirstConsumer so that the PVC is created in the right topology visible to this pod. -## See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#nodeselector -## eg. -## nodeSelector: -## topology.kubernetes.io/region: us-west1 -nodeSelector: {} - -## Affinity to a particular zone for the pod. -## See https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#node-affinity -## eg. -## nodeAffinity: -## requiredDuringSchedulingIgnoredDuringExecution: -## nodeSelectorTerms: -## - matchExpressions: -## - key: failure-domain.beta.kubernetes.io/zone -## operator: In -## values: -## - us-west1-a -## - us-west1-b -zoneAffinity: {} - -## The tolerations that the pod should have. -## See https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ -tolerations: [] - ## Don't want prometheus to scrape nodes and evaluate alert rules in some cases (for example - cloud). prometheus: scrapeNodes: true evaluateAlertRules: true retentionTime: 15d - queryConcurrency: 20 - queryMaxSamples: 5000000 - queryTimeout: 30s resources: requests: - cpu: "2" + cpu: 2 memory: 4Gi ## Prometheus remote write config, as described here: @@ -288,10 +190,8 @@ prometheus: # Arbitrary key=value config entries for application.docker.conf additionalAppConf: - stringConf: {} - nonStringConf: {} - -jdbcParams: "" + stringConf: + nonStringConf: ## Override the APIVersion used by policy group for ## PodDisruptionBudget resources. The chart selects the correct @@ -299,25 +199,3 @@ jdbcParams: "" ## to modify this unless you are using helm template command i.e. GKE ## app's deployer image against a Kubernetes cluster >= 1.21. # pdbPolicyVersionOverride: "v1beta1" -pdbPolicyVersionOverride: "" - -initContainers: - prometheusConfiguration: - resources: - ## https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/#resource-requests-and-limits-of-pod-and-container - ## Use the above link to learn more about Kubernetes resources configuration. - requests: - cpu: "0.25" - memory: 500Mi - - postgresUpgrade: - resources: - requests: - cpu: "0.5" - memory: 500Mi - - postgresInit: - resources: - requests: - cpu: "0.25" - memory: 500Mi diff --git a/index.yaml b/index.yaml index 734892453..efeeaf92e 100644 --- a/index.yaml +++ b/index.yaml @@ -21803,6 +21803,37 @@ entries: - assets/haproxy/haproxy-1.4.300.tgz version: 1.4.300 harbor: + - annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: Harbor + catalog.cattle.io/kube-version: '>=1.20-0' + catalog.cattle.io/release-name: harbor + apiVersion: v1 + appVersion: 2.9.0 + created: "2023-08-30T19:39:38.008119843Z" + description: An open source trusted cloud native registry that stores, signs, + and scans content + digest: 67e02a766502d6227e91fcf93b046df7ab63e9ba3e52da3f4c0791e621d91721 + home: https://goharbor.io + icon: https://raw.githubusercontent.com/goharbor/website/main/static/img/logos/harbor-icon-color.png + keywords: + - docker + - registry + - harbor + maintainers: + - email: yinw@vmware.com + name: Wenkai Yin + - email: hweiwei@vmware.com + name: Weiwei He + - email: yshengwen@vmware.com + name: Shengwen Yu + name: harbor + sources: + - https://github.com/goharbor/harbor + - https://github.com/goharbor/harbor-helm + urls: + - assets/harbor/harbor-1.13.0.tgz + version: 1.13.0 - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: Harbor @@ -26652,6 +26683,58 @@ entries: - assets/kasten/k10-4.5.900.tgz version: 4.5.900 kafka: + - annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: Apache Kafka + catalog.cattle.io/kube-version: '>=1.19-0' + catalog.cattle.io/release-name: kafka + category: Infrastructure + images: | + - name: jmx-exporter + image: docker.io/bitnami/jmx-exporter:0.19.0-debian-11-r57 + - name: kafka-exporter + image: docker.io/bitnami/kafka-exporter:1.7.0-debian-11-r93 + - name: kafka + image: docker.io/bitnami/kafka:3.5.1-debian-11-r35 + - name: kubectl + image: docker.io/bitnami/kubectl:1.25.13-debian-11-r5 + - name: os-shell + image: docker.io/bitnami/os-shell:11-debian-11-r51 + licenses: Apache-2.0 + apiVersion: v2 + appVersion: 3.5.1 + created: "2023-08-30T19:39:34.710902238Z" + dependencies: + - condition: zookeeper.enabled + name: zookeeper + repository: file://./charts/zookeeper + version: 12.x.x + - name: common + repository: file://./charts/common + tags: + - bitnami-common + version: 2.x.x + description: Apache Kafka is a distributed streaming platform designed to build + real-time pipelines and can be used as a message broker or as a replacement + for a log aggregation solution for big data applications. + digest: 9f83c79b99ea486b2e032bd9dc3e3f8888d9aeaf98c827f346a980c49a2f7329 + home: https://bitnami.com + icon: https://svn.apache.org/repos/asf/comdev/project-logos/originals/kafka.svg + keywords: + - kafka + - zookeeper + - streaming + - producer + - consumer + maintainers: + - name: VMware, Inc. + url: https://github.com/bitnami/charts + name: kafka + sources: + - https://github.com/bitnami/charts/tree/main/bitnami/kafka + urls: + - assets/bitnami/kafka-25.1.4.tgz + version: 25.1.4 - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: Apache Kafka @@ -29702,6 +29785,46 @@ entries: - assets/kong/kong-2.3.1.tgz version: 2.3.1 koor-operator: + - annotations: + artifacthub.io/category: storage + artifacthub.io/crds: | + - kind: KoorCluster + version: v1 + name: koorcluster + displayName: Koor Cluster + description: "Resource to control the creation of a Koor Storage Cluster." + artifacthub.io/license: Apache-2.0 + artifacthub.io/operator: "true" + artifacthub.io/operatorCapabilities: basic install + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: Koor Operator + catalog.cattle.io/kube-version: '>=1.19.0' + catalog.cattle.io/release-name: koor-operator + apiVersion: v2 + appVersion: v0.3.6 + created: "2023-08-30T19:39:39.906677918Z" + dependencies: + - alias: certmanager + condition: certmanager.enabled + name: cert-manager + repository: file://./charts/cert-manager + version: v1.12.3 + description: A Helm chart for deploying the Koor Operator to Kubernetes + digest: 13a2870a55b293b57a332ffbc327782f711fa18b9acad23e4bb85475499e489b + icon: https://koor.tech/images/favicon.svg + keywords: + - storage + - operator + - rook + - ceph + kubeVersion: '>=1.19.0' + name: koor-operator + sources: + - https://github.com/koor-tech/koor-operator/ + type: application + urls: + - assets/koor-tech/koor-operator-0.3.6.tgz + version: 0.3.6 - annotations: artifacthub.io/category: storage artifacthub.io/crds: | @@ -30546,6 +30669,33 @@ entries: - assets/avesha/kubeslice-worker-0.4.5.tgz version: 0.4.5 kuma: + - annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: Kuma + catalog.cattle.io/namespace: kuma-system + catalog.cattle.io/release-name: kuma + apiVersion: v2 + appVersion: 2.4.0 + created: "2023-08-30T19:39:40.311031705Z" + description: A Helm chart for the Kuma Control Plane + digest: db80b48cbcdecda71b966fcaf25dee4cc83564d348816edd47d906320a2242b0 + home: https://github.com/kumahq/kuma + icon: https://kuma.io/assets/images/brand/kuma-logo-new.svg + keywords: + - service mesh + - control plane + maintainers: + - email: austin.cawley@gmail.com + name: austince + - email: jakub.dyszkiewicz@konghq.com + name: jakubdyszkiewicz + - email: nikolay.nikolaev@konghq.com + name: nickolaev + name: kuma + type: application + urls: + - assets/kuma/kuma-2.4.0.tgz + version: 2.4.0 - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: Kuma @@ -38788,6 +38938,25 @@ entries: - assets/pixie/pixie-operator-chart-0.0.2501.tgz version: 0.0.2501 polaris: + - annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: Fairwinds Polaris + catalog.cattle.io/kube-version: '>= 1.22.0-0' + catalog.cattle.io/release-name: polaris + apiVersion: v1 + appVersion: "8.5" + created: "2023-08-30T19:39:37.706711558Z" + description: Validation of best practices in your Kubernetes clusters + digest: ef7150827cfaae76e5d19be56306478936a645a6a45d4b45a55fe3d87e603091 + icon: https://polaris.docs.fairwinds.com/img/polaris-logo.png + kubeVersion: '>= 1.22.0-0' + maintainers: + - email: robertb@fairwinds.com + name: rbren + name: polaris + urls: + - assets/fairwinds/polaris-5.14.0.tgz + version: 5.14.0 - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: Fairwinds Polaris @@ -43520,6 +43689,50 @@ entries: - assets/bitnami/redis-17.3.7.tgz version: 17.3.7 redpanda: + - annotations: + artifacthub.io/images: | + - name: redpanda + image: docker.redpanda.com/redpandadata/redpanda:v23.2.7 + - name: busybox + image: busybox:latest + - name: mintel/docker-alpine-bash-curl-jq + image: mintel/docker-alpine-bash-curl-jq:latest + artifacthub.io/license: Apache-2.0 + artifacthub.io/links: | + - name: Documentation + url: https://docs.redpanda.com + - name: "Helm (>= 3.6.0)" + url: https://helm.sh/docs/intro/install/ + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: Redpanda + catalog.cattle.io/kube-version: '>=1.21-0' + catalog.cattle.io/release-name: redpanda + apiVersion: v2 + appVersion: v23.2.7 + created: "2023-08-30T19:39:41.582229198Z" + dependencies: + - condition: console.enabled + name: console + repository: file://./charts/console + version: '>=0.5 <1.0' + - condition: connectors.enabled + name: connectors + repository: file://./charts/connectors + version: '>=0.1.2 <1.0' + description: Redpanda is the real-time engine for modern apps. + digest: 926108e48e7e66a9e8ffa151d15c973bc32a3b19ce5daa47f19a7262fca88570 + icon: https://images.ctfassets.net/paqvtpyf8rwu/3cYHw5UzhXCbKuR24GDFGO/73fb682e6157d11c10d5b2b5da1d5af0/skate-stand-panda.svg + kubeVersion: '>=1.21-0' + maintainers: + - name: redpanda-data + url: https://github.com/orgs/redpanda-data/people + name: redpanda + sources: + - https://github.com/redpanda-data/helm-charts + type: application + urls: + - assets/redpanda/redpanda-5.2.0.tgz + version: 5.2.0 - annotations: artifacthub.io/images: | - name: redpanda @@ -49893,6 +50106,32 @@ entries: - assets/sumologic/sumologic-2.17.0.tgz version: 2.17.0 sysdig: + - annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: Sysdig + catalog.cattle.io/release-name: sysdig + apiVersion: v1 + appVersion: 12.16.0 + created: "2023-08-30T19:39:41.984082553Z" + deprecated: true + description: Sysdig Monitor and Secure agent + digest: 11edb74fc942bc09757854bd2f42d15caf3f0e55b95cd9992d37898cd8fdb457 + home: https://www.sysdig.com/ + icon: https://avatars.githubusercontent.com/u/5068817?s=200&v=4 + keywords: + - monitoring + - security + - alerting + - metric + - troubleshooting + - run-time + name: sysdig + sources: + - https://app.sysdigcloud.com/#/settings/user + - https://github.com/draios/sysdig + urls: + - assets/sysdig/sysdig-1.16.9.tgz + version: 1.16.9 - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: Sysdig @@ -54514,6 +54753,60 @@ entries: - assets/hashicorp/vault-0.22.0.tgz version: 0.22.0 wordpress: + - annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: WordPress + catalog.cattle.io/kube-version: '>=1.19-0' + catalog.cattle.io/release-name: wordpress + category: CMS + images: | + - name: apache-exporter + image: docker.io/bitnami/apache-exporter:1.0.1-debian-11-r29 + - name: os-shell + image: docker.io/bitnami/os-shell:11-debian-11-r51 + - name: wordpress + image: docker.io/bitnami/wordpress:6.3.1-debian-11-r0 + licenses: Apache-2.0 + apiVersion: v2 + appVersion: 6.3.1 + created: "2023-08-30T19:39:36.48688784Z" + dependencies: + - condition: memcached.enabled + name: memcached + repository: file://./charts/memcached + version: 6.x.x + - condition: mariadb.enabled + name: mariadb + repository: file://./charts/mariadb + version: 13.x.x + - name: common + repository: file://./charts/common + tags: + - bitnami-common + version: 2.x.x + description: WordPress is the world's most popular blogging and content management + platform. Powerful yet simple, everyone from students to global corporations + use it to build beautiful, functional websites. + digest: 1d1cedd3729010a13c8b1efff88075536fb2ade3fd95cd8e3c54c8f6a88dbcfc + home: https://bitnami.com + icon: https://s.w.org/style/images/about/WordPress-logotype-simplified.png + keywords: + - application + - blog + - cms + - http + - php + - web + - wordpress + maintainers: + - name: VMware, Inc. + url: https://github.com/bitnami/charts + name: wordpress + sources: + - https://github.com/bitnami/charts/tree/main/bitnami/wordpress + urls: + - assets/bitnami/wordpress-17.1.4.tgz + version: 17.1.4 - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: WordPress @@ -58225,6 +58518,30 @@ entries: urls: - assets/yugabyte/yugabyte-2.16.0.tgz version: 2.16.0 + - annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: YugabyteDB + catalog.cattle.io/kube-version: '>=1.18-0' + catalog.cattle.io/release-name: yugabyte + apiVersion: v1 + appVersion: 2.14.12.0-b19 + created: "2023-08-30T19:39:42.403878335Z" + description: YugabyteDB is the high-performance distributed SQL database for building + global, internet-scale apps. + digest: 6fd9e82d92922591903b6de88b3ec130251720f3db162a60b3b6458c71288476 + home: https://www.yugabyte.com + icon: https://avatars0.githubusercontent.com/u/17074854?s=200&v=4 + maintainers: + - email: ram@yugabyte.com + name: Ram Sri + - email: arnav@yugabyte.com + name: Arnav Agarwal + name: yugabyte + sources: + - https://github.com/yugabyte/yugabyte-db + urls: + - assets/yugabyte/yugabyte-2.14.12.tgz + version: 2.14.12 - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: YugabyteDB @@ -58693,6 +59010,27 @@ entries: urls: - assets/yugabyte/yugaware-2.16.0.tgz version: 2.16.0 + - annotations: + catalog.cattle.io/certified: partner + catalog.cattle.io/display-name: YugabyteDB Anywhere + catalog.cattle.io/kube-version: '>=1.18-0' + catalog.cattle.io/release-name: yugaware + apiVersion: v1 + appVersion: 2.14.12.0-b19 + created: "2023-08-30T19:39:42.445707961Z" + description: YugaWare is YugaByte Database's Orchestration and Management console. + digest: 6b685d9fde8cdc5e0236e0a4e1cebd09e8d505a8d616af90ce5fa8d075a65cf8 + home: https://www.yugabyte.com + icon: https://avatars0.githubusercontent.com/u/17074854?s=200&v=4 + maintainers: + - email: ram@yugabyte.com + name: Ram Sri + - email: arnav@yugabyte.com + name: Arnav Agarwal + name: yugaware + urls: + - assets/yugabyte/yugaware-2.14.12.tgz + version: 2.14.12 - annotations: catalog.cattle.io/certified: partner catalog.cattle.io/display-name: YugabyteDB Anywhere