citasks 0.1.4 → 0.1.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/citasks/ci_lib.rb +22 -17
- data/lib/citasks.rb +6 -2
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f3d41bf164110e3e84deac18d24e4d0f55a31081
|
4
|
+
data.tar.gz: 59e7113f5f58269dc6208b5e427861c5195c5bfa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 91261b3b0c0c5acf3a633470a214a3f679590881279afe74ab84452a02f785cef050ae72cee8c55ac5adb4916e931661668b99e726bb334117e72c521dca86b5
|
7
|
+
data.tar.gz: a0486b4b83ea0000c9019ee565301d64bbe44b93f6a9d9c9a3bb22207ef92313324da1bdbd938a7cf6fd7817aeb10dae1d1369508bcd11b4a51da79996b14ba7
|
data/lib/citasks/ci_lib.rb
CHANGED
@@ -30,10 +30,14 @@ module JenkinsTools
|
|
30
30
|
|
31
31
|
# git_repo_url = http://virtuous-porcupine-gitlab-ce/wenzm/icp-static-web.git, gitlab-wenzm-password
|
32
32
|
def self.gen_job_xml job_name, xml_file_name, git_repo_url, repo_credential_id_in_jenkins, secret_token=nil
|
33
|
-
|
33
|
+
enable_secret_token = ENV["JENKIN_PROJECT_ENDPOINT_AUTHENTICATION"].upcase == "TRUE"
|
34
|
+
|
35
|
+
if enable_secret_token
|
36
|
+
secret_token = token_shared_persistently if secret_token.nil?
|
37
|
+
end
|
34
38
|
|
35
39
|
token_to_trigger_build_remotely = SecureRandom.uuid
|
36
|
-
|
40
|
+
erb = ERB.new <<~EOF
|
37
41
|
<?xml version='1.0' encoding='UTF-8'?>
|
38
42
|
<flow-definition plugin="#{WORKFLOW_PLUGIN}">
|
39
43
|
<actions/>
|
@@ -61,7 +65,9 @@ module JenkinsTools
|
|
61
65
|
<includeBranchesSpec></includeBranchesSpec>
|
62
66
|
<excludeBranchesSpec></excludeBranchesSpec>
|
63
67
|
<targetBranchRegex></targetBranchRegex>
|
64
|
-
|
68
|
+
<% if enable_secret_token %>
|
69
|
+
<secretToken><%= secret_token %></secretToken>
|
70
|
+
<% end %>
|
65
71
|
</com.dabsquared.gitlabjenkins.GitLabPushTrigger>
|
66
72
|
</triggers>
|
67
73
|
</org.jenkinsci.plugins.workflow.job.properties.PipelineTriggersJobProperty>
|
@@ -92,6 +98,8 @@ module JenkinsTools
|
|
92
98
|
<disabled>false</disabled>
|
93
99
|
</flow-definition>
|
94
100
|
EOF
|
101
|
+
|
102
|
+
_write xml_file_name, erb.result(binding)
|
95
103
|
end
|
96
104
|
|
97
105
|
def self.gen_jenkins_file
|
@@ -212,13 +220,15 @@ module Builder
|
|
212
220
|
_write ".env.build", <<~EOF
|
213
221
|
IMAGE_NAME=#{app_name}
|
214
222
|
|
215
|
-
PRIVATE_DOCKER_REGISTRY_NAME=
|
223
|
+
PRIVATE_DOCKER_REGISTRY_NAME=mycluster.icp
|
216
224
|
PRIVATE_DOCKER_REGISTRY_PORT=8500
|
217
225
|
PRIVATE_DOCKER_REGISTRY_IP=#{ENV["ICP_MASTER_IP"]}
|
218
|
-
PRIVATE_DOCKER_REGISTRY_NAMESPACE
|
226
|
+
PRIVATE_DOCKER_REGISTRY_NAMESPACE=#{ENV["PRIVATE_DOCKER_REGISTRY_NAMESPACE"]}
|
219
227
|
|
220
228
|
PRIVATE_DOCKER_REGISTRY_USER=admin
|
221
229
|
PRIVATE_DOCKER_REGISTRY_USER_PASSWORD=admin
|
230
|
+
|
231
|
+
K8S_NAMESPACE=#{ENV["K8S_NAMESPACE"]}
|
222
232
|
EOF
|
223
233
|
end
|
224
234
|
|
@@ -315,16 +325,8 @@ module Builder
|
|
315
325
|
end
|
316
326
|
end
|
317
327
|
|
318
|
-
def self.deploy_to_k8s deployment, yaml_file, image_name, new_image_name
|
319
|
-
|
320
|
-
Shell.run %Q(kubectl apply -f \#{yaml_file})
|
321
|
-
Shell.run %Q(kubectl set image deployment/\#{deployment} \#{image_name}=\#{new_image_name})
|
322
|
-
|
323
|
-
Shell.run %Q(kubectl rollout status deployment/\#{deployment})
|
324
|
-
else
|
325
|
-
puts "no deployment yet. create it"
|
326
|
-
Shell.run %Q(kubectl create -f \#{yaml_file} --record)
|
327
|
-
end
|
328
|
+
def self.deploy_to_k8s namespace, deployment, yaml_file, image_name, new_image_name
|
329
|
+
Shell.run %Q(kubectl apply -f \#{yaml_file})
|
328
330
|
end
|
329
331
|
end
|
330
332
|
EOF
|
@@ -373,7 +375,7 @@ module Builder
|
|
373
375
|
KubeTools.create_new_yaml yaml_template_file, yaml_file, data
|
374
376
|
|
375
377
|
deployment = image_name
|
376
|
-
KubeTools.deploy_to_k8s deployment, yaml_file, image_name, full_new_image_name
|
378
|
+
KubeTools.deploy_to_k8s ENV["K8S_NAMESPACE"], deployment, yaml_file, image_name, full_new_image_name
|
377
379
|
|
378
380
|
end
|
379
381
|
end
|
@@ -392,11 +394,12 @@ module Builder
|
|
392
394
|
end
|
393
395
|
end
|
394
396
|
|
395
|
-
def self.create_k8_file app_name
|
397
|
+
def self.create_k8_file namespace, app_name
|
396
398
|
_write "#{app_name}.k8.template.yaml", <<~EOF
|
397
399
|
apiVersion: extensions/v1beta1
|
398
400
|
kind: Deployment
|
399
401
|
metadata:
|
402
|
+
namespace: #{namespace}
|
400
403
|
name: #{app_name}
|
401
404
|
labels:
|
402
405
|
app: #{app_name}
|
@@ -417,6 +420,7 @@ module Builder
|
|
417
420
|
apiVersion: v1
|
418
421
|
kind: Service
|
419
422
|
metadata:
|
423
|
+
namespace: #{namespace}
|
420
424
|
name: #{app_name}
|
421
425
|
labels:
|
422
426
|
app: #{app_name}
|
@@ -433,6 +437,7 @@ module Builder
|
|
433
437
|
apiVersion: extensions/v1beta1
|
434
438
|
kind: Ingress
|
435
439
|
metadata:
|
440
|
+
namespace: #{namespace}
|
436
441
|
name: #{app_name}-ingress
|
437
442
|
labels:
|
438
443
|
app: #{app_name}-ingress
|
data/lib/citasks.rb
CHANGED
@@ -22,13 +22,17 @@ namespace "init" do
|
|
22
22
|
JENKINS_USER = wenzm
|
23
23
|
JENKINS_USER_API_TOKEN = f432de6a2fbeaaf58757f76194dcd825
|
24
24
|
|
25
|
+
JENKIN_PROJECT_ENDPOINT_AUTHENTICATION = false
|
26
|
+
|
25
27
|
JOB_NAME=#{project}
|
26
28
|
REPO_NAME=#{project}
|
27
29
|
|
28
30
|
COMPILER_DOCKER_IMAGE=maven:3.5-jdk-8
|
29
31
|
|
30
32
|
#for private docker registry
|
31
|
-
ICP_MASTER_IP=192.168.10.100
|
33
|
+
ICP_MASTER_IP=192.168.10.100
|
34
|
+
|
35
|
+
K8S_NAMESPACE=default
|
32
36
|
EOF
|
33
37
|
|
34
38
|
fh.puts content
|
@@ -67,7 +71,7 @@ namespace "Jenkins" do
|
|
67
71
|
Builder.create_env job_name
|
68
72
|
Builder.create_lib_files
|
69
73
|
Builder.create_rakefile
|
70
|
-
Builder.create_k8_file job_name
|
74
|
+
Builder.create_k8_file ENV["K8S_NAMESPACE"] || "default",job_name
|
71
75
|
Builder.create_dockerfile
|
72
76
|
end
|
73
77
|
|