Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/andrewsomething/waypoint-plugin-digitalocean
Deploy to DigitalOcean's App Platform with Waypoint
https://github.com/andrewsomething/waypoint-plugin-digitalocean
containers deployment digitalocean hashicorp waypoint
Last synced: 5 days ago
JSON representation
Deploy to DigitalOcean's App Platform with Waypoint
- Host: GitHub
- URL: https://github.com/andrewsomething/waypoint-plugin-digitalocean
- Owner: andrewsomething
- Created: 2020-12-18T18:39:59.000Z (almost 4 years ago)
- Default Branch: main
- Last Pushed: 2021-01-04T21:08:35.000Z (almost 4 years ago)
- Last Synced: 2023-04-13T04:27:03.611Z (over 1 year ago)
- Topics: containers, deployment, digitalocean, hashicorp, waypoint
- Language: Go
- Homepage:
- Size: 5.16 MB
- Stars: 5
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# DigitalOcean Waypoint Plugin
This is a prototype DigitalOcean Waypoint plugin. It currently has _very_ basic
support for deploying a Docker image from a DigitalOcean Container Registry to
DigitalOcean App Platform. **It should be considered experimental.**See the [Waypoint documentation](https://www.waypointproject.io/docs/plugins#using-an-external-plugin)
on installing external plugins for more detail on installing external plugins.## Configuration
A Waypoint configuration of this might look like:
```hcl
project = "example-nodejs"app "example-nodejs" {
build {
use "pack" {}
registry {
use "docker" {
image = "registry.digitalocean.com//example-nodejs"
tag = "latest"
}
}
}deploy {
use "digitalocean" {
}
}
}
```The following configuration options are supported. They are all optional.
* `access_token` - Required if `DIGITALOCEAN_ACCESS_TOKEN` is not set
* `name` - Defaults to the app's name
* `region` - Defaults to nearest region
* `instance_size_slug` - Defaults to `basic-xxs`
* `instance_count` - Default to `1`
* `http_port` - Default to `8080`
* `path` - Default to `/`## Development
### Building
To build the plugin, run:
```shell
make
```This will regenerate the protos and build binaries for multiple platforms.
### Installation
To install the binary to `${HOME}/.config/waypoint/plugins/` run:
```shell
make install
```### Building with Docker
To build plugins for release you can use the `build-docker` Makefile target, this will
build your plugin for all architectures and create zipped artifacts which can be uploaded
to an artifact manager such as GitHub releases.The built artifacts will be output in the `./releases` folder.
### Building and releasing with GitHub Actions
When cloning the template a default GitHub Action is created at the path `.github/workflows/build-plugin.yaml`. You can use this action to automatically build and release your plugin.
The action has two main phases:
1. **Build** - This phase builds the plugin binaries for all the supported architectures. It is triggered when pushing
to a branch or on pull requests.
1. **Release** - This phase creates a new GitHub release containing the built plugin. It is triggered when pushing tags
which starting with `v`, for example `v0.1.0`.