waypoint

module
v0.11.4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 9, 2023 License: MPL-2.0

README

Image


Waypoint

Waypoint allows developers to define their application build, deploy, and release lifecycle as code, reducing the time to deliver deployments through a consistent and repeatable workflow.

Waypoint supports a number of build methods and target platforms out of the box and more can be easily added via plugins:

  • Cloud Native Buildpacks
  • Docker
  • Kubernetes
  • AWS EC2 and ECS
  • Azure Container Instances
  • Google Cloud Run
  • And many more...

Waypoint runs on Linux, Mac OS X, and Windows.

Please note: We take Waypoint's security and our users' trust very seriously. If you believe you have found a security issue in Waypoint, please responsibly disclose by contacting us at security@hashicorp.com.

Quick Start

A quick start guide is available on HashiCorp Developer. You can also find tutorials which cover topics ranging from getting started guides to more advanced usage.

Documentation

Full, comprehensive documentation is available on HashiCorp Developer:

https://developer.hashicorp.com/waypoint/docs

Contributing

Thank you for your interest in contributing! Please refer to CONTRIBUTING.md for guidance.

Installing Dependencies

This repository contains a couple of different ways to automate installing the required Golang packages needed to build Waypoint locally. You can either use NixOS, or run make tools to setup the required packages.

Running the unit tests

To run the entire test suite, you'll want to ensure that you've brought up all the required containers used for testing. You can do this by leveraging the existing docker-compose.yml file that's in the root directory of this project:

$ docker-compose up

After running this, you should have a local Horizon container along with a few other services needed for running the tests:

$ make test
Running individual tests

If you don't want to run the entire test suite, you can just run a singe test with go. For example, if you wanted to run the tests ListInstances, you would run:

$ go test -run ListInstances -v ./internal/server/singleprocess

Directories

