Skip to content

Porter Operator for Kubernetes

License

Notifications You must be signed in to change notification settings

carolynvs/porter-operator

 
 

Repository files navigation

Build Status

PorterOps: Porter Operator

PorterOps not only gives you a native, integrated experience for managing your bundles with Kubernetes but is the recommended way to automate your bundle pipeline with support for GitOps.

  • Automate building and publishing bundles, when the bundle definition changes or new versions of images used by the bundle are available.
  • Automatically deploy new versions of bundles.
  • Isolated environments for running bundles in your organization, limiting access to secrets used by the bundles using namespaces and RBAC.
  • Create and respond to events on your cluster to integrate bundles into your pipeline.

Learn all about Porter at porter.sh

Define Secrets

The operator uses secrets defined in namespace of the CRD being managed to populate Porter's config file and environment variables. For example the azure connection string, or service principal environment variables.

TODO: Have porter help do these parts

porter-config

These secrets are copied into the pod as files to tell Porter where to save its data and resolve secrets.

kubectl create secret generic porter-config \
  --from-file=config.toml=/Users/carolynvs/.porter/k8s.config.toml

porter-env

These secrets are copied into the pod as environment variables. Porter will use them to for the plugins so that they can connect to remote services such storage or vault.

kubectl create secret generic porter-env \
  --from-literal=AZURE_STORAGE_CONNECTION_STRING=$PORTER_TEST_AZURE_STORAGE_CONNECTION_STRING \
  --from-literal=AZURE_CLIENT_SECRET=$PORTER_AZURE_CLIENT_SECRET \
  --from-literal=AZURE_CLIENT_ID=$PORTER_AZURE_CLIENT_ID \
  --from-literal=AZURE_TENANT_ID=$PORTER_AZURE_TENANT_ID

Define Configuration

porter

These are configuration settings for the Porter Operator.

kubectl create configmap porter \
  --from-literal=porterVersion=canary \
  --from-literal=serviceAccount=porter-agent

See Modify the porter agent for details on how this is created.

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.
  • Slack - Discuss #porter or #cnab with other users and the maintainers.
  • Open an Issue - If you have a bug, feature request or question about Porter, ask on GitHub so that we can prioritize it and make sure you get an answer. If you ask on Slack, we will probably turn around and make an issue anyway. 😉

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! 🙇‍♀️


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 core 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 doesn't have a core maintainer who will be working on it.

Check out our roadmap

About

Porter Operator for Kubernetes

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 91.5%
  • Makefile 5.3%
  • Dockerfile 2.0%
  • Shell 1.2%