Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[DSD-6850] updated deploy scripts #342

Merged
merged 1 commit into from
Dec 11, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions deploy/README.md → deploy/admin-ui/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,17 @@
```
./install.sh
```

## Restart
```
./restart.sh
```

## Delete
```
./delete.sh
```

## Admin proxy
Admin service accesses other services like Materdata and Keymanager and currently there is only one URL that is used to connect to both these services. This will get fixed in future versions, but as a an interim solution, Admin Proxy docker has been created, which is basically an Nginx proxy connecting to the above services with these URLs:
```
Expand Down
File renamed without changes.
8 changes: 5 additions & 3 deletions deploy/install.sh → deploy/admin-ui/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ if [ $# -ge 1 ] ; then
fi

NS=admin
CHART_VERSION=1.3.0-beta.1-develop
CHART_VERSION=0.0.1-develop
COPY_UTIL=../copy_cm_func.sh

echo Create $NS namespace
kubectl create ns $NS
Expand All @@ -19,8 +20,9 @@ function installing_admin_ui() {
helm repo update

echo Copy configmaps
sed -i 's/\r$//' copy_cm.sh
./copy_cm.sh
$COPY_UTIL configmap global default $NS
$COPY_UTIL configmap artifactory-share artifactory $NS
$COPY_UTIL configmap config-server-share config-server $NS

API_HOST=$(kubectl get cm global -o jsonpath={.data.mosip-api-internal-host})
ADMIN_HOST=$(kubectl get cm global -o jsonpath={.data.mosip-admin-host})
Expand Down
File renamed without changes.
32 changes: 32 additions & 0 deletions deploy/admin-uitestrig/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
# UITESTRIG

## Introduction
UITESTRIG will test end-to-end functional flows involving multiple UI modules.

## Install
* Install
```sh
./install.sh
```

## Uninstall
* To uninstall UITESTRIG, run `delete.sh` script.
```sh
./delete.sh
```

## Run UITESTRIG manually

#### CLI
* Download Kubernetes cluster `kubeconfig` file from `rancher dashboard` to your local.
* Install `kubectl` package to your local machine.
* Run UITESTRIG manually via CLI by creating a new job from an existing k8s cronjob.
```
kubectl --kubeconfig=<k8s-config-file> -n UITESTRIG create job --from=cronjob/<cronjob-name> <job-name>
```
example:
```
kubectl --kubeconfig=/home/xxx/Downloads/qa4.config -n UITESTRIG create job --from=cronjob/cronjob-uitestrig cronjob-uitestrig
```


30 changes: 30 additions & 0 deletions deploy/admin-uitestrig/delete.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
#!/bin/bash
# Uninstalls uitestrig
## Usage: ./delete.sh [kubeconfig]

if [ $# -ge 1 ] ; then
export KUBECONFIG=$1
fi

function deleting_uitestrig() {
NS=admin
while true; do
read -p "Are you sure you want to delete uitestrig helm charts?(Y/n) " yn
if [ $yn = "Y" ]
then
helm -n $NS delete admin-uitestrig
break
else
break
fi
done
return 0
}

# set commands for error handling.
set -e
set -o errexit ## set -e : exit the script if any statement returns a non-true return value
set -o nounset ## set -u : exit the script if you try to use an uninitialised variable
set -o errtrace # trace ERR through 'time command' and other functions
set -o pipefail # trace ERR through pipes
deleting_uitestrig # calling function
97 changes: 97 additions & 0 deletions deploy/admin-uitestrig/install.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,97 @@
#!/bin/bash
# Installs uitestrig automation
## Usage: ./install.sh [kubeconfig]

if [ $# -ge 1 ] ; then
export KUBECONFIG=$1
fi

NS=admin
CHART_VERSION=0.0.1-develop
COPY_UTIL=../copy_cm_func.sh

echo Create $NS namespace
kubectl create ns $NS

function installing_uitestrig() {
ENV_NAME=$( kubectl -n default get cm global -o json |jq -r '.data."installation-domain"')

read -p "Please enter the time(hr) to run the cronjob every day (time: 0-23) : " time
if [ -z "$time" ]; then
echo "ERROR: Time cannot be empty; EXITING;";
exit 1;
fi
if ! [ $time -eq $time ] 2>/dev/null; then
echo "ERROR: Time $time is not a number; EXITING;";
exit 1;
fi
if [ $time -gt 23 ] || [ $time -lt 0 ] ; then
echo "ERROR: Time should be in range ( 0-23 ); EXITING;";
exit 1;
fi

echo "Do you have public domain & valid SSL? (Y/n) "
echo "Y: if you have public domain & valid ssl certificate"
echo "n: if you don't have public domain & valid ssl certificate"
read -p "" flag

if [ -z "$flag" ]; then
echo "'flag' was provided; EXITING;"
exit 1;
fi
ENABLE_INSECURE=''
if [ "$flag" = "n" ]; then
ENABLE_INSECURE='--set uitestrig.configmaps.uitestrig.ENABLE_INSECURE=true';
fi

echo Istio label
kubectl label ns $NS istio-injection=disabled --overwrite
helm repo update

echo Copy configmaps
$COPY_UTIL configmap global default $NS
$COPY_UTIL configmap keycloak-host keycloak $NS
$COPY_UTIL configmap artifactory-share artifactory $NS
$COPY_UTIL configmap config-server-share config-server $NS

echo Copy secrets
$COPY_UTIL secret keycloak-client-secrets keycloak $NS
$COPY_UTIL secret s3 s3 $NS
$COPY_UTIL secret postgres-postgresql postgres $NS

DB_HOST=$( kubectl -n default get cm global -o json |jq -r '.data."mosip-api-internal-host"' )
PMP_HOST=$(kubectl -n default get cm global -o json |jq -r '.data."mosip-pmp-host"')
ADMIN_HOST=$(kubectl -n default get cm global -o json |jq -r '.data."mosip-admin-host"')
RESIDENT_HOST=$(kubectl -n default get cm global -o json |jq -r '.data."mosip-resident-host"')
API_INTERNAL_HOST=$( kubectl -n default get cm global -o json |jq -r '.data."mosip-api-internal-host"' )

echo Installing admin uitestrig
helm -n $NS install admin-uitestrig mosip/uitestrig \
--set crontime="0 $time * * *" \
-f values.yaml \
--version $CHART_VERSION \
--set uitestrig.configmaps.s3.s3-host='http://minio.minio:9000' \
--set uitestrig.configmaps.s3.s3-user-key='admin' \
--set uitestrig.configmaps.s3.s3-region='' \
--set uitestrig.configmaps.db.db-server="$DB_HOST" \
--set uitestrig.configmaps.db.db-su-user="postgres" \
--set uitestrig.configmaps.db.db-port="5432" \
--set uitestrig.configmaps.uitestrig.apiInternalEndPoint="https://$API_INTERNAL_HOST" \
--set uitestrig.configmaps.uitestrig.apiEnvUser="$API_INTERNAL_HOST" \
--set uitestrig.configmaps.uitestrig.PmpPortalPath="https://$PMP_HOST" \
--set uitestrig.configmaps.uitestrig.adminPortalPath="https://$ADMIN_HOST" \
--set uitestrig.configmaps.uitestrig.residentPortalPath="https://$RESIDENT_HOST" \
--set uitestrig.configmaps.uitestrig.NS="$NS" \
$ENABLE_INSECURE

echo Installed admin uitestrig
return 0
}

# set commands for error handling.
set -e
set -o errexit ## set -e : exit the script if any statement returns a non-true return value
set -o nounset ## set -u : exit the script if you try to use an uninitialised variable
set -o errtrace # trace ERR through 'time command' and other functions
set -o pipefail # trace ERR through pipes
installing_uitestrig # calling function
7 changes: 7 additions & 0 deletions deploy/admin-uitestrig/values.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
modules:
- name: adminui
enabled: true
image:
registry: docker.io
repository: mosipqa/admintest
tag: develop
25 changes: 0 additions & 25 deletions deploy/copy_cm.sh

This file was deleted.

33 changes: 33 additions & 0 deletions deploy/copy_cm_func.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
#!/bin/bash
# Copy configmap and secret from one namespace to another.
# ./copy_cm_func.sh <resource> <configmap_name> <source_namespace> <destination_namespace> [name]
# Parameters:
# resource: configmap|secret
# name: Optional new name of the configmap or secret in destination namespace. This may be needed if there is
# clash of names

if [ $1 = "configmap" ]
then
RESOURCE=configmap
elif [ $1 = "secret" ]
then
RESOURCE=secret
else
echo "Incorrect resource $1. Exiting.."
exit 1
fi


if [ $# -ge 5 ]
then
kubectl -n $4 delete --ignore-not-found=true $RESOURCE $5
kubectl -n $3 get $RESOURCE $2 -o yaml | sed "s/namespace: $3/namespace: $4/g" | sed "s/name: $2/name: $5/g" | kubectl -n $4 create -f -
else
kubectl -n $4 delete --ignore-not-found=true $RESOURCE $2
kubectl -n $3 get $RESOURCE $2 -o yaml | sed "s/namespace: $3/namespace: $4/g" | kubectl -n $4 create -f -
fi





Loading