From c7254972cf6c22b3fe87882087439f20199a3dab Mon Sep 17 00:00:00 2001 From: chenzhiguo5 Date: Wed, 16 Oct 2024 20:59:04 +0800 Subject: [PATCH] Synchronization URL support configuration --- deploy/all-cr.yaml | 4 +++- deploy/joylive-injector/Chart.yaml | 2 +- deploy/joylive-injector/config/config.yaml | 8 ++++---- .../joylive-injector/templates/configmap.yaml | 6 ++++-- .../joylive-injector/templates/deployment.yaml | 2 ++ deploy/joylive-injector/values.yaml | 14 ++++++++++---- deploy/packages/joylive-injector-1.3.1.tgz | Bin 0 -> 14888 bytes deploy/packages/joylive-injector-1.4.0.tgz | Bin 14781 -> 0 bytes 8 files changed, 24 insertions(+), 12 deletions(-) create mode 100644 deploy/packages/joylive-injector-1.3.1.tgz delete mode 100644 deploy/packages/joylive-injector-1.4.0.tgz diff --git a/deploy/all-cr.yaml b/deploy/all-cr.yaml index 1527638..1cfe18e 100644 --- a/deploy/all-cr.yaml +++ b/deploy/all-cr.yaml @@ -524,7 +524,7 @@ metadata: app.kubernetes.io/instance: joylive-injector app: joylive-injector spec: - replicas: 1 + replicas: 2 selector: matchLabels: app: joylive-injector @@ -562,6 +562,8 @@ spec: path: /readyz periodSeconds: 10 initialDelaySeconds: 5 + resources: + {} volumeMounts: - mountPath: /etc/kubernetes/ssl/ name: dynamic-admission-control-certs diff --git a/deploy/joylive-injector/Chart.yaml b/deploy/joylive-injector/Chart.yaml index 713be5b..aa6eec3 100644 --- a/deploy/joylive-injector/Chart.yaml +++ b/deploy/joylive-injector/Chart.yaml @@ -15,7 +15,7 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 1.4.0 +version: 1.3.1 keywords: - joylive diff --git a/deploy/joylive-injector/config/config.yaml b/deploy/joylive-injector/config/config.yaml index 38c875b..d053c5a 100644 --- a/deploy/joylive-injector/config/config.yaml +++ b/deploy/joylive-injector/config/config.yaml @@ -56,8 +56,8 @@ agent: profile: null sync: liveSpace: - type: ${CONFIG_LIVE_SPACE_API_TYPE:file} # [file,multilive] - url: ${CONFIG_LIVE_SPACE_API_URL:http://api.live.local:9090/v1} + type: ${CONFIG_LIVE_SPACE_API_TYPE:{{ .Values.sync.liveSpace.type }}} # [file,multilive] + url: ${CONFIG_LIVE_SPACE_API_URL:{{ .Values.sync.liveSpace.url }}} #spacesUrl: ${CONFIG_LIVE_SPACE_API_URL}/workspaces #spaceUrl: ${CONFIG_LIVE_SPACE_API_URL}/workspaces/${space_id}/version/${space_version} #serviceUrl: ${CONFIG_LIVE_SPACE_API_URL}/services/${service_name}/version/${service_version} @@ -71,8 +71,8 @@ agent: laneSpace: type: file microservice: - type: ${CONFIG_SERVICE_API_TYPE:file} - url: ${CONFIG_SERVICE_API_URL:http://api.jmsf.local:8080/v1} + type: ${CONFIG_SERVICE_API_TYPE:{{ .Values.sync.microservice.type }}} + url: ${CONFIG_SERVICE_API_URL:{{ .Values.sync.microservice.url }}} headers: ${CONFIG_SERVICE_API_HEADERS} interval: 5000 timeout: 3000 diff --git a/deploy/joylive-injector/templates/configmap.yaml b/deploy/joylive-injector/templates/configmap.yaml index 2f4772e..ded1165 100644 --- a/deploy/joylive-injector/templates/configmap.yaml +++ b/deploy/joylive-injector/templates/configmap.yaml @@ -6,8 +6,10 @@ metadata: labels: {{ include "joylive-injector.selectorLabels" . | nindent 4 }} data: {{- $root := . }} - {{- range $path, $_ := .Files.Glob "config/*" }} + {{- range $path, $_ := $root.Files.Glob "config/*" }} {{- $fileName := base $path }} {{ $fileName }}: | -{{ $.Files.Get $path | indent 4 }} +{{- $fileContent := $root.Files.Get $path }} +{{- $parsedContent := tpl $fileContent $root }} +{{ $parsedContent | indent 4 -}} {{- end }} \ No newline at end of file diff --git a/deploy/joylive-injector/templates/deployment.yaml b/deploy/joylive-injector/templates/deployment.yaml index 94ae26b..d81aef0 100644 --- a/deploy/joylive-injector/templates/deployment.yaml +++ b/deploy/joylive-injector/templates/deployment.yaml @@ -42,6 +42,8 @@ spec: path: /readyz periodSeconds: 10 initialDelaySeconds: 5 + resources: + {{- toYaml .Values.resources | nindent 12 }} volumeMounts: {{- toYaml .Values.VolumeMounts | nindent 12 }} {{- with .Values.imagePullSecrets }} diff --git a/deploy/joylive-injector/values.yaml b/deploy/joylive-injector/values.yaml index b06877a..e322225 100644 --- a/deploy/joylive-injector/values.yaml +++ b/deploy/joylive-injector/values.yaml @@ -2,7 +2,7 @@ # This is a YAML-formatted file. # Declare variables to be passed into your templates. -replicas: 1 +replicas: 2 namespace: joylive @@ -28,13 +28,19 @@ imagePullSecrets: [] nameOverride: "" fullnameOverride: "" -service: - type: ClusterIP - port: 80 serviceAccount: create: true name: joylive-injector +sync: + liveSpace: + type: file + url: http://api.live.local:9090/v1 + headers: ${CONFIG_LIVE_SPACE_API_HEADERS} + microservice: + type: file + url: http://api.jmsf.local:8080/v1 + #caBundle: $ {CA_BUNDLE} caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUdKRENDQkF5Z0F3SUJBZ0lVU3VsRVQxWGhqSk5jeDJBdFVCa3ZtSlBBNDRJd0RRWUpLb1pJaHZjTkFRRU4KQlFBd2dha3hDekFKQmdOVkJBWVRBa05PTVJBd0RnWURWUVFJRXdkQ1pXbHFhVzVuTVJBd0RnWURWUVFIRXdkQwpaV2xxYVc1bk1TSXdJQVlEVlFRS0V4bEVlVzVoYldsaklFRmtiV2x6YzJsdmJpQkRiMjUwY205c01Tc3dLUVlEClZRUUxFeUpFZVc1aGJXbGpJRUZrYldsemMybHZiaUJEYjI1MGNtOXNJRk5sWTNWeWFYUjVNU1V3SXdZRFZRUUQKRXh4RWVXNWhiV2xqSUVGa2JXbHpjMmx2YmlCRGIyNTBjbTlzSUVOQk1CNFhEVEkwTURZeE1qQTRNekV3TUZvWApEVE0wTURZeE1EQTRNekV3TUZvd2dha3hDekFKQmdOVkJBWVRBa05PTVJBd0RnWURWUVFJRXdkQ1pXbHFhVzVuCk1SQXdEZ1lEVlFRSEV3ZENaV2xxYVc1bk1TSXdJQVlEVlFRS0V4bEVlVzVoYldsaklFRmtiV2x6YzJsdmJpQkQKYjI1MGNtOXNNU3N3S1FZRFZRUUxFeUpFZVc1aGJXbGpJRUZrYldsemMybHZiaUJEYjI1MGNtOXNJRk5sWTNWeQphWFI1TVNVd0l3WURWUVFERXh4RWVXNWhiV2xqSUVGa2JXbHpjMmx2YmlCRGIyNTBjbTlzSUVOQk1JSUNJakFOCkJna3Foa2lHOXcwQkFRRUZBQU9DQWc4QU1JSUNDZ0tDQWdFQXpDRStnZWorUkFOV2Z1NDhRQnF5Ry9HUVFQVFUKeVFHV29jZHVIQ0x4WUVrNUtIL1NNVHZsbGpWaERGOWxENEVyTnQ0Nk95QnBzOTBiTG5aWDJKR3hrdFdmcVM5aAo4RUY3NXUycU9QcWhjMTd0dkowNTFrb2ZxZmVQOVcvbUtudkhpMlBEak1nMk9MbDBJWG5GazJOVDFtUFd6bXZaCkEvS1ZBVzNCcGIrOEg3djZBR2hDNSsvK0M1UlRCMnhaTVFuUmdXd3dmRHdRTzd4Qml0cEdEZXovWGpnN0JmcmYKYkNGekdPQTJvRzVTbk1YNzhOOHNNVEJuRmliLzNmWG5EQ1k4RVdsa0xpaG5pcXg2N3lLWkZSYlBEZy9COGNqWgoyK3RWc2pORUk2VUJhczQvNXUySGNuWStGNGV0cGwzdkNKZHNHbEpUeml1eWN4bTc0N1RuZi9sQ2Z6T3gzNVJKCmRSWWpoQlVRak1acDRhaUtCZ3BqMkxtdS9NV25qQURjemVkbVVlWWJCUEEyUGV4MFI1RHNTeFQyOE90V0RkS3QKZHhiSTAvZEhoT2pZbDl6T1MzMkdsRlhKSFNQM1cwR0tTSFVhMUp4bjFncURpM2MrTUNEVUZFTzFVWTVSMnFlUQpxY3ZkdUhxd3owdHdpTTd1VE1ySVlndUkzVUNkRUdxcjNwd0dpQURIbkcvT1pIMHRhTUFTbXVmVk1KWGIvTjZmCjM2ZURxNHpEOGlpbjBYTUs4WWtONFVKZkFKYUlFeU11RU1qUndSYUhPUlU3d1ZKakJEVWNwcitrU3ZkWDAzOHYKVGNObWYvTjU4QzFzUm1KeURDYmE3aW1qakE3RDh0ZSt3UnVnZUlURzhyRENOOEVqQVFVVEhJQTk5NWQ3cStETQpSNXU4ZStEU1dXRDdHK3NDQXdFQUFhTkNNRUF3RGdZRFZSMFBBUUgvQkFRREFnRUdNQThHQTFVZEV3RUIvd1FGCk1BTUJBZjh3SFFZRFZSME9CQllFRkJ4UWxqNlYyMHU3SWg2RUYwVEs3KzFyWkgrNk1BMEdDU3FHU0liM0RRRUIKRFFVQUE0SUNBUUFlS2FVcm1TMWdOeXp0dzM1a3FzYU9sWGV0ekJwUFlIc2F4azVHV1JjR0lQSUZmd212ZzZKUAptanRiLzI3Y0FXY0V3QTZlQUpFYmw2Nm9Ic3lOWUNkcmZheUg0M010Y1lTaUV3RVhCS2JhU3dBVWdXZi9CelNaCkFEa3daMEo4bWZXSnQ3NE1BTHl0Mk56VXJpUjJKcmhoS2p4TWJMN2pMZnRJaGZyRGJ1NnJXb2FUNWZMUUFMSEgKa3kveXNaZlJYcVJ1MXJTdldva1VUY201cGIwWVljRE84aWs4Y041VkJmWENRYjYvUkhVUjI2OUNpdllYU0tHLwpTdjdCTkpmckV0U3U0V01ya01nVmo0NmZvQUpiMGFKdFhzLyt0bzBjWDlaSG5hMXR2OFlXZ2JScWJPRnJhSk44ClFPTHNtcW55Yk1Tcjdnd0o0Q3B6c3VMNWh4TEtZZnozQWJlek5scXFiNzZkbE1mYlA4bzJRL1lITXptS2JkWmcKS2JzeTBzSmFBZEtURkYrRzluYlpBbEI3V3RkazNLOTFGNGRxUUpOUzZyZVBKVE9QSWZaajFmS3N2eXRmd3YzcwpPYjNyY2tPeTE2WXFVZEtsNVB5SzI0RjVZMXRhQlp3T0MzODdxcWpaRS9JNGhHdFhFZVp5aTUwWmpWS1VkZkhCCnNYc1VzcmNtQ3h2cXViRDF0K1R2UmVqNHBpMkZLem1MWFFRTXVJNTlJWHRlN3dSYUxDVENNWVdvcGZHeXZBdDQKM1hHSm4rKzZ4UVV4V01qcUhMbUdyQWFNU1ZhWnYvL3dzVzBFanJsdFVPcXI5NkJkNXllOFFXRmdlV21EUlVvUgpWMlZZZWhRelVOT1NaN0VZeU5NckxlWXJXcXBSeXgxaDRNV2kzem5XNVBqNEZjTGhaTWd0blE9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg== diff --git a/deploy/packages/joylive-injector-1.3.1.tgz b/deploy/packages/joylive-injector-1.3.1.tgz new file mode 100644 index 0000000000000000000000000000000000000000..37ca35b01225c57ae6cb85077d270ccd70c4d0b2 GIT binary patch literal 14888 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

