Kubernetes powered PaaS that runs in your own cloud. https://porter.run

jusrhee 7c85329aaa Merge pull request #95 from porter-dev/frontend-paas 5 anni fa
cli 9f64d9929d oidc plugin cert population 5 anni fa
cmd 3ca584ab73 init on startup 5 anni fa
dashboard 5651203fb5 repo, branch, subfolder selection integrated on fe (hardcoded credentials) 5 anni fa
docker 3ca584ab73 init on startup 5 anni fa
docs 9f5b00ff6c updated headers 5 anni fa
internal 9f64d9929d oidc plugin cert population 5 anni fa
scripts e51a889bd1 update docs 5 anni fa
server 5651203fb5 repo, branch, subfolder selection integrated on fe (hardcoded credentials) 5 anni fa
.air.toml e71b846b93 ignore dashboard in air.toml 5 anni fa
.darwin.goreleaser.yml 8d78db5ab1 goreleaser updates 5 anni fa
.dockerignore d7b83fb445 onboarding with default sqlite 5 anni fa
.gitignore fada1cb31c goreleaser w/ notarization 5 anni fa
.goreleaser.yml 8d78db5ab1 goreleaser updates 5 anni fa
LICENSE 1f483861ca add MIT license 5 anni fa
README.md 0db9f69ca5 Update README.md 5 anni fa
docker-compose.dev.yaml 9eb5469cc8 yaml in nodes 5 anni fa
go.mod 5651203fb5 repo, branch, subfolder selection integrated on fe (hardcoded credentials) 5 anni fa
go.sum 5651203fb5 repo, branch, subfolder selection integrated on fe (hardcoded credentials) 5 anni fa

README.md

Porter

Porter is a dashboard for Helm with support for the following features:

  • Visualization of all Helm releases with filtering by namespace
  • In-depth view of releases, including revision histories and component graphs
  • Rollback/update of existing releases, including editing of values.yaml

Graph View What's next for Porter? View our roadmap, or read our mission statement.

Quick Start

To view the dashboard locally, follow the instructions to install the latest CLI release for Mac, Linux, or Windows. While the Docker engine is running, run:

porter start

When prompted, enter the admin email/password you would like to use. After the server has started, go to localhost:8080/login and log in with the credentials you just set.

To view more detailed setup instructions, please consult the getting started docs.

Mac Installation

Run the following command to grab the latest binary:

{
name=$(curl -s https://api.github.com/repos/porter-dev/porter/releases/latest | grep "browser_download_url.*_Darwin_x86_64\.zip" | cut -d ":" -f 2,3 | tr -d \")
name=$(basename $name)
curl -L https://github.com/porter-dev/porter/releases/latest/download/$name --output $name
unzip -a $name
rm $name
}

Then move the file into your bin:

chmod +x ./porter
sudo mv ./porter /usr/local/bin/porter

Linux Installation

Run the following command to grab the latest binary:

{
name=$(curl -s https://api.github.com/repos/porter-dev/porter/releases/latest | grep "browser_download_url.*_Linux_x86_64\.zip" | cut -d ":" -f 2,3 | tr -d \")
name=$(basename $name)
curl -L https://github.com/porter-dev/porter/releases/latest/download/$name --output $name
unzip -a $name
rm $name
}

Then move the file into your bin:

chmod +x ./porter
sudo mv ./porter /usr/local/bin/porter

Windows Installation

Go here to download the Windows executable and add the binary to your PATH.

Differences from Kubeapps

As a disclaimer, we're big fans of Kubeapps, and many of the initial features that we build out will be very similar. Currently, Porter's graph-based chart visualization is the only fundamental difference, and it should be assumed that most Kubeapps features will be supported on Porter in the near future. However, on the feature side, Porter will eventually support:

  • IDE-like tooling for chart creation, templating, and packaging
  • Deep integration with GitOps workflows and CI/CD tools
  • Visualization of lifecycle hooks and robust error tracing for deployments

Mission Statement

kubectl for your fundamental operations. Porter for everything else.

Our mission is to be the go-to tool for interacting with complex Kubernetes deployments as both a beginner and an expert. While our initial focus is on visualizing Helm components, we believe this visualization and editing can be extended to a number of other tools and concepts, including alternative templating tools (kustomize, Terraform), other deployment tools (CI/CD tools, Terraform), Kubernetes package repositories (ChartMuseum, JFrog Artifactory), and even popular Kubernetes packages (nginx-ingress, cert-manager, prometheus, velero).

More specifically, we have the following long-term goals:

  • Design a visual interface for complex deployments and operations
  • Make deployments and operations editable by and accessible for non-Kubernetes experts
  • Improve the development experience for packaging and releasing Kubernetes applications
  • Increase interoperability of Kubernetes tooling without compromising usability

Why did we begin with Helm? Helm is the most popular auxiliary Kubernetes tool, and can function in nearly all parts of deployment lifecycle. We think of the various features of Helm in the following manner, adapted from Brian Grant's Helm Summit talk (slides here): package management, dependency management, application metadata, parameterization, templating, deployment/config revision management, lifecycle management hooks, and application probes. Along with these fundamental features, an expanding number of command plugins for more specific use-cases have started to become popular in the Helm ecosystem. If we can build a better workflow for both application developers and application operators by improving the user experience for most of these Helm features, we can generalize and expand this workflow to support alternative tooling that exists in the Kubernetes application management ecosystem.