322 Commits

Author SHA1 Message Date
Martin André
dc3687b18b Various fixes to pre-commit hook
Fix incorrect test in sh. Bash implements the new test with [[ that
accepts the double equal, however, this is not a bash script. On Debian
and derivates, this will be run by dash.

Make the script portable by not using GNU extensions of xargs.

Call `validate-all-*.sh` scripts whenever possible.

Have bashate look for /usr/bin/env style shebang as well.

Remove useless validate-json.sh file.

Change-Id: Id2d697f2e9ddaa66e25f71f410200528c1e0cf6b
2015-01-19 16:43:55 +09:00
Martin André
13799455c2 Make scripts work on latest Atomic images
Remove git and jq dependency in most scripts, allowing to run them on
latest atomic images, or even distribute Kolla in the form of tarball.

The only remainings of git dependency are in the git pre-commit hook,
and in the image build scripts. We can remove the latter one and have
the scripts running in degraded mode if we really want to.

I opted for a python based approach to finding the top-level directory
for portability, ensuring consistent result on Linux and BSD, including
OSX.

Change-Id: I987174032d11b2e9d6a993c563b5dc877c15dd2d
2015-01-19 10:32:49 +09:00
Martin André
9723a796d3 Improvements to build-all-docker-images script
Trap interrupt signal so that the build-all-docker-images script is
stopped on Ctrl-C, and not only the current build.

Additionally, the script now prints a summary of changes on exit.

Change-Id: I3f6ef97d776c7799c73bc709070d97d37406637a
2015-01-14 09:14:27 +09:00
Jenkins
5baafd1dff Merge "Cleanup of images and containers needs a '-f' flag to force shutdown" 2015-01-08 21:12:56 +00:00
Ryan Hallisey
ae4cc56c14 Cleanup of images and containers needs a '-f' flag to force shutdown
Change-Id: I0642dcd36fe5af261b8f35744e3e88460a13fc85
2015-01-08 20:15:02 +00:00
Ryan Hallisey
f40444a188 Rabbitmq service is looking for 'rabbitmq-master' instead of 'rabbitmq'
Change-Id: Id28a15f1c0f54b4aa2ee1d49ee7f117eb84c977a
2015-01-08 20:06:49 +00:00
Jenkins
5f3cf5b6fe Merge "Add script to build all docker images in the correct order" 2015-01-06 16:46:55 +00:00
Jenkins
38e88c2760 Merge "Make build script respond to -h option" 2015-01-06 16:11:53 +00:00
Jenkins
a5bd2f2d5d Merge "Base all images on kollaglue ones" 2015-01-06 16:09:30 +00:00
Jenkins
3c51b6f7c9 Merge "Set higher precedence for .buildconf file in image directory" 2015-01-06 16:06:40 +00:00
Jenkins
8d66ded6bd Merge "Lock Fedora-based image to specific versions" 2015-01-06 16:03:22 +00:00
Jenkins
68326daf88 Merge "Update the README to reflect new additions to kolla" 2015-01-06 15:44:34 +00:00
Ryan Hallisey
4112ab2239 Update the README to reflect new additions to kolla
Added the new containers we are supporting.
Kubernetes has updated and kubecfg was replaced with kubectl.

Change-Id: I12b88b856dca150087261f86c674012dcc1b4816
2015-01-06 15:26:21 +00:00
Jenkins
70fc0e6125 Merge "Start and stop scripts are outdated after Kubernetes update" 2015-01-06 15:18:33 +00:00
Ryan Hallisey
8229c1f6c3 Start and stop scripts are outdated after Kubernetes update
Kubernetes no longer uses 'kubecfg', but rather 'kubectl'.
Therefore, the way that pods and services are being created
needs to be changed.

In order to create a pod, the parameter 'kind' needs to be set
to 'pod' in the yaml file and the api version specified.

The stop script now reads from k8s/{pod,service,replication}/ in order
to stop all the started pods, services, and replication controllers.

Change-Id: Ibd39fa402e9df883df83272c3aefbb69009dfbd2
2015-01-05 23:26:19 +00:00
Martin André
c84b119ec2 Add script to build all docker images in the correct order
The script is a wrapper for the `build-docker-image` script and thus
respond to the same options. It also responds to two additional `--from`
and `--to` options that allows building only images that have changed
between the specified git revisions.

Examples:

    # Build all images contained in docker directory and push new release
    build-all-docker-images --release --push

    # Build only images modified in test-branch along with their children
    build-all-docker-images --from master --to test-branch

Change-Id: Ib83bf475cd2a21965071c13eec4456df5c332edd
2015-01-05 11:10:44 +09:00
Martin André
ed493b84e0 Make build script respond to -h option
It is usually considered good practice for a script to respond to both
short style `-h` and long style `--help` options to display help
message.

This commits adds support for short style `-h` option.

Change-Id: I8426b5ec136d08b3a476beea3cb983089e08c401
2015-01-05 10:34:35 +09:00
Martin André
e07d274a61 Set higher precedence for .buildconf file in image directory
Source .buildconf file in $IMGDIR last in order to prevent silently
overloading configuration by the less specific $TOPDIR/.buildconf.

Change-Id: Ia38101b6d4743b454dc2c8ba48d3b55af47ed53b
2015-01-05 10:27:35 +09:00
Martin André
298ce72106 Base all images on kollaglue ones
The `kollaglue` Docker hub namespace was missing for some of the images.

Change-Id: Id0e0c7f62d638fc2ee79f27c07677abf2902e087
2015-01-05 10:10:51 +09:00
Martin André
8843f6ff52 Lock Fedora-based image to specific versions
This prevents unexpected breakage on new Fedora release.

Fedora 20 is the last release known to work. Images based on Fedora 21
are currently broken as they lack required packages such as iproute.
Support for Fedora 21 is on the way and will follow soon once all images
have been verified.

Change-Id: I849732147302eaf00d864d6b5093ff6ac006f496
2015-01-05 10:05:31 +09:00
Jenkins
1fcf0bee5f Merge "Prefer the use PUBLIC_IP over MY_IP" 2014-12-26 07:01:12 +00:00
Jenkins
31e4fa1937 Merge "Enable usage of containers outside of Kubernetes" 2014-12-19 17:29:54 +00:00
Jenkins
1cd21fef48 Merge "Reduce code duplication in kolla-common.sh" 2014-12-17 21:08:04 +00:00
Jenkins
6c1693aa01 Merge "Remove unused libvirt-service.json file" 2014-12-17 21:07:58 +00:00
Jenkins
d5aeb9a223 Merge "Add gitignore file" 2014-12-17 21:07:51 +00:00
Martin André
816612192c Enable usage of containers outside of Kubernetes
Kubernetes currently creates FOO_SERVICE_HOST and FOO_SERVICE_PORT env
vars as part of starting the containers. However this is not done when
starting them with plain docker.

Defaulting variables to their common version if they're not already set
allows the usage of --link in plain 'docker run' to wire together
containers.

Co-Authored-By: Charles Crouch <ccrouch@redhat.com>
Change-Id: I91098ff987b18646d901ac63a3a644fbb68fc857
2014-12-17 13:50:03 +09:00
Martin André
bfa5d0a2ec Fix use of undefined KEYSTONE_SERVICE_HOST in Ceilometer
This variable is never defined anywhere, and it is not one of the
variable automatically exported by k8s or docker.
It should be KEYSTONE_PUBLIC_SERVICE_HOST instead.

Change-Id: Ib65b0189d0a767212fbb7eff4ce81717d492c3e2
2014-12-17 13:22:20 +09:00
Martin André
e1b90581c0 Reduce code duplication in kolla-common.sh
Introduce a generic check_for_os_service function that exits unless it
receives a successful response from the corresponding OpenStack service.

Additionally use the local keyword to not leak local variables, and fix
check for non-existing NEUTRON_API_SERVICE_HOST variable in
check_for_neutron().

Change-Id: I67dff2b16a99bc44e928cd6a679dff8cc6a99b39
2014-12-17 13:13:22 +09:00
Martin André
7317a86b08 Remove unused libvirt-service.json file
This file is a duplicate of nova-libvirt-service.yaml and is presumably
a merge accident after all service files were converted to yaml.

Change-Id: I89719e084fcea7010dd6a29beba999e04989d8c5
2014-12-17 13:00:58 +09:00
Martin André
363eb0939e Add gitignore file
The initial gitignore includes build-docker-image script's private
configuration file, tox generated files and common temp files created by
vim and emacs.

Change-Id: I514953471646904b541321d1d878d40a2c8f8b26
2014-12-17 12:52:35 +09:00
Daneyon Hansen
9aadaef82e Fixed Neutron Service Proxy and Simplified Naming
Previously, the k8s neutron-server service was using a selector
for the neutron pod that did not exist. The selector name defined
in the service yaml was more appropriate than the label (neutron)
defined in the pod yaml, so the label was updated in the pod
yaml.

Additionally, the naming convention for the neutron pod was
changed from neutron-controller to neutron-server to more
correctly depict the pods functionality.

Change-Id: I99465069bb3c37e7bf17c6d7a8f3559f87bf7140
2014-12-12 22:45:43 +00:00
Jenkins
36258963a7 Merge "Remove duplicate write of openrc" 2014-12-08 19:22:54 +00:00
Jenkins
6fabb5c9aa Merge "Check for all required variables in keystone start.sh" 2014-12-08 19:22:12 +00:00
Jenkins
528102a0ee Merge "Cleanup variable checks in glance-registry/start.sh" 2014-12-04 19:10:51 +00:00
Martin André
fb9259d426 Allow building docker image from anywhere
Record the image directory path to a variable and use it instead of the
current directory to allow the build script to work independently of the
location.

Closes-Bug: 1398648
Change-Id: I84c52e41e43af10998f8e9267ccc059eca716c1c
2014-12-04 17:27:18 +09:00
Martin André
a8f3c5ff86 Remove duplicate write of openrc
Use KEYSTONE_PUBLIC_SERVICE_HOST in favor of
KEYSTONE_PUBLIC_PORT_5000_TCP_ADDR

Change-Id: Icea714e4c207a1f518faf7bda8235d4f0bc9e3f9
2014-12-04 16:51:32 +09:00
Martin André
7bab87f8cc Cleanup variable checks in glance-registry/start.sh
Remove redundant checks for MARIADB_SERVICE_HOST and DB_ROOT_PASSWORD
that are performed in `check_for_db`, and add missing check for
GLANCE_DB_USER.

Change-Id: Ie8194ce76274a9356dcc0b51353873d8a632c66a
2014-12-03 13:30:13 +09:00
Martin André
1950051b66 Prefer the use PUBLIC_IP over MY_IP
PUBLIC_IP is more descriptive that MY_IP, it should be used consistently
across Kolla.

Change-Id: Iff6ae903e794ec84a40a300b36512422b7a81f71
2014-12-03 11:29:16 +09:00
Martin André
21f28309e7 Check for all required variables in keystone start.sh
This allows Kubernetes to reschedule the container in case a required
variable is missing, for example when the Kubernetes pod is started
before the service.

Additionally, define the KEYSTONE_ADMIN_SERVICE_HOST and
KEYSTONE_PUBLIC_SERVICE_HOST variables to their common version if not
already set to allow usage outside of Kubernetes with docker link
feature.

Change-Id: Ie0966c18076a770e4031bbf5f777dd1be0ba20bc
Closes-Bug: 1398632
2014-12-03 10:22:18 +09:00
Martin André
7f66766c9c Properly format markdown in README.md
Mark code blocks and list items as such. Also use preformated text for
commands or flags and wrap long lines.

Change-Id: I6992abb1e1f18fba62adc127285d75f3f39659db
2014-12-02 10:31:44 +09:00
Jenkins
5eb1a06204 Merge "Adds Neutron Networking Support" 2014-12-01 12:20:31 +00:00
Jenkins
a3d88c1a61 Merge "Horizon container implementation" 2014-11-26 20:55:10 +00:00
Pradeep Kilambi
6bd1f5a3a7 Fix to not fork mongod so mongodb container works as expected
For some reason forking the mongod process seems to cause issues
when the container comes up. If i remove this and run the
images with detach and publishall flags i can connect to
mongo instance.

Change-Id: I0b7193e6369084e3aeec857607dda9c3f235770d
2014-11-25 22:23:42 +00:00
Daneyon Hansen
fe28973675 Adds Neutron Networking Support
Implements: blueprint kube-neutron-container

Previously, only the neutron-server service was functional. This
patch adds support the the rest of the neutron services need by
Nova instances to function. The linux-bridge agent is used instead
of the OVS agent to realize network abstractions. This is because
the ovs-agent package will install the kernel module version of OVS
instead of the userspace version. Additionally, the OVS
userspace code is still very experimental and reduces performance.

Requires:

https://github.com/larsks/heat-kubernetes/pull/8

Change-Id: I5ef34ddeb48d4954934571a928cc82ae7f3a0f20
2014-11-25 17:30:41 +00:00
Ryan Hallisey
fdb5c77a90 Horizon container implementation
Horizon requires that Nova, Neutron(Nova Network), Glance,
and Keystone are running.  Therefore, the container needs to
check for the availablity of each service on startup.

The config file is not a .ini file, but rather a python file
so it requires using sed instead of crudini.

Change-Id: I5ed14514881fe9aef688ca08bcb94881ef5b25cb
2014-11-24 17:09:29 -05:00
Jenkins
1520f41a65 Merge "Adds support for Functional Nova-Network" 2014-11-21 21:44:28 +00:00
Jenkins
3c803b62be Merge "Implement zaqar container" 2014-11-21 21:43:06 +00:00
Jeff Peeler
24dca1e124 Implement zaqar container
The current implementation has been configured to use sqlite instead of
mongodb, since that container service is not yet available. Also, there
are no Icehouse RPMs available, so the Juno RPMs are fetched and
manually installed.

Implements: blueprint kube-zaqar-container

Change-Id: Ie875ab43ad3db92ae2712492ee151fbad0fec3cc
2014-11-19 17:03:16 -05:00
Daneyon Hansen
05f352a125 Adds support for Functional Nova-Network
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-11-17 17:47:40 +00:00
Pradeep Kilambi
904b5c4256 Add support for mongodb container
Implements: blueprint kube-mongodb-container

Change-Id: If76f6c0be90c3025933795d262304a10bf1a880d
2014-11-14 13:06:37 -05:00