diff --git a/README.md b/README.md index 3afa2819..cfce7c1d 100644 --- a/README.md +++ b/README.md @@ -40,7 +40,6 @@ The following cookbooks are dependencies: - 'openstack-identity', '>= 14.0.0' - 'openstack-image', '>= 14.0.0' - 'openstack-network', '>= 14.0.0' -- 'python', '~> 1.4.6' - 'openstackclient', '>= 0.1.0' Attributes diff --git a/attributes/default.rb b/attributes/default.rb index 447dac1f..89468de7 100644 --- a/attributes/default.rb +++ b/attributes/default.rb @@ -159,7 +159,6 @@ when 'rhel' # :pragma-foodcritic: ~FC024 - won't fix this 'common_packages' => ['openstack-nova-common'], 'iscsi_helper' => 'ietadm', 'volume_packages' => ['sysfsutils', 'sg3_utils', 'device-mapper-multipath'], - 'docker_build_pkgs' => ['git', 'python-devel', 'gcc'], 'package_overrides' => '' } when 'debian' @@ -194,7 +193,6 @@ when 'debian' 'common_packages' => ['nova-common'], 'iscsi_helper' => 'tgtadm', 'volume_packages' => ['sysfsutils', 'sg3-utils', 'multipath-tools'], - 'docker_build_pkgs' => ['git', 'python-dev', 'gcc'], 'package_overrides' => "-o Dpkg::Options::='--force-confold' -o Dpkg::Options::='--force-confdef'" } end @@ -209,27 +207,6 @@ default['openstack']['compute']['misc_paste'] = nil # For true case, this logic allows the following ironic-related attribtes to be overwritten automatically. -# Docker configurations -# Docker compute configuration is supported only in Rhel and Ubuntu -# This is to be true to make a compute docker type and use nova docker driver as compute driver -default['openstack']['compute']['docker']['enable'] = false -# The nova docker driver that will be configured in a docker type compute -default['openstack']['compute']['docker']['driver'] = 'novadocker.virt.docker.driver.DockerDriver' -# Additional python packages required for nova docker driver build and installation from git source -default['openstack']['compute']['docker']['pip_build_pkgs'] = ['setuptools', 'pbr'] -# github repository from which nova-docker source will be downloaded -default['openstack']['compute']['docker']['github']['repository'] = 'https://github.com/stackforge/nova-docker' -# github branch from which nova-docker source will be downloaded. Default is master -default['openstack']['compute']['docker']['github']['branch'] = 'master' -# Relative path to docker filter files in nova-docker source which will be cloned from git repo -default['openstack']['compute']['docker']['filter_source_path'] = '/etc/nova/rootwrap.d' -# Path to docker service sock file -default['openstack']['compute']['docker']['service_sock'] = '/var/run/docker.sock' -# Permission level to be assigned to docker service sock file -default['openstack']['compute']['docker']['service_sock_mode'] = 666 -# Docker group which will be created and added with openstack compute user -default['openstack']['compute']['docker']['group'] = 'docker' - # ****************** OpenStack Compute Endpoints ****************************** # The OpenStack Compute (Nova) XVPvnc endpoint diff --git a/metadata.rb b/metadata.rb index 07353eba..f36efb50 100644 --- a/metadata.rb +++ b/metadata.rb @@ -17,5 +17,4 @@ depends 'openstack-common', '>= 14.0.0' depends 'openstack-identity', '>= 14.0.0' depends 'openstack-image', '>= 14.0.0' depends 'openstack-network', '>= 14.0.0' -depends 'python', '~> 1.4' depends 'openstackclient' diff --git a/recipes/compute.rb b/recipes/compute.rb index e1ead5e2..6f8680f0 100644 --- a/recipes/compute.rb +++ b/recipes/compute.rb @@ -23,10 +23,6 @@ class ::Chef::Recipe include ::Openstack end -if node['openstack']['compute']['docker']['enable'] - include_recipe 'openstack-compute::docker-setup' -end - include_recipe 'openstack-compute::nova-common' platform_options = node['openstack']['compute']['platform'] @@ -70,29 +66,6 @@ end include_recipe 'openstack-compute::libvirt' -docker_filter_source_path = node['openstack']['compute']['docker']['filter_source_path'] -install_directory = "#{Chef::Config['file_cache_path']}/nova-docker" -docker_group = node['openstack']['compute']['docker']['group'] -docker_group_members = node['openstack']['compute']['service_user'] -filter_target_path = docker_filter_source_path + '/docker.filters' -filter_source_path = install_directory + filter_target_path - -group docker_group do - members docker_group_members - action [:create, :manage] - only_if { node['openstack']['compute']['docker']['enable'] } -end - -file 'docker.filter' do - owner 'root' - group 'root' - mode 00644 - path filter_target_path - content lazy { ::File.open(filter_source_path).read } - action :create - only_if { node['openstack']['compute']['docker']['enable'] } -end - service 'nova-compute' do service_name platform_options['compute_compute_service'] supports status: true, restart: true diff --git a/recipes/docker-setup.rb b/recipes/docker-setup.rb deleted file mode 100644 index ebae3970..00000000 --- a/recipes/docker-setup.rb +++ /dev/null @@ -1,65 +0,0 @@ -# encoding: UTF-8 -# -# Cookbook Name:: openstack-compute -# Recipe:: docker-setup -# -# Copyright 2015 IBM Corp. -# -# Licensed under the Apache License, Version 2.0 (the "License"); you may -# not use this file except in compliance with the License. You may obtain -# a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT -# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the -# License for the specific language governing permissions and limitations -# under the License. - -# Make sure that docker runtime is installed as a prerequsite - -include_recipe 'python::pip' - -# set nova docker driver as the compute driver -node.set['openstack']['compute']['driver'] = node['openstack']['compute']['docker']['driver'] -docker_service_sock = node['openstack']['compute']['docker']['service_sock'] -docker_service_sock_mode = node['openstack']['compute']['docker']['service_sock_mode'] -platform_options = node['openstack']['compute']['platform'] -pip_build_pkgs = node['openstack']['compute']['docker']['pip_build_pkgs'] - -# upgrade the required packages (some packages will be removed once RPM based nova-docker installation is introduced) -platform_options['docker_build_pkgs'].each do |pkg| - package pkg do - options platform_options['package_overrides'] - action :upgrade - end -end - -# This will be removed once RPM based installation of nova-docker driver is available -pip_build_pkgs.each do |pip_pkg| - python_pip pip_pkg do - action :upgrade - end -end - -# Below code downloads docker driver from configured git repo and branch -github_repository = node['openstack']['compute']['docker']['github']['repository'] -github_branch = node['openstack']['compute']['docker']['github']['branch'] -git_download_directory = "#{Chef::Config['file_cache_path']}/nova-docker" - -git git_download_directory do - repository github_repository - revision github_branch - action :sync -end - -# Configure nova docker driver -bash 'install nova docker driver' do - cwd git_download_directory - code <<-EOH - chmod #{docker_service_sock_mode} #{docker_service_sock} - python ./setup.py build - python ./setup.py install - EOH -end diff --git a/spec/compute_spec.rb b/spec/compute_spec.rb index c3090b0e..1dc3a852 100644 --- a/spec/compute_spec.rb +++ b/spec/compute_spec.rb @@ -91,52 +91,5 @@ describe 'openstack-compute::compute' do it 'starts nova compute' do expect(chef_run).to start_service 'nova-compute' end - - it 'does not include docker-setup recipe' do - expect(chef_run).not_to include_recipe 'openstack-compute::docker-setup' - end - - it 'does not create docker group' do - expect(chef_run).not_to create_group('docker') - end - - it 'does not manage docker group' do - expect(chef_run).not_to manage_group('docker') - end - - it 'does not create docker filter file' do - expect(chef_run).not_to create_file('/etc/nova/rootwrap.d/docker.filters') - end - - context 'when docker is enabled' do - before do - node.set['openstack']['compute']['docker']['enable'] = true - end - - it 'includes docker-setup recipe' do - expect(chef_run).to include_recipe 'openstack-compute::docker-setup' - end - - it 'creates docker group' do - expect(chef_run).to create_group('docker') - end - - it 'manages docker group' do - expect(chef_run).to manage_group('docker') - end - - it 'creates a file with attributes' do - expect(chef_run).to create_file('/etc/nova/rootwrap.d/docker.filters').with( - user: 'root', - group: 'root', - mode: 0644, - path: '/etc/nova/rootwrap.d/docker.filters' - ) - end - - it 'configures compute service to subscribe for docker filter' do - expect(chef_run.service('nova-compute')).to subscribe_to('file[docker.filter]') - end - end end end diff --git a/spec/docker-setup-redhat_spec.rb b/spec/docker-setup-redhat_spec.rb deleted file mode 100644 index 1529fe21..00000000 --- a/spec/docker-setup-redhat_spec.rb +++ /dev/null @@ -1,17 +0,0 @@ -# encoding: UTF-8 - -require_relative 'spec_helper' - -describe 'openstack-compute::docker-setup' do - describe 'redhat' do - let(:runner) { ChefSpec::SoloRunner.new(REDHAT_OPTS) } - let(:node) { runner.node } - cached(:chef_run) { runner.converge(described_recipe) } - - %w(python-devel git gcc).each do |pkg| - it do - expect(chef_run).to upgrade_package pkg - end - end - end -end diff --git a/spec/docker-setup_spec.rb b/spec/docker-setup_spec.rb deleted file mode 100644 index 25f7e9d8..00000000 --- a/spec/docker-setup_spec.rb +++ /dev/null @@ -1,41 +0,0 @@ -# encoding: UTF-8 - -require_relative 'spec_helper' - -describe 'openstack-compute::docker-setup' do - describe 'ubuntu' do - let(:runner) { ChefSpec::SoloRunner.new(UBUNTU_OPTS) } - let(:node) { runner.node } - cached(:chef_run) { runner.converge(described_recipe) } - - it 'runs a run python pip setuptools' do - expect(chef_run).to upgrade_python_pip('setuptools') - end - - it 'runs a run python pip pbr' do - expect(chef_run).to upgrade_python_pip('pbr') - end - - it 'upgrades git package' do - expect(chef_run).to upgrade_package 'git' - end - - it 'upgrades gcc package' do - expect(chef_run).to upgrade_package 'gcc' - end - - it 'upgrades python-dev package' do - expect(chef_run).to upgrade_package 'python-dev' - end - - git_local_dir = Chef::Config[:file_cache_path] + '/nova-docker' - - it 'syncs a git with nova docker git repo' do - expect(chef_run).to sync_git(git_local_dir).with(repository: 'https://github.com/stackforge/nova-docker') - end - - it 'runs a bash block install nova docker driver' do - expect(chef_run).to run_bash('install nova docker driver') - end - end -end