Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/cpg1111/maestrod
- Owner: cpg1111
- License: apache-2.0
- Created: 2016-05-14T01:47:34.000Z (over 8 years ago)
- Default Branch: master
- Last Pushed: 2017-02-21T03:00:13.000Z (almost 8 years ago)
- Last Synced: 2024-06-21T14:21:29.337Z (6 months ago)
- Topics: continuous-delivery, continuous-deployment, continuous-integration, maestro, scheduler, webhooks
- Language: Go
- Size: 126 KB
- Stars: 7
- Watchers: 5
- Forks: 2
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- License: LICENSE
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=