diff --git a/template/Jenkinsfile b/template/Jenkinsfile index a783476..898a86a 100644 --- a/template/Jenkinsfile +++ b/template/Jenkinsfile @@ -24,10 +24,13 @@ spec: stage('Kubernetes Deploy') { steps { container("deploy") { + withCredentials([string(credentialsId: "{{deploySecret}}", variable: "postgresPassword")]) { sh 'curl -LO "https://storage.googleapis.com/kubernetes-release/release/v1.24.3/bin/linux/arm64/kubectl"' sh 'chmod u+x ./kubectl' sh 'sed -ie "s/{{replaceMe}}/`date +%s`/g" `pwd`/cicd/'+env.BRANCH_NAME+'/deployment.yaml' - sh './kubectl replace -f `pwd`/cicd/'+env.BRANCH_NAME+'/deployment.yaml' + sh 'sed -ie "s/{{postgresPassword}}/${postgresPassword}/g" `pwd`/cicd/'+env.BRANCH_NAME+'/deployment.yaml' + sh './kubectl apply -f `pwd`/cicd/'+env.BRANCH_NAME+'/deployment.yaml' + } } } } diff --git a/template/deployment.yaml b/template/deployment.yaml index 1c13b79..1d213d6 100644 --- a/template/deployment.yaml +++ b/template/deployment.yaml @@ -1,12 +1,12 @@ apiVersion: v1 kind: Service metadata: - name: {{k3sApp}}-{{k3sEnv}}-svc + name: {{k3sApp}}-svc namespace: {{k3sNamespace}} spec: type: NodePort selector: - app: {{k3sApp}}-{{k3sEnv}} + app: {{k3sApp}} ports: - name: http nodePort: {{k3sport}} @@ -17,35 +17,36 @@ spec: apiVersion: apps/v1 kind: Deployment metadata: - name: {{k3sApp}}-{{k3sEnv}} + name: {{k3sApp}} namespace: {{k3sNamespace}} spec: replicas: 1 - strategy: - rollingUpdate: - maxSurge: 1 - maxUnavailable: 1 - type: RollingUpdate selector: matchLabels: - app: {{k3sApp}}-{{k3sEnv}} + app: {{k3sApp}} template: metadata: labels: - app: {{k3sApp}}-{{k3sEnv}} + app: {{k3sApp}} delpoymentDate: "{{replaceMe}}" spec: containers: - - name: {{k3sApp}}-{{k3sEnv}} - image: 192.168.195.195:30000/{{k3sApp}}:{{k3sEnv}} + - name: postgis + image: {{k3sContainerBase}} imagePullPolicy: Always + env: + - name: POSTGRES_PASSWORD + value: {{postgresPassword}} + - name: PGDATA + value: /var/lib/postgresql/data/pgdata ports: - name: http containerPort: 5432 - readinessProbe: - httpGet: - path: / - port: 5432 - initialDelaySeconds: 5 - periodSeconds: 5 - successThreshold: 1 \ No newline at end of file + volumeMounts: + - mountPath: /var/lib/postgresql/data + name: postgis-volume + volumes: + - name: postgis-volume + hostPath: + path: /home/victor/cluster/postgis/{{k3sApp}} + type: "" \ No newline at end of file diff --git a/template/setup.sh b/template/setup.sh index 81bf9a9..8eb0af0 100755 --- a/template/setup.sh +++ b/template/setup.sh @@ -14,11 +14,13 @@ then echo "Configuring local settings" read -p " Local port to expose DB on? [eg 5432] " localPort read -p " Postgres container to use? [eg postgis/postgis:latest] " localContainer + read -p " Superuser password? " postgresPassword echo " Creating start script" cp template/start.sh start.sh sed -ie "s|{{localPort}}|$localPort|g" start.sh sed -ie "s|{{localContainer}}|$localContainer|g" start.sh + sed -ie "s|{{postgresPassword}}|$postgresPassword|g" start.sh chmod +x start.sh rm start.she fi @@ -30,11 +32,11 @@ then echo "Configuring deployment settings. See the Readme for info on deployable branches." read -p " K3S App name: " k3sApp read -p " K3S namespace: [eg utility] " k3sNamespace - read -p " K3S base container: [eg postgis/postgis:latest] " k3sContainerBase + read -p " K3S container: [eg postgis/postgis:latest] " k3sContainerBase read -p " K3S NodePort: " k3sport + read -p " Superuser Password Secret ID: " deploySecret k3sportMain=$((k3sport+1)) - k3sportStage=$((k3sport+2)) echo "Creating Folders" echo " Creating cicd/" @@ -46,26 +48,30 @@ then echo " Loading cicd/Jenkinsfile" cp template/Jenkinsfile cicd/Jenkinsfile sed -ie "s|{{k3sApp}}|$k3sApp|g" cicd/Jenkinsfile + sed -ie "s|{{deploySecret}}|$deploySecret|g" cicd/Jenkinsfile rm cicd/Jenkinsfilee echo " Loading main" k3sEnv=main echo " Loading cicd/main/Dockerfile" cp template/Dockerfile cicd/main/Dockerfile + sed -ie "s|{{k3sApp}}|$k3sApp|g" cicd/main/Dockerfile + sed -ie "s|{{k3sNamespace}}|$k3sNamespace|g" cicd/main/Dockerfile sed -ie "s|{{k3sContainerBase}}|$k3sContainerBase|g" cicd/main/Dockerfile + sed -ie "s|{{k3sport}}|$k3sport|g" cicd/main/Dockerfile rm cicd/main/Dockerfilee echo " Loading cicd/main/deployment.yaml" cp template/deployment.yaml cicd/main/deployment.yaml sed -ie "s|{{k3sApp}}|$k3sApp|g" cicd/main/deployment.yaml - sed -ie "s|{{k3sport}}|$k3sportMain|g" cicd/main/deployment.yaml + sed -ie "s|{{k3sport}}|$k3sport|g" cicd/main/deployment.yaml sed -ie "s|{{k3sNamespace}}|$k3sNamespace|g" cicd/main/deployment.yaml - sed -ie "s|{{k3sEnv}}|$k3sEnv|g" cicd/main/deployment.yaml + sed -ie "s|{{k3sContainerBase}}|$k3sContainerBase|g" cicd/main/deployment.yaml rm cicd/main/deployment.yamle fi echo "Removing template folder" -rm -rf template +# rm -rf template echo "Thank you! Happy building..." \ No newline at end of file diff --git a/template/start.sh b/template/start.sh index 5575e2c..b621d9e 100644 --- a/template/start.sh +++ b/template/start.sh @@ -3,4 +3,4 @@ echo "" echo "Starting an Postgres container listening on http://localhost:{{localPort}}" echo "" echo "" -docker run --rm -v $(pwd)/data/:/var/lib/postgresql/data/ -p {{localPort}}:80 {{localContainer}} \ No newline at end of file +docker run --rm -v $(pwd)/data/:/var/lib/postgresql/data/ -e POSTGRES_PASSWORD={{postgresPassword}} -p {{localPort}}:80 {{localContainer}} \ No newline at end of file