vagrant-openshift 2.0.9 → 2.0.10

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: ad1016fc5cb2140527ddf4ac73c2f635c460c471
4
- data.tar.gz: d352b58cf8cc8d2a666a3a8e7bdb732c50f580b5
3
+ metadata.gz: ae6afb23aff38bb9c5e56876934f390f424b6120
4
+ data.tar.gz: 9d63ba4a151d314534c8a4eb9025fba51be2e281
5
5
  SHA512:
6
- metadata.gz: aa8c92f03ceaddb2418e60692160bab0e5ff81f4fc5c7510c24d058dc1f7d2cb870b1d5b73bcc80bb508750f6f7760d60797a1d50d7715a567a9cd48c8797e0f
7
- data.tar.gz: cf02fb45bbf8583a0a377fcd640034e6b8ce18f85c9e959fc98e89d5cd1b7f9f4cbdc225934aae92d2a634f1492ae5a79ab822633a9c8c0954ceac23b539270d
6
+ metadata.gz: be084f3f1c4dd7a4fb8af5419212e997efd55def06b483ba00fa8195d6ccf97fa392b82c9acd7a95869f2e9d8987b9232373f9b50a8858ab54465ed28b660472
7
+ data.tar.gz: 24752536ba60a84328c38554ff1c87d60d5f7eb100e8b2fcea4662f66db66f3a58b8ae34d4d6ad61e5d2b04d6e445c3d062dbbd6526328b2f4a1f5db4bcd06e5
data/README.asciidoc CHANGED
@@ -215,16 +215,20 @@ Install plugin from rubygems:
215
215
  $ vagrant plugin install vagrant-openstack-plugin
216
216
  ----
217
217
 
218
+ NOTE: On some systems (e.g. mac) doing `export NOKOGIRI_USE_SYSTEM_LIBRARIES=1` can help make the above command work.
219
+
218
220
  * Edit `~/.openstackcred` and update your OpenStack credentials, endpoint and tenant name.
219
221
 
220
222
  .'~/.openstackcred'
221
223
  ----
222
- OSEndpoint=<OpenStack Endpoint URL>
224
+ OSEndpoint=<OpenStack Endpoint URL, e.g. http://openshift.example.com:5000/v2.0/tokens>
223
225
  OSUsername=<OpenStack Username>
224
226
  OSAPIKey=<OpenStack Password>
225
- OSKeyPairName=<Keypair name>
226
- OSPrivateKeyPath=<SSH Private key path>
227
- OSTenant=<OpenStack Tenant Name>
227
+ OSKeyPairName=<Keypair name as registered in OpenStack>
228
+ OSPrivateKeyPath=<path to that SSH Private key>
229
+ OSTenant=<OpenStack Tenant/Project Name, see it at the top in OpenStack web UI>
230
+ OSFloatingIP=<specific floating ip or ':auto' if floating ip is desired>
231
+ OSFloatingIPPool=<specific pool or 'false' (to use first found) if floating ip is desired>
228
232
  ----
229
233
 
230
234
  * Edit `.vagrant-openshift.json` and update the openstack provider
@@ -42,13 +42,13 @@ module Vagrant
42
42
  b.use SetHostName
43
43
  b.use InstallOpenshift
44
44
  b.use InstallOpenshiftRhel7
45
- b.use InstallOpenshiftAssetDependencies
45
+ b.use InstallOpenshiftAssetDependencies, :restore_assets => true
46
46
  end
47
47
  end
48
48
 
49
49
  def self.install_openshift_assets_base(options)
50
50
  Vagrant::Action::Builder.new.tap do |b|
51
- b.use InstallOpenshiftAssetDependencies
51
+ b.use InstallOpenshiftAssetDependencies, :backup_assets => true
52
52
  end
53
53
  end
54
54
 
@@ -92,7 +92,7 @@ module Vagrant
92
92
  end
93
93
  b.use SyncLocalRepository
94
94
  b.use CheckoutRepositories
