Convert Figma logo to code with AI

hashicorp logowaypoint

A tool to build, deploy, and release any application on any platform.

4,753
326
4,753
362

Top Related Projects

17,684

Declarative Continuous Deployment for Kubernetes

14,997

Easy and Repeatable Kubernetes Development

22,042

Pulumi - Infrastructure as Code in any programming language 🚀

6,459

Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.

3,288

Develop your applications directly in your Kubernetes Cluster

Quick Overview

Waypoint is an open-source tool developed by HashiCorp that provides a consistent workflow for building, deploying, and releasing applications across various platforms. It aims to simplify the deployment process by offering a unified interface for different cloud providers, Kubernetes, and other deployment targets.

Pros

  • Consistent workflow across multiple platforms and deployment targets
  • Simplified deployment process with a single configuration file
  • Built-in support for various build methods and deployment platforms
  • Extensible plugin system for custom integrations

Cons

  • Relatively new project, still evolving and may have limitations
  • Limited documentation and community resources compared to more established tools
  • May require additional setup and configuration for complex deployment scenarios
  • Learning curve for teams already using established CI/CD pipelines

Getting Started

To get started with Waypoint, follow these steps:

  1. Install Waypoint on your local machine:
curl -fsSL https://apt.releases.hashicorp.com/gpg | sudo apt-key add -
sudo apt-add-repository "deb [arch=amd64] https://apt.releases.hashicorp.com $(lsb_release -cs) main"
sudo apt-get update && sudo apt-get install waypoint
  1. Initialize a new Waypoint project in your application directory:
cd your-app-directory
waypoint init
  1. Edit the generated waypoint.hcl file to configure your build, deploy, and release steps.

  2. Deploy your application:

waypoint up

For more detailed instructions and advanced usage, refer to the official Waypoint documentation.

Competitor Comparisons

17,684

Declarative Continuous Deployment for Kubernetes

Pros of Argo CD

  • More mature and widely adopted in the Kubernetes ecosystem
  • Supports GitOps workflows out of the box
  • Offers a rich UI for visualizing application deployments and their status

Cons of Argo CD

  • Primarily focused on Kubernetes deployments, limiting its use for non-Kubernetes environments
  • Steeper learning curve for teams not familiar with Kubernetes concepts

Code Comparison

Argo CD Application manifest:

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: myapp
spec:
  destination:
    namespace: default
    server: https://kubernetes.default.svc
  project: default
  source:
    path: k8s
    repoURL: https://github.com/example/myapp.git
    targetRevision: HEAD

Waypoint configuration:

project = "myapp"

app "web" {
  build {
    use "docker" {}
  }

  deploy {
    use "kubernetes" {
      namespace = "default"
    }
  }
}

While Argo CD focuses on declarative Kubernetes manifests, Waypoint provides a more abstracted configuration for various deployment targets. Argo CD excels in GitOps and Kubernetes-native workflows, whereas Waypoint offers a more flexible approach for different deployment scenarios.

14,997

Easy and Repeatable Kubernetes Development

Pros of Skaffold

  • More mature project with a larger community and ecosystem
  • Supports a wider range of deployment targets and CI/CD integrations
  • Offers more granular control over the build and deploy process

Cons of Skaffold

  • Steeper learning curve due to more complex configuration options
  • Primarily focused on Kubernetes deployments, less versatile for other platforms
  • Requires more manual setup and configuration compared to Waypoint's opinionated approach

Code Comparison

Skaffold configuration (skaffold.yaml):

apiVersion: skaffold/v2beta18
kind: Config
build:
  artifacts:
  - image: my-app
deploy:
  kubectl:
    manifests:
    - k8s-*

Waypoint configuration (waypoint.hcl):

project = "my-app"
app "web" {
  build {
    use "docker" {}
  }
  deploy {
    use "kubernetes" {}
  }
}

Both tools aim to simplify the development and deployment process for containerized applications. Skaffold offers more flexibility and control, making it suitable for complex Kubernetes deployments. Waypoint provides a more streamlined experience with its opinionated approach, making it easier for beginners to get started and supporting a broader range of deployment targets beyond Kubernetes.

