Updating the Values.yaml for several services. Cleaned out proprietary data
[it/otf.git] / otf-aaf-credential-generator / Jenkinsfile
1 #!/usr/bin/env groovy\r
2 \r
3 /*  Copyright (c) 2019 AT&T Intellectual Property.                             #\r
4 #                                                                              #\r
5 #   Licensed under the Apache License, Version 2.0 (the "License");            #\r
6 #   you may not use this file except in compliance with the License.           #\r
7 #   You may obtain a copy of the License at                                    #\r
8 #                                                                              #\r
9 #       http://www.apache.org/licenses/LICENSE-2.0                             #\r
10 #                                                                              #\r
11 #   Unless required by applicable law or agreed to in writing, software        #\r
12 #   distributed under the License is distributed on an "AS IS" BASIS,          #\r
13 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #\r
14 #   See the License for the specific language governing permissions and        #\r
15 #   limitations under the License.                                             #\r
16 ##############################################################################*/\r
17 \r
18 \r
19 properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [ \r
20         [$class: 'hudson.model.StringParameterDefinition', name: 'PHASE', defaultValue: "BUILD"],\r
21         [$class: 'hudson.model.StringParameterDefinition', name: 'ENV', defaultValue: "dev"],    \r
22         [$class: 'hudson.model.StringParameterDefinition', name: 'MECHID', defaultValue: "id"],                  \r
23         [$class: 'hudson.model.StringParameterDefinition', name: 'KUBE_CONFIG', defaultValue: "kubeConfig-dev"],      \r
24         [$class: 'hudson.model.StringParameterDefinition', name: 'TILLER_NAMESPACE', defaultValue: "org-onap-otf"]     \r
25 ]]]) \r
26 \r
27 \r
28 echo "Build branch: ${env.BRANCH_NAME}"\r
29 \r
30 node("docker"){\r
31         stage 'Checkout'\r
32         checkout scm\r
33         PHASES=PHASE.tokenize( '_' );\r
34         echo "PHASES : " + PHASES\r
35         ARTIFACT_ID="otf-aaf-credential-generator"\r
36         echo "Tiller Namespace: " + TILLER_NAMESPACE\r
37 \r
38         withEnv(["PATH=${env.PATH}:${tool 'jdk180'}:${env.WORKSPACE}/linux-amd64", "JAVA_HOME=${tool 'jdk180'}","HELM_HOME=${env.WORKSPACE}"]) { \r
39                         \r
40                 echo "PATH=${env.PATH}"\r
41                 echo "JAVA_HOME=${env.JAVA_HOME}"\r
42                 echo "HELM_HOME=${env.HELM_HOME}"\r
43 \r
44                 wrap([$class: 'ConfigFileBuildWrapper', managedFiles: [\r
45                         [fileId: 'maven-settings.xml', variable: 'MAVEN_SETTINGS']\r
46                         ]]) {\r
47 \r
48                         if (PHASES.contains("DEPLOY") || PHASES.contains("UNDEPLOY")) { \r
49                                 stage 'Init Helm'\r
50 \r
51                                 //check if helm exists if not install\r
52                                 if(fileExists('linux-amd64/helm')){\r
53                                         sh """\r
54                                                 echo "helm is already installed"\r
55                                         """\r
56                                 }\r
57                                 else{\r
58                                 //download helm\r
59                                         sh """\r
60                                                 echo "installing helm"\r
61                                                 wget  https://storage.googleapis.com/kubernetes-helm/helm-v2.8.2-linux-amd64.tar.gz\r
62                                                 tar -xf helm-v2.8.2-linux-amd64.tar.gz\r
63                                                 rm helm-v2.8.2-linux-amd64.tar.gz\r
64                                         """\r
65                                 }\r
66 \r
67                                 withCredentials([file(credentialsId: KUBE_CONFIG, variable: 'KUBECONFIG')]) {\r
68 \r
69                                         dir('helm'){\r
70                                         //check if charts are valid, and then perform dry run, if successful then upgrade/install charts\r
71 \r
72                                         if (PHASES.contains("UNDEPLOY") ) {\r
73                                                         stage 'Undeploy'\r
74  \r
75                                                 sh """\r
76                                                         helm delete --tiller-namespace=$TILLER_NAMESPACE --purge $ARTIFACT_ID\r
77                                                 """\r
78                                         }\r
79 \r
80                                         //NOTE Double quotes are used below to access groovy variables like artifact_id and tiller_namespace\r
81                                 if (PHASES.contains("DEPLOY") ){\r
82                                         stage 'Deploy'\r
83                                                                 withCredentials([usernamePassword(credentialsId: MECHID, usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {\r
84 \r
85                                                                         //Note: KEYFILE_PATH must be within helm/$ARTIFACT_ID and must be relative path starting from that directory\r
86                                                                         sh """\r
87 \r
88                                                                                 echo "Remove old key info"\r
89                                                                                 rm -rf keyfile;\r
90                                                                                 rm -rf digest.txt\r
91                                                                                 rm -rf $ARTIFACT_ID/keyfile\r
92 \r
93                                                                                 ls\r
94                                                                                 echo "Create keyfile and digest"\r
95                                                                                 java -jar ../aaf_cadi_core_2.1.10_SNAPSHOT.jar keygen keyfile\r
96                                                                                 java -jar ../aaf_cadi_core_2.1.10_SNAPSHOT.jar digest $PASSWORD keyfile > digest.txt 2>&1\r
97                                                                                 \r
98                                                                                 cp keyfile $ARTIFACT_ID\r
99                                                                                 KEYFILE_PATH=keyfile\r
100                                                                                 DIGEST="enc:"\r
101                                                                                 DIGEST+=\$(cat digest.txt)\r
102                                                                                 echo \$DIGEST\r
103                                                                                 echo "Validate Yaml"\r
104                                                                                 helm lint $ARTIFACT_ID\r
105 \r
106                                                                                 echo "View Helm Templates"\r
107                                                                                 helm template $ARTIFACT_ID --set Secret.aafId=$USERNAME --set Secret.aafPassword=\$DIGEST --set Secret.aafMechPassword=$PASSWORD --set keyfilePath=\$KEYFILE_PATH\r
108 \r
109                                                                                 echo "Perform Dry Run Of Install"\r
110                                                                                 helm upgrade --tiller-namespace=$TILLER_NAMESPACE --install --dry-run $ARTIFACT_ID $ARTIFACT_ID --set Secret.aafId=$USERNAME --set Secret.aafPassword=\$DIGEST --set Secret.aafMechPassword=$PASSWORD --set keyfilePath=\$KEYFILE_PATH\r
111 \r
112                                                                                 echo "Helm Install/Upgrade"\r
113                                                                         helm upgrade --tiller-namespace=$TILLER_NAMESPACE --install $ARTIFACT_ID $ARTIFACT_ID --set Secret.aafId=$USERNAME --set Secret.aafPassword=\$DIGEST --set Secret.aafMechPassword=$PASSWORD --set keyfilePath=\$KEYFILE_PATH\r
114 \r
115                                                                         rm -rf $ARTIFACT_ID/keyfile\r
116                                                                                 rm -rf keyfile\r
117                                                                                 rm -rf digest.txt\r
118                                                                         """\r
119                                                                 }\r
120                                 }\r
121 \r
122                                         }\r
123                                 }\r
124                 } \r
125                 }\r
126         }\r
127 }