Skip to content

Commit

Permalink
Merge pull request #1670 from bhumi46/develop
Browse files Browse the repository at this point in the history
[MOSIP-37447] added helm changes and install.sh
  • Loading branch information
ckm007 authored Nov 27, 2024
2 parents a1388ff + 92a9945 commit 462889d
Show file tree
Hide file tree
Showing 6 changed files with 151 additions and 29 deletions.
103 changes: 77 additions & 26 deletions deploy/apitestrig/install.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,10 +17,10 @@ function installing_apitestrig() {
kubectl label ns $NS istio-injection=disabled --overwrite
helm repo update

echo Copy configmaps
echo Copy Configmaps
./copy_cm.sh

echo Copy secrets
echo Copy Secrtes
./copy_secrets.sh

echo "Delete s3, db, & apitestrig configmap if exists"
Expand Down Expand Up @@ -90,29 +90,80 @@ function installing_apitestrig() {
else
echo "eSignet service is not deployed. hence will be skipping esignet related test-cases..."
fi

echo Installing apitestrig
helm -n $NS install apitestrig mosip/apitestrig \
--set crontime="0 $time * * *" \
-f values.yaml \
--version $CHART_VERSION \
--set apitestrig.configmaps.s3.s3-host='http://minio.minio:9000' \
--set apitestrig.configmaps.s3.s3-user-key='admin' \
--set apitestrig.configmaps.s3.s3-region='' \
--set apitestrig.configmaps.db.db-server="$DB_HOST" \
--set apitestrig.configmaps.db.db-su-user="postgres" \
--set apitestrig.configmaps.db.db-port="5432" \
--set apitestrig.configmaps.apitestrig.ENV_USER="$ENV_USER" \
--set apitestrig.configmaps.apitestrig.ENV_ENDPOINT="https://$API_INTERNAL_HOST" \
--set apitestrig.configmaps.apitestrig.ENV_TESTLEVEL="smokeAndRegression" \
--set apitestrig.configmaps.apitestrig.reportExpirationInDays="$reportExpirationInDays" \
--set apitestrig.configmaps.apitestrig.slack-webhook-url="$slackWebhookUrl" \
--set apitestrig.configmaps.apitestrig.eSignetDeployed="$eSignetDeployed" \
--set apitestrig.configmaps.apitestrig.NS="$NS" \
$ENABLE_INSECURE

echo Installed apitestrig.
return 0
read -p "Is values.yaml for apitestrig chart set correctly as part of pre-requisites? (Y/n) : " yn;
if [[ $yn = "Y" ]] || [[ $yn = "y" ]] ; then
NFS_OPTION=''
S3_OPTION=''
config_complete=false # flag to check if S3 or NFS is configured
while [ "$config_complete" = false ]; do
read -p "Do you have S3 details for storing apitestrig reports? (Y/n) : " ans
if [[ "$ans" == "y" || "$ans" == "Y" ]]; then
read -p "Please provide S3 host: " s3_host
if [[ -z $s3_host ]]; then
echo "S3 host not provided; EXITING;"
exit 1;
fi
read -p "Please provide S3 region: " s3_region
if [[ $s3_region == *[' !@#$%^&*()+']* ]]; then
echo "S3 region should not contain spaces or special characters; EXITING;"
exit 1;
fi

read -p "Please provide S3 access key: " s3_user_key
if [[ -z $s3_user_key ]]; then
echo "S3 access key not provided; EXITING;"
exit 1;
fi
S3_OPTION="--set apitestrig.configmaps.s3.s3-host=$s3_host --set apitestrig.configmaps.s3.s3-user-key=$s3_user_key --set apitestrig.configmaps.s3.s3-region=$s3_region"
push_reports_to_s3="yes"
config_complete=true
elif [[ "$ans" == "n" || "$ans" == "N" ]]; then
push_reports_to_s3="no"
read -p "Since S3 details are not available, do you want to use NFS directory mount for storing reports? (y/n) : " answer
if [[ $answer == "Y" ]] || [[ $answer == "y" ]]; then
read -p "Please provide NFS Server IP: " nfs_server
if [[ -z $nfs_server ]]; then
echo "NFS server not provided; EXITING."
exit 1;
fi
read -p "Please provide NFS directory to store reports from NFS server (e.g. /srv/nfs/<sandbox>/apitestrig/), make sure permission is 777 for the folder: " nfs_path
if [[ -z $nfs_path ]]; then
echo "NFS Path not provided; EXITING."
exit 1;
fi
NFS_OPTION="--set apitestrig.volumes.reports.nfs.server=$nfs_server --set apitestrig.volumes.reports.nfs.path=$nfs_path"
config_complete=true
else
echo "Please rerun the script with either S3 or NFS server details."
exit 1;
fi
else
echo "Invalid input. Please respond with Y (yes) or N (no)."
fi
done
echo Installing apitestrig
helm -n $NS install apitestrig mosip/apitestrig \
--set crontime="0 $time * * *" \
-f values.yaml \
--version $CHART_VERSION \
$NFS_OPTION \
$S3_OPTION \
--set apitestrig.variables.push_reports_to_s3=$push_reports_to_s3 \
--set apitestrig.configmaps.db.db-server="$DB_HOST" \
--set apitestrig.configmaps.db.db-su-user="postgres" \
--set apitestrig.configmaps.db.db-port="5432" \
--set apitestrig.configmaps.apitestrig.ENV_USER="$ENV_USER" \
--set apitestrig.configmaps.apitestrig.ENV_ENDPOINT="https://$API_INTERNAL_HOST" \
--set apitestrig.configmaps.apitestrig.ENV_TESTLEVEL="smokeAndRegression" \
--set apitestrig.configmaps.apitestrig.reportExpirationInDays="$reportExpirationInDays" \
--set apitestrig.configmaps.apitestrig.slack-webhook-url="$slackWebhookUrl" \
--set apitestrig.configmaps.apitestrig.eSignetDeployed="$eSignetDeployed" \
--set apitestrig.configmaps.apitestrig.NS="$NS" \
$ENABLE_INSECURE

echo Installed apitestrig.
return 0
fi
}

# set commands for error handling.
Expand All @@ -121,4 +172,4 @@ set -o errexit ## set -e : exit the script if any statement returns a non-true
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_apitestrig # calling function
installing_apitestrig # calling function
11 changes: 11 additions & 0 deletions helm/apitestrig/templates/cronjob.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -60,6 +60,8 @@ spec:
value: {{ $.Values.additionalResources.javaOpts }}
- name: MODULES
value: {{ $modulename }}
- name: push-reports-to-s3
value: {{ quote $.Values.apitestrig.variables.push_reports_to_s3 }}
{{- if $.Values.extraEnvVars }}
{{- include "common.tpvalues.render" (dict "value" $.Values.extraEnvVars "context" $) | nindent 12 }}
{{- end }}
Expand Down Expand Up @@ -91,6 +93,10 @@ spec:
mountPath: {{ $volume_value.volumeMounts.mountPath }}
{{- end }}
{{- end }}
{{- if eq $.Values.apitestrig.variables.push_reports_to_s3 "no" }}
- name: {{ $.Values.apitestrig.volumes.reports.name }}
mountPath: /home/mosip/testrig/report
{{- end }}
volumes:
{{- if $.Values.enable_insecure }}
- name: cacerts
Expand All @@ -104,5 +110,10 @@ spec:
name: {{ $volume_name }}
{{- end }}
{{- end }}
{{- if eq $.Values.apitestrig.variables.push_reports_to_s3 "no" }}
- name: {{ $.Values.apitestrig.volumes.reports.name }}
persistentVolumeClaim:
claimName: {{ $.Values.apitestrig.volumes.reports.name }}-{{ $.Release.Namespace }}-{{ $modulename }}-pvc
{{- end }}
{{- end }}
{{- end }}
23 changes: 23 additions & 0 deletions helm/apitestrig/templates/pv.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{{- range $modulename, $module := $.Values.modules }}
{{- if $module.enabled }}
{{- if eq $.Values.apitestrig.variables.push_reports_to_s3 "no" }}
apiVersion: v1
kind: PersistentVolume
metadata:
name: {{ $.Values.apitestrig.volumes.reports.name }}-{{ $.Release.Namespace }}-{{ $modulename }}-pvc
labels:
name: {{ $.Values.apitestrig.volumes.reports.name }}
spec:
storageClassName: {{ $.Values.apitestrig.volumes.reports.storageClass }}
capacity:
storage: {{ $.Values.apitestrig.volumes.reports.size }}
accessModes:
{{- range $.Values.apitestrig.volumes.reports.accessModes }}
- {{ . }}
{{- end }}
nfs:
server: {{ $.Values.apitestrig.volumes.reports.nfs.server }}
path: {{ $.Values.apitestrig.volumes.reports.nfs.path }}
{{- end }}
{{- end }}
{{- end }}
23 changes: 23 additions & 0 deletions helm/apitestrig/templates/pvc.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
{{- range $modulename, $module := $.Values.modules }}
{{- if $module.enabled }}
{{- if eq $.Values.apitestrig.variables.push_reports_to_s3 "no" }}
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: {{ $.Values.apitestrig.volumes.reports.name }}-{{ $.Release.Namespace }}-{{ $modulename }}-pvc
namespace: {{ $.Release.Namespace | quote }}
spec:
storageClassName: {{ $.Values.apitestrig.volumes.reports.storageClass }}
accessModes:
{{- range $.Values.apitestrig.volumes.reports.accessModes }}
- {{ . }}
{{- end }}
resources:
requests:
storage: {{ $.Values.apitestrig.volumes.reports.size }}
selector:
matchLabels:
name: {{ $.Values.apitestrig.volumes.reports.name }}
{{- end }}
{{- end }}
{{- end }}
2 changes: 1 addition & 1 deletion helm/apitestrig/templates/secrets.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
apiVersion: v1
kind: Secret
metadata:
name: {{ $secret_name }}
name: {{ $secret_name }}-{{ $.Release.Name }}
namespace: {{ $.Release.Namespace }}
labels: {{- include "common.labels.standard" $ | nindent 8 }}
{{- if $.Values.commonLabels }}
Expand Down
18 changes: 16 additions & 2 deletions helm/apitestrig/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -514,7 +514,6 @@ apitestrig:
authDemoServiceBaseURL: http://authdemo.authdemo
authDemoServicePort: 80
eSignetDeployed: yes or no
push-reports-to-s3: 'yes'
authCertsPath: '/home/mosip/authcerts'
scripts:
fetch_docker_image_hash_ids.sh: |
Expand All @@ -534,12 +533,27 @@ apitestrig:
cd /home/${container_user}/
bash ./entrypoint.sh
secrets:
s3:
s3-user-secret: 'password'
apitestrig:
volumes:
configmaps:
scripts:
defaultMode: 0777
volumeMounts:
mountPath: '/home/mosip/scripts/'

reports:
name: apitestrig-reports
storageClass: nfs-client
accessModes:
- ReadWriteMany
size: 10Mi
existingClaim:
# Dir where config and keys are written inside container
mountDir: /home/mosip/testrig/report
nfs:
path: "/srv/nfs/sandbox/onboarding" # Dir within the nfs server where config repo is cloned/maintained locally.
server: "nfs-server" # Ip address of nfs server.
variables:
push_reports_to_s3: "no"
enable_insecure: false

0 comments on commit 462889d

Please sign in to comment.