c2d0b5c75486c3917e03a4665611f090ad907cf0
[it/otf.git] / otf-aaf-credential-generator / Jenkinsfile
1 #!/usr/bin/env groovy\r
2 \r
3 \r
4 properties([[$class: 'ParametersDefinitionProperty', parameterDefinitions: [ \r
5         [$class: 'hudson.model.StringParameterDefinition', name: 'PHASE', defaultValue: "BUILD"],\r
6         [$class: 'hudson.model.StringParameterDefinition', name: 'ENV', defaultValue: "dev"],    \r
7         [$class: 'hudson.model.StringParameterDefinition', name: 'MECHID', defaultValue: "id"],                  \r
8         [$class: 'hudson.model.StringParameterDefinition', name: 'KUBE_CONFIG', defaultValue: "kubeConfig-dev"],      \r
9         [$class: 'hudson.model.StringParameterDefinition', name: 'TILLER_NAMESPACE', defaultValue: "org-onap-otf"]     \r
10 ]]]) \r
11 \r
12 \r
13 echo "Build branch: ${env.BRANCH_NAME}"\r
14 \r
15 node("docker"){\r
16         stage 'Checkout'\r
17         checkout scm\r
18         PHASES=PHASE.tokenize( '_' );\r
19         echo "PHASES : " + PHASES\r
20         ARTIFACT_ID="otf-aaf-credential-generator"\r
21         echo "Tiller Namespace: " + TILLER_NAMESPACE\r
22 \r
23         withEnv(["PATH=${env.PATH}:${tool 'jdk180'}:${env.WORKSPACE}/linux-amd64", "JAVA_HOME=${tool 'jdk180'}","HELM_HOME=${env.WORKSPACE}"]) { \r
24                         \r
25                 echo "PATH=${env.PATH}"\r
26                 echo "JAVA_HOME=${env.JAVA_HOME}"\r
27                 echo "HELM_HOME=${env.HELM_HOME}"\r
28 \r
29                 wrap([$class: 'ConfigFileBuildWrapper', managedFiles: [\r
30                         [fileId: 'maven-settings.xml', variable: 'MAVEN_SETTINGS']\r
31                         ]]) {\r
32 \r
33                         if (PHASES.contains("DEPLOY") || PHASES.contains("UNDEPLOY")) { \r
34                                 stage 'Init Helm'\r
35 \r
36                                 //check if helm exists if not install\r
37                                 if(fileExists('linux-amd64/helm')){\r
38                                         sh """\r
39                                                 echo "helm is already installed"\r
40                                         """\r
41                                 }\r
42                                 else{\r
43                                 //download helm\r
44                                         sh """\r
45                                                 echo "installing helm"\r
46                                                 wget  https://storage.googleapis.com/kubernetes-helm/helm-v2.8.2-linux-amd64.tar.gz\r
47                                                 tar -xf helm-v2.8.2-linux-amd64.tar.gz\r
48                                                 rm helm-v2.8.2-linux-amd64.tar.gz\r
49                                         """\r
50                                 }\r
51 \r
52                                 withCredentials([file(credentialsId: KUBE_CONFIG, variable: 'KUBECONFIG')]) {\r
53 \r
54                                         dir('helm'){\r
55                                         //check if charts are valid, and then perform dry run, if successful then upgrade/install charts\r
56 \r
57                                         if (PHASES.contains("UNDEPLOY") ) {\r
58                                                         stage 'Undeploy'\r
59  \r
60                                                 sh """\r
61                                                         helm delete --tiller-namespace=$TILLER_NAMESPACE --purge $ARTIFACT_ID\r
62                                                 """\r
63                                         }\r
64 \r
65                                         //NOTE Double quotes are used below to access groovy variables like artifact_id and tiller_namespace\r
66                                 if (PHASES.contains("DEPLOY") ){\r
67                                         stage 'Deploy'\r
68                                                                 withCredentials([usernamePassword(credentialsId: MECHID, usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD')]) {\r
69 \r
70                                                                         //Note: KEYFILE_PATH must be within helm/$ARTIFACT_ID and must be relative path starting from that directory\r
71                                                                         sh """\r
72 \r
73                                                                                 echo "Remove old key info"\r
74                                                                                 rm -rf keyfile;\r
75                                                                                 rm -rf digest.txt\r
76                                                                                 rm -rf $ARTIFACT_ID/keyfile\r
77 \r
78                                                                                 ls\r
79                                                                                 echo "Create keyfile and digest"\r
80                                                                                 java -jar ../aaf_cadi_core_2.1.10_SNAPSHOT.jar keygen keyfile\r
81                                                                                 java -jar ../aaf_cadi_core_2.1.10_SNAPSHOT.jar digest $PASSWORD keyfile > digest.txt 2>&1\r
82                                                                                 \r
83                                                                                 cp keyfile $ARTIFACT_ID\r
84                                                                                 KEYFILE_PATH=keyfile\r
85                                                                                 DIGEST="enc:"\r
86                                                                                 DIGEST+=\$(cat digest.txt)\r
87                                                                                 echo \$DIGEST\r
88                                                                                 echo "Validate Yaml"\r
89                                                                                 helm lint $ARTIFACT_ID\r
90 \r
91                                                                                 echo "View Helm Templates"\r
92                                                                                 helm template $ARTIFACT_ID --set Secret.aafId=$USERNAME --set Secret.aafPassword=\$DIGEST --set Secret.aafMechPassword=$PASSWORD --set keyfilePath=\$KEYFILE_PATH\r
93 \r
94                                                                                 echo "Perform Dry Run Of Install"\r
95                                                                                 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
96 \r
97                                                                                 echo "Helm Install/Upgrade"\r
98                                                                         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
99 \r
100                                                                         rm -rf $ARTIFACT_ID/keyfile\r
101                                                                                 rm -rf keyfile\r
102                                                                                 rm -rf digest.txt\r
103                                                                         """\r
104                                                                 }\r
105                                 }\r
106 \r
107                                         }\r
108                                 }\r
109                 } \r
110                 }\r
111         }\r
112 }