aboutsummaryrefslogtreecommitdiff
path: root/docker/nova-compute
AgeCommit message (Collapse)AuthorFilesLines
2015-05-15Restructure builds to allow more flexibilitySam Yaple13-152/+0
As a restructure, nothing is changed from the original behaviour and naming despite the file structure changing. The symlinks to build had to be updated generating lots of "deleted" and "new_file". The new structure is: docker/${base_distro}/${type}/${container} base_distro == centos, ubuntu, fedora, etc type == source, binary, rdo type rdo is a symlink to binary for backwards compatibility Two new flags are added to the build-all script to support the ability to support different base distros and a flag to support binary or source containers. There are several added folders that are empty to hold the directory structure for future containers of these types. To use a prefix other than centos-rdo- you can set PREFIX in the toplevel directory .buildconf file Change-Id: Ifc7bac0d827470f506c8b5c004a833da9ce13b90
2015-05-12Fixes Nova NoVNCDaneyon Hansen1-3/+5
Previously, vnc was not completely working properly because nova.conf config flags were not properly implemented in t he correct containers. This patch moves the nova.conf config flags for vnc to the proper containers. Additionally, the patch modifies the proxy client ip param to be consistent with the param within nova.conf and adds all the novnc params to docs. Change-Id: I1944baca64ccd113bbca582784b08f90dc0eff69
2015-05-06Make nova read config files for KiloSteven Dake2-2/+2
In Kilo, nova no longer reads the config files automatically. They must be specified in the command line to run the nova-* tools. Change-Id: Ifbdf4fd3f952f7bb65e9937b46cf9b96e262c3b0 Paritally-Impleents: blueprint port-kilo
2015-05-06Add a novnc container running the novnc-proxy.Harm Weites1-0/+10
All VNC-specific configuration bits are moved from nova-api-base to nova-compute and the new nova-novncproxy and nova-consoleauth containers. The compose specification has been updated to reflect this. A future patch will make the desired backend configurable (spice/vnc). Change-Id: I8b64abf125fd1ecd7d3463515e3717dd9bd60420 Blueprint: novnc-container
2015-05-06Port to icehouseSteven Dake4-4/+4
This represents making build-docker-images --release build with the icehouse tag and causes docker-compsoe to pull from the icehouse tag. Partially-implements: blueprint port-kilo Change-Id: I66b2c39abc55c0f47152dd90e696fc46b9c58f50
2015-04-27Change the default shell to bashChen Zhiwei5-5/+5
Unify the shell to bash in all Kolla scripts. Change-Id: Ib9591b2f8f344eb88455c5e9b7ecf2164fb5960a Implements: blueprint use-bash-shell
2015-04-13Removes check_required_vars for Log FilesDaneyon Hansen2-4/+0
Previously, check_required_vars was requiring log file variables to be set in openstack.env. This would cause an error when starting nova/neutron containers that used default (blank) log file settings. Since the log files are not required for the services to start, the default log files are left blank (without a value in the K/V pair). This patch removes the log_file variable for check_required_vars in each nova/neutron script. Change-Id: I169baab28f63a0e0ae06c8aef21b5e8d3155bdda
2015-04-07Adds Initial Logging SupportDaneyon Hansen2-0/+12
Previously, logging was hard coded into the nova and neutron containers. This patch creates two common params for logging: DEBUG_LOGGING VERBOSE_LOGGING and sets default values of verbose=true and debug=false. This patch implements logging for Nova and Neutron. Add'l OS service config scripts and images will need to be updated to use the logging params. Change-Id: I03d48005d5b4789aa3c519879a20d963ef1cbaa3
2015-04-07Merge "libvirtd provides was removed from centos7.1"Jenkins1-1/+3
2015-04-06libvirtd provides was removed from centos7.1Steven Dake1-1/+3
the libvirtd package "Provides" wwas removed from the libvirt packaging. To workaround this problem just install libvirt-daemon in CentOS 7.1 or Fedora 20+. WIthout this change, an install of libvirtd does not actually install libvirtd. The yum tool will not fail if libvirtd is specified so we weren't catching this in the build. Change-Id: I81e64f6f659aa0466369dad4b0574ebb24c99555
2015-04-01Load appropriate modules for libvirtSam Yaple1-0/+11
Loads ebtable_nat, ip6_tables, ip_tables, and the appropriate kvm module if the cpu supports it. Change-Id: I69995b06da6da4169a2f0d207608543820d8a89e
2015-03-31Test for presence of /dev/kvm before setting permissionsSteven Dake1-2/+5
In a native QEMU environment there is no /dev/kvm. Change-Id: I4d0eb32fd6fad3a4c9c15c7c2b12430b2e4db154
2015-03-30Add libvirt-driver-lxc to nova-libvirtSteven Dake1-0/+1
libvirt is compiled with lxc support. On Ubuntu hosts, without this file libvirt is nonusable. The container exits immediately. Change-Id: Ifbc2d75defe082cbe3b80b1821799f1f965c2a85
2015-03-27Replace ; with && in DockerfileSam Yaple2-2/+3
When using ';' this can allow the previous command to fail and while the docker build proceeds without realizing a command failed. Switching to '&&' allows the exit code to make it to the docker build command and the build to fail appropriately. Change-Id: Idd0991ed4549542bb10d27da1a0a025d0503b6c1
2015-03-24Refactor nova-networkDaneyon Hansen1-1/+0
Previously, eth0 was set as the nova flat interface. This interface is used to bridge VM traffic between instances and should not have an IP. It's a problem when you associate an interface with an IP to the FLAT_INTERFACE. Change-Id: I38c516094430e2d55b1b4c047a1bbcfe711a2dff
2015-03-22Make nova-compute-network use a data volume containerSteven Dake5-6/+11
A data volume container is far superior to bind mounting the host's shared directories. It preserves the idempotency, immutability and declarative properties of the containers. The way this works in practice is that a data volume container is created. Then when the containers start they use LVM to access the filesystem where /var/lib/docker is contained. Then the container startup logic bindmounts the data volume stored on the host filesystem in /var/lib/docker/vfs/dir/ID. This prevents people with access to the host operating system from damaging the contents of the data container. It does mean that now we must use tools/stop to stop our containers rather than tools/cleanup-containers -f. This is a containers best practice. For more details see: https://docs.docker.com/userguide/dockervolumes/ Big credit goes to Danyeon Hansen for seeding this idea in the mariadb containers. Note occasionally docker-compose start/stop seems to not want to stop a container. This bug needs to be addressed upstream separately from our utilization of this best practice. Change-Id: Iaa1419f606e1b1b7a7560a095c49e79d643164f1
2015-03-20Refactors nwfilterDaneyon Hansen2-2/+3
Previously, the nwfilter daemon/conf pkgs would need to be installed on the host. Compose would then mount the host DIR to the compute containers. A more efficient approach is to simply install the nwfilter config/daemon in the libvirt container. Both appoaches address the following error when booting an instance: 'no-mac-spoofing' is missing Change-Id: I81b446d198920473bf99b97ef5eac6ef5ee85024
2015-03-16Nova boot will fail if the host doesn't have libvirt installedRyan Hallisey1-0/+5
Libvirt contains a package that sets the permissions of KVM. If the host does not have libvirt installed the permissions will never be set and nova boot will fail. Change-Id: Ie5509199391db55e0984d59a6623f021f3ae46c1
2015-03-06Merge "Allow changing base image"Jenkins3-3/+3
2015-03-02Allow changing base imageMartin André3-3/+3
By changing the PREFIX variable in the .buildconf one is now able to build docker images from different bases. For example, add the following line to your .buildconf file to build CentOS based images: PREFIX=centos-rdo- Default base image is Fedora. For now only RH family is supported. Additionally, changing the namespace either with the NAMESPACE variable in .buildconf or via --namespace commandline option now changes the source namespace as well from the default kollaglue one. Implements: blueprint multi-baseos Co-Authored-By: Steven Dake <stdake@cisco.com> Change-Id: I3964cd2292789ea883a1f2d2738a5731a4fff49b
2015-02-27A functional libvirt + nova_compute + nova_networkSteven Dake8-61/+18
This imports sdakes' nova-docker codebase to show that atomic upgrades work atleast with nova networking. This has many corrections. For more details read: http://sdake.io/2015/01/28/an-atomic-upgrade-process-for-openstack-compute-nodes/ Implements-blueprint: blueprint libvirt-container Partially-implements; blueprint container-set-compute-operation-nova Change-Id: I858ea113c5656b6da5d2fd13502fecdbd085c8da
2014-11-17Adds support for Functional Nova-NetworkDaneyon Hansen3-9/+33
Previously, the nova-network service was not fully functional. This patch adds multi-interface support to the nova-network container. The eth0 configuration is moved to a bridge (br100 per nova defaults), and configures eth0 and eth1 as bridged interfaces. eth0 is used for the nova-flat network and eth1 for foating-ip's. This model is identical to typical bare-metal nova-network deployments. The patch depends on the following patch to kube-heat template that provides multiple interfaces per minion: https://github.com/larsks/heat-kubernetes/pull/8 Rebased. Fixed merge conflict with k8s/pod/nova-compute-pod.yaml Change-Id: Ieb59f397981a226555ce55ca621ef578b987e3c6
2014-10-22Update MAINTAINER in Dockerfiles to Kolla ProjectLars Kellogg-Stedman3-3/+3
Remove individual MAINTAINER information from Dockerfiles. Change-Id: I777df5cde049599dc786176e1d5b4b9597f0b334
2014-10-21workarounds for nova networkingversion-m1Lars Kellogg-Stedman1-1/+6
this patch creates a dummy interface ("flat0") and uses that for flat_interface. This prevents nova from breaking container networking when it adds the container eth0 to the nova bridge (br100). Change-Id: I93c696a8476228d6bbca678748170c2a11d5af11
2014-10-21fix typo in nova-network/start.shLars Kellogg-Stedman1-1/+1
global script is called "kolla-common.sh" not "config-common.sh". Change-Id: I0303d33c786d575ac4b061b4060f626213bc583b
2014-10-21Only create bridge in nova-networkSteven Dake2-1/+3
Not all nova services need a bridge. Remove bridge creation from nova-base config and place in nova-network specifically. Change-Id: Ia78c65a4661cd95112dca7ffdc1e839d4f648d52
2014-10-21Add missing libvirt-start.shSteven Dake1-0/+13
libvirt-start.sh was missing from nova-compute/nova-compute. Add it so libvirt is started from a fresh checkout of the repository. Change-Id: I8b40819629b16e4a63102eb353b3c8682791cf9d
2014-10-20Change to using flat nova networking from neutronSteven Dake7-21/+45
Neutron is not yet ready, so use flat nova networking instead. Change-Id: I4905f2a54af2c0c06cc8cf95d21f5831b02fbe5e
2014-10-17introduce a common base for compute and controllerLars Kellogg-Stedman2-82/+5
This moves nova-ctr-base one level up and renames it nova-base, so that we can share the same basic config between compute and controller pods. Change-Id: I325f70c278744a1e1fe99b891e05c59c4248c55f
2014-10-16Make nova-compute work properly with libvirtSteven Dake3-40/+93
The nova-compute POD now starts and produces nearly correct output. It may be that the libvirt container needs additional attention as it is spitting out errors related to the firewall toolchain on the container. Change-Id: I5bcd21c59f341494206a09e882631185ce66f336
2014-10-16Remove nova-base since there is only 1 image for nova-computeSteven Dake3-7/+1
Libvirt imports from fedora-rdo-base rather then nova-base, so no need in generating an extra image. Change-Id: I3ddd3aca54900686e3351de3dc11896347b14b6e
2014-10-14Have qemu uri point to correct placeSteven Dake1-2/+3
Prevoiusly the connection uri was using an undefined variable. Now it will use NOVA_LIBVIRT_SERVICE. Change-Id: Ia5ceb3428fa7aeb8dd1dd7b500c63119856977f2
2014-10-14do not perform database or keystone setup in nova-computeLars Kellogg-Stedman1-41/+37
- do not perform database or keystone initialization in nova-compute image (these should happen in the controller images). - fix incorrect nova.conf path - configure keystone_authtoken correct NB: This still won't result in a working image, because it does not configure the RPC settings yet. That will be for a subsequent patch. Change-Id: Icbd66104ef817d360c46003b29fff63f66ace8d2
2014-10-14Merge "batch operations in nova-compute dockerfile"Jenkins1-14/+15
2014-10-13batch operations in nova-compute dockerfileLars Kellogg-Stedman1-14/+15
- batch yum operations to the build goes faster - yum clean after install to remove yum cache and make final image smaller Change-Id: I62246a6329a6b2ab6ab4fee6f72652a805f1e72e
2014-10-13fix nova-base dockerfileLars Kellogg-Stedman1-5/+3
- use correct namespace for base image - mariadb and openstack-utils are installed by fedora-rdo-base Change-Id: I9c8bccab10f8b9dc66340fb94d45c90d1a39fea9
2014-10-07Reorganize k8s structureSteven Dake3-71/+0
All services go to TLD/k8s/service All pods go to TLD/k8s/pod Change-Id: Iad2977a9f0cd5f430c4e0a566846bf4681618379
2014-10-07Change sdake/image to kollaglue/imageSteven Dake1-2/+2
Had my personal repo checked in. Assuming we want kollaglue for repo-based files :) Change-Id: I5ccdba8c3d3301c8140c5143aea3db5ebfa6db76
2014-10-07Modify start.sh for nova-compute/nova-computeSteven Dake1-2/+10
This should get us a working nova-compute. Once rabbitmq is operational we can further debug and implement this container. Change-Id: I0768b9f33bc43748f4e08da0edc111d669895cc8
2014-10-07chmod +x nova-compute/nova-libvirt/start.shSteven Dake1-0/+0
start.sh must be executable Change-Id: I2de86343d194af5c3783d2169192f158fdada178
2014-10-07chmod +x start.sh for nova-compute/nova-computeSteven Dake1-0/+0
start.sh must be executable Change-Id: I552b151069d4baee66b058671486846f2dc08c13
2014-10-07Merge "Get to a functional nova-libvirt start"Jenkins2-3/+26
2014-10-07Merge "Modify nova-compute pod to operate properly"Jenkins1-8/+5
2014-10-07Merge "Add service files for libvirt and compute"Jenkins2-0/+18
2014-10-07Get to a functional nova-libvirt startSteven Dake2-3/+26
Get a working Dockerfile Sort out start.sh to run libvirt in a container Change-Id: Iaafe807b1631ad59fea200a02e46a8cabd6791ca
2014-10-07Modify nova-compute pod to operate properlySteven Dake1-8/+5
Several things were done incorrectly in previous pod. Fix that. Change-Id: I7387964979b4ceef4dfda2349023aa0267320349
2014-10-07Add service files for libvirt and computeSteven Dake2-0/+18
Add service files for libvirtd and nova-compute Change-Id: I94c5cad75605104f57859e23341ba106a3250fc8
2014-10-07renamed keystone servicesLars Kellogg-Stedman1-1/+1
This renames the keystone services so that they are named by function, rather than port number (which would be confusing if they were running on a different port). Change-Id: Ibb0263a133c28a104563df431870a9effe584012
2014-10-07use renamed mariadb servicesLars Kellogg-Stedman1-1/+1
This patch updates all the json files that reference the mariadb service variables to ues the new names. Labelling things foo-master crept into this repository from the kubernetes guestbook example (which has redis-master and redis-slaves). We're not running clustered software at the moment so these labels are unnecessary. Change-Id: I229d04c89aa13cb6cc2e1c33a0a7b21e1c6e9caa
2014-10-04introduce a new build mechanismLars Kellogg-Stedman8-16/+3
This patch replaces the collection of individual "build" scripts with a single script (tools/build-docker-image), made available as "build" inside each image directory. The build-docker-image script will, by default, build images tagged with the current commit id in order to prevent developers from accidentally stepping on each other or on release images. Documentation in docs/image-building.md describes the script in more detail. Change-Id: I444d5c2256a85223f8750a0904cb4b07f18ab67f