We are gleeful to announce the release of: magnum 4.0.0: Container Management project for OpenStack This release is part of the ocata release series. The source is available from: ** http://git.openstack.org/cgit/openstack/magnum Download the package from: https://tarballs.openstack.org/magnum/ Please report issues through launchpad: ** http://bugs.launchpad.net/magnum For more details, please see below. 4.0.0 ^^^^^ Magnum's keypair-override-on-create blueprint [1] allows for optional keypair value in ClusterTemplates and the ability to specify a keypair value during cluster creation. Currently, the swarm and the kubernetes drivers use a dedicated cinder volume to store the container images. It was been observed that one cinder volume per node is a bottleneck for large clusters. New Features ************ * Added parameter in cluster-create to specify the keypair. If keypair is not provided, the default value from the matching ClusterTemplate will be used. * Keypair is now optional for ClusterTemplate, in order to allow Clusters to use keypairs separate from their parent ClusterTemplate. * Magnum now support OSProfiler for HTTP, RPC and DB request tracing. User can enable OSProfiler via Magnum configuration file in 'profiler' section. * This release introduces 'quota' endpoint that enable admin users to set, update and show quota for a given tenant. A non-admin user can get self quota limits. * Add microversion 1.5 to support rotation of a cluster's CA certificate. This gives admins a way to restrict/deny access to an existing cluster once a user has been granted access. * This release introduces 'stats' endpoint that provide the total number of clusters and the total number of nodes for the given tenant and also overall stats across all the tenants. * Update Swarm default version to 1.2.5. It should be the last version since Docker people are now working on the new Swarm mode integrated in Docker. Deprecation Notes ***************** * --keypair-id parameter in magnum CLI cluster-template-create has been renamed to --keypair. Bug Fixes ********* * Make the dedicated cinder volume per node an opt-in option. By default, no cinder volumes will be created unless the user passes the docker-volume-size argument. Changes in magnum 3.1.0..4.0.0 ------------------------------ fbfdbec Pass OpenStack-API-Version header in make-cert scripts 2a4ad9a Make Kubernetes pods' health checks configurable d2532a3 Upgrade to Fedora 25 254eee7 Updated from global requirements 5f951c1 Resource Quota - API documentation 206d17f Resource Quota - Limit clusters per project e77ac1e Add release note for BP OSProfiler in Magnum 64a5dea Fix: Pass external_network to kube-minion 08e9b10 Updated from global requirements ac68cfc Update MY_IP to use curl and metadata instead of cut 52be593 Fix getting capacity in k8s_monitor a65ef7d Add an API to rotate a cluster CA certificate 32d088b Integrate OSProfiler in Magnum d1f338a Fix Ironic driver aa56874 Resource Quota - Adding quota API ccc04d6 Resource Quota - DB layer changes 73059c5 Resource Quota - Add config option to limit clusters 97d5e6e Move scale managers at driver level f997a33 Move monitors at driver level faccdcc Fix LB heat template parameter name 7dfc71b [Doc] Update User Guide: User Examples 651ff79 Updated from global requirements 203ce78 Fix compatibility with novaclient 7.0.0 d86b201 Add debug-py34 to tox.ini d01452b [k8s_ironic] Move software configs out of minion 57c57e8 Magnum stats API documentation 61b9bb4 [Mesos]Move software configs out of resource group 4680fb4 [Mesos]Move wait condition out of resource group f7bf92a [k8s_ironic] Move wc out of master resource group a9ded02 [k8s_ironic] Move wc out of minion resource group 51e8331 Magnum stats API 7e59f53 [devstack] Copy bash_completion script during magnum installation 1436879 Remove extra spaces c5713a3 [Doc] Update quickstart Guide: Using a Kubernetes Cluster 19e2473 Updated from global requirements 7c4ef12 [swarm] Fix cert filename in swarm-agent service 900c2af Remove unused context variable in db api ffb751d [swarm] Enable TLS in Etcd cluster c548d7b CI: Set storage driver to overlay 287f794 CI: Increase master-flavor size d7ed87e [suse] Add min and max to flannel_network_subnet option 22fb89a Make private network optional a60529c Fix the incorrect initialization of context roles 5cd4ade used openstack cli in magnum devstack plugin ef84906 Use Kubernetes config to launch services pods 6fd2e3f Fully clean up requirement.txt dependencies 07a68dc [suse] Update k8s_opensuse_v1 driver 85b1bab Remove the usage of MagnumObjectDictCompat from magnum_service 0b1c59b [suse] Tune default value for docker_volume_size 6950c34 Fix gate: caused by tempest(removal of "service" param) 422d12c Remove PrettyTable useless requirement 2ee054c Modify variable's using method in Log Messages df37275 [suse] Setting correct permissions for Kubernetes files 0cb8b18 Updated from global requirements 5902daf Remove provision_state parameters(specific to ironic) 9cbb142 Add cluster record to db right after API request 03e7aee [k8s_coreos] Enable TLS in Etcd cluster 3c0e06e [k8s_coreos] Remove podmaster 3732b8d Updated from global requirements 2bc67d4 Removes unnecessary utf-8 encoding c404135 Use correct context synching status 8d7bc9c Make Docker proxy configuration consistent across template cea125b Remove the usage of MagnumObjectDictCompat from certificate 92e3e18 Fix multiple typos in unit tests names 9e91fd2 List all the possibilities of cluster's name through a list 1ef059b Specification for Magnum stats API 3dc50e2 Remove the usage of MagnumObjectDictCompat from x509keypair 1cdb4f9 Import magnum.i18n._ in driver/heat/driver.py 2f9f613 Updated from global requirements 472af7f Update Swarm version to 1.2.5 dd7c597 cors: update default configuration 006718d Updated from global requirements 9b10456 [suse] Allow k8s cluster without floating ip c00d197 [suse] add support of LBaaS v2 29ca630 [suse] Add proxy config 0899337 [suse] Fix template descriptions dfac6e8 Change gate Fedora Atomic image to the automated f24 build 4dd178e Add docker-d options in sysconfig/docker e160a9f [install] Fix endpoint creation ff6514f Disable horizon, ceilomter and swift in gate hook 10e85ee Consolidate heat network resources c4e92bb Updated from global requirements 11d7377 Missing lines in lb refactor for CoreOS driver e904a8a [k8s_fedora_atomic] Enable TLS in Etcd cluster 874d81c Remove docker_volume_size from functional-test 67d7110 Disable horizon, swift and ceilometer 84a9464 Move cluster status notifications out of driver 80fc5a2 Add bashate checks to pep8 step 9c34f92 Add a SELinux policy to relabel files in /usr/local/bin as bin_t 5d35b66 [doc|install_guide] Fix 'host' config param in [api] section 73c5f6e Updated from global requirements ce3c684 Factorize load balancer code into its own template 2ad658a [ironic][doc] Updated ironic image build doc 4fa049e [k8s_fedora_atomic] Remove podmaster 2aebf8a functional: don't create flavors if ironic testing 10e9132 DIB elements to support dcos for magnum 1f81a4e Use keystone v3 for functional tests 5116948 [mesos]remove redundant security group 04cb27c Disable lbaas from ci tests ee66c9a func-test-docs: Use iniget and set concurrecy 1 759c1b3 Move cluster status updates into driver 7890725 Refactor driver interface (pt 1) f2f9bd4 k8s_ironic: fix minion template 6033d0e Add RESUME_FAILED to cluster's status field 004e0cd Remove underscores from Nova server names 38c39d8 Doc: update server type in userguide c5a280f Show team and repo badges on README b382973 Updated from global requirements 5b02a60 Improve security for swarm 9335b17 Remove KEYSTONE_CATALOG_BACKEND from magnum plugin df41e61 [trivial] Fix DIB element path in Readme ace25e1 [suse] Add hidden attr to password in the Heat Template 821bacc Revert "devstack: Fix neutron configuration to run in OSIC" 036bba3 Fix few typos in documents 8d6bf7c Reduce security groups # for k8s coreos cluster 74d504d Use 'code-block' for pieces of code 42856b4 Fix a typo 85c9937 Updated from global requirements 28bed30 Add Flatten Attributes Specification 6c1cc2c Fix typo in cover.sh 01eef1c Drop id suffix in launch-an-instance guide 467f8fa [docs]Update quickstart guide to use cluster-config command 4ffad1d Set config param [DEFAULT]/host to hostname 60ebfb0 Combine master security groups in k8s driver 75464e9 Remove out-dated method for installing in Devstack 7fc7d69 [install] Update rabbitmq configuration d7b88c4 Updates Documentation for non-ID Params f827494 Make cinder volume optional 07f9e02 Add insecure option in functional tests for SSL endpoints 1fb355e remove extra bracket from script in docs. 524214c typo: Fix in docker storage configuration b17e21d Updated from global requirements 490deb2 Restart swarm infra containers if deleted fad39cf Remove unused configure-flannel.sh 05aa0ed Fix: InvalidParameterValue Exception not raised correctly 1c42c38 Updated from global requirements 2eda81c Add use of label 'swarm_strategy' in userguide 2d160ec Support scheduler strategy for swarm cluster 2df66c1 Updated from global requirements faf6e6e Updated from global requirements 67de6c5 Add user-domain in role creation 3a20556 [instll] Update a more simple rabbitmq configuration 6712181 Add http_proxy_to_wsgi to api-paste 97cb24b Enable DeprecationWarning in test environments 617d55f [suse] configure flanneld on master node b26c2d4 [suse] Update copyright/ownership information fc55b01 Fix magnum cluster-update error 5bebf9d Added reno for stable/mitaka and stable/liberty 15a053d [suse] Sync with cluster drivers 024d3d2 Use function is_valid_mac from oslo.utils 2d9a500 fix cover.sh to allow db version changes without ut 39095c8 [Trivial] Fix two typos in magnum. 9bf849d add some tests for db 757edf6 add some tests for cluster and clustertemplate api bc7315d Remove pod/svc/container object reference from doc 0d6deae Move cluster delete method to driver a58d1b7 Replace naked exceptions in barbican_cert_manager 5a98fe9 corrected hyperlink typo fix f3d57fd Updated from global requirements c3911af add cluster and clustertemplate to fake_policy.py 90251b5 Enable release notes translation af59ea6 Fix magnum-template-manage 2e9c364 Add docker daemon systemd proxy variables 79f5d98 Remove unnecessary fingerprint of MyObj object d07b79c Fix typo: clustser-->cluster in python_client_base.py eb495d4 Make k8s cloud config consistent 08a4889 Centralize config option: docker_registry section 3a6a7cd Centralize config option: urlfetch and periodic 98516d4 Clean rc from unit tests 1876211 Fix the config args of kubernetes service 9501589 Fix PEP8 issues, OpenStack Licencing and Version details cb27427 Remove rc from policy.json 4c08507 Disable cert checks while talking to endpoints 06f056f Allow keypair to be added during cluster create 104501c Cluster Drivers cf82f5d Updated from global requirements 96b66a2 [api-ref] configure LogABug feature f6128a0 Remove fixed_network from functional tests 45f071e devstack: Fix neutron configuration to run in OSIC 40c1e2d [coreos] Allow k8s cluster without floating ip bd31e7c [api-ref] Remove temporary block in conf.py 278f92e Add dns server access confirmation 66de976 Revises 'json' to 'JSON' and 'yaml' to 'YAML' adc6a7f Remove not really translated file 4a7d265 Implement mesos cluster smart scale down 865702f Fix failure of systemd service kube-ui 6b6ad52 [k8s_common]Remove enable-etcd.sh 5dae4c5 Fix typo 'mesoscluster' to 'mesos-cluster' 324f4ac Fix K8s load balancer with LBaaS v1 00d301a [mesos]Fix output param: mesos_slaves_private dc7b7af Remove safe_utils.py 78b4b09 Remove yamlutils.py bf1ace2 Remove k8s_manifest.py 4cc5a62 Remove Exceptions for Container/Pod/Service ef66fab [mesos] Make dib scipts executable fd1c35a Remove unnecessary use of sudo in k8s scripts 3418767 Using sys.exit(main()) instead of main() d8c7a83 Change several RabbitMQ config settings eab33ac Updated from global requirements adf266c Remove default=None when set value in Config 19ecda2 Fix quickstart guide URL 0078e85 Fix typo 'duplcate' to 'duplicate' in status.yaml fb7980c Update Fedora Atomic element from 23 to 24 82c338e Centralize config option: x509 section 66430ea Centralize config option: keystone_auth section 5abcdad Centralize config option: trust section 19d8098 Centralize config option: certificates section 6d6cfb8 Centralize config option: docker section df6b42b Centralize config option: service section 1a97476 Centralize config option: rpc periodic section cc839e8 Centralize config option: utils section d86b573 Centralize config option: database section e4627ab Centralize config option: paths section 8f9eeb8 Centralize config option: cluster_heat section e891d0a Centralize config option: cluster_template section 6a16c86 Fix k8s_fedora to work with cinder volume driver 4f8b26f Centralize config option: conductor section 494cb21 Centralize config option: cluster section 44cca29 Centralize config option: all clients section cfe5b4e Centralize config option: api section 357df30 Add Horizon and Native Clients to user guide 31d04e3 Update name of ubuntu-mesos image 9493a81 Split swarm atomic template 0046d3a Updated from global requirements b8dd781 Register master node but make it non schedulable 46b3d00 Remove duplicate AUTH_URL parameter cbdf945 Remove unnecessary setUp and tearDown 1ab3eab Init magnum centralize config 48756e0 Update reno for stable/newton 0c83db0 Delete coreos driver elements directory 745188b Restrict server type only to vm/bm b0bcbec [suse] Sync heat template version with other drivers 7582af3 TrivialFix: Remove logging import unused 82dc0eb Change the type of flannel_network_subnetlen to 'number' 1c5da2e Import environment variables from testenv Diffstat (except docs and test files) ------------------------------------- README.rst | 9 + api-ref/source/certificates.inc | 26 ++ api-ref/source/conf.py | 45 +-- api-ref/source/index.rst | 2 + api-ref/source/parameters.yaml | 18 + api-ref/source/quotas.inc | 124 ++++++ api-ref/source/samples/quota-create-req.json | 5 + api-ref/source/samples/quota-create-resp.json | 8 + api-ref/source/samples/quota-get-all-resp.json | 12 + api-ref/source/samples/quota-get-one-resp.json | 8 + api-ref/source/samples/quota-udpate-resp.json | 8 + api-ref/source/samples/quota-update-req.json | 3 + api-ref/source/samples/stats-get-resp.json | 4 + api-ref/source/samples/versions-get-resp.json | 2 +- api-ref/source/stats.inc | 82 ++++ api-ref/source/status.yaml | 2 +- api-ref/source/versions.inc | 4 +- contrib/drivers/dcos_centos_v1/__init__.py | 0 contrib/drivers/dcos_centos_v1/image/README.md | 86 ++++ .../dcos_centos_v1/image/dcos/elements-deps | 2 + .../image/dcos/environment.d/10-dcos-install-url | 5 + .../dcos/extra-data.d/99-download-generate-config | 23 ++ .../image/dcos/package-installs.yaml | 6 + .../image/dcos/post-install.d/99-add-norgoup | 10 + .../image/dcos/post-install.d/99-disable-firewall | 12 + .../image/dcos/post-install.d/99-enable-ntp | 9 + .../dcos_centos_v1/image/docker/elements-deps | 1 + .../image/docker/install.d/50-install-docker | 24 ++ .../docker/post-install.d/60-enable-docker-service | 9 + .../image/docker/pre-install.d/10-enable-overlay | 26 ++ .../pre-install.d/20-configure-docker-service | 33 ++ .../dcos_centos_v1/image/validate_dcos_image.sh | 35 ++ contrib/drivers/k8s_opensuse_v1/driver.py | 27 ++ contrib/drivers/k8s_opensuse_v1/setup.py | 6 +- contrib/drivers/k8s_opensuse_v1/template_def.py | 32 +- .../drivers/k8s_opensuse_v1/templates/README.md | 30 +- .../templates/fragments/add-proxy.sh | 40 ++ .../templates/fragments/configure-docker.sh | 16 +- .../templates/fragments/configure-etcd.sh | 14 +- .../fragments/configure-flanneld-master.sh | 35 +- .../fragments/configure-flanneld-minion.sh | 4 +- .../fragments/configure-kubernetes-master.sh | 37 +- .../fragments/configure-kubernetes-minion.sh | 20 +- .../fragments/write-heat-params-master.yaml | 6 +- .../fragments/write-heat-params-minion.yaml | 32 ++ .../templates/fragments/write-heat-params.yaml | 32 -- .../k8s_opensuse_v1/templates/kubecluster.yaml | 195 +++++++-- .../k8s_opensuse_v1/templates/kubemaster.yaml | 99 ++++- .../k8s_opensuse_v1/templates/kubeminion.yaml | 90 +++-- contrib/drivers/k8s_opensuse_v1/version.py | 5 +- cover.sh | 12 +- devstack/README.rst | 2 +- devstack/lib/magnum | 25 +- devstack/settings | 10 - etc/magnum/api-paste.ini | 11 +- etc/magnum/magnum-config-generator.conf | 2 +- etc/magnum/policy.json | 15 +- functional_creds.conf.sample | 13 +- .../source/common/configure_2_edit_magnum_conf.rst | 19 +- install-guide/source/common/prerequisites.rst | 18 +- install-guide/source/conf.py | 5 +- install-guide/source/launch-instance.rst | 12 +- magnum/api/app.py | 39 +- magnum/api/attr_validator.py | 25 +- magnum/api/controllers/v1/__init__.py | 22 + magnum/api/controllers/v1/bay.py | 9 +- magnum/api/controllers/v1/baymodel.py | 4 +- magnum/api/controllers/v1/certificate.py | 12 + magnum/api/controllers/v1/cluster.py | 38 +- magnum/api/controllers/v1/cluster_template.py | 6 +- magnum/api/controllers/v1/quota.py | 211 ++++++++++ magnum/api/controllers/v1/stats.py | 73 ++++ magnum/api/controllers/versions.py | 4 +- magnum/api/hooks.py | 11 +- magnum/api/rest_api_version_history.rst | 22 + magnum/api/servicegroup.py | 18 +- magnum/api/utils.py | 4 +- magnum/api/validation.py | 92 ++--- magnum/cmd/__init__.py | 20 + magnum/cmd/api.py | 13 +- magnum/cmd/conductor.py | 11 +- magnum/cmd/driver_manage.py | 102 +++++ magnum/cmd/template_manage.py | 116 ------ magnum/common/cert_manager/__init__.py | 16 +- .../common/cert_manager/barbican_cert_manager.py | 8 +- magnum/common/cert_manager/local_cert_manager.py | 16 +- magnum/common/clients.py | 112 +---- magnum/common/config.py | 56 +-- magnum/common/context.py | 19 +- magnum/common/docker_utils.py | 28 +- magnum/common/exception.py | 56 +-- magnum/common/k8s_manifest.py | 61 --- magnum/common/keystone.py | 81 +--- magnum/common/paths.py | 66 --- magnum/common/profiler.py | 86 ++++ magnum/common/rpc.py | 48 ++- magnum/common/rpc_service.py | 56 +-- magnum/common/safe_utils.py | 53 --- magnum/common/service.py | 20 +- magnum/common/urlfetch.py | 15 +- magnum/common/utils.py | 44 +- magnum/common/x509/config.py | 53 --- magnum/common/x509/operations.py | 8 +- magnum/common/x509/validator.py | 12 +- magnum/common/yamlutils.py | 42 -- magnum/conductor/api.py | 15 +- magnum/conductor/config.py | 34 -- magnum/conductor/handlers/ca_conductor.py | 8 + magnum/conductor/handlers/cluster_conductor.py | 345 +++------------- magnum/conductor/handlers/conductor_listener.py | 3 + magnum/conductor/handlers/indirection_api.py | 2 + magnum/conductor/k8s_monitor.py | 166 -------- magnum/conductor/mesos_monitor.py | 71 ---- magnum/conductor/monitors.py | 29 +- magnum/conductor/scale_manager.py | 29 +- magnum/conductor/swarm_monitor.py | 110 ----- magnum/conf/__init__.py | 70 ++++ magnum/conf/api.py | 54 +++ magnum/conf/barbican.py | 38 ++ magnum/conf/certificates.py | 51 +++ magnum/conf/cinder.py | 34 ++ magnum/conf/cluster.py | 46 +++ magnum/conf/cluster_heat.py | 52 +++ magnum/conf/cluster_templates.py | 68 ++++ magnum/conf/conductor.py | 38 ++ magnum/conf/database.py | 40 ++ magnum/conf/docker.py | 50 +++ magnum/conf/docker_registry.py | 38 ++ magnum/conf/glance.py | 61 +++ magnum/conf/heat.py | 61 +++ magnum/conf/keystone.py | 46 +++ magnum/conf/magnum_client.py | 38 ++ magnum/conf/neutron.py | 58 +++ magnum/conf/nova.py | 61 +++ magnum/conf/opts.py | 79 ++++ magnum/conf/paths.py | 58 +++ magnum/conf/profiler.py | 27 ++ magnum/conf/quota.py | 38 ++ magnum/conf/rpc.py | 41 ++ magnum/conf/services.py | 34 ++ magnum/conf/trust.py | 54 +++ magnum/conf/utils.py | 64 +++ magnum/conf/x509.py | 62 +++ magnum/db/__init__.py | 31 -- magnum/db/api.py | 93 ++++- magnum/db/migration.py | 7 +- .../592131657ca1_add_coe_column_to_baymodel.py | 17 +- .../bc46ba6cf949_add_keypair_to_cluster.py | 32 ++ magnum/db/sqlalchemy/api.py | 119 +++++- magnum/db/sqlalchemy/migration.py | 6 +- magnum/db/sqlalchemy/models.py | 9 +- magnum/drivers/common/driver.py | 190 +++++++++ .../drivers/common/image/fedora-atomic/README.rst | 34 +- .../fedora-atomic/environment.d/50-fedora-atomic | 4 +- .../fedora-atomic/finalise.d/80-fedora-atomic | 5 +- magnum/drivers/common/k8s_fedora_template_def.py | 96 ----- magnum/drivers/common/k8s_monitor.py | 166 ++++++++ magnum/drivers/common/k8s_scale_manager.py | 33 ++ magnum/drivers/common/k8s_template_def.py | 117 ------ magnum/drivers/common/template_def.py | 450 --------------------- .../environments/disable_floating_ip.yaml | 2 +- .../templates/environments/no_master_lb.yaml | 2 +- .../templates/environments/no_private_network.yaml | 8 + .../common/templates/environments/no_volume.yaml | 4 + .../templates/environments/with_master_lb.yaml | 2 +- .../environments/with_private_network.yaml | 8 + .../common/templates/environments/with_volume.yaml | 4 + .../fragments/configure-docker-storage.sh | 49 +-- .../configure_docker_storage_driver_atomic.sh | 53 ++- .../fragments/network_switcher_existing.yaml | 27 ++ .../fragments/network_switcher_private.yaml | 27 ++ .../templates/kubernetes/fragments/add-proxy.sh | 33 +- .../kubernetes/fragments/configure-etcd.sh | 31 +- .../kubernetes/fragments/configure-flannel.sh | 30 -- .../fragments/configure-kubernetes-master.sh | 42 +- .../fragments/configure-kubernetes-minion.sh | 65 ++- .../kubernetes/fragments/disable-selinux.sh | 2 +- .../templates/kubernetes/fragments/enable-etcd.sh | 5 - .../enable-kube-controller-manager-scheduler.sh | 137 +++++++ .../kubernetes/fragments/enable-kube-podmaster.sh | 158 -------- .../fragments/kube-system-namespace-service.sh | 7 +- .../kubernetes/fragments/kube-ui-service.sh | 20 +- .../kubernetes/fragments/make-cert-client.sh | 28 +- .../templates/kubernetes/fragments/make-cert.sh | 28 +- .../kubernetes/fragments/network-config-service.sh | 29 +- .../fragments/write-heat-params-master.yaml | 3 + .../kubernetes/fragments/write-heat-params.yaml | 2 +- .../kubernetes/fragments/write-kube-os-config.sh | 6 +- .../kubernetes/fragments/write-network-config.sh | 2 +- magnum/drivers/common/templates/lb.yaml | 63 +++ magnum/drivers/common/templates/network.yaml | 75 ++++ .../swarm/fragments/add-docker-daemon-options.sh | 13 + .../common/templates/swarm/fragments/add-proxy.sh | 78 ++++ .../common/templates/swarm/fragments/cfn-signal.sh | 15 + .../templates/swarm/fragments/configure-etcd.sh | 39 ++ .../templates/swarm/fragments/configure-selinux.sh | 12 + .../templates/swarm/fragments/enable-services.sh | 15 + .../common/templates/swarm/fragments/make-cert.py | 187 +++++++++ .../swarm/fragments/network-config-service.sh | 85 ++++ .../templates/swarm/fragments/network-service.sh | 113 ++++++ .../templates/swarm/fragments/remove-docker-key.sh | 4 + .../templates/swarm/fragments/volume-service.sh | 72 ++++ .../fragments/write-cluster-failure-service.yaml | 16 + .../swarm/fragments/write-docker-socket.yaml | 21 + .../swarm/fragments/write-heat-params-master.yaml | 35 ++ .../swarm/fragments/write-heat-params-node.yaml | 39 ++ .../swarm/fragments/write-network-config.sh | 22 + .../swarm/fragments/write-swarm-agent-service.sh | 84 ++++ .../swarm/fragments/write-swarm-master-service.sh | 57 +++ magnum/drivers/heat/__init__.py | 0 magnum/drivers/heat/driver.py | 260 ++++++++++++ magnum/drivers/heat/k8s_fedora_template_def.py | 89 ++++ magnum/drivers/heat/k8s_template_def.py | 123 ++++++ magnum/drivers/heat/swarm_fedora_template_def.py | 126 ++++++ magnum/drivers/heat/template_def.py | 343 ++++++++++++++++ magnum/drivers/k8s_coreos_v1/driver.py | 38 ++ magnum/drivers/k8s_coreos_v1/template_def.py | 25 +- .../k8s_coreos_v1/templates/elements/README.md | 29 -- .../templates/elements/kubernetes/elements-deps | 1 - .../elements/kubernetes/package-installs.yaml | 4 - .../templates/fragments/add-proxy.yaml | 41 +- .../templates/fragments/configure-etcd.yaml | 30 +- .../templates/fragments/create-kube-namespace.yaml | 3 +- .../templates/fragments/enable-kube-apiserver.yaml | 7 +- .../fragments/enable-kube-controller-manager.yaml | 6 +- .../templates/fragments/enable-kube-podmaster.yaml | 77 ---- .../fragments/enable-kube-proxy-master.yaml | 4 +- .../fragments/enable-kube-proxy-minion.yaml | 3 +- .../templates/fragments/enable-kube-scheduler.yaml | 6 +- .../templates/fragments/enable-kubelet-master.yaml | 8 +- .../templates/fragments/enable-kubelet-minion.yaml | 5 +- .../fragments/enable-network-service-client.yaml | 70 ++++ .../fragments/enable-network-service.yaml | 21 +- .../templates/fragments/make-cert-client.yaml | 8 +- .../templates/fragments/make-cert.yaml | 11 +- .../fragments/write-heat-params-master.yaml | 3 + .../templates/fragments/write-heat-params.yaml | 1 - .../k8s_coreos_v1/templates/kubecluster.yaml | 211 +++++----- .../k8s_coreos_v1/templates/kubemaster.yaml | 80 ++-- .../k8s_coreos_v1/templates/kubeminion.yaml | 34 +- magnum/drivers/k8s_coreos_v1/version.py | 2 +- magnum/drivers/k8s_fedora_atomic_v1/driver.py | 38 ++ .../drivers/k8s_fedora_atomic_v1/template_def.py | 15 +- .../templates/kubecluster.yaml | 173 +++----- .../k8s_fedora_atomic_v1/templates/kubemaster.yaml | 41 +- .../k8s_fedora_atomic_v1/templates/kubeminion.yaml | 14 +- magnum/drivers/k8s_fedora_atomic_v1/version.py | 4 +- magnum/drivers/k8s_fedora_ironic_v1/driver.py | 38 ++ .../image/kubernetes/Readme.md | 12 +- .../drivers/k8s_fedora_ironic_v1/template_def.py | 8 +- .../templates/kubecluster.yaml | 246 +++++------ .../k8s_fedora_ironic_v1/templates/kubemaster.yaml | 64 +-- .../k8s_fedora_ironic_v1/templates/kubeminion.yaml | 337 +-------------- .../templates/kubeminion_software_configs.yaml | 325 +++++++++++++++ magnum/drivers/k8s_fedora_ironic_v1/version.py | 17 + magnum/drivers/mesos_ubuntu_v1/driver.py | 38 ++ .../image/install_imagebuild_deps.sh | 0 .../mesos_ubuntu_v1/image/validate_image.sh | 0 magnum/drivers/mesos_ubuntu_v1/monitor.py | 71 ++++ magnum/drivers/mesos_ubuntu_v1/scale_manager.py | 43 ++ magnum/drivers/mesos_ubuntu_v1/template_def.py | 20 +- .../templates/fragments/configure-mesos-master.sh | 2 +- .../templates/fragments/configure-mesos-slave.sh | 2 +- .../templates/mesos_slave_software_configs.yaml | 187 +++++++++ .../mesos_ubuntu_v1/templates/mesoscluster.yaml | 189 +++++---- .../mesos_ubuntu_v1/templates/mesosmaster.yaml | 12 +- .../mesos_ubuntu_v1/templates/mesosslave.yaml | 211 +--------- magnum/drivers/mesos_ubuntu_v1/version.py | 2 +- magnum/drivers/swarm_fedora_atomic_v1/driver.py | 34 ++ magnum/drivers/swarm_fedora_atomic_v1/monitor.py | 110 +++++ .../drivers/swarm_fedora_atomic_v1/template_def.py | 108 +---- .../swarm_fedora_atomic_v1/templates/cluster.yaml | 197 ++++----- .../templates/fragments/add-proxy.sh | 40 -- .../templates/fragments/cfn-signal.sh | 15 - .../templates/fragments/configure-etcd.sh | 20 - .../templates/fragments/disable-selinux.sh | 4 - .../templates/fragments/enable-services.sh | 11 - .../templates/fragments/make-cert.py | 184 --------- .../templates/fragments/network-config-service.sh | 65 --- .../templates/fragments/network-service.sh | 91 ----- .../templates/fragments/remove-docker-key.sh | 4 - .../templates/fragments/volume-service.sh | 72 ---- .../fragments/write-cluster-failure-service.yaml | 16 - .../templates/fragments/write-docker-service.sh | 52 --- .../templates/fragments/write-docker-socket.yaml | 20 - .../fragments/write-heat-params-master.yaml | 34 -- .../fragments/write-heat-params-node.yaml | 38 -- .../templates/fragments/write-network-config.sh | 22 - .../fragments/write-swarm-agent-service.sh | 59 --- .../fragments/write-swarm-master-service.sh | 50 --- .../templates/swarmmaster.yaml | 64 +-- .../templates/swarmnode.yaml | 50 +-- magnum/drivers/swarm_fedora_atomic_v1/version.py | 4 +- magnum/locale/ja/LC_MESSAGES/magnum.po | 439 -------------------- magnum/objects/__init__.py | 8 +- magnum/objects/certificate.py | 6 +- magnum/objects/cluster.py | 23 +- magnum/objects/fields.py | 37 +- magnum/objects/magnum_service.py | 9 +- magnum/objects/quota.py | 142 +++++++ magnum/objects/stats.py | 44 ++ magnum/objects/x509keypair.py | 10 +- magnum/opts.py | 64 --- magnum/service/periodic.py | 192 ++++----- .../functional/api/v1/clients/cluster_client.py | 14 +- .../functional/api/v1/test_cluster_template.py | 6 +- .../k8s_coreos/test_k8s_python_client.py | 5 +- .../k8s_ironic/test_k8s_python_client.py | 5 + .../functional/swarm/test_swarm_python_client.py | 9 +- .../unit/api/controllers/auth-root-access.ini | 2 +- .../unit/api/controllers/v1/test_certificate.py | 92 ++++- .../api/controllers/v1/test_cluster_template.py | 42 +- .../unit/api/controllers/v1/test_magnum_service.py | 3 - .../unit/common/cert_manager/test_barbican.py | 6 +- .../conductor/handlers/test_cluster_conductor.py | 423 ++++--------------- .../handlers/test_k8s_cluster_conductor.py | 284 ++++++++++--- .../handlers/test_mesos_cluster_conductor.py | 70 +++- .../handlers/test_swarm_cluster_conductor.py | 104 +++-- ...eypair-override-on-create-ca8f12ffca41cd62.yaml | 17 + .../integrate-osprofiler-79bdf2d0cd8a39fb.yaml | 5 + .../notes/no-cinder-volume-87b9339e066c30a0.yaml | 10 + releasenotes/notes/quota-api-182cd1bc9e706b17.yaml | 5 + .../rotate-cluster-cert-9f84deb0adf9afb1.yaml | 5 + releasenotes/notes/stats-api-68bc66147ac027e6.yaml | 6 + .../notes/update-swarm-73d4340a881bff2f.yaml | 5 + releasenotes/source/conf.py | 124 +++--- releasenotes/source/index.rst | 3 + releasenotes/source/liberty.rst | 6 + releasenotes/source/mitaka.rst | 6 + releasenotes/source/newton.rst | 6 + requirements.txt | 51 ++- setup.cfg | 19 +- specs/bay-drivers.rst | 2 +- specs/flatten_attributes.rst | 307 ++++++++++++++ specs/stats-api-spec.rst | 228 +++++++++++ test-requirements.txt | 12 +- tox.ini | 32 +- 413 files changed, 12598 insertions(+), 8181 deletions(-) Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt index e31a5a2..d76d88f 100644 --- a/requirements.txt +++ b/requirements.txt @@ -9,2 +9 @@ Babel>=2.3.4 # BSD -PrettyTable<0.8,>=0.7 # BSD -PyYAML>=3.1.0 # MIT +PyYAML>=3.10.0 # MIT @@ -13,3 +12,3 @@ WSME>=0.8 # MIT -WebOb>=1.2.3 # MIT -alembic>=0.8.4 # MIT -cliff!=1.16.0,!=1.17.0,>=1.15.0 # Apache-2.0 +WebOb>=1.6.0 # MIT +alembic>=0.8.10 # MIT +cliff>=2.3.0 # Apache-2.0 @@ -17 +16 @@ decorator>=3.4.0 # BSD -docker-py<1.8.0,>=1.6.0 # Apache-2.0 +docker-py>=1.8.1 # Apache-2.0 @@ -20 +18,0 @@ eventlet!=0.18.3,>=0.18.2 # MIT -greenlet>=0.3.2 # MIT @@ -23,2 +21,3 @@ jsonpatch>=1.1 # BSD -keystoneauth1>=2.10.0 # Apache-2.0 -keystonemiddleware!=4.1.0,!=4.5.0,>=4.0.0 # Apache-2.0 +keystoneauth1>=2.18.0 # Apache-2.0 +keystonemiddleware>=4.12.0 # Apache-2.0 +marathon>=0.8.6 # MIT @@ -27 +26 @@ oslo.concurrency>=3.8.0 # Apache-2.0 -oslo.config>=3.14.0 # Apache-2.0 +oslo.config!=3.18.0,>=3.14.0 # Apache-2.0 @@ -29 +28 @@ oslo.context>=2.9.0 # Apache-2.0 -oslo.db!=4.13.1,!=4.13.2,>=4.10.0 # Apache-2.0 +oslo.db>=4.15.0 # Apache-2.0 @@ -31,2 +30,2 @@ oslo.i18n>=2.1.0 # Apache-2.0 -oslo.log>=1.14.0 # Apache-2.0 -oslo.messaging>=5.2.0 # Apache-2.0 +oslo.log>=3.11.0 # Apache-2.0 +oslo.messaging>=5.14.0 # Apache-2.0 @@ -34 +33 @@ oslo.middleware>=3.0.0 # Apache-2.0 -oslo.policy>=1.9.0 # Apache-2.0 +oslo.policy>=1.17.0 # Apache-2.0 @@ -37,2 +36,2 @@ oslo.service>=1.10.0 # Apache-2.0 -oslo.utils>=3.16.0 # Apache-2.0 -oslo.versionedobjects>=1.13.0 # Apache-2.0 +oslo.utils>=3.18.0 # Apache-2.0 +oslo.versionedobjects>=1.17.0 # Apache-2.0 @@ -40,3 +39,2 @@ oslo.reports>=0.6.0 # Apache-2.0 -paramiko>=2.0 # LGPLv2.1+ -pbr>=1.6 # Apache-2.0 -pecan!=1.0.2,!=1.0.3,!=1.0.4,>=1.0.0 # BSD +pbr>=1.8 # Apache-2.0 +pecan!=1.0.2,!=1.0.3,!=1.0.4,!=1.2,>=1.0.0 # BSD @@ -45,2 +43,2 @@ python-barbicanclient>=4.0.0 # Apache-2.0 -python-glanceclient!=2.4.0,>=2.3.0 # Apache-2.0 -python-heatclient>=1.4.0 # Apache-2.0 +python-glanceclient>=2.5.0 # Apache-2.0 +python-heatclient>=1.6.1 # Apache-2.0 @@ -49,3 +47,3 @@ python-k8sclient>=0.2.0 # Apache-2.0 -python-novaclient!=2.33.0,>=2.29.0 # Apache-2.0 -python-keystoneclient!=2.1.0,>=2.0.0 # Apache-2.0 -requests>=2.10.0 # Apache-2.0 +python-novaclient!=7.0.0,>=6.0.0 # Apache-2.0 +python-keystoneclient>=3.8.0 # Apache-2.0 +requests!=2.12.2,>=2.10.0 # Apache-2.0 @@ -54,2 +52,2 @@ six>=1.9.0 # MIT -stevedore>=1.16.0 # Apache-2.0 -taskflow>=1.26.0 # Apache-2.0 +stevedore>=1.17.1 # Apache-2.0 +taskflow>=2.7.0 # Apache-2.0 @@ -57 +54,0 @@ cryptography!=1.3.0,>=1.0 # BSD/Apache-2.0 -urllib3>=1.15.1 # MIT diff --git a/test-requirements.txt b/test-requirements.txt index d798e70..3deeeb5 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -9 +9,2 @@ bandit>=1.1.0 # Apache-2.0 -coverage>=3.6 # Apache-2.0 +bashate>=0.2 # Apache-2.0 +coverage>=4.0 # Apache-2.0 @@ -15 +16 @@ openstackdocstheme>=1.5.0 # Apache-2.0 -oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0 +oslosphinx>=4.7.0 # Apache-2.0 @@ -16,0 +18 @@ oslotest>=1.10.0 # Apache-2.0 +osprofiler>=1.4.0 # Apache-2.0 @@ -18 +20 @@ os-api-ref>=1.0.0 # Apache-2.0 -os-testr>=0.7.0 # Apache-2.0 +os-testr>=0.8.0 # Apache-2.0 @@ -21 +23 @@ pytz>=2013.6 # MIT -sphinx!=1.3b1,<1.3,>=1.2.1 # BSD +sphinx!=1.3b1,<1.4,>=1.2.1 # BSD @@ -26 +28 @@ testtools>=1.4.0 # MIT -reno>=1.8.0 # Apache2 +reno>=1.8.0 # Apache-2.0