Pinniped is the easy, secure way to log in to your Kubernetes clusters.
Go to file
Ryan Richard cec9f3c4d7 Improve the selectors of Deployments and Services
Fixes #801. The solution is complicated by the fact that the Selector
field of Deployments is immutable. It would have been easy to just
make the Selectors of the main Concierge Deployment, the Kube cert agent
Deployment, and the various Services use more specific labels, but
that would break upgrades. Instead, we make the Pod template labels and
the Service selectors more specific, because those not immutable, and
then handle the Deployment selectors in a special way.

For the main Concierge and Supervisor Deployments, we cannot change
their selectors, so they remain "app: app_name", and we make other
changes to ensure that only the intended pods are selected. We keep the
original "app" label on those pods and remove the "app" label from the
pods of the Kube cert agent Deployment. By removing it from the Kube
cert agent pods, there is no longer any chance that they will
accidentally get selected by the main Concierge Deployment.

For the Kube cert agent Deployment, we can change the immutable selector
by deleting and recreating the Deployment. The new selector uses only
the unique label that has always been applied to the pods of that
deployment. Upon recreation, these pods no longer have the "app" label,
so they will not be selected by the main Concierge Deployment's
selector.

The selector of all Services have been updated to use new labels to
more specifically target the intended pods. For the Concierge Services,
this will prevent them from accidentally including the Kube cert agent
pods. For the Supervisor Services, we follow the same convention just
to be consistent and to help future-proof the Supervisor app in case it
ever has a second Deployment added to it.

The selector of the auto-created impersonation proxy Service was
also previously using the "app" label. There is no change to this
Service because that label will now select the correct pods, since
the Kube cert agent pods no longer have that label. It would be possible
to update that selector to use the new more specific label, but then we
would need to invent a way to pass that label into the controller, so
it seemed like more work than was justified.
2021-09-14 13:35:10 -07:00
.github Ignore test coverage for local-user-authenticator. 2021-03-15 10:43:17 -05:00
apis Change some comments on API docs, fix lint error by ignoring it 2021-08-26 16:55:43 -07:00
cmd Merge branch 'main' of github.com:vmware-tanzu/pinniped into active-directory-identity-provider 2021-08-24 12:19:29 -07:00
deploy Improve the selectors of Deployments and Services 2021-09-14 13:35:10 -07:00
generated Change some comments on API docs, fix lint error by ignoring it 2021-08-26 16:55:43 -07:00
hack Add a dry-run 'kubectl apply' in prepare-for-integration-tests.sh so we can be sure that our manifests pass API validation. 2021-09-02 16:55:28 -05:00
internal Improve the selectors of Deployments and Services 2021-09-14 13:35:10 -07:00
pkg Merge branch 'main' of github.com:vmware-tanzu/pinniped into active-directory-identity-provider 2021-08-24 12:19:29 -07:00
public added search functionality to docs on Pinniped.dev 2021-04-09 10:58:39 -05:00
site So long and thanks for all the fish 🦭 2021-09-03 12:38:53 -05:00
test ValidatedSettings is all or nothing 2021-09-07 13:09:35 -07:00
.dockerignore dockerignore gets same contents as gitignore 2021-07-26 11:28:25 -07:00
.gitattributes Add .gitattributes as a hint to the GitHub diff viewer. 2020-09-15 11:44:23 -05:00
.gitignore dockerignore gets same contents as gitignore 2021-07-26 11:28:25 -07:00
.golangci.yaml Remove unparam linter 2021-08-19 10:20:24 -07:00
.pre-commit-config.yaml Rename dex namespace, add new ytt value to deploy/tools, and remove Tilt 2021-04-05 15:01:49 -07:00
ADOPTERS.md Add OK a.m.b.a. to adopters.md file 2021-04-14 18:38:11 -05:00
CODE_OF_CONDUCT.md Rename the CoC and contributor guide to the names GitHub recognizes. 2020-10-02 15:53:48 -05:00
CONTRIBUTING.md Simplify the main README.md to reduce duplication with website 2021-08-27 15:52:51 -07:00
Dockerfile Bump golang from 1.17.0 to 1.17.1 2021-09-13 01:13:32 +00:00
go.mod Merge pull request #695 from vmware-tanzu/active-directory-identity-provider 2021-08-27 08:39:12 -07:00
go.sum Downgrade go mod compat to 1.16 for golangci-lint 2021-08-27 10:03:48 -04:00
LICENSE Add Apache 2.0 license. 2020-07-06 13:50:31 -05:00
MAINTAINERS.md So long and thanks for all the fish 🦭 2021-09-03 12:38:53 -05:00
README.md Simplify the main README.md to reduce duplication with website 2021-08-27 15:52:51 -07:00
ROADMAP.md Update ROADMAP.md 2021-09-01 21:35:47 -04:00
SCOPE.md Move scope doc out of website to SCOPE.md. 2021-02-23 11:11:07 -06:00
SECURITY.md SECURITY.md: follow established pattern 2021-02-09 09:08:19 -05:00

Pinniped Logo

Overview

Pinniped provides identity services to Kubernetes.

  • Easily plug in external identity providers into Kubernetes clusters while offering a simple install and configuration experience. Leverage first class integration with Kubernetes and kubectl command-line.
  • Give users a consistent, unified login experience across all your clusters, including on-premises and managed cloud environments.
  • Securely integrate with an enterprise IDP using standard protocols or use secure, externally managed identities instead of relying on simple, shared credentials.

To learn more, please visit the Pinniped project's website, https://pinniped.dev.

Getting started with Pinniped

Care to kick the tires? It's easy to install and try Pinniped.

Discussion

Got a question, comment, or idea? Please don't hesitate to reach out via GitHub Discussions, GitHub Issues, or in the Kubernetes Slack Workspace within the #pinniped channel.

Contributions

Want to get involved? Contributions are welcome.

Please see the contributing guide for more information about reporting bugs, requesting features, building and testing the code, submitting PRs, and other contributor topics.

Community meetings

Pinniped is better because of our contributors and maintainers. It is because of you that we can bring great software to the community. Please join us during our online community meetings, occurring every first and third Thursday of the month at 9 AM PT / 12 PM PT. Use this Zoom Link to attend and add any agenda items you wish to discuss to the notes document. Join our Google Group to receive invites to this meeting.

If the meeting day falls on a US holiday, please consider that occurrence of the meeting to be canceled.

Adopters

Some organizations and products using Pinniped are featured in ADOPTERS.md. Add your own organization or product here.

Reporting security vulnerabilities

Please follow the procedure described in SECURITY.md.

License

Pinniped is open source and licensed under Apache License Version 2.0. See LICENSE.

Copyright 2020-2021 the Pinniped contributors. All Rights Reserved.