From a019ec71b1c3438021e23913a8e5e2e655a60e2b Mon Sep 17 00:00:00 2001 From: Aswin Palaniappa Date: Sun, 17 Jan 2021 18:09:01 +0530 Subject: [PATCH 1/2] add deployment script for UAT setup --- roche/deploymentScript_UAT.sh | 79 +++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 roche/deploymentScript_UAT.sh diff --git a/roche/deploymentScript_UAT.sh b/roche/deploymentScript_UAT.sh new file mode 100644 index 0000000..edbc472 --- /dev/null +++ b/roche/deploymentScript_UAT.sh @@ -0,0 +1,79 @@ +#!/bin/bash + +# --> SCRIPT IS CONFIGURED TO BE RUN ON ROCHE UAT SETUP <-- + +# Prints on stdout in colour fonts +RED='\033[0;31m' +GREEN='\033[0;32m' + +#******************************************************************************************# +# USER DEFINED VARIABLES # +#******************************************************************************************# +#Enter corresponding value between double quotes +TOKEN="" +HOMEDIR="" +MOUNTNAME="" +VOLUMEHANDLE=${HOMEDIR} + +printf "${GREEN}\nPatching dkube-platform-cfg file\n" + +kubectl get cm dkube-platform-cfg -n dkube -o json > cm-old.json + +#Backup old config file +cp cm-old.json cm-new.json + +#Remove dkube rstudio images +jq 'del(.frameworks[].versions[] | select(.caps[] | contains("r-ide")))' cm-new.json > tmp && mv tmp cm-new.json + +#Add base domain +jq '.access."base-domain" = "https://www.uat.us.mlaas.apollo.roche.com"' cm-new.json > tmp && mv tmp cm-new.json + +#Add jupyter images +jq '.frameworks[3] += {"name":"jupyter", "versions":[]}' cm-new.json > tmp && mv tmp cm-new.json +jq '.frameworks[3].versions += [{"name":"python36", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/jupyterlab:python36", "port":"8000", "ssl":"false", "caps":[ "jnb-ide"]},{"name":"python36-R351", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/jupyterlab:python36-R351", "port":"8000", "ssl":"false", "caps":[ "jnb-ide"]},{"name":"python37-R361", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/jupyterlab:python37-R361", "port":"8000", "ssl":"false", "caps":[ "jnb-ide"]},{"name":"python37", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/jupyterlab:python37", "port":"8000", "ssl":"true", "caps":[ "jnb-ide"]}]' cm-new.json > tmp && mv tmp cm-new.json + +#Add jupyterlab images +jq '.frameworks[4] += {"name":"jupyterlab", "versions":[]}' cm-new.json > tmp && mv tmp cm-new.json +jq '.frameworks[4].versions += [{"name":"tf2.0-py38-cpu", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/jupyterlab-tf2:cpu-tf2", "port":"8000", "ssl":"true", "caps":[ "jlab-ide"]},{"name":"tf2.0-py38-gpu", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/jupyterlab-tf2:gpu-py38", "port":"8000", "ssl":"true", "caps":[ "jlab-ide"]},{"name":"tf2.0-py37-cpu", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/jupyterlab-tf2:cpu-py37", "port":"8000", "ssl":"true", "caps":[ "jlab-ide"]},{"name":"tf2.0-py37-gpu", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/jupyterlab-tf2:gpu-py37", "port":"8000", "ssl":"true", "caps":[ "jlab-ide"]},{"name":"python36", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/jupyterlab:python36", "port":"8000", "ssl":"false", "caps":[ "jlab-ide"]},{"name":"python36-R351", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/jupyterlab:python36-R351", "port":"8000", "ssl":"false", "caps":[ "jlab-ide"]},{"name":"python37-R361", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/jupyterlab:python37-R361", "port":"8000", "ssl":"false", "caps":[ "jlab-ide"]},{"name":"python37", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/jupyterlab:python37", "port":"8000", "ssl":"true", "caps":[ "jlab-ide"]}]' cm-new.json > tmp && mv tmp cm-new.json + +#Add rstudio images +jq '.frameworks[5] += {"name":"rstudio", "versions":[]}' cm-new.json > tmp && mv tmp cm-new.json +jq '.frameworks[5].versions += [{"name":"r4.0.0-rstudio1.3", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/rstudio:r4.0.0-rstudio1.3", "port":"8787", "ssl":"true", "caps":[ "r-ide"]},{"name":"r3.6.3-rstudio1.3", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/rstudio:r3.6.3-rstudio1.3", "port":"8787", "ssl":"true", "caps":[ "r-ide"]},{"name":"r3.6.3-rstudio1.2", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/rstudio:r3.6.3-rstudio1.2", "port":"8787", "ssl":"true", "caps":[ "r-ide"]},{"name":"r3.6.1-rstudio1.2", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/rstudio:r3.6.1-rstudio1.2", "port":"8787", "ssl":"true", "caps":[ "r-ide"]},{"name":"r3.5.3-rstudio1.2", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/rstudio:r3.5.3-rstudio1.2", "port":"8787", "ssl":"true", "caps":[ "r-ide"]},{"name":"r3.5.2-rstudio1.2", "image":"507987312224.dkr.ecr.us-west-2.amazonaws.com/rstudio:r3.5.2-rstudio1.2", "port":"8787", "ssl":"true", "caps":[ "r-ide"]}]' cm-new.json > tmp && mv tmp cm-new.json + +kubectl create configmap dkube-platform-cfg --from-file=config\.json=cm-new.json -n dkube -o yaml --dry-run | kubectl apply -f - + +if [ $? -ne 0 ]; then + printf "${RED}Failed to patch dkube-platform-cfg\n" + exit 1 +fi + +rm -f cm-new.json cm-old.json + +printf "${GREEN}\nCreate FSx user profile\n" +curl --insecure -XPOST -H 'Authorization: Bearer ${TOKEN}' -H "Content-type: application/json" -d '{"Kind":"inline","Inline":{"Name":"global","Homedir":"fsx://${HOMEDIR}.fsx.us-west-2.amazonaws.com","options":[{"key":"volumeHandle","value":"${VOLUMEHANDLE}"},{"key":"mountname","value":"${MOUNTNAME}"}],"Limits":{"Cpus":"1"}}}' 'https://www.uat.us.mlaas.apollo.roche.com/dkube/v2/controller/userprofiles' + +if [ $? -ne 0 ]; then + printf "${RED}Failed to create FSx user profile\n" + exit 1 +fi + +printf "${GREEN}\nApplying redshift configmap\n" +cat < Date: Thu, 4 Feb 2021 19:05:52 +0530 Subject: [PATCH 2/2] curl fixes --- roche/deploymentScript_UAT.sh | 65 +++++++++++++++++++++++++++-------- 1 file changed, 50 insertions(+), 15 deletions(-) diff --git a/roche/deploymentScript_UAT.sh b/roche/deploymentScript_UAT.sh index edbc472..19a8a1d 100644 --- a/roche/deploymentScript_UAT.sh +++ b/roche/deploymentScript_UAT.sh @@ -1,29 +1,40 @@ #!/bin/bash -# --> SCRIPT IS CONFIGURED TO BE RUN ON ROCHE UAT SETUP <-- +set -e + +# --> SCRIPT IS CONFIGURED TO RUN ON ROCHE UAT SETUP <-- # Prints on stdout in colour fonts RED='\033[0;31m' GREEN='\033[0;32m' +NC='\033[0m' -#******************************************************************************************# -# USER DEFINED VARIABLES # -#******************************************************************************************# -#Enter corresponding value between double quotes +#******************************************************# +# USER DEFINED VARIABLES # +#******************************************************# +#Fill corresponding value between double quotes TOKEN="" +#FSx related variables HOMEDIR="" MOUNTNAME="" VOLUMEHANDLE=${HOMEDIR} +#Fill the base domain prefixed with https:// +#Example: https://www.uat.us.mlaas.apollo.roche.com +BASEDOMAIN="" -printf "${GREEN}\nPatching dkube-platform-cfg file\n" - +printf "${GREEN}\nPatching dkube-platform-cfg file ...${NC}\n" +kubectl get cm dkube-platform-cfg -n dkube -o yaml > cm-old.yaml kubectl get cm dkube-platform-cfg -n dkube -o json > cm-old.json #Backup old config file cp cm-old.json cm-new.json +printf "Backup of dkube-platform-cfg is saved as cm-old.json and cm-old.yaml\n" + +jq '.data."config.json"' -r cm-new.json > tmp && mv tmp cm-new.json + #Remove dkube rstudio images -jq 'del(.frameworks[].versions[] | select(.caps[] | contains("r-ide")))' cm-new.json > tmp && mv tmp cm-new.json +jq 'del(.frameworks[].versions[] | select(.caps[0] == "r-ide"))' cm-new.json > tmp && mv tmp cm-new.json #Add base domain jq '.access."base-domain" = "https://www.uat.us.mlaas.apollo.roche.com"' cm-new.json > tmp && mv tmp cm-new.json @@ -43,21 +54,45 @@ jq '.frameworks[5].versions += [{"name":"r4.0.0-rstudio1.3", "image":"5079873122 kubectl create configmap dkube-platform-cfg --from-file=config\.json=cm-new.json -n dkube -o yaml --dry-run | kubectl apply -f - if [ $? -ne 0 ]; then - printf "${RED}Failed to patch dkube-platform-cfg\n" + printf "${RED}Failed to patch dkube-platform-cfg${NC}\n" exit 1 fi -rm -f cm-new.json cm-old.json +rm -f cm-new.json + +generateCurlData=`cat <