Path Synopsis
builtin
aws/lambda
Package lambda contains components for deploying to AWS Lambda
Package lambda contains components for deploying to AWS Lambda
aws/ssm
Package ssm contains components for syncing configuration with AWS SSM.
Package ssm contains components for syncing configuration with AWS SSM.
azure/aci
Package aci contains components for deploying to Azure ACI.
Package aci contains components for deploying to Azure ACI.
consul
Package consul contains components for syncing app configuration with Consul.
Package consul contains components for syncing app configuration with Consul.
files
Package files contains a component for validating local files.
Package files contains a component for validating local files.
google/cloudrun
Package cloudrun contains components for deploying to Google Cloud Run.
Package cloudrun contains components for deploying to Google Cloud Run.
k8s
Package k8s contains components for deploying to Kubernetes.
Package k8s contains components for deploying to Kubernetes.
k8s/internal/k8sstatus
Package k8sstatus implements helpers for building Waypoint status reports for Kubernetes resources.
Package k8sstatus implements helpers for building Waypoint status reports for Kubernetes resources.
k8s/internal/manifest
Package manifest provides helpers to parse a Kubernetes "manifest" or multi-resource YAML document.
Package manifest provides helpers to parse a Kubernetes "manifest" or multi-resource YAML document.
null
Package null contains components that do [almost] nothing, primarily aimed to ease experimentation and testing with Waypoint.
Package null contains components that do [almost] nothing, primarily aimed to ease experimentation and testing with Waypoint.
tfc
Package tfc contains components for syncing outputs of states from Terraform Cloud
Package tfc contains components for syncing outputs of states from Terraform Cloud
vault
Package vault contains components for syncing secrets with Vault.
Package vault contains components for syncing secrets with Vault.
vault/freeport
Package freeport provides a helper for allocating free ports across multiple processes on the same machine.
Package freeport provides a helper for allocating free ports across multiple processes on the same machine.
vault/testvault
Package testvault contains helpers for working with Vault in a test environment.
Package testvault contains helpers for working with Vault in a test environment.
cmd
internal
appconfig
Package appconfig provides the logic for watching and reading application configuration values.
Package appconfig provides the logic for watching and reading application configuration values.
ceb
Package ceb contains the core logic for the custom entrypoint binary ("ceb").
Package ceb contains the core logic for the custom entrypoint binary ("ceb").
ceb/execwriter
Package execwriter contains helpers for writing "waypoint exec" streams via an io.Writer.
Package execwriter contains helpers for writing "waypoint exec" streams via an io.Writer.
ceb/ssh
Package ssh contains the login for the custom entrypoint binary to run an SSH server.
Package ssh contains the login for the custom entrypoint binary to run an SSH server.
ceb/virtualceb
Package virtualceb is used to provide "virtual" CEB functionality.
Package virtualceb is used to provide "virtual" CEB functionality.
cli
client
Package client contains the Waypoint client implementation.
Package client contains the Waypoint client implementation.
clisnapshot
Package clisnapshot provides access for our CLI commands to create and restore snapshots
Package clisnapshot provides access for our CLI commands to create and restore snapshots
config/dynamic
Package dynamic contains the HCL function, types, and logic for implementing dynamic config sourcing HCL configuration.
Package dynamic contains the HCL function, types, and logic for implementing dynamic config sourcing HCL configuration.
core
Package core exposes a high-level API for the expected operations of the project.
Package core exposes a high-level API for the expected operations of the project.
datasource
Package datasource has the packages and logic that Waypoint uses for sourcing data for remote runs.
Package datasource has the packages and logic that Waypoint uses for sourcing data for remote runs.
env
factory
Package factory contains a "factory" pattern based on argmapper.
Package factory contains a "factory" pattern based on argmapper.
jobstream
Package jobstream has helpers for working more easily with the GetJobStream endpoint, such as handling the full lifecycle of GetJobStream to a UI implementation.
Package jobstream has helpers for working more easily with the GetJobStream endpoint, such as handling the full lifecycle of GetJobStream to a UI implementation.
jobstream/test
This package implements some of the tests for the jobstream package.
This package implements some of the tests for the jobstream package.
pkg/cert
Package cert has helpers for managing certificates in our services.
Package cert has helpers for managing certificates in our services.
pkg/circbufsync
Package circbufsync wraps armon/circbuf to be safe for concurrent read/write operations.
Package circbufsync wraps armon/circbuf to be safe for concurrent read/write operations.
pkg/condctx
Package condctx provides helpers for working with condition variables along with the standard "context" package and interface.
Package condctx provides helpers for working with condition variables along with the standard "context" package and interface.
pkg/ctystructure
Package crystructure helps convert map[string]interface{} values to cty.Values.
Package crystructure helps convert map[string]interface{} values to cty.Values.
pkg/finalcontext
Package finalcontext is used by Waypoint to create a "final" context that we'll use after the real context has been cancelled.
Package finalcontext is used by Waypoint to create a "final" context that we'll use after the real context has been cancelled.
pkg/flag
Package flag is a thin layer over the stdlib flag package that provides some minimal features such as aliasing, autocompletion handling, improved defaults, etc.
Package flag is a thin layer over the stdlib flag package that provides some minimal features such as aliasing, autocompletion handling, improved defaults, etc.
pkg/gitdirty
Package gitdirty provides utility functions for inspecting the state of a local git repository.
Package gitdirty provides utility functions for inspecting the state of a local git repository.
pkg/iosync
Package iosync provides reader/writer implementations that wrap operations in a mutex so that concurrent reads and writes are safe.
Package iosync provides reader/writer implementations that wrap operations in a mutex so that concurrent reads and writes are safe.
pkg/jsonpb
Package jsonpb provides functionality to marshal and unmarshal between a protocol buffer message and JSON.
Package jsonpb provides functionality to marshal and unmarshal between a protocol buffer message and JSON.
pkg/k8sauth
Package k8sauth has helpers for authenticating to Kubernetes.
Package k8sauth has helpers for authenticating to Kubernetes.
pkg/spinner
Package spinner is a simple package to add a spinner / progress indicator to any terminal application.
Package spinner is a simple package to add a spinner / progress indicator to any terminal application.
pkg/spinner/_example
Example application that uses all of the available API options.
Example application that uses all of the available API options.
pkg/validationext
Package validationext provides helpers to extend the ozzo-validation.
Package validationext provides helpers to extend the ozzo-validation.
plugin
Package plugin has the functions necessary for discovering and launching plugins.
Package plugin has the functions necessary for discovering and launching plugins.
server/boltdbstate
Package state manages the state that the singleprocess server has, providing operations to mutate that state safely as needed.
Package state manages the state that the singleprocess server has, providing operations to mutate that state safely as needed.
server/component
Package component has component implementations for the various resulting types.
Package component has component implementations for the various resulting types.
server/httpapi
Package httpapi implements the shared endpoints that are implemented over the HTTP protocol rather than gRPC.
Package httpapi implements the shared endpoints that are implemented over the HTTP protocol rather than gRPC.
ssh
pkg
Package pkg exposes waypoint functionality that may be required by other projects.
Package pkg exposes waypoint functionality that may be required by other projects.
auth/oidc
Package oidc contains helpers for implementing OIDC-based auth for Waypoint servers and headless clients.
Package oidc contains helpers for implementing OIDC-based auth for Waypoint servers and headless clients.
nullify
Package nullify takes any structure as input and nullifies any matching pointer types as registered on the nullifier.
Package nullify takes any structure as input and nullifies any matching pointer types as registered on the nullifier.
server/gen
Package gen is a reverse proxy.
Package gen is a reverse proxy.
server/grpcmetadata
Package grpcmetadata contains functions for reading and writing waypoint specific metadata to contexts, which is transmitted by RPC calls.
Package grpcmetadata contains functions for reading and writing waypoint specific metadata to contexts, which is transmitted by RPC calls.
server/hcerr
Package hcerr contains helpers to format and sanitize errors before returning them to clients as grpc status errors.
Package hcerr contains helpers to format and sanitize errors before returning them to clients as grpc status errors.
server/logbuffer
Package logbuffer provides a structure and API for efficiently reading and writing logs that may be streamed to a server.
Package logbuffer provides a structure and API for efficiently reading and writing logs that may be streamed to a server.
serverclient
Package serverclient contains helpers for the server API client.
Package serverclient contains helpers for the server API client.
serverhandler
Package serverstate exports the verification harness for implementing a new waypoint server protobuf (i.e.
Package serverstate exports the verification harness for implementing a new waypoint server protobuf (i.e.
serverstate
Package serverstate exports the interface and verification harness for implementing a new state storage backend for the server.
Package serverstate exports the interface and verification harness for implementing a new state storage backend for the server.
test-apps
aci Module
tools
x

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL