porter

module
v1.0.0-alpha.14 Latest Latest
Warning

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

Go to latest
Published: Mar 22, 2022 License: Apache-2.0

README

Build Status

Porter

Package your application artifact, client tools, configuration and deployment logic together as a versioned bundle that you can distribute, and then install with a single command. Based on the Cloud Native Application Bundle Specification, CNAB, Porter provides a declarative authoring experience that lets you focus on what you know best: your application.

Learn all about Porter at porter.sh

Porter Mixins

Mixins provide out-of-the-box support for interacting with different tools and services from inside a bundle. You can always create a mixin, or use the exec mixin and a Custom Dockerfile if a custom mixin doesn't exist yet.

Porter Mixins are available for below platform's:

Platform Supported?
Docker ✔️
Docker-Compose ✔️
Kubernetes ✔️
Helm ✔️
GCloud ✔️
Terraform ✔️
aws ✔️
Azure ✔️
exec ✔️

Porter Plugins

Plugins let you store Porter's data and retrieve secrets from an external service.

Porter Plugins are available for below platform's:

Platform Supported?
Hashicorp ✔️
Azure ✔️
Kubernetes ✔️

Contact

  • Mailing List - Great for following the project at a high level because it is low traffic, mostly release notes and blog posts on new features.
  • Forum - Share an idea or propose a design where everyone can benefit from the discussion and find answers to questions later.
  • Dev Meeting - Biweekly meeting where we discuss Porter Enhancement Proposals, demo new features and help other contributors.
  • Open an Issue - If you are having trouble or found a bug, ask on GitHub so that we can prioritize it and make sure you get an answer.
  • Slack - We have a #porter channel and there's also #cnab for deep thoughts about the CNAB specification.

Looking for Contributors

Want to work on Porter with us? 💖 We are actively seeking out new contributors with the hopes of building up both casual contributors and enticing some of you into becoming reviewers and maintainers.

Start with our New Contributors Guide

Porter wouldn't be possible without our contributors, carrying the load and making it better every day! 🙇‍♀️

Do you use Porter?

Take our user survey and let us know if you are using Porter. Project funding is contingent upon knowing that we have active users!

Roadmap

Porter is an open-source project and things get done as quickly as we have motivated contributors working on features that interest them. 😉

We use a single project board across all of our repositories to track open issues and pull requests.

The roadmap represents what the maintainers have said that they are currently working on and plan to work on over the next few months. We use the "on-hold" bucket to communicate items of interest that do not have a maintainer who will be working on them.

Check out our roadmap

Our version strategy explains how we version the project, when you should expect breaking changes in a release, and the process for the v1 release.

Directories

Path Synopsis
cmd
mixins
mixins page contains magefile targets that perform common tasks that all mixins perform
mixins page contains magefile targets that perform common tasks that all mixins perform
pkg
cli
credentials
Package credentials provides primitives for working with Porter credential sets, usually refered to as "credentials" as a shorthand.
Package credentials provides primitives for working with Porter credential sets, usually refered to as "credentials" as a shorthand.
encoding
encoding package handles marshal and unmarshaling documents into various formats, such as json, bson, yaml, etc.
encoding package handles marshal and unmarshaling documents into various formats, such as json, bson, yaml, etc.
experimental
Package experimental defines flags that control experimental features
Package experimental defines flags that control experimental features
pkgmgmt
Package pkgmgmt implements the backing package management used by mixins and plugins.
Package pkgmgmt implements the backing package management used by mixins and plugins.
pkgmgmt/client
Package client provides a package management client for Porter's mixins and plugins.
Package client provides a package management client for Porter's mixins and plugins.
pkgmgmt/feed
Package feed helps work with a Porter package feed (mixin or plugin).
Package feed helps work with a Porter package feed (mixin or plugin).
secrets
Package secrets provides primitives for resolving secrets from external sources, such as Hashicorp Vault or Azure Key Vault, into Credential Sets and injecting them into bundle runtimes.
Package secrets provides primitives for resolving secrets from external sources, such as Hashicorp Vault or Azure Key Vault, into Credential Sets and injecting them into bundle runtimes.
secrets/plugins/host
Package host provides a plugin implementing the original behavior of resolving secrets from the local host: environment variables, paths, commands and static values.
Package host provides a plugin implementing the original behavior of resolving secrets from the local host: environment variables, paths, commands and static values.
secrets/plugins/in-memory
Package inmemory provides an in-memory implementation of a secret store suitable for unit testing.
Package inmemory provides an in-memory implementation of a secret store suitable for unit testing.
secrets/pluginstore
Package pluginstore is an internal Porter package that implements the plugins.SecretsPlugin interface.
Package pluginstore is an internal Porter package that implements the plugins.SecretsPlugin interface.
storage
See an example of implementation: pkg/storage/plugins/mongodb package
See an example of implementation: pkg/storage/plugins/mongodb package
storage/migrations
migrations package handles migrating Porter's stored documents when necessary.
migrations package handles migrating Porter's stored documents when necessary.
storage/plugins
plugin package contains interfaces for storage plugins.
plugin package contains interfaces for storage plugins.
storage/plugins/mongodb_docker
Package mongodb_docker implements the plugins.StorageProtocol interface, storing data using an instance of mongodb running in a container, with the data stored in a docker volume.
Package mongodb_docker implements the plugins.StorageProtocol interface, storing data using an instance of mongodb running in a container, with the data stored in a docker volume.
storage/pluginstore
Package pluginstore is an internal Porter package that implements the plugins.StorageProtocol interface via the hashicorp/go-plugins library.
Package pluginstore is an internal Porter package that implements the plugins.StorageProtocol interface via the hashicorp/go-plugins library.
test
Test contains common test helpers used across packages in porter.
Test contains common test helpers used across packages in porter.
workshop

Jump to

Keyboard shortcuts

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