-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstallJenkins.sh
executable file
·58 lines (51 loc) · 2.43 KB
/
installJenkins.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/bin/bash
# load in the shared library and validate argument
source ./deploymentArgument.lib
DEPLOYMENT=$1
validate_deployment_argument $DEPLOYMENT
export GITHUB_USER_EMAIL=$(cat creds.json | jq -r '.githubUserEmail')
export GITHUB_ORGANIZATION=$(cat creds.json | jq -r '.githubOrg')
export REGISTRY_URL=$(cat creds.json | jq -r '.registry')
export PRIVATE_DOCKER_REPO_FLAG=$(cat creds.json | jq -r '.privateDockerRepoFlag')
echo "----------------------------------------------------"
echo "Deploying Jenkins ..."
rm -f ./manifests/gen/k8s-jenkins-deployment.yml
mkdir -p ./manifests/gen
if [[ $PRIVATE_DOCKER_REPO_FLAG =~ ^[Yy]$ ]]
then
kubectl create -f ./manifests/docker-registry/k8s-docker-registry-pvc.yml
kubectl create -f ./manifests/docker-registry/k8s-docker-registry-deployment.yml
kubectl create -f ./manifests/docker-registry/k8s-docker-registry-service.yml
REGISTRY_URL=""
REGISTRY_IP=$(kubectl get service docker-registry -n cicd -o=json | jq -r '.spec.clusterIP | select (.!=null)')
REGISTRY_PORT=$(kubectl get service docker-registry -n cicd -o=json | jq -r '.spec.ports[] | select (.!=null) | .port')
REGISTRY_URL=$REGISTRY_IP:$REGISTRY_PORT
echo $REGISTRY_URL
fi
case $DEPLOYMENT in
ocp)
cat ./manifests/jenkins/ocp-jenkins-deployment.yml | \
sed 's~GITHUB_USER_EMAIL_PLACEHOLDER~'"$GITHUB_USER_EMAIL"'~' | \
sed 's~GITHUB_ORGANIZATION_PLACEHOLDER~'"$GITHUB_ORGANIZATION"'~' | \
sed 's~DOCKER_REGISTRY_IP_PLACEHOLDER~'"$REGISTRY_URL"'~' >> ./manifests/gen/ocp-jenkins-deployment.yml
oc create -f ./manifest/jenkins/ocp-jenkins-pvcs.yml
oc create -f ./manifests/gen/ocp-jenkins-deployment.yml
oc create -f ./manifests/jenkins/ocp-jenkins-rbac.yml
;;
*)
cat ./manifests/jenkins/k8s-jenkins-deployment.yml | \
sed 's~GITHUB_USER_EMAIL_PLACEHOLDER~'"$GITHUB_USER_EMAIL"'~' | \
sed 's~GITHUB_ORGANIZATION_PLACEHOLDER~'"$GITHUB_ORGANIZATION"'~' | \
sed 's~DOCKER_REGISTRY_IP_PLACEHOLDER~'"$REGISTRY_URL"'~' >> ./manifests/gen/k8s-jenkins-deployment.yml
kubectl create -f ./manifests/jenkins/k8s-jenkins-pvcs.yml
kubectl create -f ./manifests/gen/k8s-jenkins-deployment.yml
kubectl create -f ./manifests/jenkins/k8s-jenkins-rbac.yml
;;
esac
echo "----------------------------------------------------"
echo "Letting Jenkins start up [150 seconds] ..."
echo "----------------------------------------------------"
echo ""
sleep 150
# configure DNS.
./configureJenkinsDns.sh