Working on a Waypoint plugin for Google App Engine

Hello there,

I’ve been working on a plugin to deploy to Google App Engine and maybe later to Google Cloud Functions. I am really liking the experience so far, it’s been so much fun.

I separated the build, registry and platform steps into several plugins to make the first two reusable later for Google Cloud Functions:

  1. waypoint-plugin-archive to create a zip archive out of source code
  2. waypoint-plugin-gcs to upload an artifact to Google Cloud Storage
  3. waypoint-plugin-gae to deploy the artifact on Google App Engine

The first two plugins are working and the third one is still work in progress.

I have several questions:

  • Anyone else finds those plugins useful ?
  • Is it possible to create functions like the builtin function gitrefpretty()
  • What is the best way to communicate between plugins ? Should I import the output of a builder plugin for example in my registry or platform plugin ? Or should I create new Protobuf message with a similar structure and Waypoint will handle the serialization and deserialization between the two types ?
  • The plugins added to $HOME/.config/waypoint/plugins are not detected by waypoint. I am suspecting it is because of MacOS Big Sur, but I didn’t get the chance to investigate, are you aware of this issue ?

Please let me know if you have any feedback on those plugins or if you are willing to help out

3 Likes

This so cool. Besides giving more documentation for people writing their own plugins I like the zip plugin very much. It has a lot of potential. It could be used with AWS lambda for example.

And about your question. Communication between plugins I remember thay they talked about it in in on Hashicorp Digital waypoint deep dive video

1 Like

This is super cool! Great work! Very useful!

Not currently

We usually just import from one another.

Waypoint looks in XDG_CONFIG_HOME which if not set defaults… somewhere. Easiest way to know is by running waypoint init -vv and look for “search path” in the logs which will contain the plugin search path.

1 Like

Thanks, you both for your feeback.

Thanks for the tip, my XDG_CONFIG_HOME is not set and defaults to /Users/$USER/Library/Preferences/waypoint.

Hey @sharkyze,

We are just looking at building a section on https://www.waypointproject.io/plugins to highlight community plugins.

Would you be ok if I added your plugins on there?

I also have a GitHub Action which builds the plugin and uploads the built binaries to GitHub Releases. This will make it super easy for folks you use your plugin. If you are OK I can raise a PR for you?

Kind regards,

Nic

2 Likes

Hey @nic,

Of course that would be great :grinning:. Thanks Nic.

I also started working on a Google Cloud Functions plugin this morning, you can find it here: https://github.com/sharkyze/waypoint-plugin-cloudfunctions