vagrant-openshift 2.0.6 → 2.0.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.asciidoc +2 -2
- data/lib/vagrant-openshift/action/generate_template.rb +5 -3
- data/lib/vagrant-openshift/action/push_openshift_images.rb +24 -19
- data/lib/vagrant-openshift/action.rb +1 -1
- data/lib/vagrant-openshift/command/{openshift_init.rb → origin_init.rb} +10 -4
- data/lib/vagrant-openshift/command/test_openshift_image.rb +7 -6
- data/lib/vagrant-openshift/constants.rb +2 -1
- data/lib/vagrant-openshift/plugin.rb +2 -2
- data/lib/vagrant-openshift/templates/command/init-openshift/box_info.yaml +49 -0
- data/lib/vagrant-openshift/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 40e78c1297ab90fde0f17d934350f42056d76894
|
4
|
+
data.tar.gz: 980f13e1b3b756609eef588d963d64e499c830d0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a9a31ebe5362163ca70c47978bb2b0d8eccd80916c009345569abfdf20a777418b17eb6340c63be9681b58b386ac61f626553daf1c1405d3ce49e8b2c2c46e6d
|
7
|
+
data.tar.gz: a11f6401a83fd85e2a5fa1155c22fe99d5201b1c3e633363f1cec743e34937c80199ab85223d8f5f0c6817df1ef27103d967c4f6b7a6367d4ea282f027ace256
|
data/README.asciidoc
CHANGED
@@ -88,7 +88,7 @@ you may modify later to match your vagrant requirements:
|
|
88
88
|
|
89
89
|
[source, sh]
|
90
90
|
----
|
91
|
-
$ vagrant origin-init --stage inst --os (fedora|centos7|rhel7) <instance name>
|
91
|
+
$ vagrant origin-init --stage inst --os (fedora|centos7|rhel7|rhelatomic7) <instance name>
|
92
92
|
----
|
93
93
|
|
94
94
|
==== Start the machine
|
@@ -179,7 +179,7 @@ AWSPrivateKeyPath=<SSH Private key>
|
|
179
179
|
|
180
180
|
[source, sh]
|
181
181
|
----
|
182
|
-
$ vagrant origin-init --stage inst --os (fedora|centos7|rhel7) <instance name>
|
182
|
+
$ vagrant origin-init --stage inst --os (fedora|centos7|rhel7|rhelatomic7) <instance name>
|
183
183
|
----
|
184
184
|
|
185
185
|
The instance name will be applied as a tag and should generally be
|
@@ -31,7 +31,8 @@ module Vagrant
|
|
31
31
|
def call(env)
|
32
32
|
os = @options[:os].to_sym
|
33
33
|
stage = @options[:stage].to_sym
|
34
|
-
instance_type = @options[:instance_type]
|
34
|
+
instance_type = @options[:instance_type]
|
35
|
+
volume_size = @options[:volume_size]
|
35
36
|
inst_ts = Time.now.getutc.strftime('%Y%m%d_%H%M')
|
36
37
|
|
37
38
|
box_info_path = Pathname.new(File.expand_path("#{__FILE__}/../../templates/command/init-openshift/box_info.yaml"))
|
@@ -40,7 +41,7 @@ module Vagrant
|
|
40
41
|
box_info = box_info_data[os][stage]
|
41
42
|
box_info[:instance_name] = @options[:name].nil? ? 'openshift_origin_' + inst_ts : @options[:name]
|
42
43
|
box_info[:os] = os
|
43
|
-
box_info[:vagrant_guest] = [:centos7, :rhel7].include?(os) ? :redhat : os
|
44
|
+
box_info[:vagrant_guest] = [:centos7, :rhel7, :rhelatomic7].include?(os) ? :redhat : os
|
44
45
|
box_info[:port_mappings] = @options[:port_mappings]
|
45
46
|
|
46
47
|
@openstack_creds_file = ENV['OPENSTACK_CREDS'].nil? || ENV['OPENSTACK_CREDS'] == '' ? "~/.openstackcred" : ENV['OPENSTACK_CREDS']
|
@@ -68,7 +69,8 @@ module Vagrant
|
|
68
69
|
'cpus' => 2,
|
69
70
|
'memory' => 2048,
|
70
71
|
'rebuild_yum_cache' => false,
|
71
|
-
'instance_type' => instance_type
|
72
|
+
'instance_type' => instance_type,
|
73
|
+
'volume_size' => volume_size
|
72
74
|
}
|
73
75
|
|
74
76
|
vagrant_openshift_config['no_synced_folders'] = @options[:no_synced_folders]
|
@@ -30,17 +30,18 @@ module Vagrant
|
|
30
30
|
# registry here already.
|
31
31
|
def fix_insecure_registry_cmd(registry_url)
|
32
32
|
%{
|
33
|
+
sudo chmod a+rw /etc/sysconfig/docker
|
33
34
|
cat <<EOF > /etc/sysconfig/docker
|
34
35
|
OPTIONS='--insecure-registry #{registry_url} --selinux-enabled'
|
35
36
|
EOF
|
36
|
-
systemctl restart docker
|
37
|
+
sudo systemctl restart docker
|
37
38
|
}
|
38
39
|
end
|
39
40
|
|
40
41
|
def push_image(image_name, git_ref, registry)
|
41
42
|
%{
|
42
43
|
set -e
|
43
|
-
pushd /
|
44
|
+
pushd /tmp/images/#{image_name}
|
44
45
|
git checkout #{git_ref}
|
45
46
|
git_ref=$(git rev-parse --short HEAD)
|
46
47
|
echo "Pushing image #{image_name}:$git_ref..."
|
@@ -59,36 +60,40 @@ docker tag -f #{image_name}-rhel7 #{registry}#{image_name}-rhel7:latest
|
|
59
60
|
|
60
61
|
# We can't fully parallelize this because docker fails when you push to the same repo at the
|
61
62
|
# same time (using different tags), so we do two groups of push operations.
|
63
|
+
|
64
|
+
# this one is failing in parallel for unknown reasons
|
65
|
+
docker push -f #{registry}#{image_name}-rhel7:$git_ref
|
66
|
+
|
62
67
|
procs[0]="docker push -f #{registry}#{image_name}-centos7:$git_ref"
|
63
68
|
procs[1]="docker push -f docker.io/#{image_name}-centos7:latest"
|
64
|
-
procs[2]="docker push -f #{registry}#{image_name}-rhel7:$git_ref"
|
69
|
+
#procs[2]="docker push -f #{registry}#{image_name}-rhel7:$git_ref"
|
65
70
|
|
66
71
|
# Run pushes in parallel
|
67
|
-
for i in {0..
|
68
|
-
echo "pushing ${procs[${i}]}"
|
69
|
-
${procs[${i}]} &
|
72
|
+
for i in {0..1}; do
|
73
|
+
echo "pushing ${procs[${i}]}"
|
74
|
+
${procs[${i}]} &
|
70
75
|
pids[${i}]=$!
|
71
|
-
echo "push ${procs[${i}]} is pid ${pids[${i}]}"
|
72
|
-
done
|
76
|
+
echo "push ${procs[${i}]} is pid ${pids[${i}]}"
|
77
|
+
done
|
73
78
|
|
74
79
|
# Wait for all pushes. "wait" will check the return code of each process also.
|
75
80
|
for pid in ${pids[*]}; do
|
76
|
-
echo "checking $pid"
|
77
|
-
wait $pid
|
81
|
+
echo "checking $pid"
|
82
|
+
wait $pid
|
78
83
|
done
|
79
84
|
|
80
85
|
procs[0]="docker push -f #{registry}#{image_name}-centos7:latest"
|
81
86
|
procs[1]="docker push -f #{registry}#{image_name}-rhel7:latest"
|
82
87
|
|
83
88
|
# Run pushes in parallel
|
84
|
-
for i in {0..1}; do
|
85
|
-
${procs[${i}]} &
|
89
|
+
for i in {0..1}; do
|
90
|
+
${procs[${i}]} &
|
86
91
|
pids[${i}]=$!
|
87
|
-
done
|
92
|
+
done
|
88
93
|
|
89
94
|
# Wait for all pushes. "wait" will check the return code of each process also.
|
90
95
|
for pid in ${pids[*]}; do
|
91
|
-
wait $pid
|
96
|
+
wait $pid
|
92
97
|
done
|
93
98
|
|
94
99
|
popd
|
@@ -99,12 +104,12 @@ set +e
|
|
99
104
|
# Note that this only invokes "make test" on the image, if the tests
|
100
105
|
# succeed the candidate produced by "make test" will be pushed. There
|
101
106
|
# is an implicit assumption here that the image produced by make test
|
102
|
-
# is identical to what would be produced by a subsequent "make build"
|
107
|
+
# is identical to what would be produced by a subsequent "make build"
|
103
108
|
# call, so there's no point in explicitly calling "make build" after
|
104
109
|
# "make test"
|
105
110
|
def build_image(image_name, version, git_ref, repo_url)
|
106
111
|
%{
|
107
|
-
dest_dir
|
112
|
+
dest_dir=/tmp/images/#{image_name}
|
108
113
|
rm -rf ${dest_dir}; mkdir -p ${dest_dir}
|
109
114
|
set -e
|
110
115
|
pushd ${dest_dir}
|
@@ -112,9 +117,9 @@ git init && git remote add -t master origin #{repo_url}
|
|
112
117
|
git fetch && git checkout #{git_ref}
|
113
118
|
git_ref=$(git rev-parse --short HEAD)
|
114
119
|
echo "Building and testing #{image_name}-centos7:$git_ref ..."
|
115
|
-
make test TARGET=centos7 VERSION=#{version} TAG_ON_SUCCESS=true
|
120
|
+
sudo env "PATH=$PATH" make test TARGET=centos7 VERSION=#{version} TAG_ON_SUCCESS=true
|
116
121
|
echo "Building and testing #{image_name}-rhel7:$git_ref ..."
|
117
|
-
make test TARGET=rhel7 VERSION=#{version} TAG_ON_SUCCESS=true
|
122
|
+
sudo env "PATH=$PATH" make test TARGET=rhel7 VERSION=#{version} TAG_ON_SUCCESS=true
|
118
123
|
popd
|
119
124
|
set +e
|
120
125
|
}
|
@@ -155,7 +160,7 @@ docker pull #{@options[:registry]}openshift/base-rhel7
|
|
155
160
|
|
156
161
|
cmd += %{
|
157
162
|
# so we can call sti
|
158
|
-
PATH=/data/src/github.com/openshift/source-to-image/_output/go/bin:/data/src/github.com/openshift/source-to-image/_output/local/go/bin:$PATH
|
163
|
+
export PATH=/data/src/github.com/openshift/source-to-image/_output/go/bin:/data/src/github.com/openshift/source-to-image/_output/local/go/bin:$PATH
|
159
164
|
}
|
160
165
|
|
161
166
|
# FIXME: We always need to make sure we have the latest base image
|
@@ -18,7 +18,7 @@ require_relative "../action"
|
|
18
18
|
module Vagrant
|
19
19
|
module Openshift
|
20
20
|
module Commands
|
21
|
-
class
|
21
|
+
class OriginInit < Vagrant.plugin(2, :command)
|
22
22
|
include CommandHelper
|
23
23
|
|
24
24
|
def self.synopsis
|
@@ -31,23 +31,25 @@ module Vagrant
|
|
31
31
|
:os => 'centos7',
|
32
32
|
:stage => 'inst',
|
33
33
|
:instance_type => 't2.medium',
|
34
|
+
:volume_size => 25,
|
34
35
|
:port_mappings => [],
|
35
36
|
:no_synced_folders => false,
|
36
37
|
:no_insert_key => false
|
37
38
|
}
|
38
39
|
|
39
40
|
valid_stage = ['os','deps','inst', 'bootstrap']
|
40
|
-
valid_os = ['centos7','fedora','rhel7']
|
41
|
+
valid_os = ['centos7','fedora','rhel7','rhelatomic7']
|
41
42
|
|
42
43
|
opts = OptionParser.new do |o|
|
43
44
|
o.banner = "Usage: vagrant origin-init [vm or instance name]"
|
44
45
|
o.separator ""
|
45
46
|
|
46
|
-
o.on("-s [stage]", "
|
47
|
+
o.on("-s [stage]", "
|
48
|
+
--stage [stage]", String, "Specify what build state to start from:\n\tos = base operating system\n\tdeps = only dependencies installed\n\tinst = dev environment [default]\n\tbootstrap = running environment") do |f|
|
47
49
|
options[:stage] = f
|
48
50
|
end
|
49
51
|
|
50
|
-
o.on("-o [name]", "--os [name]", String, "Operating system:\n\tcentos7 [default]\n\tfedora\n\trhel7") do |f|
|
52
|
+
o.on("-o [name]", "--os [name]", String, "Operating system:\n\tcentos7 [default]\n\tfedora\n\trhel7\n\trhelatomic7") do |f|
|
51
53
|
options[:os] = f
|
52
54
|
end
|
53
55
|
|
@@ -66,6 +68,10 @@ module Vagrant
|
|
66
68
|
o.on('--instance-type', "--instance-type [type]", String, "Specify what type of instance to launch") do |f|
|
67
69
|
options[:instance_type] = f
|
68
70
|
end
|
71
|
+
|
72
|
+
o.on('--volume-size', "--volume-size [size]", String, "Specify the volume size for the instance") do |f|
|
73
|
+
options[:volume_size] = f.to_i
|
74
|
+
end
|
69
75
|
end
|
70
76
|
|
71
77
|
# Parse the options
|
@@ -95,14 +95,15 @@ set -x
|
|
95
95
|
|
96
96
|
# NOTE: This is only for rhel7
|
97
97
|
if [ -n "#{registry}" -a -f /etc/sysconfig/docker ]; then
|
98
|
+
sudo chmod a+rw /etc/sysconfig/docker
|
98
99
|
cat <<EOF > /etc/sysconfig/docker
|
99
100
|
OPTIONS='--insecure-registry #{registry} --selinux-enabled'
|
100
101
|
EOF
|
101
|
-
systemctl restart docker
|
102
|
+
sudo systemctl restart docker
|
102
103
|
fi
|
103
104
|
|
104
105
|
# so we can call sti
|
105
|
-
PATH=/data/src/github.com/openshift/source-to-image/_output/go/bin:/data/src/github.com/openshift/source-to-image/_output/local/go/bin:$PATH
|
106
|
+
export PATH=/data/src/github.com/openshift/source-to-image/_output/go/bin:/data/src/github.com/openshift/source-to-image/_output/local/go/bin:$PATH
|
106
107
|
|
107
108
|
# create a temp dir to play in
|
108
109
|
temp_dir=$(mktemp -d /tmp/image_test.XXXXXXX)
|
@@ -128,19 +129,19 @@ if [ "#{base_images}" == "true" -a -n "#{registry}" ]; then
|
|
128
129
|
docker pull #{registry}/openshift/base-rhel7 && docker tag #{registry}/openshift/base-rhel7 openshift/base-rhel7
|
129
130
|
fi
|
130
131
|
|
131
|
-
if ! make test TARGET=rhel7; then
|
132
|
+
if ! sudo env "PATH=$PATH" make test TARGET=rhel7; then
|
132
133
|
echo "ERROR: #{image}-rhel7 failed testing."
|
133
134
|
exit 1
|
134
135
|
fi
|
135
|
-
|
136
|
-
if ! make test TARGET=centos7; then
|
136
|
+
|
137
|
+
if ! sudo env "PATH=$PATH" make test TARGET=centos7; then
|
137
138
|
echo "ERROR: #{image}-centos7 failed testing."
|
138
139
|
exit 1
|
139
140
|
fi
|
140
141
|
|
141
142
|
# clean up
|
142
143
|
cd /
|
143
|
-
rm -rf $temp_dir
|
144
|
+
sudo rm -rf $temp_dir
|
144
145
|
exit $status
|
145
146
|
})
|
146
147
|
# Vagrant throws an exception if any execute invocation returns non-zero,
|
@@ -33,7 +33,7 @@ module Vagrant
|
|
33
33
|
def self.openshift_images
|
34
34
|
{
|
35
35
|
'openshift/base' => 'https://github.com/openshift/sti-base.git',
|
36
|
-
'openshift/jenkins-
|
36
|
+
'openshift/jenkins-1' => 'https://github.com/openshift/jenkins.git',
|
37
37
|
'openshift/nodejs-010' => 'https://github.com/openshift/sti-nodejs.git',
|
38
38
|
'openshift/openldap-2441' => 'https://github.com/openshift/openldap.git',
|
39
39
|
'openshift/perl-516' => 'https://github.com/openshift/sti-perl.git',
|
@@ -48,6 +48,7 @@ module Vagrant
|
|
48
48
|
'openshift/mysql-55' => 'https://github.com/openshift/mysql.git',
|
49
49
|
'openshift/mysql-56' => 'https://github.com/openshift/mysql.git',
|
50
50
|
'openshift/mongodb-24' => 'https://github.com/openshift/mongodb.git',
|
51
|
+
'rhscl/mongodb-26' => 'https://github.com/openshift/mongodb.git',
|
51
52
|
'openshift/postgresql-92' => 'https://github.com/openshift/postgresql.git',
|
52
53
|
'openshift/wildfly-81' => 'https://github.com/openshift/sti-wildfly.git'
|
53
54
|
}
|
@@ -176,3 +176,52 @@
|
|
176
176
|
:openstack:
|
177
177
|
:image: <RHEL 7>
|
178
178
|
:ssh_user: root
|
179
|
+
:rhelatomic7:
|
180
|
+
:os:
|
181
|
+
:aws:
|
182
|
+
:ami: <AMI_ID>
|
183
|
+
:ami_region: us-east-1
|
184
|
+
:ssh_user: cloud-user
|
185
|
+
:machine_name: openshift-rhelatomic7
|
186
|
+
:ebs_volume_size: 25
|
187
|
+
:ami_tag_prefix: openshift-rhelatomic7_
|
188
|
+
:openstack:
|
189
|
+
:image: <ATOMIC>
|
190
|
+
:flavor: m1.small
|
191
|
+
:ssh_user: root
|
192
|
+
:deps:
|
193
|
+
:aws:
|
194
|
+
:ami: <AMI_ID>
|
195
|
+
:ami_region: us-east-1
|
196
|
+
:ssh_user: cloud-user
|
197
|
+
:machine_name: devenv-rhelatomic7-base
|
198
|
+
:ebs_volume_size: 25
|
199
|
+
:ami_tag_prefix: devenv-rhelatomic7-base_
|
200
|
+
:openstack:
|
201
|
+
:image: <ATOMIC>
|
202
|
+
:flavor: m1.small
|
203
|
+
:ssh_user: root
|
204
|
+
:inst:
|
205
|
+
:aws:
|
206
|
+
:ami: <AMI_ID>
|
207
|
+
:ami_region: us-east-1
|
208
|
+
:ssh_user: cloud-user
|
209
|
+
:machine_name: <AMI_NAME>
|
210
|
+
:ebs_volume_size: 25
|
211
|
+
:ami_tag_prefix: openshift-rhelatomic7_
|
212
|
+
:openstack:
|
213
|
+
:image: <ATOMIC>
|
214
|
+
:flavor: m1.small
|
215
|
+
:ssh_user: root
|
216
|
+
:bootstrap:
|
217
|
+
:aws:
|
218
|
+
:ami: <AMI_ID>
|
219
|
+
:ami_region: us-east-1
|
220
|
+
:ssh_user: cloud-user
|
221
|
+
:machine_name: <AMI_NAME>
|
222
|
+
:ebs_volume_size: 25
|
223
|
+
:ami_tag_prefix: devenv-rhelatomic7-bootstrap_
|
224
|
+
:openstack:
|
225
|
+
:image: <ATOMIC>
|
226
|
+
:flavor: m1.small
|
227
|
+
:ssh_user: root
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-openshift
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.
|
4
|
+
version: 2.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Red Hat
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-09-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|
@@ -167,7 +167,7 @@ files:
|
|
167
167
|
- lib/vagrant-openshift/command/local_openshift_setup.rb
|
168
168
|
- lib/vagrant-openshift/command/modify_ami.rb
|
169
169
|
- lib/vagrant-openshift/command/modify_instance.rb
|
170
|
-
- lib/vagrant-openshift/command/
|
170
|
+
- lib/vagrant-openshift/command/origin_init.rb
|
171
171
|
- lib/vagrant-openshift/command/push_openshift_images.rb
|
172
172
|
- lib/vagrant-openshift/command/push_openshift_release.rb
|
173
173
|
- lib/vagrant-openshift/command/repo_sync_openshift.rb
|