95
- b.use InstallOpenshiftAssetDependencies
95
+ b.use InstallOpenshiftAssetDependencies, :restore_assets => true
96
96
  end
97
97
  if options[:build]
98
98
  b.use(BuildOpenshiftBaseImages, options) if options[:images]
@@ -84,7 +84,7 @@ Documentation=https://github.com/openshift/origin
84
84
  [Service]
85
85
  Type=simple
86
86
  EnvironmentFile=-/etc/sysconfig/openshift
87
- ExecStart=$ORIGIN_PATH/_output/local/go/bin/openshift start --cors-allowed-origins=.* --public-master=https://\\${HOST}:8443
87
+ ExecStart=$ORIGIN_PATH/_output/local/bin/linux/amd64/openshift start --cors-allowed-origins=.* --public-master=https://\\${HOST}:8443
88
88
  LimitNOFILE=4096
89
89
 
90
90
  [Install]
@@ -20,29 +20,52 @@ module Vagrant
20
20
  class InstallOpenshiftAssetDependencies
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.clone
26
27
  end
27
28
 
28
29
  def call(env)
29
30
  ssh_user = env[:machine].ssh_info[:username]
30
- do_execute(env[:machine], %{
31
+ cmd = %{
31
32
 
32
33
  ORIGIN_PATH=/data/src/github.com/openshift/origin
33
-
34
- if ! which bundler > /dev/null 2>&1 ; then
35
- gem install bundler
36
- fi
34
+ ASSET_BACKUP_DIR=/data/asset_dependencies
37
35
 
38
36
  if ! which npm > /dev/null 2>&1 ; then
39
37
  sudo yum -y install npm
40
38
  fi
41
39
 
40
+ }
41
+ if @options[:restore_assets]
42
+ cmd += %{
43
+ # make sure the dirs always exist
44
+ mkdir -p /data/asset_dependencies/node_modules
45
+ mkdir -p /data/asset_dependencies/bower_components
46
+ # copy them to the assets dir
47
+ cp -rf $ASSET_BACKUP_DIR/node_modules $ORIGIN_PATH/assets/node_modules
48
+ cp -rf $ASSET_BACKUP_DIR/bower_components $ORIGIN_PATH/assets/bower_components
49
+
50
+ }
51
+ end
52
+
53
+ cmd += %{
42
54
  pushd $ORIGIN_PATH
43
55
  hack/install-assets.sh
44
56
  popd
45
- }, {:timeout=>60*20})
57
+
58
+ }
59
+
60
+ if @options[:backup_assets]
61
+ cmd += %{
62
+ mkdir -p $ASSET_BACKUP_DIR
63
+ cp -rf $ORIGIN_PATH/assets/node_modules $ASSET_BACKUP_DIR/node_modules
64
+ cp -rf $ORIGIN_PATH/assets/bower_components $ASSET_BACKUP_DIR/bower_components
65
+ }
66
+ end
67
+
68
+ do_execute(env[:machine], cmd, {:timeout=>60*20})
46
69
  @app.call(env)
47
70
  end
48
71
  end
@@ -42,7 +42,7 @@ fi
42
42
  # FIXME: Move 'openshift/centos-mongodb' into openshift org and then
43
43
  # add the image into 'repositories' constants
44
44
  #
45
- 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 ntp screen java-1.?.0-openjdk bind-utils socat unzip Xvfb", {:timeout=>60*20})
45
+ 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 ntp screen java-1.?.0-openjdk bind-utils socat unzip Xvfb ethtool", {:timeout=>60*20})
46
46
  sudo(env[:machine], "yum install -y facter", {fail_on_error: false, :timeout=>60*10})
47
47
 
48
48
  # Install Chrome and chromedriver for headless UI testing
@@ -102,13 +102,20 @@ mkdir -p /data/bin
102
102
  GO_VERSION=($(go version))
103
103
  echo "Detected go version: $(go version)"
104
104
 
105
+ # TODO: Remove for go1.5, go vet and go cover will be internal
105
106
  if [[ ${GO_VERSION[2]} == "go1.4"* ]]; then
