Sign inSign up

estuaryoss/deployer

By estuaryoss

•Updated over 5 years ago

Image
0

1.8K

estuaryoss/deployer repository overview

Testing as a service

Support project:

⁠Estuary deployer

Estuary docker deployer service which will run your containers in docker or K8s with kubectl.
Deployer service can run your commands using the estuary-agent⁠ service. Check-out the wiki !

⁠Coverage & code quality

Codacy Badge Maintainability

⁠Linux status

Build Status

⁠Docker Hub

alpine⁠
centos⁠

⁠Api docs

4.0.8 docker⁠
4.0.8 kubectl⁠

⁠Postman collection

Docker⁠
Kubernetes⁠

⁠Wiki

Wiki⁠

⁠Use cases

  • Debug accelerator. No more logs attached to Jira. QAs can push the related bug-ish image to registry. Then in a docker compose QA can deploy "the bug" on a developer's machine or on dedicated debug machine (security reason due to docker sock mounting). The dev will have all he needs
  • Testing as a service. A complete enevironment SUT/BD/Automation Framework can be deployed and tested
  • Bring up Docker containers remotely through HTTP
  • Templating with Jinja2

⁠Service run

⁠Docker compose
docker-compose up
⁠Docker run - simple
docker network create estuarydeployer_default
docker run -p 8080:8080 -v /var/run/docker.sock:/var/run/docker.sock --net=estuarydeployer_default \
estuaryoss/deployer:<tag>
⁠Eureka registration

To have all your deployer instances in a central location we use netflix eureka. This means your client will discover all services used for your test and then spread the tests across all.

Start Eureka server with docker:

docker run -p 8080:8080 estuaryoss/netflix-eureka:1.9.25

Start your containers by specifying the full hostname or ip of the host machine on where your deployer service resides.

docker network create estuarydeployer_default
docker run params:
Optional:
        -e MAX_DEPLOYMENTS=3 ->  how many deployments to be done. it is an option to deploy a fixed no of docker-compose envs(docker only)
        -e EUREKA_SERVER="http://10.13.14.28:8080/eureka/v2" -> eureka server
        -e APP_IP_PORT="10.13.14.28:8081" -> the app hostname/ip:port. Mandatory if EUREKA_SERVER is used
        -e APP_APPEND_ID="lab" -> id will be appended to the default app name on service registration. Useful for user mappings service-resources on a VM
        -e FLUENTD_IP_PORT="10.13.14.28:24224" -> fluentd log collector agent target ip:port
        -e ENV_EXPIRE_IN=1440 -> how long it will take before the env will be deleted. Default is 1440 min.
Mandatory:
    -p 8081:8080 -> port fwd from docker 8080 to host 8081
    -v /var/run/docker.sock:/var/run/docker.sock -> docker sock mount
    --net=estuarydeployer_default -> bind to this net prior created

estuaryoss/deployer:latest
⁠Fluentd

Please consult Fluentd⁠ for logging setup. Estuary-deployer tags all logs in format estuary-deployer.**

Matcher example:

<match estuary*.**>
  @type stdout
</match>

Run example:

docker network create estuarydeployer_default
docker run \
-e FLUENTD_IP_PORT=10.10.10.1:24224 \
-p 8080:8080
-v /var/run/docker.sock:/var/run/docker.sock \
--net=estuarydeployer_default \
estuaryoss/deployer:<tag>
⁠Authentication

For auth set HTTP_AUTH_TOKEN env variable.

Run example:

docker run \
-e HTTP_AUTH_TOKEN=mysecret
-p 8080:8080
estuaryoss/deployer:<tag>

Then, access the Http Api. Call example:

curl -i -H 'Token:mysecret' http:localhost:8080/about

⁠Output example

curl http://172.17.0.22:8083/docker/deployments⁠

{
   "code" : 1000,
   "description" : [
      {
         "containers" : [
            "346dd96ed55a        estuaryoss/discovery:4.0.8   \"/scripts/main_flask…\"   16 seconds ago      Up 15 seconds       8080/tcp            6961ca05296ce48d_container_1"
         ],
         "id" : "6961ca05296ce48d"
      }
   ],
   "message" : "Success",
   "name" : "estuary-deployer",
   "timestamp" : "2020-08-15 20:32:25.971933",
   "path" : "/deployments?",
   "version" : "4.0.8"
}

⁠Api call examples

http://192.168.100.12:8083/kubectl/ping 
http://192.168.100.12:8083/docker/ping  

⁠Estuary stack

Estuary deployer⁠
Estuary agent⁠
Estuary discovery⁠
Estuary viewer⁠

⁠Templating service

Jinja2Docker⁠

Tag summary

Content type

Image

Digest

Size

392.2 MB

Last updated

over 5 years ago

docker pull estuaryoss/deployer