1. Images & Charts
  2. pinniped-cli

Echo is acquiring Minimus. See the announcementfor more details.

pinniped-cli

pinniped-cli

Utils
Updated on August 16

Pinniped CLI Overview

Secure your stack with a hardened Pinniped CLI image freshly-built by Minimus. Minimus images always include the most up-to-date package version for all packages and dependencies contained in the image.


Pinniped lets platform teams give users one identity to log into every Kubernetes cluster they manage, using an existing identity provider — Okta, Active Directory, Google, or any OIDC or LDAP source — instead of issuing and rotating individual cluster credentials by hand. The Pinniped CLI is the piece that runs on a user's machine: kubectl invokes it automatically as a credential exec plugin to complete the login and hand back a short-lived, cluster-scoped token.


Try It Out

Prerequisites

  • A Kubernetes cluster with the Pinniped Supervisor and/or Concierge components installed and an identity provider (OIDC or LDAP) configured
  • kubectl installed and configured to reach that cluster

For a quick test, print the version information:

docker run --rm \
reg.mini.dev/pinniped-cli version

Generate a Kubeconfig

Most day-to-day use of Pinniped CLI happens transparently through kubectl, but the CLI itself is used up front to generate a kubeconfig that wires up the login flow. Point it at your cluster's existing kubeconfig and the JWT authenticator configured on the Concierge:

docker run --rm -it \
-v $(pwd):/workdir \
-e KUBECONFIG=/workdir/kubeconfig \
reg.mini.dev/pinniped-cli get kubeconfig \
--oidc-issuer https://issuer.example.com \
--oidc-client-id my-client-id \
--concierge-authenticator-type jwt \
--concierge-authenticator-name my-jwt-authenticator > pinniped-kubeconfig.yaml

This writes a pinniped-kubeconfig.yaml file to the current directory. It contains no long-lived credentials — instead, it tells kubectl to run pinniped login oidc on demand.

Ready to Log In?

Hand the generated file to kubectl and it will call Pinniped CLI itself whenever a credential is needed, opening the browser to complete the OIDC flow with your identity provider the first time:

kubectl --kubeconfig pinniped-kubeconfig.yaml get pods

To confirm who a given kubeconfig authenticates as against the cluster, without running any other command:

docker run --rm -it \
-v $(pwd):/workdir \
-e KUBECONFIG=/workdir/pinniped-kubeconfig.yaml \
reg.mini.dev/pinniped-cli whoami
Current cluster info:

Name: my-cluster

Current user info:

Username: user@example.com
Groups: developers, system:authenticated

Technical Considerations

The Pinniped CLI image provided by Minimus is a slim, security-hardened build of the Pinniped CLI.

Pinniped CLI built by Minimus:

  1. Runs as root to support required functions.
  2. Drill down on the version specification tab to see the default user, listening ports, entrypoint, volumes, environment variables, etc.

The Payoff

A hardened, minimal image that will remain more secure for the long run and accrue vulnerabilities at a slower rate.


Terms & Info

Trademark

This catalog is published by Minimus. All product names, logos, and marks, other than those belonging to Minimus, shown are owned by their respective rights holders and appear here only to identify the open source software each image contains. Minimus claims no ownership of those marks and implies no affiliation with, endorsement by, certification by, or sponsorship by any rights holder.

Disclaimer

Images are provided "as-is" without warranty of any kind. "Hardened" refers to the security configuration applied at the time of build and does not constitute a guarantee of ongoing security or absence of vulnerabilities. The free tier is provided without support, SLA, or guaranteed patching timelines. Security updates may be applied to paid subscriptions before or instead of free tier images. By pulling or using any image you agree to our Terms of Use.