Commit Graph

25 Commits

Author SHA1 Message Date
Theodoros Tsioutsias 0607c7a9d6 ng-1: Add nodegroup representation
This adds the object and db schema changes needed for supporting
nodegroups.

story: 2005266

Change-Id: Ibf10277a52aa94c4b217cf3b364844b04baab1e0
2019-03-21 16:19:56 +00:00
Clenimar Filemon ec950be894 federation api: api endpoints
this commit introduces a new '/federations'
endpoint to Magnum API, as well as its controllers,
entities and conductor handlers.

this corresponds to the first phase of the
federation-api spec. please refer to [1] for more
details.

[1] https://review.openstack.org/#/c/489609/

Change-Id: I662ac2d6ddec07b50712109541486fd26c5d21de
Partially-Implements: blueprint federation-api
2018-02-09 00:59:31 -03:00
Vijendar Komalla aa56874bfb Resource Quota - Adding quota API
Change-Id: I7d2da1f86edae002531a529c4ffb469ce9f1777b
Partially-Implements: blueprint resource-quota
2017-01-23 11:00:11 -06:00
Vijendar Komalla 51e833137b Magnum stats API
This change introduces a new /stats REST endpoint that
provide the following basic information;
1) Total number of clusters and nodes for the given tenant.
2) Total number of clusters and nodes across all the tenants.
Follow-up patches include more stats.

Change-Id: Iac0bf9343549de31654545d5b1fd7601e56142a7
Partially Implements blueprint magnum-stats-api
2017-01-17 09:48:54 -06:00
Jaycen Grant 729c2d0ab4 Rename Bay DB, Object, and internal usage to Cluster
This is patch 3 of 3 to change the internal usage of the terms
Bay and BayModel.  This patch updates Bay to Cluster in DB and
Object as well as all the usages.  No functionality should be
changed by this patch, just naming and db updates.

Change-Id: Ife04b0f944ded03ca932d70e09e6766d09cf5d9f
Implements: blueprint rename-bay-to-cluster
2016-09-08 13:01:12 -07:00
Jaycen Grant 0b7c6401dd Rename BayModel DB, Object, and internal usage to ClusterTemplate
This patch is the first of 3 patches to change the internal
usage of the terms Bay and BayModel. This patch updates
BayModel to ClusterTemplate. No functionality should be
changed by this patch, just naming and db updates.

Change-Id: I0803e81be6482962be2878a8ea2c7480f89111ac
Implements: blueprint rename-bay-to-cluster
2016-09-01 14:47:39 -07:00
Spyros Trigazis e6a29fb252 Remove ReplicationController object
Following the removal of service [1], pod [2] and container [3], remove
COE specific object ReplicationController.

This change also removes k8s_conductor.

[1] I4f06bb779caa0ad369a2b96b4714e1bf2db8acc6
[2] I8c2499ccb97aae39d80868ce02fbef292d762c10
[3] I288fa7a9717519b1ae8195820975676d99b4d6d2

Change-Id: Ica100c8d2dfdd7dc709feb1f5cdc5a3f3d6c7318
Partially-Implements: blueprint delete-container-endpoint
Partially-Implements: blueprint bay-drivers
2016-08-10 17:56:48 +02:00
Tom Cammann 40aa6550f1 Remove container object
Following on from removing the k8s specific APIs in
I1f6f04a35dfbb39f217487fea104ded035b75569 the objects associated with
these APIs need removal.

Remove the container object, drop the db table and remove references to
the container object. The docker_conductor has also been removed as this
was used for managing containers using Magnum objects.

Change-Id: I288fa7a9717519b1ae8195820975676d99b4d6d2
Partially-Implements: blueprint delete-container-endpoint
Co-Authored-By: Spyros Trigazis <strigazi@gmail.com>
2016-08-01 16:16:20 +02:00
Tom Cammann 3e02840628 Remove service object
Following on from removing the k8s specific APIs in
I1f6f04a35dfbb39f217487fea104ded035b75569 the objects associated with
these APIs need removal.

Remove the service object, drop the db table and remove references to
the service object.

Change-Id: I4f06bb779caa0ad369a2b96b4714e1bf2db8acc6
Partially-Implements: blueprint delete-container-endpoint
2016-06-02 10:46:13 +01:00
Tom Cammann d20e5ef715 Remove pod object
Following on from removing the k8s specific APIs in
I1f6f04a35dfbb39f217487fea104ded035b75569 the objects associated with
these APIs need removal.

Remove the pod object, drop the db table and remove references to the
pod object.

Change-Id: I8c2499ccb97aae39d80868ce02fbef292d762c10
Partially-Implements: blueprint delete-container-endpoint
2016-05-27 11:34:09 +01:00
Hua Wang 342e83f033 Remove node object from Magnum
The node object represents either a bare metal or virtual machine
node that is provisioned with an OS to run the containers, or
alternatively, run kubernetes. Magnum use Heat to deploy the nodes,
so it is unnecessary to maintain node object in Magnum. Heat can do
the work for us. The code about node object is useless now, so let's
remove it from Magnum.

Closes-Bug: #1540790
Change-Id: If8761b06a364127683099afb4dc51ea551be6f89
2016-02-04 14:02:49 +08:00
Hua Wang 41b7bccc02 Remove baylock
bay_lock was used for horizontal scalability perivously,
and it is deprecated now. The discussions are in [1].
Let's remove it.

