vagrant-openshift 1.0.17 → 1.0.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9073818422c2a2480096ac64ea8bf3238b6d76b6
4
- data.tar.gz: 78bd0ccc260b6b0e65ff9f422847385af5f62fbb
3
+ metadata.gz: a6f50f81d496445d7c7ff530ebbb98b6d1734a8f
4
+ data.tar.gz: d0601c6912e1dea1acadb9959c3ca2e0e93dad1b
5
5
  SHA512:
6
- metadata.gz: 8a5a1f99318a659084021fe79fe226f5f677556655e94deffe4f45f37e3e95a06e9718f817f7fcb92284ef35449d280ac06ae0cd8d7edb639a2228ff8156acc5
7
- data.tar.gz: 24823bf9a2edc50d3fd53816f3f0c2a36d3ad97f24f86aa5ef5c688d8fd5cbb2e18a486182ac0a12c431dea68f00fde08b3cae63ba8f94a649de0cbe9132cf92
6
+ metadata.gz: f8f6c74bd4528eebfc10e70c6ab4f1c99a0e052fd8b21075ed2330a404cfa2d7c1303afa86ebb1ef40f7da1e8b77a45ead66e0d774f949e4b6156cc917d2b2da
7
+ data.tar.gz: a87ed5e5469411c4026f5bb8cd4bdad123069b550fc234545d6a778f1a2c1fa50866dc6aa5c328bc84a7f6de180ab0f2d32c3ca5d72024673d547f826028579e
data/README.asciidoc CHANGED
@@ -1,9 +1,9 @@
1
1
  == OpenShift Origin Build Tools
2
2
 
3
- This is a link:http://www.vagrantup.com[Vagrant] 1.2+ plugin that adds vagrant commands and provisioners to
3
+ This is a link:http://www.vagrantup.com[Vagrant] 1.7.2+ plugin that adds vagrant commands and provisioners to
4
4
  build and test link:http://openshift.github.io[OpenShift Origin].
5
5
 
6
- NOTE: This plugin requires link:https://www.vagrantup.com/downloads.html[Vagrant 1.2+]
6
+ NOTE: This plugin requires link:https://www.vagrantup.com/downloads.html[Vagrant 1.7.2+]
7
7
 
8
8
  NOTE: Instructions below generally assume a Linux-like command line and may require modifications for other environments.
9
9
 
@@ -199,6 +199,8 @@ a base AMI in your repository's `.vagrant-openshift.json` file under the
199
199
  vagrant up --provider=aws
200
200
  ----
201
201
 
202
+ TIP: Be sure to rerun origin-init for each subsequent run of `vagrant up --provider=aws` to pick up the last built ami.
203
+
202
204
  NOTE: Requires latest link:https://github.com/mitchellh/vagrant-aws[AWS] provider.
203
205
 
204
206
  NOTE: You can use the link:https://github.com/mikery/vagrant-ami[Vagrant-AMI] plugin to create an AMI from a running AWS machine.
@@ -40,6 +40,7 @@ module Vagrant
40
40
  "/tmp/origin/e2e/" => artifacts_dir + "e2e/",
41
41
 
42
42
  "/data/src/github.com/openshift/origin/_output/local/releases/" => artifacts_dir + "release/",
43
+ "/data/src/github.com/openshift/origin/assets/test/tmp/screenshots/" => artifacts_dir + "screenshots/",
43
44
  }
44
45
 
45
46
  download_map.each do |source,target|
@@ -36,7 +36,8 @@ module Vagrant
36
36
  download_map = {
37
37
  "/var/log/yum.log" => artifacts_dir + "yum.log",
38
38
  "/var/log/secure" => artifacts_dir + "secure",
39
- "/var/log/audit/audit.log" => artifacts_dir + "audit.log"
39
+ "/var/log/audit/audit.log" => artifacts_dir + "audit.log",
40
+ "/tmp/sti/" => artifacts_dir + "sti/"
40
41
  }
41
42
 
42
43
  download_map.each do |source,target|
@@ -45,6 +45,10 @@ export PATH=$ORIGIN_PATH/_output/etcd/bin:$ORIGIN_PATH/_output/local/go/bin/:$GO
45
45
  export KUBECONFIG=/openshift.local.certificates/admin/.kubeconfig
46
46
  DELIM
47
47
 
48
+ cat > /etc/sysconfig/openshift <<DELIM
49
+ GOPATH=/data
50
+ DELIM
51
+
48
52
  source /etc/profile.d/openshift.sh
49
53
 
50
54
  pushd $ORIGIN_PATH