106
107
  GOPATH=/data go get golang.org/x/tools/cmd/cover
107
- else
108
- GOPATH=/data go get code.google.com/p/go.tools/cmd/cover
109
- fi
110
108
 
111
- GOPATH=/data go get golang.org/x/tools/cmd/vet
109
+ GOPATH=/data go get golang.org/x/tools/cmd/vet
110
+
111
+ # Check out a stable commit for go vet in order to version lock it to something we can work with
112
+ pushd /data/src/golang.org/x/tools >/dev/null 2>&1
113
+ git checkout c262de870b618eed648983aa994b03bc04641c72
114
+ popd >/dev/null 2>&1
115
+
116
+ # Re-install using this version of the tool
117
+ GOPATH=/data go install golang.org/x/tools/cmd/vet
118
+ fi
112
119
 
113
120
  chown -R #{ssh_user}:#{ssh_user} /data
114
121
 
@@ -38,35 +38,29 @@ sudo systemctl restart docker
38
38
  }
39
39
  end
40
40
 
41
- def push_image(image_name, git_ref, registry)
41
+ def push_image(centos_namespace,rhel_namespace,image_name, git_ref, registry)
42
+
42
43
  %{
43
44
  set -e
44
45
  pushd /tmp/images/#{image_name}
45
46
  git checkout #{git_ref}
46
47
  git_ref=$(git rev-parse --short HEAD)
47
- echo "Pushing image #{image_name}:$git_ref..."
48
-
49
- docker tag -f #{image_name}-centos7 #{registry}#{image_name}-centos7:$git_ref
50
- docker tag -f #{image_name}-centos7 #{registry}#{image_name}-centos7:latest
51
- docker tag -f #{image_name}-centos7 docker.io/#{image_name}-centos7:latest
52
- docker tag -f #{image_name}-rhel7 #{registry}#{image_name}-rhel7:$git_ref
53
- docker tag -f #{image_name}-rhel7 #{registry}#{image_name}-rhel7:latest
48
+ echo "Pushing image #{image_name}:#{git_ref}..."
54
49
 
55
- #docker push -f #{registry}#{image_name}-centos7:$git_ref
56
- #docker push -f docker.io/#{image_name}-centos7:latest
57
- #docker push -f #{registry}#{image_name}-rhel7:$git_ref
58
- #docker push -f #{registry}#{image_name}-centos7:latest
59
- #docker push -f #{registry}#{image_name}-rhel7:latest
50
+ docker tag -f #{centos_namespace}/#{image_name}-centos7 #{registry}#{centos_namespace}/#{image_name}-centos7:#{git_ref}
51
+ docker tag -f #{centos_namespace}/#{image_name}-centos7 #{registry}#{centos_namespace}/#{image_name}-centos7:latest
52
+ docker tag -f #{centos_namespace}/#{image_name}-centos7 docker.io/#{centos_namespace}/#{image_name}-centos7:latest
53
+ docker tag -f #{rhel_namespace}/#{image_name}-rhel7 #{registry}#{rhel_namespace}/#{image_name}-rhel7:#{git_ref}
54
+ docker tag -f #{rhel_namespace}/#{image_name}-rhel7 #{registry}#{rhel_namespace}/#{image_name}-rhel7:latest
60
55
 
61
56
  # We can't fully parallelize this because docker fails when you push to the same repo at the
62
57
  # same time (using different tags), so we do two groups of push operations.
63
-
64
58
  # this one is failing in parallel for unknown reasons
65
- docker push -f #{registry}#{image_name}-rhel7:$git_ref
59
+ docker push -f #{registry}#{rhel_namespace}/#{image_name}-rhel7:#{git_ref}
66
60
 
67
- procs[0]="docker push -f #{registry}#{image_name}-centos7:$git_ref"
68
- procs[1]="docker push -f docker.io/#{image_name}-centos7:latest"
69
- #procs[2]="docker push -f #{registry}#{image_name}-rhel7:$git_ref"
61
+ procs[0]="docker push -f #{registry}#{centos_namespace}/#{image_name}-centos7:#{git_ref}"
62
+ procs[1]="docker push -f docker.io/#{centos_namespace}/#{image_name}-centos7:latest"
63
+ #procs[2]="docker push -f #{registry}#{rhel_namespace}/#{image_name}-rhel7:#{git_ref}"
70
64
 
71
65
  # Run pushes in parallel
72
66
  for i in {0..1}; do
@@ -82,8 +76,8 @@ for pid in ${pids[*]}; do
82
76
  wait $pid
83
77
  done
84
78
 
85
- procs[0]="docker push -f #{registry}#{image_name}-centos7:latest"
86
- procs[1]="docker push -f #{registry}#{image_name}-rhel7:latest"
79
+ procs[0]="docker push -f #{registry}#{centos_namespace}/#{image_name}-centos7:latest"
80
+ procs[1]="docker push -f #{registry}#{rhel_namespace}/#{image_name}-rhel7:latest"
87
81
 
88
82
  # Run pushes in parallel
89
83
  for i in {0..1}; do
@@ -125,20 +119,14 @@ set +e
125
119
  }
