RETIRED, Infrastructure-as-Code extension for Fuel Nailgun
Go to file
Ukov Dmitry ed9b6d5fb1 User can differentiate configs for nodes and roles
* override.yaml file fan be used to configure configs for a particular
  nodes/roles
* Configs for all nodes should be placed in repo root directory
* Parameters in config files in repo root directory will be overridden by
  parameters for roles in corresponding file. Parameters for role will be
  overridden by node-specific parameters.

Change-Id: Ic182302526a944f0f0943f675751a65728685111
2016-09-07 15:45:10 +03:00
fuel_external_git User can differentiate configs for nodes and roles 2016-09-07 15:45:10 +03:00
.gitignore Initial commit 2016-08-11 00:03:13 +03:00
LICENSE Initial commit 2016-08-11 00:03:13 +03:00
README.md Update README.md 2016-09-07 15:45:10 +03:00
requirements.txt Fixed usability issues 2016-09-07 15:45:10 +03:00
setup.py Flake8 fixes 2016-08-11 22:27:00 +03:00

README.md

Nailgun API Extension with External Git Server

About

Nailgun extension that generates deployment data based on configuration files published in external git repository

Requirements

Deployed Fuel 9.0 (Mitaka) Master Node

Installation

Execute following commands on Fuel Master node

# git clone https://github.com/dukov/fuel-external-git
# cd fuel-external-git
# pip install -r requirements.txt
# python setup.py install
# nailgun_syncdb
# service nailgun reload

API

Extension supports following REST API calls

GET /clusters/git-repos

Returns list of configured git repos for all clusters/environments Example

curl -H "X-Auth-Token: $(fuel token)" http://localhost:8000/api/v1/clusters/git-repos

POST /clusters/git-repos

Create new repo for particular cluster Input data schema:

"$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Cluster",
    "description": "Serialized Cluster object",
    "type": "object",
    "properties": {
        "id": {"type": "number"},
        "repo_name": {"type": "string"},
        "env_id": {"type": "number"},
        "git_url": {"type": "string"},
        "ref": {"type": "string"},
        "user_key": {"type": "string"}

Example

curl -X POST -H "X-Auth-Token: $(fuel token)" http://localhost:8000/api/v1/clusters/git-repos -d '{"user_key": "", "git_url": "https://github.com/dukov/openstack-configs", "env_id": 5, "ref": "master", "repo_name": "osconf1"}'

PUT /clusters/(?P<cluster_id>\d+)/git-repos/(?P<obj_id>\d+)

Updates repo with obj_id info for cluster cluster_id Example:

curl -X PUT -H 'X-Auth-Token: $(fuel token)' http://localhost:8000/api/v1/clusters/4/git-repos/2 -d '{"ref": "master"}'