# stack-ssh-deploy [![Build Status](https://drone.autonomic.zone/api/badges/coop-cloud/stack-ssh-deploy/status.svg?ref=refs/heads/main)](https://drone.autonomic.zone/coop-cloud/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 ### 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 ### 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).