Skip to content

Commit 3a4841f

Browse files
hfilmorehmcts-jenkins-a-to-c[bot]DanCatchpole
authored
ADOP-2450 v2 - Flexserver Configuration for Preview (#934)
* [ADOP-2450] Added wait on healthpoints to smoke tests * [ADOP-2450] trying preview elasticsearch config matching finrem * [ADOP-2411] Chart upgrades (Java 5.2) --------- Co-authored-by: hmcts-jenkins-a-to-c <62422075+hmcts-jenkins-a-to-c[bot]@users.noreply.github.com> Co-authored-by: Daniel Catchpole <daniel.catchpole@justice.gov.uk> Co-authored-by: Daniel Catchpole <daniel@dcatcher.me>
1 parent f2834d6 commit 3a4841f

File tree

5 files changed

+120
-40
lines changed

5 files changed

+120
-40
lines changed

Jenkinsfile_CNP

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@ def secrets = [
3737
secret('idam-data-store-client-secret','IDAM_OAUTH2_DATA_STORE_CLIENT_SECRET'),
3838
secret('idam-data-store-system-user-username','IDAM_DATA_STORE_SYSTEM_USER_USERNAME'),
3939
secret('idam-data-store-system-user-password','IDAM_DATA_STORE_SYSTEM_USER_PASSWORD'),
40+
secret('ccd-case-document-am-api-s2s-secret', 'CCD_CASE_DOCUMENT_AM_API_SECRET'),
4041
],
4142
'adoption-${env}' :[
4243
secret('definition-importer-username', 'DEFINITION_IMPORTER_USERNAME'),
@@ -342,6 +343,7 @@ def setCommonEnvVariables() {
342343

343344
def uploadCoreCaseDataDefinitions() {
344345
dir("${WORKSPACE}/bin"){
346+
sh "./wait-for.sh definition-store"
345347
sh "./add-roles.sh"
346348
sh "./process-and-import-ccd-definition.sh"
347349
}

README.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,20 @@ The project contains the following plugins:
165165
./gradlew dependencyUpdates -Drevision=release
166166
```
167167

168+
## Connect to Preview Database
169+
Hostname = adoption-preview.postgres.database.azure.com
170+
Port = 5432
171+
Database Name = pr-<number>-data-store
172+
Username = hmcts
173+
SSL (Parameters) = require
174+
175+
Password can be found in Kubernetes Services -> preview environment -> workloads
176+
-> select deployment name adoption-cos-api-pr-<number>-ccd-data-store-api
177+
-> select pod -> select container (overview) -> environment variables tab
178+
-> click postgres link for DATA_STORE_DB_PASSWORD -> click eye to decrypt
179+
180+
To view the databases:
181+
`kubectl get flexibleserversdatabases -n adoption`
168182

169183
## License
170184

bin/wait-for.sh

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
#!/usr/bin/env bash
2+
3+
set -eu
4+
5+
selected_service=${@}
6+
7+
echo "params: ${selected_service}"
8+
echo "CASE_API_URL: ${CASE_API_URL}"
9+
10+
service_base_urls=${CASE_API_URL}
11+
if [[ "${selected_service}" == 'definition-store' ]]; then
12+
service_base_urls=${DEFINITION_STORE_URL_BASE}
13+
fi
14+
15+
echo "service_base_urls: ${service_base_urls}"
16+
17+
max_health_check_attempts=30
18+
19+
function checkHealth {
20+
21+
for service_base_url in ${service_base_urls}; do
22+
uploadResponse=$(curl -k -w "\n%{http_code}" --silent ${service_base_url}/health)
23+
upload_http_code=$(echo "$uploadResponse" | tail -n1)
24+
echo $'\n' Http status: ${upload_http_code} >&2
25+
if [[ "${upload_http_code}" -ne '200' ]]; then
26+
exit 1
27+
fi
28+
done
29+
}
30+
31+
until $(checkHealth); do
32+
current_health_check_attempt=$((${current_health_check_attempt:-1} + 1))
33+
34+
if [ ${current_health_check_attempt} -gt ${max_health_check_attempts} ]; then
35+
echo -e "\nMax number of attempts reached"
36+
exit 1
37+
fi
38+
39+
if [ ${current_health_check_attempt} -eq 2 ]; then
40+
printf 'Awaiting healthy services'
41+
else
42+
printf '.'
43+
fi
44+
45+
sleep 10
46+
done

charts/adoption-cos-api/Chart.yaml

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,15 +3,15 @@ appVersion: "1.0"
33
description: A Helm chart for adoption-cos-api App
44
name: adoption-cos-api
55
home: https://github.com/hmcts/adoption-cos-api
6-
version: 0.0.52
6+
version: 0.0.53
77
maintainers:
88
- name: HMCTS Adoption team
99
dependencies:
1010
- name: java
11-
version: 5.0.0
11+
version: 5.2.1
1212
repository: 'https://hmctspublic.azurecr.io/helm/v1/repo/'
1313
- name: ccd
14-
version: 8.0.27
14+
version: 9.2.0
1515
repository: 'https://hmctspublic.azurecr.io/helm/v1/repo/'
1616
tags:
1717
- ccd-idam-pr
@@ -20,10 +20,14 @@ dependencies:
2020
repository: 'https://hmctspublic.azurecr.io/helm/v1/repo/'
2121
condition: xui-webapp.enabled
2222
- name: ccd-case-document-am-api
23-
version: 1.7.3
23+
version: 1.7.14
2424
repository: 'https://hmctspublic.azurecr.io/helm/v1/repo/'
2525
condition: ccd-case-document-am-api.enabled
2626
- name: idam-pr
27-
version: 2.2.7
27+
version: 2.3.0
2828
repository: 'https://hmctspublic.azurecr.io/helm/v1/repo/'
2929
condition: idam-pr.enabled
30+
- name: postgresql
31+
version: 1.0.2
32+
repository: 'https://hmctspublic.azurecr.io/helm/v1/repo/'
33+
condition: postgresql.enabled

charts/adoption-cos-api/values.preview.template.yaml

Lines changed: 49 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ java:
4242
alias: SEND_GRID_API_KEY
4343
- name: sendgrid-notify-from-email
4444
alias: SEND_GRID_NOTIFY_FROM_EMAIL
45+
4546
idam-pr:
4647
enabled: true
4748
releaseNameOverride: ${SERVICE_NAME}-ccd-idam-pr
@@ -75,6 +76,9 @@ ccd:
7576
ccdAdminWebIngress: admin-web-${SERVICE_FQDN}
7677
ccdApiGatewayIngress: gateway-${SERVICE_FQDN}
7778
s2sUrl: http://rpe-service-auth-provider-aat.service.core-compute-aat.internal
79+
postgresHostname: "adoption-preview.postgres.database.azure.com"
80+
postgresSecret: postgres
81+
databaseNamePrefix: "pr-${CHANGE_ID}-"
7882

7983
ccd-api-gateway-web:
8084
nodejs:
@@ -93,7 +97,7 @@ ccd:
9397
disableKeyVaults: true
9498
imagePullPolicy: Always
9599
environment:
96-
DATA_STORE_DB_HOST: ${SERVICE_NAME}-postgresql
100+
DATA_STORE_DB_HOST: '{{ tpl .Values.global.postgresHostname $}}'
97101
DATA_STORE_IDAM_KEY: ${DATA_STORE_S2S_KEY}
98102
DATA_STORE_DEFAULT_LOG_LEVEL: info
99103
DATA_STORE_S2S_AUTHORISED_SERVICES: ccd_data,ccd_gw,ccd_admin,ccd_ps,adoption_cos_api,adoption_web,xui_webapp,ccd_case_document_am_api,fis_cos_api
@@ -113,27 +117,30 @@ ccd:
113117

114118
am-role-assignment-service:
115119
java:
120+
disableKeyVaults: true
116121
keyVaults:
117122
am:
118123
secrets:
119124
- role-assignment-service-LD-SDK-KEY
125+
120126
ccd-definition-store-api:
121127
java:
122128
disableKeyVaults: true
123129
imagePullPolicy: Always
124130
environment:
125-
DEFINITION_STORE_DB_HOST: ${SERVICE_NAME}-postgresql
131+
DEFINITION_STORE_DB_HOST: '{{ tpl .Values.global.postgresHostname $}}'
126132
DEFINITION_STORE_IDAM_KEY: ${DEFINITION_STORE_S2S_KEY}
127133
IDAM_USER_URL: https://idam-web-public.aat.platform.hmcts.net
128134
ELASTIC_SEARCH_ENABLED: true
129135
ELASTIC_SEARCH_HOST: ${SERVICE_NAME}-es-master
130136
ingressHost: ccd-definition-store-${SERVICE_FQDN}
137+
131138
ccd-user-profile-api:
132139
java:
133140
disableKeyVaults: true
134141
imagePullPolicy: Always
135142
enviroment:
136-
USER_PROFILE_DB_HOST: ${SERVICE_NAME}-postgresql
143+
USER_PROFILE_DB_HOST: '{{ tpl .Values.global.postgresHostname $}}'
137144
ingressHost: ccd-user-profile-api-${SERVICE_FQDN}
138145

139146
ccd-admin-web:
@@ -142,11 +149,10 @@ ccd:
142149
image: hmctspublic.azurecr.io/ccd/admin-web:latest
143150
ingressHost: admin-web-${SERVICE_FQDN}
144151
environment:
145-
USER_PROFILE_DB_HOST: ${SERVICE_NAME}-postgresql
152+
USER_PROFILE_DB_HOST: '{{ tpl .Values.global.postgresHostname $}}'
146153
IDAM_ADMIN_WEB_SERVICE_KEY: ${ADMIN_S2S_KEY}
147154
IDAM_OAUTH2_AW_CLIENT_SECRET: ${ADMIN_WEB_IDAM_SECRET}
148155

149-
150156
importer:
151157
userprofile:
152158
enabled: true
@@ -160,36 +166,10 @@ ccd:
160166
- adoption_as_caseworker_admin@mailinator.com|ADOPTION|A58|Draft
161167
- civil_unspecified@mailinator.com|ADOPTION|A58|Draft
162168

163-
postgresql:
164-
persistence:
165-
enabled: false
166169
elasticsearch:
167170
nameOverride: ${SERVICE_NAME}-es
168171
clusterName: "es"
169172
replicas: 1
170-
minimumMasterNodes: 1
171-
antiAffinity: "soft"
172-
esJavaOpts: "-Xmx512m -Xms512m"
173-
# Their tests delete the pod after succeeding, we pass --logs to the test command which fail if the pod has already been deleted
174-
# The tests do pass, at least as of 2023-01-19
175-
tests:
176-
enabled: false
177-
extraEnvs:
178-
- name: discovery.type
179-
value: single-node
180-
- name: cluster.initial_master_nodes
181-
value: ""
182-
- name: action.auto_create_index
183-
value: .security*,.watches,.triggered_watches,.watcher-history-*,.logstash_dead_letter,.ml*
184-
persistence:
185-
enabled: false
186-
ingress:
187-
enabled: false
188-
className: traefik
189-
# hosts:
190-
# - host: es-${SERVICE_FQDN}
191-
# paths:
192-
# - path: /
193173

194174
logstash:
195175
image: "hmctspublic.azurecr.io/imported/logstash/logstash"
@@ -203,12 +183,27 @@ ccd:
203183
volumeMounts:
204184
- name: logstash-lib
205185
mountPath: /logstash-lib
186+
extraEnvs:
187+
- name: DATA_STORE_USER
188+
value: hmcts
189+
- name: DATA_STORE_PASS
190+
value: hmcts
191+
- name: DATA_STORE_URL
192+
value: "jdbc:postgresql://adoption-preview.postgres.database.azure.com:5432/{{ .Values.global.databaseNamePrefix }}data-store?sslmode=require&stringtype=unspecified"
193+
- name: ES_HOSTS
194+
value: "${SERVICE_NAME}-es-master"
206195
extraVolumes: |
207196
- name: logstash-lib
208197
emptyDir: {}
198+
- name: database-secret-volume
199+
secret:
200+
secretName: postgres
209201
extraVolumeMounts: |
210202
- name: logstash-lib
211203
mountPath: /usr/share/logstash/ccd
204+
- name: database-secret-volume
205+
mountPath: /etc/logstash/secrets
206+
readOnly: true
212207
logstashConfig:
213208
logstash.yml: |
214209
http.host: 0.0.0.0
@@ -224,10 +219,11 @@ ccd:
224219
01_input.conf: |
225220
input {
226221
jdbc {
227-
jdbc_connection_string => "jdbc:postgresql://{{ .Release.Name }}-postgresql:5432/data-store?stringtype=unspecified"
222+
jdbc_connection_string => "jdbc:postgresql://adoption-preview.postgres.database.azure.com:5432/pr-${CHANGE_ID}-data-store?sslmode=require&stringtype=unspecified"
228223
jdbc_user => "hmcts"
229-
jdbc_password => "hmcts"
224+
jdbc_password_filepath => "/etc/logstash/secrets/PASSWORD"
230225
jdbc_validate_connection => true
226+
jdbc_validation_timeout => "1"
231227
jdbc_driver_library => "/usr/share/logstash/ccd/postgresql.jar"
232228
jdbc_driver_class => "org.postgresql.Driver"
233229
jdbc_default_timezone => "UTC"
@@ -371,6 +367,7 @@ xui-webapp:
371367
ccd-case-document-am-api:
372368
enabled: true
373369
java:
370+
disableKeyVaults: true
374371
releaseNameOverride: ${SERVICE_NAME}-ccd-case-document-am-api
375372
imagePullPolicy: Always
376373
image: hmctspublic.azurecr.io/ccd/case-document-am-api:latest
@@ -379,7 +376,24 @@ ccd-case-document-am-api:
379376
CASE_DOCUMENT_S2S_AUTHORISED_SERVICES: ccd_case_document_am_api,ccd_gw,xui_webapp,ccd_data,bulk_scan_processor,dg_docassembly_api,bulk_scan_orchestrator,adoption_cos_api,adoption_web
380377
DM_STORE_BASE_URL: http://dm-store-aat.service.core-compute-aat.internal
381378
CCD_DATA_STORE_API_BASE_URL: http://adoption-cos-api-pr-${CHANGE_ID}-ccd-data-store-api
382-
IDAM_USER_URL: https://idam-api.aat.platform.hmcts.net
383-
IDAM_S2S_URL: http://rpe-service-auth-provider-aat.service.core-compute-aat.internal
379+
IDAM_API_URL: https://idam-api.aat.platform.hmcts.net
380+
IDAM_OIDC_URL: https://idam-web-public.aat.platform.hmcts.net
381+
OIDC_ISSUER: https://forgerock-am.service.core-compute-idam-aat.internal:8443/openam/oauth2/hmcts
382+
S2S_URL: http://rpe-service-auth-provider-aat.service.core-compute-aat.internal
383+
CASE_DOCUMENT_AM_API_S2S_SECRET: ${CCD_CASE_DOCUMENT_AM_API_SECRET}
384384

385385
LA_PORTAL_BASEURL: https://adoption-web-pr-${CHANGE_ID}.service.core-compute-preview.internal/la-portal/kba-case-ref
386+
387+
postgresql:
388+
enabled: true
389+
flexibleserver: adoption-preview
390+
setup:
391+
databases:
392+
- name: "pr-${CHANGE_ID}-data-store"
393+
- name: "pr-${CHANGE_ID}-definition-store"
394+
- name: "pr-${CHANGE_ID}-user-profile"
395+
- name: "pr-${CHANGE_ID}-draftstore"
396+
- name: "pr-${CHANGE_ID}-payment"
397+
- name: "pr-${CHANGE_ID}-evidence"
398+
- name: "pr-${CHANGE_ID}-annotation"
399+
- name: "pr-${CHANGE_ID}-role-assignment"

0 commit comments

Comments
 (0)