X2;>Mh$P$ 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 M zb_l1~Qs8>56iMd9y+RRtOA+0h*EXlq1PSRMHf!a3j}wQyo!BRPK&Orwic@j}OhstQ z4@IRDm%du~regc8#)MqkWUkZMZ!dIiZSR?|ZQ0e*Hx+x5i|4jHcH#?N^MNr9kvn&K z4(I!B)HNyfIH7SSRJn&zLy>DeRe0DF9&)1C6U(7L#ZPiNfk6yPu$gSvt9fwi1NVwp}9V`l|@DuPoQzD`)@@z-^Pao`O5y6by+&vZQ3+-XvF zj<^=37lLv#GR73nu^BHMqV7-(uM zwhWT%+1EHG5lLDILsQRsY)nTZcWZC&d-~?X2tzM%Kiou3khT47Uv7T~7n|P}ys+SQ zP+Jk0t=9<-!{yeb-@r3B;}+uT77jCD0|PtD>GspTfLR0s&tJQIM4vYFO^8O@Z`T>S zneT|r$8Z`18JC$L9Q!!9BpKHfWF{Gq8AL)jD>l=;;%rnZakhPhgD{gEXF$_GLYjDw$S4uG5tnPOQPc$sz2;08bHflXwt;NU7H$ zG2BT0Z;95co^={MNj}`cGt&>JFxz6#6lLYCb11v#yCK%Y>oGhRdoowOrmA#y+#MF1 z`EMtBGg0ourqk)}Ac|(o>?$Rr=vSud{NIpOV7~)BQ;3 zTn8sg(OtBWf9uVZt3a=o+lfh~!|~4KRnCmrcz-216LoANrN>TtpTKe2|$;*_MbOWO)!RXb%G#z3(8xpL&rm_H%z3q%K zh2W;v4W{c0}e1|jxS1B-jiPHEH4N6XcG5Kc$w##9v&65K|+bvbG2=!Wk)spD}q zIcD0=8ZTJ$x&a*rlYBQ?TO|$TX4nZkuIt4teseL$bn}AgZi?KTTQZ$7!SZe`Hy5!k zr+A9~QhD}}p#!D2fB?tL0QS!>TxfJ%me3||AW%ASO zgnj$8`I@M7H#zz$mEBqD-df29Qa5?8shSY0X?x_}8f?QQ+Y^n~09V98=$m?YK)k=c zO4yeKC1F3_7BHRh%OUlm>gKHg@1TcX3nNMxyY86a^%~-ex?uWPzdAzKXT~tF_7*31 zCuPkE1ZZOs2QHamKcD`%1zK{VluzCX%qQ-}L7s;ui59A2GS}a$nSsTd1gpLo-a0n# z1TrthJGUaf@Nr<)Ol{K`haOX#%sI?x^=cx8>8Y|31$kG2!z*_2;{gkhTw4wcX(!5YZD zyA4k`4UN1H?YxPw6Pg#xeAUPCPe@c4>IU}j20G$J4cD$P^EB8M#rMLdyZzO#9Zx%LLbJa&jOrAcX zu%o-kbjBYYDKdZj!O_3@X70mX@6bSp&PPYltb9ZvJerO_I*O0>j=mXl;)ls~w;eMG zv4j2O$o!+Ds~Yfnjc4R9-T1+Z|0Ipbk|Ao7N;ck&`m#8 z*GC^6>BK+E=p);ZWDId)D|-kn)AmSmT$5Na=L2$4oNVx`y2SOXYbX&ycfn_l7he)S zs$qtSYn^QP?mQCKu@d^?C~{vGim@va!st$@Cb*^!O3T;*_M@Zt_`1`JR5C&8b-0J; zXR^$R!al)YNrV~D)Vn7)v9S(4vOg$y<$$RTe=gnIAn0oTwV;`fmZT5xIvXWPrT%M0^r2h!bt6j zwes=1b8hkE$!1vGM(S$gOq4kJ=mz4ZS<1)v9$%OQ=hrf%d>qS=J5viPo94)A8+BmDERnU%0uYK{aQYbl-3u8 z8M+}PlDWc%;L1IDZJ~0^()G%V0=MC!VFuCq{1Ei++2CQLDak!?SUzUxmjKS21Yd`H z1UCoZMgmohx_5?{j6Xo)8Yzem=n$Yv2$-z&nSc{ai z^K(w9apKWS=?_)c30#8DQrM|x64w`V3HHCaBV;~IFP;46l?m|rsbu%<(GO3qfcWra zr>+lA)=j;p>0+yi0Y+jL z^3fih*H37t_l|z^-s7$8d2;eDdb}0YPfj+88PW0N_+2x?R2FuvnlYs4^NWc8N?D0uZ1nM%D}7hr0=>} z3dV?UWm|Tx*+|VDUOx8m1?A(51Cs3K>{qydEt5|YlyV=Q>@35+`5M-LSJ(eO3Qi8Z zbMkQKL6aBS7QAKsUu3Vm|5;!QZ|{G3BVqq_8R(gKb8W=c=bxrQ=-O*P{CMZkyz=fR zbR0KKpAU@3Z|ZkIuzx(pPTrc1@F+Qth=Ff*^yoZO%F~;>=646&p{IA&x4@5+r&bQX z&J*7|lOU2bB6bB$8yrUyGYH#Pk~-^miaav)At@ht11T__@svP+H!Zh$0df0c=XU3E z=k3y2V(Sn;LA`k`-u19^cHRU9X(yVZ(Drt>T~sMExr{6+u(^k92Vv^$yt#q2z5FA4 z9GDpgJ3@4)-fti8N#Y3A6b%$_B?sBPWQ@|*QSJp58fHNG*z<9Kop7^z44w3?!u%d+ z3HuQkDlptBLF-)z%E!7pcFffVcCfy>D}J~lq}GSBiPTQ69^Zv*!zJb8s7`9?WZ=z` zXA1UmcU>RHTi#_VbCuwlJ9O8!r;ZsePvU`Yj$(W06BNx5CxJOWhQ4l?A=bmGk58ay z9>)!Fk}KP6^v=fKZ>QSi1S<$L4xpPc`~uw*4eaC^zyws%#BDFcm!}z+5;;lU-07F} zRMIKitXJr=?w^R7rgMS)q}+w?+Uccx$$?sOV_JNaNd?o9ZHCb>xSZl3jJj?gY&Di3 z@$G~06If_JL(`$E(8i<+1N?^jD(aQsIO>Eu^;T9c?q^QOn@L!UvunCG%kh$j^&NIY zI57Q)A>wNq-HWSIZXFKuKDF`5?m{n;TlQ zHvUhy;E_0+Zs7QYDjtcmt$a+qsjfj_y}#{rNE%*2VJ-dK3##QV zJLU{0#9v=!diOR*JQ4NcZiUAw?t7851ATklz>0U!?>e;N%sYe29R(4m-(_?i#NbL~ z0xo;fpNyPr%ye|+RlT$w)Z-_=dk5{mrQwSHZ#oDsUeCQh>u}roKf^Hl_dl1|xBCAZ z348B9;b>CC35#v6SuImXEX@{=>Ebb4l$p~q`+m8=<_mOzrI~+Ce^93BqqhwCHoOgQ X!`tw?75={f009607JqWl0Mq~goX|I1