Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/cpg1111/maestrod

Manager Daemon for maestro https://github.com/cpg1111/maestro
https://github.com/cpg1111/maestrod

continuous-delivery continuous-deployment continuous-integration maestro scheduler webhooks

Last synced: about 2 months ago
JSON representation

Manager Daemon for maestro https://github.com/cpg1111/maestro

Awesome Lists containing this project

README

        

# maestrod
Manager Daemon for maestro https://github.com/cpg1111/maestro

## Building

If you have glide (https://github.com/Masterminds/glide)

```
make
make install
```

Otherwise if you have docker

```
make docker
```

## Running

Maestrod requires a "runtime" to run, the currently supported runtimes are:

- Kubernetes (https://github.com/kubernetes/kubernetes)

- Docker Engine (https://github.com/docker/docker)

Maestrod also requires a Key Value datastore, the currently supported datastores are:

- Etcd v2 or v3 (https://github.com/coreos/etcd)

- MongoDB (https://github.com/mongodb/mongo)

- Redis (https://github.com/antirez/redis)

(Once Go 1.8.X is released both runtimes and datastores will be standard Go plugins that anyone can create)

To configure Maestrod you have a toml file as follows:

```
[Server]
Runtime= # Currently can be: k8s, kubernetes or docker REQUIRED
MaxBuilds= # REQUIRED
DataStoreType= # Currently can be: etcd2, etcd3, mongodb, or redis REQUIRED
DataStoreUser=
DataStorePWD= # plain text for now, but it will take a hash in the future
DataStoreEnvIP=
DataStoreStaticIP=
DataStoreEnvPort=
DataStoreStaticPort=
TargetProtocol= # REQUIRE
TargetHost=
TargetEnvHost=
TargetPort=
TargetEnvPort=
ClientCertPath=
ClientKeyPath=
ServerCertPath=
ServerKeyPath=
MaestroVersion=
Host=
InsecurePort=
SecurePort=
StateComPort=
WorkspaceDir=

[[Projects]]
Name=
MaestroConfPath=
DeployBranches=

[[Mounts]]
Kind= # currently only hostPath is supported
Path=
Name=

```

Then run

```
maestrod \
--config-path=
--runtime=
--host-ip=
--port=
--workspace-dir=
--datastore-type=
```

Then add `http(s)://:/push` as a webhook for repo pushes and

`http(s)://:/pullrequest` for pull request hooks.

## Using a remotely hosted Config

If you supply a path such as `s3://aBucket/maestrod/conf.toml` or `gs://aBucket/maestrod/conf.toml`, Maestrod will fetch the config from either S3 or Google Cloud Storage as oppose to local disk.

### To Authenticate with the Object Store

#### S3

Supply the environment variables:


AWS_ACCESS_KEY_ID=
AWS_SECRET_ACCESS_KEY=
AWS_S3_REGION=

#### Google Cloud Storage

Supply the environment variable:


GCLOUD_SVC_ACCNT_FILE=