@@ -52,76 +52,100 @@ def sample_setup_args(sample_dir, args, deploy_with_chart=true, verbose=false)
52
52
config = sample_conformance_yml(sample_dir)
53
53
54
54
if args.named.keys.includes? " release_name"
55
- release_name = args.named[" release_name" ]
55
+ release_name = " #{ args.named[" release_name" ] } "
56
56
else
57
- release_name = config.get(" release_name" ).as_s
57
+ release_name = " #{ config.get(" release_name" ).as_s? } "
58
58
end
59
59
puts " release_name: #{ release_name } " if verbose
60
60
61
61
if args.named.keys.includes? " deployment_name"
62
- deployment_name = args.named[" deployment_name" ]
62
+ deployment_name = " #{ args.named[" deployment_name" ] } "
63
63
else
64
- deployment_name = config.get(" deployment_name" ).as_s
64
+ deployment_name = " #{ config.get(" deployment_name" ).as_s? } "
65
65
end
66
66
puts " deployment_name: #{ deployment_name } " if verbose
67
67
68
68
if args.named.keys.includes? " helm_chart"
69
- helm_chart = args.named[" helm_chart" ]
69
+ helm_chart = " #{ args.named[" helm_chart" ] } "
70
70
else
71
- helm_chart = config.get(" helm_chart" ).as_s
71
+ helm_chart = " #{ config.get(" helm_chart" ).as_s? } "
72
72
end
73
73
puts " helm_chart: #{ helm_chart } " if verbose
74
74
75
75
if args.named.keys.includes? " helm_directory"
76
- helm_directory = args.named[" helm_directory" ]
76
+ helm_directory = " #{ args.named[" helm_directory" ] } "
77
77
else
78
- helm_directory = config.get(" helm_directory" ).as_s
78
+ helm_directory = " #{ config.get(" helm_directory" ).as_s? } "
79
79
end
80
80
puts " helm_directory: #{ helm_directory } " if verbose
81
81
82
82
if args.named.keys.includes? " git_clone_url"
83
- git_clone_url = args.named[" git_clone_url" ]
83
+ git_clone_url = " #{ args.named[" git_clone_url" ] } "
84
84
else
85
- git_clone_url = config.get(" git_clone_url" ).as_s
85
+ # TODO check type (any) before doing .as_s
86
+ git_clone_url = " #{ config.get(" git_clone_url" ).as_s? } "
86
87
end
87
88
puts " git_clone_url: #{ git_clone_url } " if verbose
88
89
89
90
sample_setup(sample_dir: sample_dir, release_name: release_name, deployment_name: deployment_name, helm_chart: helm_chart, helm_directory: helm_directory, git_clone_url: git_clone_url, deploy_with_chart: deploy_with_chart, verbose: verbose )
90
91
91
92
end
92
93
93
- def sample_setup (sample_dir, release_name, deployment_name, helm_chart, helm_directory, git_clone_url, deploy_with_chart= true , verbose= false )
94
+ def sample_setup (sample_dir, release_name, deployment_name, helm_chart, helm_directory, git_clone_url= " " , deploy_with_chart= true , verbose= false )
94
95
95
96
current_dir = FileUtils .pwd
96
97
puts current_dir if verbose
97
98
99
+ destination_cnf_dir = " #{ current_dir } /#{ CNF_DIR } /#{ short_sample_dir(sample_dir) } "
100
+ puts " destination_cnf_dir: #{ destination_cnf_dir } " if verbose
101
+ FileUtils .mkdir_p(destination_cnf_dir)
98
102
# TODO enable recloning/fetching etc
99
103
# TODO pass in block
100
- git_clone = ` git clone #{ git_clone_url } #{ current_dir } /#{ CNF_DIR } / #{ release_name } `
104
+ git_clone = ` git clone #{ git_clone_url } #{ destination_cnf_dir } /#{ release_name } ` if git_clone_url.empty? == false
101
105
puts git_clone if verbose
102
106
103
107
# Copy the cnf-conformance.yml
104
- yml_cp = ` cp #{ sample_dir } /cnf-conformance.yml #{ current_dir } /#{ CNF_DIR } /#{ release_name } `
108
+ # yml_cp = `cp #{sample_dir}/cnf-conformance.yml #{destination_cnf_dir}`
109
+ # Copy the sample
110
+ yml_cp = ` cp -a #{ sample_dir } #{ CNF_DIR } `
105
111
puts yml_cp if verbose
106
112
113
+ raise " Copy of #{ sample_dir } /cnf-conformance.yml to #{ destination_cnf_dir } failed!" unless $? .success?
114
+
107
115
begin
108
116
109
117
helm = " #{ current_dir } /#{ TOOLS_DIR } /helm/linux-amd64/helm"
110
118
puts helm if verbose
111
- helm_install = ` #{ helm } install #{ release_name } #{ helm_chart } `
112
- puts helm_install if verbose
113
-
114
-
115
- # Retrieve the helm chart source
116
- FileUtils .mkdir_p(" #{ current_dir } /#{ CNF_DIR } /#{ release_name } /helm_chart" )
117
- helm_pull = ` #{ helm } pull #{ helm_chart } `
118
- puts helm_pull if verbose
119
- core_mv = ` mv #{ release_name } -*.tgz #{ current_dir } /#{ CNF_DIR } /#{ release_name } /helm_chart`
120
- puts core_mv if verbose
121
- tar = ` cd #{ current_dir } /#{ CNF_DIR } /#{ release_name } /helm_chart; tar -xvf #{ current_dir } /#{ CNF_DIR } /#{ release_name } /helm_chart/#{ release_name } -*.tgz`
122
- puts tar if verbose
119
+ if deploy_with_chart
120
+ puts " deploying with chart" if verbose
121
+ helm_install = ` #{ helm } install #{ release_name } #{ helm_chart } `
122
+ puts helm_install if verbose
123
+
124
+ # Retrieve the helm chart source
125
+ FileUtils .mkdir_p(" #{ destination_cnf_dir } /#{ helm_directory } " )
126
+ helm_pull = ` #{ helm } pull #{ helm_chart } `
127
+ puts helm_pull if verbose
128
+ # core_mv = `mv #{release_name}-*.tgz #{destination_cnf_dir}/#{helm_directory}`
129
+ # TODO helm_chart should be helm_chart_repo
130
+ puts " mv #{ chart_name(helm_chart) } -*.tgz #{ destination_cnf_dir } /#{ helm_directory } " if verbose
131
+ core_mv = ` mv #{ chart_name(helm_chart) } -*.tgz #{ destination_cnf_dir } /#{ helm_directory } `
132
+ puts core_mv if verbose
133
+
134
+ puts " cd #{ destination_cnf_dir } /#{ helm_directory } ; tar -xvf #{ destination_cnf_dir } /#{ helm_directory } /#{ chart_name(helm_chart) } -*.tgz" if verbose
135
+ tar = ` cd #{ destination_cnf_dir } /#{ helm_directory } ; tar -xvf #{ destination_cnf_dir } /#{ helm_directory } /#{ chart_name(helm_chart) } -*.tgz`
136
+ puts tar if verbose
137
+
138
+ puts " mv #{ destination_cnf_dir } /#{ helm_directory } /#{ chart_name(helm_chart) } /* #{ destination_cnf_dir } /#{ helm_directory } " if verbose
139
+ move_chart = ` mv #{ destination_cnf_dir } /#{ helm_directory } /#{ chart_name(helm_chart) } /* #{ destination_cnf_dir } /#{ helm_directory } `
140
+ puts move_chart if verbose
141
+ else
142
+ puts " deploying with helm directory" if verbose
143
+ helm_install = ` #{ helm } install #{ release_name } #{ destination_cnf_dir } /#{ helm_directory } `
144
+ puts helm_install if verbose
145
+ end
146
+
123
147
wait_for_install(deployment_name)
124
- if helm_install.to_s.size > 0 && helm_pull.to_s.size > 0
148
+ if helm_install.to_s.size > 0 # && helm_pull.to_s.size > 0
125
149
puts " Successfully setup #{ release_name } " .colorize(:green )
126
150
end
127
151
ensure
@@ -139,6 +163,15 @@ def sample_cleanup(sample_dir, verbose=true)
139
163
puts helm if verbose
140
164
helm_uninstall = ` #{ helm } uninstall #{ release_name } `
141
165
puts helm_uninstall if verbose
142
- rm = ` rm -rf #{ current_dir } /#{ CNF_DIR } /#{ release_name } `
166
+ destination_cnf_dir = " #{ current_dir } /#{ CNF_DIR } /#{ short_sample_dir(sample_dir) } "
167
+ rm = ` rm -rf #{ destination_cnf_dir } `
143
168
puts rm if verbose
144
169
end
170
+
171
+ def chart_name (helm_chart_repo )
172
+ helm_chart_repo.split(" /" ).last
173
+ end
174
+
175
+ def short_sample_dir (full_sample_dir )
176
+ full_sample_dir.split(" /" ).last
177
+ end
0 commit comments