All Projects → hashicorp → waypoint-plugin-examples

hashicorp / waypoint-plugin-examples

Licence: other
An example repository that demonstrates how to create and run an external Waypoint plugin

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects
shell
77523 projects

Projects that are alternatives of or similar to waypoint-plugin-examples

Go Project Sample
Introduce the best practice experience of Go project with a complete project example.通过一个完整的项目示例介绍Go语言项目的最佳实践经验.
Stars: ✭ 344 (+2050%)
Mutual labels:  example, grpc
go-grpc-bidirectional-streaming-example
gRPC bidirectional streaming example written in golang
Stars: ✭ 83 (+418.75%)
Mutual labels:  example, grpc
Cmakeprotosgrpc
gRPC + protobuf using CMake example
Stars: ✭ 137 (+756.25%)
Mutual labels:  example, grpc
Grpc Web Hacker News
An example app implementing a Hacker News reader in React with gRPC-Web and Go backend
Stars: ✭ 294 (+1737.5%)
Mutual labels:  example, grpc
Ultimate Go
This repo contains my notes on working with Go and computer systems.
Stars: ✭ 1,530 (+9462.5%)
Mutual labels:  example, grpc
Go Micro Boilerplate
The boilerplate of the GoLang application with a clear microservices architecture.
Stars: ✭ 147 (+818.75%)
Mutual labels:  example, grpc
Go Grpc Examples
This repo contains examples and implementations of different types of GRPC services and APIs using Golang.
Stars: ✭ 180 (+1025%)
Mutual labels:  example, grpc
babel-codemod-example
An example of how to use babel as a codemod
Stars: ✭ 24 (+50%)
Mutual labels:  example
iris
Distributed streaming key-value storage
Stars: ✭ 55 (+243.75%)
Mutual labels:  grpc
vuepress-plugin-example-preview
Easily display the preview of a code snippet
Stars: ✭ 15 (-6.25%)
Mutual labels:  example
go-project-template
A template for new Go projects.
Stars: ✭ 20 (+25%)
Mutual labels:  example
kruiser
A proxy that transparently exposes gRPC Kubernetes services cluster-externally
Stars: ✭ 14 (-12.5%)
Mutual labels:  grpc
tensorflow-example-java
This is a Tensorflow Java example application what uses YOLOv2 model and Gradle for build and dependency management.
Stars: ✭ 49 (+206.25%)
Mutual labels:  example
asio-grpc
Asynchronous gRPC with Asio/unified executors
Stars: ✭ 100 (+525%)
Mutual labels:  grpc
tdm
Telemetry Data Mapper to ease data discovery, correlation, and usage with YANG, MIBs, etc.
Stars: ✭ 33 (+106.25%)
Mutual labels:  grpc
grpc-chat
Simple Chat Server/Client implemented with gRPC
Stars: ✭ 107 (+568.75%)
Mutual labels:  grpc
protop
protobufs, packaged. https://protop.io
Stars: ✭ 68 (+325%)
Mutual labels:  grpc
cypress-example-circleci-orb
Demo of using the Cypress CircleCI Orb
Stars: ✭ 26 (+62.5%)
Mutual labels:  example
example cml
No description or website provided.
Stars: ✭ 21 (+31.25%)
Mutual labels:  example
dashboard
Project for managing ML model and deploying ML module. It can deploy the Rekcurd service to Kubernetes cluster.
Stars: ✭ 27 (+68.75%)
Mutual labels:  grpc

waypoint-plugin-examples

Example external plugins for Waypoint

For a full guide on building plugins with Waypoint please see the Extending Waypoint documentation

Plugin Template

This template can be used to scaffold new Waypoint plugins. All the main Waypoint components and interfaces are implemented in this sample.

Go Builder Plugin

This plugin is the final example code from the plugin development guide in the Waypoint documentation.

Filepath Plugin

Plugin which implements Registry, Platform, and ReleaseManager which interacts with the local file system

Running the Sample App

  1. Build the sample plugins

This command will build the plugins and move them to the ./plugins/example_app/.waypoint/plugins folder

cd plugins
make

### Build Go Builder Plugin
make -C gobuilder_final
make[1]: Entering directory '/home/nicj/go/src/github.com/hashicorp/waypoint-plugin-examples/plugins/gobuilder_final'

Build Protos
protoc -I . --go_out=plugins=grpc:. --go_opt=paths=source_relative ./builder/output.proto

Compile Plugin
go build -o ./bin/waypoint-plugin-gobuilder ./main.go 
make[1]: Leaving directory '/home/nicj/go/src/github.com/hashicorp/waypoint-plugin-examples/plugins/gobuilder_final'


### Build Filepath Builder Plugin
make -C filepath
make[1]: Entering directory '/home/nicj/go/src/github.com/hashicorp/waypoint-plugin-examples/plugins/filepath'
protoc -I . --go_out=plugins=grpc:. --go_opt=paths=source_relative ./registry/output.proto
protoc -I . --go_out=plugins=grpc:. --go_opt=paths=source_relative ./platform/output.proto
protoc -I . --go_out=plugins=grpc:. --go_opt=paths=source_relative ./release/output.proto
make[1]: Leaving directory '/home/nicj/go/src/github.com/hashicorp/waypoint-plugin-examples/plugins/filepath'


### Install Plugins
mkdir -p ./example_app/.waypoint/plugins
cp ./gobuilder_final/bin/* ./example_app/.waypoint/plugins
cp ./filepath/bin/* ./example_app/.waypoint/plugins

The ./plugins/example_app folder has a simple Golang application and the following Waypoint file

project = "custom-waypoint-plugin"

app "example" {

  build {
    use "gobuilder" {
      output_name = "app"
      source = "./"
    }

    registry {
      use "filepath" {
        directory = "./bin"
      }
    }
  }

  deploy {
    use "filepath" {
      directory = "./deployments"
    }
  }

  release {
    use "filepath" {}
  }
}

You can build the application using the following command:

cd ./example_app

waypoint init
✓ Configuration file appears valid
✓ Local mode initialized successfully
✓ Project "guides" and all apps are registered with the server.
✓ Plugins loaded and configured successfully
✓ Authentication requirements appear satisfied.

Project initialized!

You may now call 'waypoint up' to deploy your project or
commands such as 'waypoint build' to perform steps individually.

And then:

waypoint init
waypoint up

» Building example...
✓ Application built successfully
✓ Application binary pushed to registry

» Deploying example...
✓ Created deployment deployments/app.1.deployment

✓ File is ready!

» Releasing example...
✓ Created release deployments/release

✓ Symlink to File is ready!

The deploy was successful! A Waypoint deployment URL is shown below. This
can be used internally to check your deployment and is not meant for external
traffic. You can manage this hostname using "waypoint hostname."

   Release URL: deployments/release
Deployment URL: https://seemingly-settled-weevil--v20.waypoint.run
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].