126
120
  end
127
121
 
128
- def update_latest_image_cmd(registry)
122
+ def check_latest_image_cmd(registry,namespace,name,git_url)
129
123
  cmd = %{
130
- rm -rf ~/latest_images ; touch ~/latest_images
131
- }
132
- Vagrant::Openshift::Constants.openshift_images.each do |name, git_url|
133
- cmd += %{
134
- set +e
135
- git_ref=$(git ls-remote #{git_url} -h refs/heads/master | cut -c1-7)
136
- curl -s http://#{registry}v1/repositories/#{name}-rhel7/tags/${git_ref} | grep -q "error"
137
- if [[ "$?" != "0" ]]; then
138
- echo "#{name};$git_ref" >> ~/latest_images
139
- fi
124
+ git_ref=$(git ls-remote #{git_url} -h refs/heads/master | cut -c1-7)
125
+ curl -s http://#{registry}v1/repositories/#{namespace}/#{name}-rhel7/tags/${git_ref} | grep -q "error"
126
+ if [[ "$?" != "0" ]]; then
127
+ echo "#{name};$git_ref" >> ~/latest_images
128
+ fi
140
129
  }
141
- end
142
130
  return cmd
143
131
  end
144
132
 
@@ -159,33 +147,38 @@ docker pull #{@options[:registry]}openshift/base-rhel7
159
147
  }
160
148
 
161
149
  cmd += %{
162
- # so we can call sti
150
+ # so we can call s2i
163
151
  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
164
152
  }
165
153
 
166
154
  # FIXME: We always need to make sure we have the latest base image
167
155
  # FIXME: This is because the internal registry is pruned once per month
168
- if !@options[:build_images].include?("openshift/base")
169
- @options[:build_images] = "openshift/base:1:master,#{@options[:build_images]}"
156
+ if !@options[:build_images].include?("base")
157
+ @options[:build_images] = "openshift;openshift;base;1;https://github.com/openshift/sti-base;master,#{@options[:build_images]}"
170
158
  end
171
159
 
172
160
  build_images = @options[:build_images].split(",").map { |i| i.strip }
173
161
 
174
162
  push_cmd = ""
163
+ update_cmd=""
175
164
  build_images.each do |image|
176
- name, version, git_ref = image.split(':')
177
- repo_url = Vagrant::Openshift::Constants.openshift_images[name]
178
- if repo_url == nil
179
- puts "Unregistered image: #{name}, skipping"
180
- next
181
- end
165
+ centos_namespace,rhel_namespace,name, version, repo_url, git_ref = image.split(';')
182
166
  cmd += build_image(name, version, git_ref, repo_url)
183
- push_cmd += push_image(name, git_ref, @options[:registry])
167
+ push_cmd += push_image(centos_namespace,rhel_namespace,name, git_ref, @options[:registry])
184
168
  end
185
169
 
186
170
  # Push the final images **only** when they all build successfully
187
171
  cmd += push_cmd
188
- cmd += update_latest_image_cmd(@options[:registry])
172
+
173
+ cmd += %{
174
+ set +e
175
+ rm -rf ~/latest_images ; touch ~/latest_images
176
+ }
177
+ check_images = @options[:check_images].split(",").map { |i| i.strip }
178
+ check_images.each do |image|
179
+ centos_namespace,rhel_namespace,name, version, repo_url, git_ref = image.split(';')
180
+ cmd+= check_latest_image_cmd(@options[:registry],rhel_namespace,name,repo_url)
181
+ end
189
182
 
190
183
  do_execute(env[:machine], cmd)
191
184
 
@@ -35,9 +35,12 @@ module Vagrant
35
35
  o.on("--registry [url]", String, "Docker Registry to push images to.") do |c|
36
36
  options[:registry] = c
37
37
  end
38
- o.on("--build_images [list]", String, "List of IMAGE:VERSION:REF pairs, delimited by ','") do |i|
38
+ o.on("--build_images [list]", String, "List of CENTOS_NAMESPACE;RHEL_NAMESPACE;IMAGE;VERSION;GIT_REPO;REF pairs, delimited by ','") do |i|
39
39
  options[:build_images] = i
40
40
  end
41
+ o.on("--check_images [list]", String, "List of CENTOS_NAMESPACE;RHEL_NAMESPACE;IMAGE;VERSION;GIT_REPO;REF pairs, delimited by ','") do |ci|
42
+ options[:check_images] = ci
43
+ end
41
44
  o.separator ""
42
45
  end
43
46
 
@@ -30,30 +30,6 @@ module Vagrant
30
30
  }