@@ -74,7 +78,7 @@ Documentation=https://github.com/openshift/origin
74
78
 
75
79
  [Service]
76
80
  Type=simple
77
- EnvironmentFile=-/etc/profile.d/openshift.sh
81
+ EnvironmentFile=-/etc/sysconfig/openshift
78
82
  ExecStart=$ORIGIN_PATH/_output/local/go/bin/openshift start --public-master=https://\\${HOST}:8443
79
83
  ExecStartPost=/bin/sleep 8
80
84
  ExecStartPost=/bin/chmod a+r -R /openshift.local.certificates/admin
@@ -30,7 +30,7 @@ module Vagrant
30
30
  # FIXME: Move 'openshift/centos-mongodb' into openshift org and then
31
31
  # add the image into 'repositories' constants
32
32
  #
33
- sudo(env[:machine], "yum install -y git fontconfig yum-utils wget make mlocate bind augeas vim docker-io hg bzr libselinux-devel vim tig glibc-static btrfs-progs-devel device-mapper-devel sqlite-devel libnetfilter_queue-devel gcc gcc-c++ e2fsprogs tmux tmux httpie ctags hg xfsprogs rubygems openvswitch bridge-utils bzip2 screen")
33
+ sudo(env[:machine], "yum install -y git fontconfig yum-utils wget make mlocate bind augeas vim docker-io hg bzr libselinux-devel vim tig glibc-static btrfs-progs-devel device-mapper-devel sqlite-devel libnetfilter_queue-devel gcc gcc-c++ e2fsprogs tmux tmux httpie ctags hg xfsprogs rubygems openvswitch bridge-utils bzip2 screen java-1.?.0-openjdk")
34
34
  sudo(env[:machine], "yum install -y facter", {fail_on_error: false})
35
35
  #
36
36
  # FIXME: Need to install golang packages 'after' the 'gcc' is
@@ -67,6 +67,7 @@ systemctl enable docker
67
67
  systemctl start docker
68
68
 
69
69
  docker pull openshift/docker-registry
70
+ docker pull openshift/origin-docker-registry
70
71
  }, {:timeout=>60*20})
71
72
  @app.call(env)
72
73
  end
