This repository contains set of fleet service files.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
.dockerignore
.gitignore
Dockerfile
README.md
acm-client.service
acm-server.service
agm-issue-change-processor.service
alm-issue-change-processor.service
alm-run-processor.service
backup-elastic.aws.service
backup-elastic.aws.timer
backup-etcd.aws.service
backup-etcd.aws.timer
cadvisor.service
circle.yml
circleci-tests-processor.service
clean-services.sh
dd-agent.service
deploy.sh
es-events-indexer.service
es@.service
fleetui.service
gaia-integration-tests.service
gaia-service-health-tests.service
gau-service.service
haproxy.service
jenkins-tests-processor.service
kibana.service
logentries.service
metrics-gateway-service.service
postgres.vagrant.service
pre-store-enricher.service
profiler.sh
rabbitmq@.service
registrator.service
result-upload-service.service
security-token-service.service
skydns.service
ssm.aws.service
tugbot-collect.service
tugbot-result-service-es.service
tugbot-run.service
update_service.sh
vault-unseal.service
vault.service
webhook-service.service

README.md

Circle CI

Gaia Fleet

This repository contains a set of services for Gaia ADM project.

Build

To build current image behind corporate proxy use --build-arg option (introduced with Docker 1.9)

Initilization

Once you have a CoreOS cluster up and running, you will need to deploy skydns.service and registrator.service to the cluster.

$ fleetctl submit skydns.service
$ fleetctl submit registrator.service
$ fleetctl start skydns
$ fleetctl start registrator

After you have SkyDNS and Registrator up and running on each cluster node, you can now deploy and auto-register any other fleet service. You do not need to do anything special, while running your service in Docker, beside specifying name with --name parameter or setting SERVICE_NAME environment variable.

For example:

$ docker run --name rabbitmq-%i -p 5672:5672 -p 15672:15672 -e "SERVICE_NAME=rabbitmq-%i" -e "SERVICE_TAGS=master" gaiaadm/rabbitmq:3.5.3-1

Deploy and Update Gaia Services on CoreOS cluster

gaia-fleet container requires fleetctl Fleet client to be avaiable inside the container. The idea is to use fleetctl from host machine, adding volume mapping -v /usr/bin/fleetctl:/usr/bin/fleetctl to docker run command.

In order to deply and update Gaia services on CoreOS cluster run the command bellow on one of the cluster hosts.

  • For AWS:
$ docker run -it --rm --name=gaiacd -v /usr/bin/fleetctl:/usr/bin/fleetctl gaiaadm/gaia-fleet:<TAG>
  • For vagrant:
$ docker run -it --rm -e environ=vagrant --name=gaiacd -v /usr/bin/fleetctl:/usr/bin/fleetctl gaiaadm/gaia-fleet:<TAG>

where is something like 561-master. To watch the deployment progress you can run the following command inside other SSH session on any machine that can conect to CoreOS cluster.

$ whatch -n 3 `fleetctl list-unit-files && echo "====================" && fleetctl list-units`

Note 1: When gaia-fleet is updated automatically from non-master branches of other repositories, the "latest" tag points to non-master default; in order to run the latest image of master branch, "master" tag should be mentioned explicitely.

Note 2: This feature is under development and the deployment procedure will be changed soon.

DNS setup

If you are using our fork of coreos-vagrant, you do not need to specify DNS for every docker container you are running. The appropriate DNS server will be setup automatically for you container.

Profiling gaia-fleet

Try to use Bash Profiler to profile deploy.sh (see documentation for details). gaia-fleet Docker image brings also profiler.bash script.

Use Bash Profiler to profile gaia-fleet deploy:

# WITHOUT SPACE after ;
$ bash -c "source profiler.sh;source deploy.sh"