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

[MOSIP-37447] added helm changes and install.sh #1670

Merged
merged 4 commits into from
Nov 27, 2024
Merged
Show file tree
Hide file tree
Changes from 3 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
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 onboarder chart set correctly as part of pre-requisites? (Y/n) : " yn;
bhumi46 marked this conversation as resolved.
Show resolved Hide resolved
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 Onboarder 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>/onboarder/), 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
Loading