@@ -0,0 +1,54 @@
1
+ #--
2
+ # Copyright 2014 Red Hat, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #++
16
+
17
+ module Vagrant
18
+ module Openshift
19
+ module Action
20
+ class InstallOpenshift3Router
21
+ include CommandHelper
22
+
23
+ def initialize(app, env)
24
+ @app = app
25
+ @env = env
26
+ end
27
+
28
+ def call(env)
29
+ puts 'Installing router'
30
+ sudo(env[:machine], '
31
+ ROUTER_EXISTS=$(openshift ex router 2>&1 | grep "does not exist")
32
+ OS_RUNNING=$(systemctl status openshift | grep "(running)")
33
+ CMD="openshift ex router --create --credentials=${KUBECONFIG}"
34
+
35
+ if [[ $OS_RUNNING ]]; then
36
+ if [[ -n $ROUTER_EXISTS ]]; then
37
+ echo "Installing OpenShift router"
38
+ ${CMD}
39
+ else
40
+ echo "Router already exists, skipping"
41
+ fi
42
+ else
43
+ echo "The OpenShift process is not running. To install a router please start OpenShift and run ${CMD}"
44
+ fi
45
+
46
+
47
+ ')
48
+
49
+ @app.call(env)
50
+ end
51
+ end
52
+ end
53
+ end
54
+ end
@@ -0,0 +1,132 @@
1
+ #
2
+ # Copyright 2013 Red Hat, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #++
16
+
17
+ module Vagrant
18
+ module Openshift
19
+ module Action
20
+ class PushOpenshift3Images
21
+ include CommandHelper
22
+
23
+ def initialize(app, env, options)
24
+ @app = app
25
+ @env = env
26
+ @options = options
27
+ end
28
+
29
+ # FIXME: This is a temporary fix as the RHEL7 AMI should have this
30
+ # registry here already.
31
+ def fix_insecure_registry_cmd(registry_url)
32
+ %{
33
+ cat <<EOF > /etc/sysconfig/docker
34
+ OPTIONS='--insecure-registry #{registry_url} --selinux-enabled -H fd://'
35
+ EOF
36
+ systemctl restart docker
37
+ }
38
+ end
39
+
40
+ def build_image(image_name, git_ref, repo_url, registry)
41
+ %{
42
+ dest_dir="/data/src/github/openshift/#{image_name}"
43
+ rm -rf ${dest_dir}; mkdir -p ${dest_dir}
44
+ if git clone #{repo_url} ${dest_dir}; then
45
+ pushd ${dest_dir}
46
+ git checkout #{git_ref}
47
+ git_ref=$(git rev-parse --short HEAD)
48
+ echo "Building #{image_name}:$git_ref"
49
+
50
+ if make build TARGET=centos7; then
51
+ docker tag #{image_name}-centos7 #{registry}#{image_name}-centos7:$git_ref
52
+ docker tag #{image_name}-centos7 #{registry}#{image_name}-centos7:latest
53
+ docker tag #{image_name}-centos7 #{image_name}-centos7:latest
54
+ docker push #{registry}#{image_name}-centos7:$git_ref
55
+ docker push #{registry}#{image_name}-centos7:latest
56
+ docker push #{image_name}-centos7:latest
57
+ else
58
+ echo "ERROR: Failed to build #{image_name}-centos7"
59
+ fi
60
+
61
+ if make build TARGET=rhel7; then
62
+ docker tag #{image_name}-rhel7 #{registry}#{image_name}-rhel7:$git_ref
63
+ docker tag #{image_name}-rhel7 #{registry}#{image_name}-rhel7:latest
64
+ docker push #{registry}#{image_name}-rhel7:$git_ref
65
+ docker push #{registry}#{image_name}-rhel7:latest
66
+ else
67
+ echo "ERROR: Failed to build #{image_name}-rhel7"
68
+ fi
69
+ popd
70
+ fi
71
+ }
72
+ end
73
+
74
+ def update_latest_image_cmd(registry)
75
+ cmd = %{
76
+ rm -rf ~/latest_images ; touch ~/latest_images
77
+ }
78
+ Vagrant::Openshift::Constants.openshift3_images.each do |name, git_url|
79
+ cmd += %{
80
+ git_ref=$(git ls-remote #{git_url} -h refs/heads/master | cut -c1-7)
81
+ curl -s http://#{registry}v1/repositories/#{name}-rhel7/tags/${git_ref} | grep -q "error"
82
+ if [[ "$?" != "0" ]]; then
83
+ echo "#{name};$git_ref" >> ~/latest_images
84
+ fi
85
+ }
86
+ end
87
+ return cmd
88
+ end
89
+
90
+ def call(env)
91
+ cmd = fix_insecure_registry_cmd(@options[:registry])
92
+ if !@options[:registry].end_with?('/')
93
+ @options[:registry] += "/"
94
+ end
95
+
96
+ cmd += %{
97
+ set -x; set +e
98
+ echo "Pre-pulling base images"
99
+ docker pull #{@options[:registry]}openshift/base-centos7
100
+ [[ "$?" == "0" ]] && docker tag #{@options[:registry]}openshift/base-centos7 openshift/base-centos7
101
+ docker pull #{@options[:registry]}openshift/base-rhel7
102
+ [[ "$?" == "0" ]] && docker tag #{@options[:registry]}openshift/base-rhel7 openshift/base-rhel7
103
+ }
104
+
105
+ # FIXME: We always need to make sure we have the latest base image
106
+ # FIXME: This is because the internal registry is pruned once per month
107
+ if !@options[:build_images].include?("openshift/base")
108
+ @options[:build_images] = "openshift/base:master,#{@options[:build_images]}"
109
+ end
110
+
111
+ build_images = @options[:build_images].split(",").map { |i| i.strip }
112
+
113
+ build_images.each do |image|
114
+ name, git_ref = image.split(':')
115
+ repo_url = Vagrant::Openshift::Constants.openshift3_images[name]
116
+ if repo_url == nil
117
+ puts "Unregistred image: #{name}, skipping"
118
+ next
119
+ end
120
+ cmd += build_image(name, git_ref, repo_url, @options[:registry])
121
+ end
122
+
123
+ cmd += update_latest_image_cmd(@options[:registry])
124
+
125
+ do_execute(env[:machine], cmd)
126
+
127
+ @app.call(env)
128
+ end
129
+ end
130
+ end
131
+ end
132
+ end
@@ -55,26 +55,42 @@ popd >/dev/null
55
55
  exit_code
56
56
  end
57
57
 
58
+ #
59
+ # Build and run the make commands
60
+ # for testing all run make test
61
+ # for testing unit tests only run make build check
62
+ # for testing assets run hack/test-assets.sh
63
+ #
64
+ # All env vars will be added to the beginning of the command like VAR=1 make test
65
+ #
58
66
  def call(env)
59
67
  @options.delete :logs
60
68
 
61
- if @options[:report_coverage]
62
- cmds = ['OUTPUT_COVERAGE=/tmp/origin/e2e/artifacts/coverage hack/test-go.sh']
63
- else
64
- cmds = ['hack/test-go.sh']
65
- end
69
+ cmd_env = []
70
+ build_targets = ["make"]
66
71
 
67
72
  if @options[:all]
68
- cmds << 'hack/test-integration.sh'
69
- cmds << 'hack/test-cmd.sh'
73
+ cmd_env << 'ARTIFACT_DIR=/tmp/origin/e2e/artifacts'
74
+ cmd_env << 'LOG_DIR=/tmp/origin/e2e/logs'
75
+ cmd_env << 'TEST_ASSETS=true'
76
+ build_targets << 'test'
77
+ # we want to test the output of build-release, this flag tells the makefile to skip the build dependency
78
+ # so the command comes out to <cmd_env settings> make test SKIP_BUILD=true
79
+ build_targets << "SKIP_BUILD=true"
80
+
70
81
  if @options[:skip_image_cleanup]
71
- cmds << 'SKIP_IMAGE_CLEANUP=1 ARTIFACT_DIR=/tmp/origin/e2e/artifacts LOG_DIR=/tmp/origin/e2e/logs hack/test-end-to-end.sh'
72
- else
73
- cmds << 'ARTIFACT_DIR=/tmp/origin/e2e/artifacts LOG_DIR=/tmp/origin/e2e/logs hack/test-end-to-end.sh'
82
+ cmd_env << 'SKIP_IMAGE_CLEANUP=1'
74
83
  end
84
+ else
85
+ build_targets << "check"
86
+ end
87
+
88
+ if @options[:report_coverage]
89
+ cmd_env << 'OUTPUT_COVERAGE=/tmp/origin/e2e/artifacts/coverage'
75
90
  end
76
91
 
77
- env[:test_exit_code] = run_tests(env, cmds, true)
92
+ cmd = cmd_env.join(' ') + ' ' + build_targets.join(' ')
93
+ env[:test_exit_code] = run_tests(env, [cmd], true)
78
94
 
79
95
  # any other tests that should not be run as sudo
80
96
  if env[:test_exit_code] == 0 && @options[:all]
@@ -31,7 +31,7 @@ module Vagrant
31
31
  def call(env)
32
32
  @options.delete :logs
33
33
 
34
- cmds = ['hack/test-go.sh']
34
+ cmds = ['OUTPUT_COVERAGE=/tmp/sti/artifacts/coverage hack/test-go.sh']
35
35
 
36
36
  if @options[:all]
37
37
  cmds << 'STI_TIMEOUT="--timeout 240s" hack/test-integration.sh'
@@ -17,20 +17,21 @@
17
17
  module Vagrant
18
18
  module Openshift
19
19
  module Action
20
- class TryRestartOpenshift3
20
+ class RunSystemctl
21
21
  include CommandHelper
22
22
 
23
- def initialize(app, env)
23
+ def initialize(app, env, options)
24
24
  @app = app
25
25
  @env = env
26
+ @options = options
26
27
  end
27
28
 
28
29
  def call(env)
29
- sudo(env[:machine], "systemctl try-restart openshift")
30
-
31
- @app.call(env)
30
+ unless @options[:action].nil? || @options[:service].nil?
31
+ sudo(env[:machine], "systemctl #{@options[:action]} #{@options[:service]}")
32
+ @app.call(env)
33
+ end
32
34
  end
33
-
34
35
  end
35
36
  end
36
37
  end
@@ -40,6 +40,14 @@ module Vagrant
40
40
  end
41
41
  end
42
42
 
43
+ def self.install_openshift3_router(options)
44
+ Vagrant::Action::Builder.new.tap do |b|
45
+ b.use RunSystemctl, {:action => "start", :service => "openshift"}
46
+ b.use InstallOpenshift3Router
47
+ b.use RunSystemctl, {:action => "stop", :service => "openshift"}
48
+ end
49
+ end
50
+
43
51
  def self.install_openshift3_assets_base(options)
44
52
  Vagrant::Action::Builder.new.tap do |b|
45
53
  b.use InstallOpenshift3AssetDependencies
@@ -52,6 +60,12 @@ module Vagrant
52
60
  end
53
61
  end
54
62
 
63
+ def self.push_openshift3_images(options)
64
+ Vagrant::Action::Builder.new.tap do |b|
65
+ b.use PushOpenshift3Images, options
66
+ end
67
+ end
68
+
55
69
  def self.build_sti(options)
56
70
  Vagrant::Action::Builder.new.tap do |b|
57
71
  b.use BuildSti, options
@@ -60,7 +74,7 @@ module Vagrant
60
74
 
61
75
  def self.try_restart_openshift3(options)
62
76
  Vagrant::Action::Builder.new.tap do |b|
63
- b.use TryRestartOpenshift3
77
+ b.use RunSystemctl, {:action => "try-restart", :service => "openshift"}
64
78
  end
65
79
  end
66
80
 
@@ -85,7 +99,7 @@ module Vagrant
85
99
  if options[:build]
86
100
  b.use(BuildOpenshift3BaseImages, options) if options[:images]
87
101
  b.use(BuildOpenshift3, options)
88
- b.use(TryRestartOpenshift3)
102
+ b.use RunSystemctl, {:action => "try-restart", :service => "openshift"}
89
103
  end
90
104
  end
91
105
  end
@@ -201,12 +215,12 @@ module Vagrant
201
215
  autoload :InstallOpenshift3BaseDependencies, action_root.join("install_openshift3_base_dependencies")
202
216
  autoload :InstallOpenshift3AssetDependencies, action_root.join("install_openshift3_asset_dependencies")
203
217
  autoload :BuildOpenshift3BaseImages, action_root.join("build_openshift3_base_images")
218
+ autoload :PushOpenshift3Images, action_root.join("push_openshift3_images")
204
219
  autoload :PushOpenshift3Release, action_root.join("push_openshift3_release")
205
220
  autoload :InstallOpenshift3, action_root.join("install_openshift3")
206
221
  autoload :InstallOpenshift3Rhel7, action_root.join("install_openshift3_rhel7")
207
222
  autoload :BuildOpenshift3, action_root.join("build_openshift3")
208
223
  autoload :BuildSti, action_root.join("build_sti")
209
- autoload :TryRestartOpenshift3, action_root.join("try_restart_openshift3")
210
224
  autoload :PrepareSshConfig, action_root.join("prepare_ssh_config")
211
225
  autoload :SyncLocalRepository, action_root.join("sync_local_repository")
212
226
  autoload :SyncUpstreamRepository, action_root.join("sync_upstream_repository")
@@ -223,6 +237,8 @@ module Vagrant
223
237
  autoload :TestExitCode, action_root.join("test_exit_code")
224
238
  autoload :CleanNetworkSetup, action_root.join("clean_network_setup")
225
239
  autoload :SetupBindHost, action_root.join("setup_bind_host")
240
+ autoload :InstallOpenshift3Router, action_root.join("install_openshift3_router")
241
+ autoload :RunSystemctl, action_root.join("run_systemctl")
226
242
  end
227
243
  end
228
244
  end
@@ -0,0 +1,51 @@
1
+ #--
2
+ # Copyright 2013 Red Hat, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #++
16
+ require_relative "../action"
17
+
18
+ module Vagrant
19
+ module Openshift
20
+ module Commands
21
+ class InstallOpenshift3Router < Vagrant.plugin(2, :command)
22
+ include CommandHelper
23
+
24
+ def self.synopsis
25
+ "installs openshift3 router"
26
+ end
27
+
28
+ def execute
29
+ options = {}
30
+ options[:clean] = false
31
+ options[:local_source] = false
32
+
33
+ opts = OptionParser.new do |o|
34
+ o.banner = "Usage: vagrant install-openshift3-router [vm-name]"
35
+ o.separator ""
36
+ end
37
+
38
+ # Parse the options
39
+ argv = parse_options(opts)
40
+ return if !argv
41
+
42
+ with_target_vms(argv, :reverse => true) do |machine|
43
+ actions = Vagrant::Openshift::Action.install_openshift3_router(options)
44
+ @env.action_runner.run actions, {:machine => machine}
45
+ 0
46
+ end
47
+ end
48
+ end
49
+ end
50
+ end
51
+ end
@@ -0,0 +1,67 @@
1
+ #--
2
+ # Copyright 2013 Red Hat, Inc.
3
+ #
4
+ # Licensed under the Apache License, Version 2.0 (the "License");
5
+ # you may not use this file except in compliance with the License.
6
+ # You may obtain a copy of the License at
7
+ #
8
+ # http://www.apache.org/licenses/LICENSE-2.0
9
+ #
10
+ # Unless required by applicable law or agreed to in writing, software
11
+ # distributed under the License is distributed on an "AS IS" BASIS,
12
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ # See the License for the specific language governing permissions and
14
+ # limitations under the License.
15
+ #++
16
+ require_relative "../action"
17
+
18
+ module Vagrant
19
+ module Openshift
20
+ module Commands
21
+
22
+ class PushOpenshift3Images < Vagrant.plugin(2, :command)
23
+ include CommandHelper
24
+
25
+ def self.synopsis
26
+ "build and push openshift v3 images"
27
+ end
28
+
29
+ def execute
30
+ options = {}
31
+ options[:registry] = nil
32
+
33
+ opts = OptionParser.new do |o|
34
+ o.banner = "Usage: vagrant push-openshift3-images --registry DOCKER_REGISTRY [vm-name]"
35
+ o.on("--registry [url]", String, "Docker Registry to push images to.") do |c|
36
+ options[:registry] = c
37
+ end
38
+ o.on("--build_images [list]", String, "List of IMAGE:REF pairs, delimited by ','") do |i|
39
+ options[:build_images] = i
40
+ end
41
+ o.separator ""
42
+ end
43
+
44
+ # Parse the options
45
+ argv = parse_options(opts)
46
+ return if !argv
47
+
48
+ if options[:registry].nil?
49
+ @env.ui.warn "You must specify target Docker registry"
50
+ exit
51
+ end
52
+
53
+ if options[:build_images].nil?
54
+ @env.ui.warn "You must specify list of images to build"
55
+ exit
56
+ end
57
+
58
+ with_target_vms(argv, :reverse => true) do |machine|
59
+ actions = Vagrant::Openshift::Action.push_openshift3_images(options)
60
+ @env.action_runner.run actions, {:machine => machine}
61
+ 0
62
+ end
63
+ end
64
+ end
65
+ end
66
+ end
67
+ end
@@ -46,7 +46,7 @@ module Vagrant
46
46
  options[:skip_image_cleanup] = true
47
47
  end
48
48
 
49
- o.on("-c","--report-coverage", String, "Generate code coverage report in Jenkins") do |f|
49
+ o.on("-c","--report-coverage", String, "Generate code coverage report") do |f|
50
50
  options[:report_coverage] = true
51
51
  end
52
52
  end
@@ -30,7 +30,10 @@ module Vagrant
30
30
  options = {}
31
31
  options[:image] = nil
32
32
  options[:ref] = 'master'
33
+ options[:image_version] = ""
33
34
  options[:source] = nil
35
+ options[:base_images] = false
36
+ options[:registry] = ""
34
37
 
35
38
  opts = OptionParser.new do |o|
36
39
  o.banner = "Usage: vagrant test-openshift3-image --image IMAGE [vm-name]"
@@ -44,9 +47,23 @@ module Vagrant
44
47
  options[:ref] = o
45
48
  end
46
49
 
50
+ o.on("-m", "--image_version VERSION", String, "version of the software") do |o|
51
+ options[:image_version] = o
52
+ end
53
+
47
54
  o.on("-s", "--source SOURCE", String, "git repo source url") do |o|
48
55
  options[:source] = o
49
56
  end
57
+
58
+ o.on("-b", "--base_images", "flag whether the base images have to be pre-pulled") do
59
+ options[:base_images] = true
60
+ end
61
+
62
+ # FIXME: This is a temporary fix as the RHEL7 AMI should have this
63
+ # registry here already.
64
+ o.on("--registry [url]", String, "Docker Registry to push images to.") do |o|
65
+ options[:registry] = o
66
+ end
50
67
  end
51
68
 
52
69
  # Parse the options
@@ -59,23 +76,37 @@ module Vagrant
59
76
  end
60
77
 
61
78
  if options[:source].nil?
62
- options[:source] = "https://github.com/#{options[:image]}"
79
+ @env.ui.warn "You must specify git repo source url"
80
+ exit
63
81
  end
64
82
 
83
+ options[:source] = "https://github.com/#{options[:source]}"
84
+
65
85
  with_target_vms(argv, :reverse => true) do |machine|
66
86
  image = options[:image]
67
87
  ref = options[:ref]
88
+ image_version = options[:image_version]
68
89
  source = options[:source]
90
+ base_images = options[:base_images]
91
+ registry = options[:registry]
69
92
 
70
- # image could be centos or openshift/ruby-20-centos
71
- # just grab the end (centos or ruby-20-centos)
72
- source_dir = File.basename(image)
93
+ # image could be centos or openshift/ruby-20-centos7
94
+ # just grab the end (centos or ruby-20-centos7)
95
+ source_dir = File.basename(source)
73
96
  app_name = "test-#{source_dir}"
74
97
  rc=1
75
98
  begin
76
99
  out, err, rc = do_execute(machine, %{
77
100
  set -x
78
101
 
102
+ # NOTE: This is only for rhel7
103
+ if [ -n "#{registry}" -a -f /etc/sysconfig/docker ]; then
104
+ cat <<EOF > /etc/sysconfig/docker
105
+ OPTIONS='--insecure-registry #{registry} --selinux-enabled -H fd://'
106
+ EOF
107
+ systemctl restart docker
108
+ fi
109
+
79
110
  # so we can call sti
80
111
  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
81
112
 
@@ -91,33 +122,57 @@ cd $temp_dir
91
122
  git clone #{source}
92
123
  cd #{source_dir}
93
124
 
125
+ # Fetch refs from Github pull requests
126
+ git fetch --quiet --tags --progress #{source} +refs/pull/*:refs/remotes/origin/pr/*
127
+
94
128
  # switch to the desired ref
95
129
  git checkout #{ref}
96
130
 
97
- # get git sha1
98
- git_sha1=`git rev-parse --short #{ref}`
131
+ if [ "#{base_images}" == "true" -a -n "#{registry}" ]; then
132
+ # Pull base images
133
+ docker pull #{registry}/openshift/base-centos7 && docker tag #{registry}/openshift/base-centos7 openshift/base-centos7
134
+ docker pull #{registry}/openshift/base-rhel7 && docker tag #{registry}/openshift/base-rhel7 openshift/base-rhel7
135
+ fi
136
+
137
+ if [ -n "#{image_version}" ]; then
138
+ BASE_NAME="#{image}-#{image_version}"
139
+ pushd #{image_version} > /dev/null
140
+ else
141
+ BASE_NAME="#{image}"
142
+ fi
143
+
144
+ IMAGE_NAME="${BASE_NAME}-centos7"
99
145
 
100
- # Build the STI image we use for testing
101
- docker build -t #{image}-candidate .
146
+ # Build the CentOS7 STI image we use for testing
147
+ docker build -t ${IMAGE_NAME}-candidate .
102
148
  status=$?
103
149
 
104
150
  # Run the STI image test framework
105
151
  if [ $status -eq 0 ]; then
106
- IMAGE_NAME=#{image}-candidate ./test/run
152
+ IMAGE_NAME=${IMAGE_NAME}-candidate ./test/run
107
153
  status=$?
108
154
  fi
109
155
 
110
- if [ $status -eq 0 ]; then
111
- # get the image id
112
- image_id=`docker inspect --format="{{ .Id }}" #{image}-candidate:latest`
156
+ if [ $status -eq 0 -a -f Dockerfile.rhel7 ]; then
157
+ mv Dockerfile Dockerfile.centos7
158
+ mv Dockerfile.rhel7 Dockerfile
159
+
160
+ IMAGE_NAME="${BASE_NAME}-rhel7"
113
161
 
114
- # tag it devenv-ready
115
- docker tag $image_id #{image}:devenv-ready
162
+ # Build the RHEL7 based STI image we use for testing
163
+ docker build -t ${IMAGE_NAME}-candidate .
164
+ status=$?
116
165
 
117
- # tag it with the git ref
118
- docker tag $image_id #{image}:git-$git_sha1
166
+ # Run the STI image test framework
167
+ if [ $status -eq 0 -a -f Dockerfile.rhel7 ]; then
168
+ IMAGE_NAME=${IMAGE_NAME}-candidate ./test/run
169
+ status=$?
170
+ fi
119
171
  fi
120
172
 
173
+ # If software version is set, go back to the repository root
174
+ [ -n "#{image_version}" ] && popd > /dev/null
175
+
121
176
  # clean up
122
177
  cd /
123
178
  rm -rf $temp_dir
@@ -27,22 +27,18 @@ module Vagrant
27
27
  {
28
28
  'origin' => 'https://github.com/openshift/origin.git',
29
29
  'source-to-image' => 'https://github.com/openshift/source-to-image.git'
30
- }.merge(openshift3_images)
30
+ }
31
31
  end
32
32
 
33
33
  def self.openshift3_images
34
34
  {
35
- 'wildfly-8-centos' => 'https://github.com/openshift/wildfly-8-centos.git',
36
- 'ruby-20-centos' => 'https://github.com/openshift/ruby-20-centos.git'
35
+ 'openshift/base' => 'https://github.com/openshift/sti-base.git',
36
+ 'openshift/ruby-20' => 'https://github.com/openshift/sti-ruby.git',
37
+ 'openshift/nodejs-010' => 'https://github.com/openshift/sti-nodejs.git',
38
+ 'openshift/mysql-55' => 'https://github.com/openshift/mysql.git',
37
39
  }
38
40
  end
39
41
 
40
- def self.images
41
- [
42
- 'centos'
43
- ] + openshift3_images.map { |c, _| "openshift/#{c}" }
44
- end
45
-
46
42
  def self.git_branch_current
47
43
  "$(git rev-parse --abbrev-ref HEAD)"
48
44
  end
@@ -77,6 +77,11 @@ module Vagrant
77
77
  Commands::BuildOpenshift3BaseImages
78
78
  end
79
79
 
80
+ command "push-openshift3-images" do
81
+ require_relative "command/push_openshift3_images"
82
+ Commands::PushOpenshift3Images
83
+ end
84
+
80
85
  command "origin-init" do
81
86
  require_relative "command/openshift_init"
82
87
  Commands::OpenshiftInit
@@ -132,6 +137,11 @@ module Vagrant
132
137
  Commands::TestOpenshift3Image
133
138
  end
134
139
 
140
+ command "install-openshift3-router" do
141
+ require_relative "command/install_openshift3_router"
142
+ Commands::InstallOpenshift3Router
143
+ end
144
+
135
145
  provisioner(:openshift) do
136
146
  require_relative "provisioner"
137
147
  Provisioner
@@ -16,6 +16,6 @@
16
16
 
17
17
  module Vagrant
18
18
  module Openshift
19
- VERSION = "1.0.17"
19
+ VERSION = "1.0.18"
20
20
  end
21
21
  end
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: 1.0.17
4
+ version: 1.0.18
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-02-10 00:00:00.000000000 Z
11
+ date: 2015-03-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
@@ -140,20 +140,22 @@ files:
140
140
  - lib/vagrant-openshift/action/install_openshift3_base_dependencies.rb
141
141
  - lib/vagrant-openshift/action/install_openshift3_images.rb
142
142
  - lib/vagrant-openshift/action/install_openshift3_rhel7.rb
143
+ - lib/vagrant-openshift/action/install_openshift3_router.rb
143
144
  - lib/vagrant-openshift/action/local_openshift3_checkout.rb
144
145
  - lib/vagrant-openshift/action/modify_ami.rb
145
146
  - lib/vagrant-openshift/action/modify_instance.rb
146
147
  - lib/vagrant-openshift/action/prepare_ssh_config.rb
148
+ - lib/vagrant-openshift/action/push_openshift3_images.rb
147
149
  - lib/vagrant-openshift/action/push_openshift3_release.rb
148
150
  - lib/vagrant-openshift/action/run_openshift3_tests.rb
149
151
  - lib/vagrant-openshift/action/run_sti_tests.rb
152
+ - lib/vagrant-openshift/action/run_systemctl.rb
150
153
  - lib/vagrant-openshift/action/set_host_name.rb
151
154
  - lib/vagrant-openshift/action/setup_bind_dns_key.rb
152
155
  - lib/vagrant-openshift/action/setup_bind_host.rb
153
156
  - lib/vagrant-openshift/action/sync_local_repository.rb
154
157
  - lib/vagrant-openshift/action/sync_upstream_repository.rb
155
158
  - lib/vagrant-openshift/action/test_exit_code.rb
156
- - lib/vagrant-openshift/action/try_restart_openshift3.rb
157
159
  - lib/vagrant-openshift/action/yum_update.rb
158
160
  - lib/vagrant-openshift/command/build_openshift3.rb
159
161
  - lib/vagrant-openshift/command/build_openshift3_base.rb
@@ -164,10 +166,12 @@ files:
164
166
  - lib/vagrant-openshift/command/create_ami.rb
165
167
  - lib/vagrant-openshift/command/install_openshift3.rb
166
168
  - lib/vagrant-openshift/command/install_openshift3_assets_base.rb
169
+ - lib/vagrant-openshift/command/install_openshift3_router.rb
167
170
  - lib/vagrant-openshift/command/local_openshift3_setup.rb
168
171
  - lib/vagrant-openshift/command/modify_ami.rb
169
172
  - lib/vagrant-openshift/command/modify_instance.rb
170
173
  - lib/vagrant-openshift/command/openshift_init.rb
174
+ - lib/vagrant-openshift/command/push_openshift3_images.rb
171
175
  - lib/vagrant-openshift/command/push_openshift3_release.rb
172
176
  - lib/vagrant-openshift/command/repo_sync_openshift3.rb
173
177
  - lib/vagrant-openshift/command/repo_sync_sti.rb