# stack-ssh-deploy Deploy swarm stacks against a SSH based remote docker daemon context. This is meant to be used as a [Drone plugin](http://plugins.drone.io/). ## Settings ### Required (no default) - **deploy_key**: SSH private key part for ssh public key authentication - **stack**: Name of the stack to be deployed ### Required (If Private Repo) - **image**: Name and Tag of image since private image's are not pulled automatically by docker stack deploy ### Optional (with defaults) - **compose** (default: `compose.yml`): compose file to use for deploying - **host** (default: `swarm.autonomic.zone`): Host to deploy to (don't include `ssh://`) - **port** (default: `222`): SSH port to connect to - **user** (default: `drone`): System user to connect via SSH with - **networks** (default:): Try and auto-create these networks first - **rm**: (default: `false`): Remove the stack before deploying it - **reg_user**: Registry user if publishing from a private repository - **reg_pass**: Registry password if publishing from a private repository - **reg_url**: Registry URL ### Dangerous options, unwise outside CI - **generate_secrets** (default: `false`): randomly set all `secrets:` found in the compose file -- you won't be able to retrieve them afterwards, so you almost certainly don't want this for real deployments. - **purge** (default: `false`): runs aggresive cleaning up measure to wipe deployment afterwards ## Example ```yaml --- kind: pipeline name: deploy to swarm steps: - name: stack deploy image: decentral1se/stack-ssh-deploy:latest settings: stack: mystack deploy_key: from_secret: drone_deploy_key networks: - proxy - mail environment: DOMAIN: test.example.com ``` ## Publishing The version can be bumped in the [.drone.yml](./.drone.yml) file. We're sticking with `latest` as we iterate on the code right now. If you push a commit to master, the [Drone config](./.drone.yml) will publish to [Docker Hub](https://hub.docker.com/r/decentral1se/stack-ssh-deploy).