The Conch API as it existed on the day I left Joyent https://github.com/joyent/conch

Karen Etheridge 49826ec593 Merge pull request #885 from joyent/ether/v3-collapse-validation_result-more 2 months ago
bin a8fe22e8ce add list of conch commands to markdown doc 3 months ago
dev 3ff6c7daad tighter whitespace config, and fixes 4 months ago
docker 0ccfb743e5 remove the bit that pushes docker images to hub.docker, and remove mention of it from the docs 3 months ago
docs 2e9ff3615c move result_order to validation_state_result and drop it from response payloads 3 months ago
etc 711a12495f Provide infrastructure to build and test with Docker, including scripts for buildbot 1 year ago
json-schema 2e9ff3615c move result_order to validation_state_result and drop it from response payloads 3 months ago
lib 069b0c57e6 sort the validation results in this response too 3 months ago
misc e7b91115da allow processing one json-schema file on its own 3 months ago
report 3ff6c7daad tighter whitespace config, and fixes 4 months ago
smf 3ff6c7daad tighter whitespace config, and fixes 4 months ago
sql f393ce988d cascade deletes from validation_result -> validation_state_member 3 months ago
t 2e9ff3615c move result_order to validation_state_result and drop it from response payloads 3 months ago
templates ef519aaa80 make workspaces and organizations aware of each other 3 months ago
.dockerignore 2699ffa770 the docker-compose file drops a "postgres" directory in the root. We dont want docker to try and pull that into images 4 months ago
.gitattributes 3ff6c7daad tighter whitespace config, and fixes 4 months ago
.gitignore d295ccf184 clean up .gitignore 4 months ago
.mailmap e9fcfa2cda remap alternative email addresses 1 year ago
.perlcriticrc 33e5db7cb4 conch/Conch/* -> conch/* 1 year ago
.perltidyrc 33e5db7cb4 conch/Conch/* -> conch/* 1 year ago
CODEOWNERS e2fa158a6b fix precedence issue in codeowners 4 months ago
Dockerfile b348997fa7 upgrade the dockerfiles to use postgres 10 which ships with ubuntu:bionic 4 months ago
Dockerfile.dev b348997fa7 upgrade the dockerfiles to use postgres 10 which ships with ubuntu:bionic 4 months ago
LICENSE 41ac65be29 whitespace changes ONLY 7 months ago
Makefile 0e92873bfe ignore vim swap files 3 months ago
README.md 0ccfb743e5 remove the bit that pushes docker images to hub.docker, and remove mention of it from the docs 3 months ago
conch.conf.dist 9a54503ff5 send rollbar message on error if configured request header matches 3 months ago
cpanfile 4aa431abe7 refactor rollbar plugin exception handling, add more payload data, fix some bugs 3 months ago
cpanfile.snapshot 4aa431abe7 refactor rollbar plugin exception handling, add more payload data, fix some bugs 3 months ago
docker-compose.yml 3ff6c7daad tighter whitespace config, and fixes 4 months ago
schema-loader.yaml fa3c1d8570 add many-to-many bridge accessors for join tables with extra columns 4 months ago

README.md

Conch API Server

Conch helps you build and manage datacenters.

Conch's goal is to provide an end-to-end solution for full datacenter resource lifecycle: from design to initial power-on to end-of-life for all components of all devices.

Conch is open source, licensed under MPL2.

More documentation can be found here.

Caveat Emptor

The API is in a constant state of flux. Contact the development team before attempting to use it directly. The conch shell is our current stable interface.

Installation

Operating System Support

We currently support SmartOS 17.4 and Docker/Ubuntu. Being a Perl app, the API should run most anywhere but the code is only actively tested on SmartOS and Docker/Ubuntu.

Perl Support

The API is only certified to run against Perl 5.26.

Setup

Below is a list of useful Make commands that can be used to build and run the project. All of these should be run in the top level directory.

  • make run -- Build the project and run it
  • make test -- Run tests
  • make migrate-db -- Run database migrations

Needed Packages

Configuration

Copy conch.conf.dist to conch.conf, modifying for any local parameters, including database connectivity information.

Starting Conch

  • make run

Docker

Compose

The most simple way to get going with the Conch API is to use Docker Compose.

Build

First, build the image locally using docker/builder.sh

First Run

Copy conch.conf.dist to conch.conf, modifying for any local parameters. Specifically search for 'docker' in the comments. Ignore the database parameters.

# Edit compose file for desired release
docker-compose up -d postgres # initialize the postgres database
docker-compose run --rm web bin/conch-db all --username conch --email conch@example.com --password kaewee3hipheem8BaiHoo6waed7pha
docker-compose run --rm web bin/conch-db create-global-workspace
docker-compose up -d

Upgrading

docker-compose down
# Edit compose file for desired release
docker-compose pull
docker-compose up -d postgres
docker-compose run --rm web bin/conch-db migrate
docker-compose up -d

There may be extra commands to run, depending on the specific release. In that case, the upgrade will look something like:

docker-compose down
# Edit compose file for desired release
docker-compose pull
docker-compose up -d postgres
docker-compose run --rm web bin/conch-db migrate
docker-compose run --rm web bin/conch upgrade_release_225
docker-compose up -d

Licensing

Copyright Joyent, Inc.

This Source Code Form is subject to the terms of the Mozilla Public License, v.2.0. If a copy of the MPL was not distributed with this file, You can obtain one at http://mozilla.org/MPL/2.0/.