[1] https://blueprints.launchpad.net/magnum/+spec/horizontal-scale

Change-Id: Ia2b33a96c0e831d8c85a2a18d701575958be6dbd
Closes-Bug: #1526581
2015-12-18 09:47:46 +08:00
Surojit Pathak 3674ce278d Backend support for magnum service
To support 'magnum service-list' after 'nova service-list', we need to
introduce periodic status update functionality for internal services.

Change-Id: Ia0c09222405c87cb61e5de4a43ba345ae3405b50
Partially-Implements: blueprint magnum-service-list
Closes-bug: #1492501
2015-09-28 17:06:10 +00:00
Madhuri cefc5a9ac3 Add Certificate controller for TLS support.
The Certificate controller has 2 operations:

1. POST

Generate X509 certificate using bay's CA cert.
Below is an example of Certificate POST API request using magnum command:

Example Request:

    curl -X POST -H 'Content-Type: application/json' \
        -d '{"bay_uuid": "<bay_uuid>", "csr": "<csr>"}' \
        http://localhost:9511/v1/certificates

This creates a X509 certificate signed by the given bay's CA and returns
it. No database information is stored in Magnum against it. For each POST
request, a new certificate is generated.

Example Response:

    {"bay_uuid": "<bay_uuid>", "csr": "<csr>",
     "pem": "<pem encoded certifiacte>"}

2. GET
Fetches the CA cert associated with a bay. Below is an example of CA GET
API request using magnum command:

Example Request:

    curl -X GET http://localhost:9511/v1/certificates/<bay_uuid>

This fetches stored CA cert for the given Bay, which can be used to validate
any client and node certificates signed by the Bay's CA. The value for each
is fetched from Barbican or Magnum db based on the different configuration
for storage of certificates.

Example Response:

    {"bay_uuid": "<bay_uuid>", "pem": "<pem encoded certifiacte>"}

Co-Authored-By: Andrew Melton <andrew.melton@rackspace.com>

Change-Id: I4b72cc1e1bddc7a7c7eeb0ab22d3769a666ccb2b
Partially-Implements: bp secure-kubernetes
2015-09-05 13:45:43 +00:00
Madhuri 09d8ef4e04 Added X509KeyPair object and data model.
This patch adds backend object and data model to handle x509keypair
related operations.

Partially-Implements: bp secure-kubernetes

Change-Id: I862dcdd10d28b3d5e5f972c7c23bdab6c188a04d
2015-08-07 18:11:38 +09:00
Hongbin Lu 91545bff6b Objects changes for horizontal-scale support
Add objects APIs for creating/stealing/releasing baylocks.

Change-Id: I756ea8b6983a51f1447dc77b99ba1ac407f7debf
Partial-Implements: blueprint horizontal-scale
2015-04-11 16:29:30 +00:00
Jay Lau (Guangya Liu) b37036c34d Add k8s replication support for magnum
Implements bp add-k8s-replication-controller

Change-Id: I5aee1af171b0a3a1476fd9fee1fdf26755ab0805
2015-01-02 18:29:18 -05:00
Steven Dake 3f520bbde5 Add a baymodel object
The baymodel object and ReST object is used to control bay properties
for different bay models.  It is then possible to launch bay models
using this functionality.

Change-Id: I317bda292719ca3f4649283f7e27674c813cc3b0
2014-12-16 22:45:32 -07:00
Steven Dake 39a1ed9f5a Add a node object
The node object represents either a bare metal or virtual machine node
that is provisioned with an OS to run the containers, or alternatively,
run kubernetes.

Change-Id: I9eba14232c193688347b7ec2674c83f230404ae1
2014-12-07 10:07:46 -07:00
Steven Dake 3b5d9b1f40 Add object.service
Object.service is used for reading/writing the sql database.  They
are remoteable, so they can be called over RPC.

Change-Id: Ief4decc4aa2b4410df333a2aae4bf88709b28684
2014-12-02 20:36:21 -05:00
Steven Dake 8d4ed82a2c Add object.pod
Add the pod object for use with versioned objects

Change-Id: I2f0f50af512a94a47868ec6ce7a829b45b236952
2014-12-02 20:36:08 -05:00
Steven Dake 03c5dfefa2 Add an object.container
Add a container object for communicating data between the ReST API
and the database API

Change-Id: I0d0a00ca3bde07343a63adca6556bd142dfaa5d2
2014-12-02 20:35:44 -05:00
Steven Dake c95136fe6a Modify the object registry to support ver objects
Versioned objects are a nice way to pass objects around via RPC
which is necessary in our decided architecture.  Trying to implement
this again is pointless, as this code will soon enter oslo incubation
and likely become standard across projects.

Change-Id: Ic8b43606a5e37f1fe7e83b47225a2a50773468c9
2014-12-02 16:25:51 -07:00
Motohiro OTSUKA e8f4831406 Add base files for sqlalchemy implementation
These code is imported from Solum.

Implements: blueprint db-object-definitions
Change-Id: Idc5458bd6b758f3d4a62bf5f059ce4dd444a825a
2014-12-01 11:23:58 +09:00
Motohiro OTSUKA 370b577e8c Add simple objects interface and registry
Objects are
- objects/bay
- objects/pod
- objects/service
- objects/container

These code is based on Solum.

Change-Id: Id1f64417a86807964ebb4226547517587d8565eb
Implements: blueprint db-object-definitions
2014-11-27 15:52:05 +09:00