22,042

Pulumi - Infrastructure as Code in any programming language 🚀

Pros of Pulumi

  • Supports multiple programming languages (Python, TypeScript, Go, etc.) for infrastructure as code
  • Offers a more flexible and extensible approach to infrastructure management
  • Provides strong typing and IDE support for better developer experience

Cons of Pulumi

  • Steeper learning curve, especially for those new to programming
  • Requires more setup and configuration compared to Waypoint's simpler approach
  • May have higher complexity for small-scale projects

Code Comparison

Waypoint:

app "example" {
  build {
    use "docker" {}
  }
  deploy {
    use "kubernetes" {
      namespace = "default"
    }
  }
}

Pulumi:

import pulumi
from pulumi_kubernetes import apps, core

deployment = apps.v1.Deployment(
    "nginx",
    spec=apps.v1.DeploymentSpecArgs(
        replicas=1,
        selector=apps.v1.LabelSelectorArgs(match_labels={"app": "nginx"}),
        template=core.v1.PodTemplateSpecArgs(
            metadata=core.v1.ObjectMetaArgs(labels={"app": "nginx"}),
            spec=core.v1.PodSpecArgs(containers=[
                core.v1.ContainerArgs(name="nginx", image="nginx")
            ])
        )
    )
)
6,459

Open and extensible continuous delivery solution for Kubernetes. Powered by GitOps Toolkit.

Pros of Flux

  • Native GitOps approach for Kubernetes, enabling declarative configuration management
  • Supports multi-tenancy and fine-grained access control
  • Extensive ecosystem with Flux controllers for various use cases

Cons of Flux

  • Steeper learning curve for teams new to GitOps and Kubernetes
  • Limited support for non-Kubernetes environments
  • Requires more manual setup compared to Waypoint's streamlined approach

Code Comparison

Flux manifest example:

apiVersion: source.toolkit.fluxcd.io/v1beta2
kind: GitRepository
metadata:
  name: podinfo
  namespace: flux-system
spec:
  interval: 1m
  url: https://github.com/stefanprodan/podinfo

Waypoint configuration example:

project = "example-project"

app "web" {
  build {
    use "docker" {}
  }
  deploy {
    use "kubernetes" {
      namespace = "default"
    }
  }
}

Flux focuses on declarative GitOps for Kubernetes, while Waypoint provides a more abstracted approach to application deployment across various platforms. Flux excels in Kubernetes-native environments, offering powerful GitOps capabilities, while Waypoint simplifies the deployment process with a unified workflow for different deployment targets.

3,288

Develop your applications directly in your Kubernetes Cluster

Pros of Okteto

  • Focuses on cloud-native development environments, enabling developers to work directly in Kubernetes clusters
  • Provides automatic synchronization of code changes between local and remote environments
  • Offers a more seamless integration with existing Kubernetes workflows and tools

Cons of Okteto

  • Less emphasis on application deployment and release management compared to Waypoint
  • May have a steeper learning curve for developers not familiar with Kubernetes concepts
  • Limited support for non-Kubernetes environments

Code Comparison

Okteto:

deploy:
  - okteto build -t okteto.dev/hello-world:latest
  - kubectl apply -f k8s.yml

Waypoint:

app "hello-world" {
  build {
    use "docker" {}
  }
  deploy {
    use "kubernetes" {
      namespace = "default"
    }
  }
}

Both tools aim to simplify the development and deployment process, but they approach it differently. Okteto focuses on providing development environments within Kubernetes, while Waypoint offers a more abstracted deployment workflow across various platforms. The code examples show how Okteto relies more on existing Kubernetes tooling, whereas Waypoint provides a higher-level abstraction for build and deploy processes.

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

Image


HashiCorp Waypoint Community Edition is no longer actively maintained. For additional information on the new vision of Waypoint, check out this blog post and the HCP Waypoint documentation.


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