@@ -9,6 +9,7 @@ variables:
99 DASHBOARD_IMAGE_TAG : ' main'
1010 PIVCAC_CI_SHA : ' sha256:04f6efe81f49a29ab112faad41e096220af5ffca3b66ea2486e1d1611afff215'
1111 CI : ' true'
12+ APPLICATION_MANIFEST : k8files/application.yaml
1213
1314default :
1415 image : ' ${ECR_REGISTRY}/pivcac/ci@${PIVCAC_CI_SHA}'
@@ -306,139 +307,29 @@ review-app:
306307 - kubectl config get-contexts
307308 - export CONTEXT=$(kubectl config get-contexts | grep reviewapp | awk '{print $1}' | head -1)
308309 - kubectl config use-context "$CONTEXT"
309- - |-
310- export IDP_CONFIG=$(cat <<EOF
311- {
312- "kubernetesReviewApp": "true",
313- "postgres": {
314- "sslmode": "prefer",
315- "name": "idp",
316- "host": "$CI_ENVIRONMENT_SLUG-login-chart-pg.review-apps"
317- },
318- "postgresWorker": {
319- "sslmode": "prefer",
320- "name": "idp",
321- "host": "$CI_ENVIRONMENT_SLUG-login-chart-pg.review-apps"
322- },
323- "railsOffline": "true",
324- "redis": {
325- "irsAttemptsApiUrl": "redis://$CI_ENVIRONMENT_SLUG-login-chart-redis.review-apps:6379/2",
326- "throttleUrl": "redis://$CI_ENVIRONMENT_SLUG-login-chart-redis.review-apps:6379/1",
327- "url": "redis://$CI_ENVIRONMENT_SLUG-login-chart-redis.review-apps:6379"
328- },
329- "assetHost": "https://$CI_ENVIRONMENT_SLUG.reviewapp.identitysandbox.gov",
330- "domainName": "$CI_ENVIRONMENT_SLUG.reviewapp.identitysandbox.gov",
331- "loginDatacenter": "true",
332- "loginDomain": "identitysandbox.gov",
333- "loginEnv": "$CI_ENVIRONMENT_SLUG",
334- "loginHostRole": "idp",
335- "loginSkipRemoteConfig": "true",
336- "pivcacServiceUrl": "https://$CI_ENVIRONMENT_SLUG.reviewapp.pivcac.identitysandbox.gov/",
337- "pivcacVerifyTokenUrl": "https://$CI_ENVIRONMENT_SLUG.pivcac.reviewapp.identitysandbox.gov/",
338- "dashboardUrl": "https://$CI_ENVIRONMENT_SLUG-dashboard.reviewapp.identitysandbox.gov"
339- }
340- EOF
341- )
342- - |-
343- export WORKER_CONFIG=$(cat <<EOF
344- {
345- "kubernetesReviewApp": "true",
346- "postgres": {
347- "sslmode": "prefer",
348- "name": "idp",
349- "host": "$CI_ENVIRONMENT_SLUG-login-chart-pg.review-apps"
350- },
351- "postgresWorker": {
352- "sslmode": "prefer",
353- "name": "idp",
354- "host": "$CI_ENVIRONMENT_SLUG-login-chart-pg.review-apps"
355- },
356- "railsOffline": "true",
357- "redis": {
358- "irsAttemptsApiUrl": "redis://$CI_ENVIRONMENT_SLUG-login-chart-redis.review-apps:6379/2",
359- "throttleUrl": "redis://$CI_ENVIRONMENT_SLUG-login-chart-redis.review-apps:6379/1",
360- "url": "redis://$CI_ENVIRONMENT_SLUG-login-chart-redis.review-apps:6379"
361- },
362- "assetHost": "https://$CI_ENVIRONMENT_SLUG.reviewapp.identitysandbox.gov",
363- "domainName": "$CI_ENVIRONMENT_SLUG.reviewapp.identitysandbox.gov",
364- "loginDatacenter": "true",
365- "loginDomain": "identitysandbox.gov",
366- "loginEnv": "$CI_ENVIRONMENT_SLUG",
367- "loginHostRole": "worker",
368- "loginSkipRemoteConfig": "true",
369- "pivcacServiceUrl": "https://$CI_ENVIRONMENT_SLUG.pivcac.reviewapp.identitysandbox.gov/",
370- "pivcacVerifyTokenUrl": "https://$CI_ENVIRONMENT_SLUG.pivcac.reviewapp.identitysandbox.gov/"
371- }
372- EOF
373- )
374- - |-
375- export PIVCAC_CONFIG=$(cat <<EOF
376- {
377- "kubernetesReviewApp": "true",
378- "clientCertS3Bucket": "login-gov-pivcac-public-cert-reviewapps.894947205914-us-west-2",
379- "postgres": {
380- "sslmode": "prefer",
381- "name": "idp",
382- "host": "$CI_ENVIRONMENT_SLUG-login-chart-pivcac-pg.review-apps"
383- },
384- "idpHost": "$CI_ENVIRONMENT_SLUG.reviewapp.identitysandbox.gov",
385- "domainName": "$CI_ENVIRONMENT_SLUG.pivcac.reviewapp.identitysandbox.gov"
386- }
387- EOF
388- )
389- - |-
390- export DASHBOARD_CONFIG=$(cat <<EOF
391- {
392- "kubernetesReviewApp": "true",
393- "postgres": {
394- "sslmode": "prefer",
395- "name": "dashboard",
396- "host": "$CI_ENVIRONMENT_SLUG-login-chart-dashboard-pg.review-apps"
397- },
398- "newrelic": {
399- "enabled": "false"
400- },
401- "samlSpIssuer": "https://$CI_ENVIRONMENT_SLUG-dashboard.reviewapp.identitysandbox.gov",
402- "idpUrl": "https://$CI_ENVIRONMENT_SLUG.reviewapp.identitysandbox.gov",
403- "idpSpUrl": "https://$CI_ENVIRONMENT_SLUG.reviewapp.identitysandbox.gov",
404- "postLogoutUrl": "https://$CI_ENVIRONMENT_SLUG-dashboard.reviewapp.identitysandbox.gov",
405- "domainName": "$CI_ENVIRONMENT_SLUG-dashboard.reviewapp.identitysandbox.gov"
406- }
407- EOF
408- )
409- - git clone -b main --single-branch https://gitlab-ci-token:${CI_JOB_TOKEN}@gitlab.login.gov/lg-public/identity-idp-helm-chart.git
410- - >-
411- helm upgrade --install --namespace review-apps
412- --debug
413- --set env="reviewapps-$CI_ENVIRONMENT_SLUG"
414- --set idp.image.repository="${ECR_REGISTRY}/identity-idp/review"
415- --set idp.image.tag="${IDP_IMAGE_TAG}"
416- --set worker.image.repository="${ECR_REGISTRY}/identity-idp/review"
417- --set worker.image.tag="${IDP_IMAGE_TAG}"
418- --set pivcac.image.repository="${ECR_REGISTRY}/identity-pivcac/review"
419- --set pivcac.image.tag="${CI_COMMIT_SHA}"
420- --set pivcac.image.pullPolicy="Always"
421- --set dashboard.image.repository="${ECR_REGISTRY}/identity-dashboard/review"
422- --set dashboard.image.tag="${DASHBOARD_IMAGE_TAG}"
423- --set dashboard.image.pullPolicy="Always"
424- --set-json dashboard.config="$DASHBOARD_CONFIG"
425- --set-json dashboard.enabled=true
426- --set-json idp.config="$IDP_CONFIG"
427- --set-json worker.config="$WORKER_CONFIG"
428- --set-json pivcac.config="$PIVCAC_CONFIG"
429- --set-json idp.ingress.hosts="[{\"host\": \"$CI_ENVIRONMENT_SLUG.reviewapp.identitysandbox.gov\", \"paths\": [{\"path\": \"/\", \"pathType\": \"Prefix\"}]}]"
430- --set-json pivcac.ingress.hosts="[{\"host\": \"$CI_ENVIRONMENT_SLUG.pivcac.reviewapp.identitysandbox.gov\", \"paths\": [{\"path\": \"/\", \"pathType\": \"Prefix\"}]}]"
431- --set-json dashboard.ingress.hosts="[{\"host\": \"$CI_ENVIRONMENT_SLUG-dashboard.reviewapp.identitysandbox.gov\", \"paths\": [{\"path\": \"/\", \"pathType\": \"Prefix\"}]}]"
432- $CI_ENVIRONMENT_SLUG ./identity-idp-helm-chart
310+ - export SANITIZED_BRANCH_NAME=$(echo "$CI_COMMIT_REF_NAME" | tr '/' '-' | tr -c '[:alnum:]-_' '-' | sed 's/-*$//')
311+ - echo "${CI_COMMIT_REF_NAME}"
312+ - echo "${SANITIZED_BRANCH_NAME}"
313+ # Dynamically populate review environment settings
314+ - sed -i "s|{{ENVIRONMENT}}|${CI_ENVIRONMENT_SLUG}|g" ${APPLICATION_MANIFEST}
315+ - sed -i "s|{{SANITIZED_BRANCH_NAME}}|${SANITIZED_BRANCH_NAME}|g" ${APPLICATION_MANIFEST}
316+ - sed -i "s|{{IDP_CONTAINER_TAG}}|${IDP_IMAGE_TAG}|g" ${APPLICATION_MANIFEST}
317+ - sed -i "s|{{DASHBOARD_CONTAINER_TAG}}|${DASHBOARD_IMAGE_TAG}|g" ${APPLICATION_MANIFEST}
318+ - sed -i "s|{{PIVCAC_CONTAINER_TAG}}|${CI_COMMIT_SHA}|g" ${APPLICATION_MANIFEST}
319+ - sed -i "s|{{ECR_REGISTRY}}|${ECR_REGISTRY}|g" ${APPLICATION_MANIFEST}
320+ - cat ${APPLICATION_MANIFEST}
321+ # Apply our ArgoCD Application
322+ - kubectl apply -f ${APPLICATION_MANIFEST} -n argocd
323+ - echo "View your applications deployment progress at https://argocd.reviewapp.identitysandbox.gov/applications/argocd/${CI_ENVIRONMENT_SLUG}?view=tree&resource="
433324 - echo "DNS may take a while to propagate, so be patient if it doesn't show up right away"
434325 - echo "To access the rails console, first run 'aws-vault exec sandbox-power -- aws eks update-kubeconfig --name reviewapp'"
435326 - echo "Then run aws-vault exec sandbox-power -- kubectl exec -it service/$CI_ENVIRONMENT_SLUG-login-chart-idp -n review-apps -- /app/bin/rails console"
436327 - echo "Address of IDP review app:"
437- - echo https://$CI_ENVIRONMENT_SLUG.reviewapp .identitysandbox.gov
328+ - echo https://$CI_ENVIRONMENT_SLUG.reviewapps .identitysandbox.gov
438329 - echo "Address of PIVCAC review app:"
439- - echo https://$CI_ENVIRONMENT_SLUG.pivcac.reviewapp .identitysandbox.gov
330+ - echo https://$CI_ENVIRONMENT_SLUG.pivcac.reviewapps .identitysandbox.gov
440331 - echo "Address of Dashboard review app:"
441- - echo https://$CI_ENVIRONMENT_SLUG-dashboard.reviewapp .identitysandbox.gov
332+ - echo https://$CI_ENVIRONMENT_SLUG-dashboard.reviewapps .identitysandbox.gov
442333 environment :
443334 name : review/$CI_COMMIT_REF_NAME
444335 url : https://$CI_ENVIRONMENT_SLUG.pivcac.reviewapp.identitysandbox.gov
@@ -454,7 +345,7 @@ stop-review-app:
454345 script :
455346 - export CONTEXT=$(kubectl config get-contexts | grep reviewapp | awk '{print $1}' | head -1)
456347 - kubectl config use-context "$CONTEXT"
457- - helm uninstall --namespace review-apps $CI_ENVIRONMENT_SLUG
348+ - kubectl delete application $CI_ENVIRONMENT_SLUG -n argocd
458349 stage : review
459350 image :
460351 name : dtzar/helm-kubectl:latest
0 commit comments