porter

module
v1.0.17 Latest Latest
Warning

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

Go to latest
Published: Mar 26, 2024 License: Apache-2.0

README

CNCF Sandbox Project porter

Porter

Package your application, client tools, configuration, and deployment logic into an installer that you can distribute and run 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

Directories

Path Synopsis
cmd
gen
mage
pkg
cli
cnab/config-adapter
Package configadapter converts a Porter manifest (porter.yaml) to a CNAB bundle.json
Package configadapter converts a Porter manifest (porter.yaml) to a CNAB bundle.json
cnab/extensions/dependencies/v2
Package v2 defines the v2 Porter Dependency specification, org.getporter.dependencies@v2.
Package v2 defines the v2 Porter Dependency specification, org.getporter.dependencies@v2.
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).
plugins/pluggable
Package pluggable manages configuring and connecting to Porter's plugins.
Package pluggable manages configuring and connecting to Porter's plugins.
portercontext
Package portercontext contains our common application Context structure that we should use to interact with stdin/stdout/stederr, running commands, and interacting with the file system.
Package portercontext contains our common application Context structure that we should use to interact with stdin/stdout/stederr, running commands, and interacting with the file system.
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/filesystem
Package filesystem provides a plugin implementing the secret plugin protocol for creating/resolving secrets from the local filesystem.
Package filesystem provides a plugin implementing the secret plugin protocol for creating/resolving secrets from the local filesystem.
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/plugins/proto
Package proto is the protobuf definition for the SecretsProtocol
Package proto is the protobuf definition for the SecretsProtocol
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/migrations/crudstore
Package crudstore supports reading data out of a legacy porter storage plugin
Package crudstore supports reading data out of a legacy porter storage plugin
storage/migrations/testhelpers
Package testhelpers contains helper functions for testing the pkg/storage/migrations package.
Package testhelpers contains helper functions for testing the pkg/storage/migrations package.
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/plugins/proto
Package proto is the protobuf definition for the StorageProtocol
Package proto is the protobuf definition for the StorageProtocol
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