Skip to content
Datacenter build and management service
Branch: master
Clone or download
sungo Merge pull request #795 from joyent/ether/phase-in-workspace-rack-sum…
…mary

add rack phase to GET /workspace/:id/rack
Latest commit 8cf91e4 May 25, 2019
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
bin use pod markup for licence link May 2, 2019
dev fix db reset script Sep 5, 2018
docker whitespace changes ONLY Apr 24, 2019
docs fix doc for response schema May 21, 2019
etc Provide infrastructure to build and test with Docker, including scrip… Oct 31, 2018
json-schema add rack phase to GET /workspace/:id/rack May 24, 2019
lib add rack phase to GET /workspace/:id/rack May 24, 2019
misc absolute URLs in doc links should be relative May 15, 2019
report burn device_validate, device_validate_criteria tables, phase 1 Aug 31, 2018
smf conch/Conch/* -> conch/* Jul 18, 2018
sql add the concept of phases at the rack level Apr 19, 2019
t add rack phase to GET /workspace/:id/rack May 24, 2019
templates/email mail out notifications in more situations Apr 29, 2019
.dockerignore Provide infrastructure to build and test with Docker, including scrip… Oct 31, 2018
.gitattributes this is not raku Dec 5, 2018
.gitignore remove remnants of old /public/doc/ documentation May 21, 2019
.mailmap remap alternative email addresses Aug 7, 2018
.perlcriticrc conch/Conch/* -> conch/* Jul 18, 2018
.perltidyrc conch/Conch/* -> conch/* Jul 18, 2018
CODEOWNERS add myself as a fallthrough (I hope) to the CODEOWNERS so I get added… May 16, 2019
Dockerfile whitespace changes ONLY Apr 24, 2019
Dockerfile.dev whitespace changes ONLY Apr 24, 2019
LICENSE whitespace changes ONLY Apr 24, 2019
Makefile remove remnants of old /public/doc/ documentation May 21, 2019
README.md fix licence link here too May 2, 2019
conch.conf.dist rework our logging infrastructure May 8, 2019
cpanfile need Carton in local/ to run carton exec carton exec :p May 17, 2019
cpanfile.snapshot need Carton in local/ to run carton exec carton exec :p May 17, 2019
docker-compose.yml whitespace changes ONLY Apr 24, 2019
schema-loader.yaml remove "datacenter" from all rack-related things Mar 11, 2019

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.

Caveat Emptor

At the time of writing, the API is not considered to be stable. While we do our best to prevent breakage, the core is in considerable flux and we do not guarantee fit or function right now. 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

Images

For every release, the Joyent test infrastructure publishes a docker image to hub.docker.com . These images are available at https://hub.docker.com/r/joyentbuildops/conch-api/tags and it is wise to consult the Github release page ( https://github.com/joyent/conch/releases ) to determine if the release is a staging or production image.

The 'latest' image is not supported and is rebuilt manually and infrequently. Always use a release tag.

Compose

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

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/.

You can’t perform that action at this time.