31
31
  end
32
32
 
33
- def self.openshift_images
34
- {
35
- 'openshift/base' => 'https://github.com/openshift/sti-base.git',
36
- 'openshift/jenkins-1' => 'https://github.com/openshift/jenkins.git',
37
- 'openshift/nodejs-010' => 'https://github.com/openshift/sti-nodejs.git',
38
- 'openshift/openldap-2441' => 'https://github.com/openshift/openldap.git',
39
- 'openshift/perl-516' => 'https://github.com/openshift/sti-perl.git',
40
- 'openshift/perl-520' => 'https://github.com/openshift/sti-perl.git',
41
- 'openshift/php-55' => 'https://github.com/openshift/sti-php.git',
42
- 'openshift/php-56' => 'https://github.com/openshift/sti-php.git',
43
- 'openshift/python-27' => 'https://github.com/openshift/sti-python.git',
44
- 'openshift/python-33' => 'https://github.com/openshift/sti-python.git',
45
- 'openshift/python-34' => 'https://github.com/openshift/sti-python.git',
46
- 'openshift/ruby-20' => 'https://github.com/openshift/sti-ruby.git',
47
- 'openshift/ruby-22' => 'https://github.com/openshift/sti-ruby.git',
48
- 'openshift/mysql-55' => 'https://github.com/openshift/mysql.git',
49
- 'openshift/mysql-56' => 'https://github.com/openshift/mysql.git',
50
- 'openshift/mongodb-24' => 'https://github.com/openshift/mongodb.git',
51
- 'rhscl/mongodb-26' => 'https://github.com/openshift/mongodb.git',
52
- 'openshift/postgresql-92' => 'https://github.com/openshift/postgresql.git',
53
- 'openshift/wildfly-81' => 'https://github.com/openshift/sti-wildfly.git'
54
- }
55
- end
56
-
57
33
  def self.git_branch_current
58
34
  "$(git rev-parse --abbrev-ref HEAD)"
59
35
  end
@@ -16,6 +16,6 @@
16
16
 
17
17
  module Vagrant
18
18
  module Openshift
19
- VERSION = "2.0.9"
19
+ VERSION = "2.0.10"
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: 2.0.9
4
+ version: 2.0.10
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-09-21 00:00:00.000000000 Z
11
+ date: 2015-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake