From a46a478021bd23356b42fa37ef7ed3aebb29eb3f Mon Sep 17 00:00:00 2001 From: Jayendra Date: Mon, 22 Jul 2019 15:03:02 +0530 Subject: [PATCH 1/3] Changed endpoint to call Push Notification Service --- .../biz/nynja/airdrop/constants/ServiceAPIs.java | 2 +- .../nynja/airdrop/controller/AirdropController.java | 13 +++++++++++-- .../biz/nynja/airdrop/util/RestTemplateUtil.java | 9 ++++----- src/main/resources/application.yml | 3 ++- 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/main/java/biz/nynja/airdrop/constants/ServiceAPIs.java b/src/main/java/biz/nynja/airdrop/constants/ServiceAPIs.java index b52b90b..8bcdaf2 100644 --- a/src/main/java/biz/nynja/airdrop/constants/ServiceAPIs.java +++ b/src/main/java/biz/nynja/airdrop/constants/ServiceAPIs.java @@ -8,7 +8,7 @@ public interface ServiceAPIs { } interface pushService { - String pushNotification = "/dummy/pushNotification"; + String pushNotification = "/chat"; } } diff --git a/src/main/java/biz/nynja/airdrop/controller/AirdropController.java b/src/main/java/biz/nynja/airdrop/controller/AirdropController.java index 8b1ad15..76d33d0 100644 --- a/src/main/java/biz/nynja/airdrop/controller/AirdropController.java +++ b/src/main/java/biz/nynja/airdrop/controller/AirdropController.java @@ -198,13 +198,22 @@ public class AirdropController { return "Push Notification Test done : " + basic; } - @GetMapping("/") public String index() { + return "Airdrop Service"; + } + + @GetMapping("/test/rest/push") + public String restPush() { + + System.out.println(""); + System.out.println("Sending Push Notification"); restTemplateUtil.sendPushNotification("3dd830d4-ffa3-4327-9866-9f8d8efbb23c", 0000); + System.out.println(""); - return "Airdrop Service"; + + return "Push Notification Sent"; } diff --git a/src/main/java/biz/nynja/airdrop/util/RestTemplateUtil.java b/src/main/java/biz/nynja/airdrop/util/RestTemplateUtil.java index 7dec831..b53f09d 100644 --- a/src/main/java/biz/nynja/airdrop/util/RestTemplateUtil.java +++ b/src/main/java/biz/nynja/airdrop/util/RestTemplateUtil.java @@ -13,7 +13,6 @@ import org.springframework.stereotype.Component; import org.springframework.util.LinkedMultiValueMap; import org.springframework.util.MultiValueMap; import org.springframework.web.client.RestTemplate; -import org.springframework.web.util.UriComponentsBuilder; import java.util.Base64; @@ -109,6 +108,9 @@ public class RestTemplateUtil { System.out.println("nynjaP2PUserName : " + nynjaP2PUserName); System.out.println("nynjaP2PPassword : " + nynjaP2PPassword); System.out.println(""); + System.out.println("pushNotification : "); + System.out.println(pushNotification); + System.out.println(""); String authCredentials = nynjaP2PUserName + ":" + nynjaP2PPassword; byte[] authCredentialsBytes = authCredentials.getBytes(); @@ -119,10 +121,7 @@ public class RestTemplateUtil { httpHeaders.add("Authorization", "Basic " + new String(base64Credentials)); HttpEntity request = new HttpEntity<>(httpHeaders); - - - ResponseEntity response = restTemplate.exchange("http://35.198.110.223:8888/chat/" + accountId + "/qoinpro?sender=" + nynjaP2PSender + "&message=Your verification OTP is " + otp +"", HttpMethod.GET, request, String.class); - + ResponseEntity response = restTemplate.exchange(pushNotification + "/" + accountId + "/qoinpro?sender=" + nynjaP2PSender + "&message=Your verification OTP is " + otp + "", HttpMethod.GET, request, String.class); System.out.println(""); System.out.println("Response : "); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 8a3b4dd..23ba912 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -37,7 +37,7 @@ grpc: # REST PROPERTIES rest: pushService: - address: "http://localhost:8082" + address: "http://35.198.110.223:8888" qoinPro: address: "https://apis.qoinpro.com" @@ -83,6 +83,7 @@ authentication: sender: qoin_pro # This will be send in request parameters. # QOIN-PRO TOKEN AUTHENTICATION DETAILS +# localhost:8080/airdrop/oauth/token -> Use this url to get access Token. for calling Airdrop APIs users: qoinPro: client: qoinPro -- GitLab From 590a0bbb231557e7510ff778d7238be03e791530 Mon Sep 17 00:00:00 2001 From: jitender Date: Mon, 22 Jul 2019 20:11:37 +0530 Subject: [PATCH 2/3] added sealed secrets, chart 0.3.0 --- charts/airdrop-service/Chart.yaml | 2 +- ...yaml => qoinpro-header-sealedsecrets.yaml} | 29 ++++++++++--------- .../qoinpro-users-sealedsecrets.yaml | 16 ++++++++++ .../templates/qoinpro-users-secrets.yaml | 13 --------- .../templates/serviceentry-qoinpro.yaml | 18 ++++++++++++ .../templates/virtualservice-qoinpro.yaml | 16 ++++++++++ charts/airdrop-service/values.yaml | 8 ++--- 7 files changed, 70 insertions(+), 32 deletions(-) rename charts/airdrop-service/templates/{qoinPro-header-secrets.yaml => qoinpro-header-sealedsecrets.yaml} (61%) create mode 100644 charts/airdrop-service/templates/qoinpro-users-sealedsecrets.yaml delete mode 100644 charts/airdrop-service/templates/qoinpro-users-secrets.yaml create mode 100644 charts/airdrop-service/templates/serviceentry-qoinpro.yaml create mode 100644 charts/airdrop-service/templates/virtualservice-qoinpro.yaml diff --git a/charts/airdrop-service/Chart.yaml b/charts/airdrop-service/Chart.yaml index 6e289d7..c3f1ed9 100644 --- a/charts/airdrop-service/Chart.yaml +++ b/charts/airdrop-service/Chart.yaml @@ -2,4 +2,4 @@ apiVersion: v1 appVersion: "1.0" description: Airdrop service. name: airdrop-service -version: 0.2.0 +version: 0.3.0 diff --git a/charts/airdrop-service/templates/qoinPro-header-secrets.yaml b/charts/airdrop-service/templates/qoinpro-header-sealedsecrets.yaml similarity index 61% rename from charts/airdrop-service/templates/qoinPro-header-secrets.yaml rename to charts/airdrop-service/templates/qoinpro-header-sealedsecrets.yaml index 9da1a4a..b3e8bd1 100644 --- a/charts/airdrop-service/templates/qoinPro-header-secrets.yaml +++ b/charts/airdrop-service/templates/qoinpro-header-sealedsecrets.yaml @@ -1,14 +1,15 @@ -{{- if .Values.authentication.qoinPro.header.value}} -apiVersion: v1 -kind: Secret -metadata: - name: {{ template "airdrop-service.fullname" . }}-qoinpro-key - labels: - app: {{ template "airdrop-service.name" . }} - chart: {{ template "airdrop-service.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -type: Opaque -data: - qoinPro: {{ .Values.authentication.qoinPro.header.value | b64enc | quote }} -{{- end }} +{{- if .Values.authentication.qoinPro.header.value}} +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + name: {{ template "airdrop-service.fullname" . }}-qoinpro-key + labels: + app: {{ template "airdrop-service.name" . }} + chart: {{ template "airdrop-service.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + encryptedData: + # QoinPro header secrets. + qoinPro: {{ .Values.authentication.qoinPro.header.value }} +{{- end }} \ No newline at end of file diff --git a/charts/airdrop-service/templates/qoinpro-users-sealedsecrets.yaml b/charts/airdrop-service/templates/qoinpro-users-sealedsecrets.yaml new file mode 100644 index 0000000..303224b --- /dev/null +++ b/charts/airdrop-service/templates/qoinpro-users-sealedsecrets.yaml @@ -0,0 +1,16 @@ +{{- if .Values.users.qoinPro.secret}} +apiVersion: bitnami.com/v1alpha1 +kind: SealedSecret +metadata: + name: {{ template "airdrop-service.fullname" . }}-qoinpro-user + labels: + app: {{ template "airdrop-service.name" . }} + chart: {{ template "airdrop-service.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + encryptedData: + # QoinPro header secrets. + secret: {{ .Values.users.qoinPro.secret }} + password: {{ .Values.users.qoinPro.password }} +{{- end }} \ No newline at end of file diff --git a/charts/airdrop-service/templates/qoinpro-users-secrets.yaml b/charts/airdrop-service/templates/qoinpro-users-secrets.yaml deleted file mode 100644 index 3df5b23..0000000 --- a/charts/airdrop-service/templates/qoinpro-users-secrets.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: v1 -kind: Secret -metadata: - name: {{ template "airdrop-service.fullname" . }}-qoinpro-user - labels: - app: {{ template "airdrop-service.name" . }} - chart: {{ template "airdrop-service.chart" . }} - release: {{ .Release.Name }} - heritage: {{ .Release.Service }} -type: Opaque -data: - secret: {{ .Values.users.qoinPro.secret | b64enc | quote }} - password: {{ .Values.users.qoinPro.password | b64enc | quote }} \ No newline at end of file diff --git a/charts/airdrop-service/templates/serviceentry-qoinpro.yaml b/charts/airdrop-service/templates/serviceentry-qoinpro.yaml new file mode 100644 index 0000000..c382ab7 --- /dev/null +++ b/charts/airdrop-service/templates/serviceentry-qoinpro.yaml @@ -0,0 +1,18 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: ServiceEntry +metadata: + name: {{ template "airdrop-service.fullname" . }}-qoinpro + labels: + app: {{ template "airdrop-service.name" . }} + chart: {{ template "airdrop-service.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + hosts: + - {{ .Values.external.hosts.qoinPro }} + location: MESH_EXTERNAL + ports: + - number: 443 + name: https + protocol: HTTPS + resolution: DNS \ No newline at end of file diff --git a/charts/airdrop-service/templates/virtualservice-qoinpro.yaml b/charts/airdrop-service/templates/virtualservice-qoinpro.yaml new file mode 100644 index 0000000..fc98eb7 --- /dev/null +++ b/charts/airdrop-service/templates/virtualservice-qoinpro.yaml @@ -0,0 +1,16 @@ +apiVersion: networking.istio.io/v1alpha3 +kind: VirtualService +metadata: + name: {{ template "airdrop-service.fullname" . }}-qoinpro + labels: + app: {{ template "airdrop-service.name" . }} + chart: {{ template "airdrop-service.chart" . }} + release: {{ .Release.Name }} + heritage: {{ .Release.Service }} +spec: + hosts: + - {{ .Values.external.hosts.qoinPro }} + https: + - route: + - destination: + host: {{ .Values.external.hosts.qoinPro }} \ No newline at end of file diff --git a/charts/airdrop-service/values.yaml b/charts/airdrop-service/values.yaml index 2cea37b..781bedb 100644 --- a/charts/airdrop-service/values.yaml +++ b/charts/airdrop-service/values.yaml @@ -81,16 +81,16 @@ authentication: qoinPro: header: name: "x-api-key" - value: "NEzzAZLl0Ma1Jos1bqqfk2TFHTywQ0Qo9IAFaO0y" + value: "" # QOIN-PRO TOKEN AUTHENTICATION DETAILS users: qoinPro: client: "qoinPro" - secret: "qoinProSecret" - userName: "qoinPro" - password: "qoinProPassword" + secret: "" + userName: "" + password: "" readinessProbe: exec: -- GitLab From a56e66797d83a9332fd8a7ebcac5c6f7e4afc263 Mon Sep 17 00:00:00 2001 From: jitender Date: Mon, 22 Jul 2019 20:32:49 +0530 Subject: [PATCH 3/3] updated release files with sealedsecrets --- releases/dev/airdrop-service.yaml | 17 ++++++++++++----- releases/staging/airdrop-service.yaml | 17 ++++++++++++----- 2 files changed, 24 insertions(+), 10 deletions(-) diff --git a/releases/dev/airdrop-service.yaml b/releases/dev/airdrop-service.yaml index dfa2253..e05ac89 100644 --- a/releases/dev/airdrop-service.yaml +++ b/releases/dev/airdrop-service.yaml @@ -63,26 +63,33 @@ spec: # REST PROPERTIES rest: pushService: - address: "http://localhost:8082" + address: "http://35.198.110.223:8888" qoinPro: address: "https://apis.qoinpro.com" + # External Hosts + external: + hosts: + qoinPro: "apis.qoinpro.com" # LOGGING PROPERTIES logging: level: - root: WARN + root: INFO # QOIN PRO HEADER authentication: qoinPro: header: name: "x-api-key" - value: "NEzzAZLl0Ma1Jos1bqqfk2TFHTywQ0Qo9IAFaO0y" + # sealedsecret + value: "AgA5cMx5F5Pcx1gmBbwXm5LKOrsJf2R+0rTWHu3xmzaMxcEtj2Ov52I5EvoU40JqcUxwtV577PhkYuvGUZXTD407LiW2cduzyOuBBfc/FxV2Dr6ynvK8i+pLmRnKva86KThsVRSLA+ScRQS/h7GRMX1/OUm6da66qDeDsOzD1eB78MmNMq5WgiADGLI6kCzlzPfARo7ccMX0nnqQNuTJLsMbyjyi/qpy7BSShsUMxSliTOVFAQWNaxAz9qy36MIkM1+14J4OgcRP5zfLUxY+SFWeBRofkywjQYrsRG58jFDQenesmww/40sseZ8ZXJRjH4A+XyOxac1Hp22wGM8nv0RcCCopstKJuCLgxXjwN3RdeDfT4wW1vwZApvkz0CcqGOWb4NLoY2p8EsJYrYai1B4DkHyBo8pqKGLONOTD+culVWCipiH8vwrR0xqOjY6kOClf92r+I5Z4xfLnip8pA0ds3HyiUFskq12a3gZIjE4n3fhsfp94+BBJa9TbQY0LOqJ5QUbhiYjD+6/3lXxUr7xpZF+gHeMzXavJOBPQ+vRuKwHxa93JKIqkcGTqIt8tEHN7geshKjVMRd8EOctj7MsXQc/rny7AveEunHzRCWx4S/W0d7vDK8rtUIwmIXEY24WJeP8FJKvu4wfyZh93NfWpQKOwOkc7mc80KcDW6jCw91ec+3M88P8XSG2klTmoPqMd6bJaGuaJTn+F2x6vIO5rfPshkZ3Nb27OB3qE6ignsnPGerXCFVCk" # QOIN-PRO TOKEN AUTHENTICATION DETAILS users: qoinPro: client: "qoinPro" - secret: "qoinProSecret" + # sealedsecret + secret: "AgAk4triZRIrMV9UJe7j/4pu75rgGss1/nw/Lg/6kjx5DRHyr+/K3fvGGEqyln/rqdN7UMnjzBh5S4i922YIDI2Kq7PansE9IOJC34CpSXzPFjMeHL51QA0Fakq0p08m0BC/PgZu9n3/xndJhU0FDvyqmxnIsJX4hbe+C8+OX4i/prMev+Wy/kauadgUgeVhLJRmiX1fKvVH987c+RQTJBBpBUaBuli0KUeg9kmOUkLZ4okHgwoCeqH8/8GPAJWH1Dnv2rWrkNl8ktfrZXS7doN87afPoq1waaICOVz63pVvlbiapQ1K+Nos7h/0vphlV8RWzprCC3aQhiTsK1eEAKcc5i0WOJSOAkoBd+tBkKm2By9m1OuIWUYv+bPaNZP4apKOWfPERE8sXgdUJndcPtZ6R8BArho2PolJFzxdX7lPrJeYdsBj1N30SaFOMUoZt9LkRNU5LdORmDjy7bH7Gqsnvm70IgRvy0X2snBMhiCRZJ1tMhHesOfsoTEErFHdJRQQuQXpQ3V3MfI8QiTXjV3FnEYhOVA4DulORylTl47h8ElkRROw+T43GOYdN5H3mDaZ9bZg4eiDHyYlroBs6yZiXoE3iWPDP21tyWBXdAjmpK7h0xuy2RgjS+hIj0+ko4KrAhMgb8FbWCJUVILJBh/+edB/5zOccFEkRMrDCNi5tVEMZSBlLo/pCK2p6/eN99KL0YKbyIzmm/duHbW/" userName: "qoinPro" - password: "qoinProPassword" + # sealedsecret + password: "AgBZT9xKdEHVoHe4+tClMAFZgX0+ByihYOKb2JoefQQ0GN+YlWDZKZV5eCXIfHj6vJboy4dJ6J5/zWhyjdmVXNU1kKd8f7UpGpuPpem1SQH0YEFYQecJYOqjKE5wgGtm9mW40IjXJ090PkNWijRffrweZ+ST95gYON/D4N3DfJNc7nFEfK+uyjaGEiz7xqCynzFji/KwHhIMbNpvltB6ZDJ1oQrP+595p7i0i52IhqQPXrErzra7XzmHIemHbBQwNGchgAiUUCR67Sjaumh0//jg20TVGeaknxCsAF4y9rKvp6pFXmb6oknS1HhaEyIpTrSnXOqs1gqw/1Ez7LWl7fqGc6AuR4CRgsf035o6TZ2BB5KeBGRcUx+FhwxArqd/dSGWLWUeZUrREuIcJveD7qOicCymusgvNfq/3VgzzSAW0Cck/JBGqMdlGqHB+PHrW829h44dSjppQyA7QHJv62pz/NJqI6kawyUEfr8y/LEyXCxNoAp6SsMWFulo6xJiGis99n4vSFmCBRLdIUf0TSiZut0gLzfaZnCNsj1hfmGsm1a8oIbD/y3gfBjVKZIKkMvYk1RfGsjoWfEM2T3TyRxR9kXY0S6vBiIxArNsj11orDgf6qz27Dw9IBEu9q6e4+i60nM7pmGgTJHab6O33M9rsMxJDXxFFgzB27wR/RvXSzsMuI4RRR0Zz4jGjkB2XSJFwJvNey3qsOGYjkmwaDY=" # readinessProbe readinessProbe: exec: diff --git a/releases/staging/airdrop-service.yaml b/releases/staging/airdrop-service.yaml index 3a0c753..512bedc 100644 --- a/releases/staging/airdrop-service.yaml +++ b/releases/staging/airdrop-service.yaml @@ -63,26 +63,33 @@ spec: # REST PROPERTIES rest: pushService: - address: "http://localhost:8082" + address: "http://35.198.110.223:8888" qoinPro: address: "https://apis.qoinpro.com" + # External Hosts + external: + hosts: + qoinPro: "apis.qoinpro.com" # LOGGING PROPERTIES logging: level: - root: WARN + root: INFO # QOIN PRO HEADER authentication: qoinPro: header: name: "x-api-key" - value: "NEzzAZLl0Ma1Jos1bqqfk2TFHTywQ0Qo9IAFaO0y" + # sealedsecret + value: "AgCZ+Ry2bVS5hkcWUp2dMqBBZwZCU/LygywUYHeFqYzssYYxMaZxTziyU8DTJxOesGxpKCWmb17mdFwmwrAcgTL4JJnibMNVsxMSN10wT9iRHFc+HgynXqU0112qoN5LBPvqNJz2zMitEf9u8KIe/lxwCd0WUCfdfk14Egt9BvK05Nus22j5qtNMOfS3+VpxGvfxF+d4kWGUm1uR+Ac0FLVNqDe3cgfOtw4gz+rsz9jETm5C5tW+sN5msW/iIZUQxfq2kUPdeNpv+07TKj5OQw1+TK0nTjYnTWkCTtgm0MzoK6327hmJ/DgKSjek8PWqxLp11CMPrmo5/xf9/n3PZ40N+tzS5I1jKnP0mZLdkybqxyvJkOnzAWy6HFrhd1aMMgVNVjvmdrWGmFNAwTrVgFMFSkPzQxVzJNQNM6AFhwooeUAqOAuWAoZiF40Zrg16Q2NBcUMrSqhn9zlCurmF1+DHhjgHPI5Vp8JXAqTsgUgx9Bz5M3t82PjTU+gOZeySkNnSewmkuUyniikBGwafF/sQEPsHyueCN0cWi2kqiO35JfO2PuRJvLj9GrvHc/oFLok6lWqtMejOoBkO+OxAOgJjy3WkwDqab4w73mDciUjI5Tu28+JaUt4kQIOjTAXOMH4D3rB5ck1NCRbV9c/ZUiTFP1dYa14SBNAPgRrmDDrMNq4+a7pKd5qaUq6p7XSQPt5YYzs5R1kpQCyMAmsxaZbyMKd2FQtylHjJPKXacfCP6bZTEtVGXeHa" # QOIN-PRO TOKEN AUTHENTICATION DETAILS users: qoinPro: client: "qoinPro" - secret: "qoinProSecret" + # sealedsecret + secret: "AgCZLGAR7zs9QGqAcXhu50g4I+zebR8sMINvA5cUWf2WekgtnOSJ7wP9pJQSkueARoWtwRX9gE8ei/lnyBg4BZR+ctqPY+YQwPU8o72fm481I8HM3mzTqe0Nsu0SP9uzfL/XXR//OEWGWBeKl7vvTyS7lLVLw4yTwcfLZE6oZfA60HCB9vFBmeXGuiYlxZLj/DvbJRAkuYKpCsKdGNOzq95lZR73vTfbXCh+VAn73jkisvyvDPgPqAkcJVCA/OCvPQtfPP1EJyxutIm1NdO/vufvecVtH/uSPopmVRvfjTkyCX65iDPE9Lr2kOW6WiUo0XBqxi4fxpBMR9HjjgIKOE7R9eEUz4/DtjSqcgjwOOkTNa7Jt+Od1xlxKdp7Z9CC07WPt52PtXZpdMdJmZQqOgfH6pvnqWW9CiNWJhgYe74XLU7NcHUCgYx4jEfYbv9+f+gYR0F4dBeQpsrd9bViTw22lolZPAnIRnUKyv/6ftRGy74IQP3r1OXb2izApSipKZYtUnwMFEJgW1P/l0RCsAdrx2vIVzb6qetOQRO8ysRrSB8LQxO/TFPxZ/LvnAuDXW4Owm9UW0/HQu86RaSX3nKgu+Of3HXQAuZcaFGw5EJHA20hcClwRz/cleVAn4jVqF6MiX0zc3PTp91fYHw27ePsgK2DnYgXbzOUce6zL1ouor9XXizqZwYuKL7wljXn0/rAyZuBiJT3zqM+WoQjNS4Kqz4IU8rbwUZ5bMq9" userName: "qoinPro" - password: "qoinProPassword" + # sealedsecret + password: "AgBxc+/q5gSCquoyNg2ADBKuyoNM0zqXBZKGLqNvdP7KwXeIn3RN/cury3NeQ4Gm5YQKDGAZ9+Tl3IUISskfPrKyKNbVQI5GzYJqaHUO1q2z1nx++kKGPNXkpjrAh/e4/LYmJwW5uUfeSXrHCqHB0YwBv9D81VdXZ8wGTGn/EJ1OW0by3OXrlOQjScUj/tJjF8efzY8qwZKhjECMyGAd2akyAOT0zd+2G9sye9tC34OXX8pmQk8+30JWy9DZ5oTsOTGBiK1ouFeHIZKdH5y4DE7uLwHDiaOGz0OHpYpH36vSqB7nK6T3X/XRUsYtACUuTYlQrnisMzQBWE9n6lXolcbyhVCbfIArQGB0q4ETNJbiiGh0+9VNzvgI/H13GqaqGYSoKA9bvlCxVBKpWJ68qLlf2YGmPgU2tOXSW6YW2q6GdBLx8Z4sbDMfu73nKSsf1ozcEOUvuDMbYrwXcQxR8oYPg8oRnb97o2rKj5YqEoQWwX/VKUXpRC+f7pYe6TYgz4jox1cN90Hvi3riPRG80j8MI8vwwcnnzXjyDlBd42o6GF0AR3DRXtCb13NEMCrHekcsQW977cdZXEuRAQM6Cl1o0Y/MVKowcFaE+wEFkqdpM2P4A35jdZm6Pw28yWtryYR23Sbhgdclsm0nYXAjBm9frCX2tHpCLcMyJKVVO2JEDScQUIEqxsEbjPkY7dQbZd59IXOhIVhJLZkFdsb8" # readinessProbe readinessProbe: exec: -- GitLab