api

package
v1.4.0 Latest Latest
Warning

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

Go to latest
Published: Apr 26, 2024 License: Apache-2.0 Imports: 38 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultTokenCachePath = ".kube/cache/oidc-login"
	IssuerURLArg          = "--issuer-url="
	ClientIDArg           = "--client-id="
	UsePKCEArg            = "--use-pkce"
	CustomersPrefix       = "/Customers/"
)

Variables

This section is empty.

Functions

func GetToken added in v1.1.0

func GetToken(ctx context.Context, issuerURL, clientID string, usePKCE bool, out io.Writer) error

GetToken executes the OIDC login flow using the kubelogin with the provided OIDC parameters writes the raw JSON ExecCredential result to out.

func GetTokenFromConfig added in v1.1.0

func GetTokenFromConfig(ctx context.Context, cfg *rest.Config) (string, error)

GetTokenFromConfig takes a rest.Config and returns a valid OIDC access token or the static bearer token if it's set in the config.

func GetTokenFromExecConfig added in v1.1.0

func GetTokenFromExecConfig(ctx context.Context, execConfig *api.ExecConfig) (string, error)

GetTokenFromExecConfig takes the provided execConfig, parses out the args and gets the token by executing the login flow.

func LoadingRules

func LoadingRules() (*clientcmd.ClientConfigLoadingRules, error)

func NamespacedName added in v1.1.0

func NamespacedName(name, project string) types.NamespacedName

func NewScheme

func NewScheme() (*runtime.Scheme, error)

NewScheme returns a *runtime.Scheme with all the relevant types registered.

func ObjectName added in v1.0.1

func ObjectName(obj runtimeclient.Object) types.NamespacedName

Types

type Client

type Client struct {
	runtimeclient.WithWatch
	Config            *rest.Config
	KubeconfigPath    string
	Project           string
	Log               *log.Client
	Token             string
	KubeconfigContext string
}

func New

func New(ctx context.Context, apiClusterContext, project string, opts ...ClientOpt) (*Client, error)

New returns a new Client by loading a kubeconfig with the supplied context and project. The kubeconfig is discovered like this: * KUBECONFIG environment variable pointing at a file * $HOME/.kube/config if exists

func (*Client) GetConnectionSecret

func (c *Client) GetConnectionSecret(ctx context.Context, mg resource.Managed) (*corev1.Secret, error)

func (*Client) Name

func (c *Client) Name(name string) types.NamespacedName

type ClientOpt added in v1.1.0

type ClientOpt func(c *Client) error

func LogClient added in v1.1.0

func LogClient(address string, insecure bool) ClientOpt

LogClient sets up a log client connected to the provided address.

type DefaultTokenGetter added in v1.2.0

type DefaultTokenGetter struct{}

func (*DefaultTokenGetter) GetTokenString added in v1.2.0

func (t *DefaultTokenGetter) GetTokenString(ctx context.Context, issuerURL, clientID string, usePKCE bool) (string, error)

type TokenGetter added in v1.2.0

type TokenGetter interface {
	GetTokenString(ctx context.Context, issuerURL, clientID string, usePKCE bool) (string, error)
}

type UserInfo added in v1.2.0

type UserInfo struct {
	User string
	Orgs []string
}

func GetUserInfoFromToken added in v1.2.0

func GetUserInfoFromToken(tokenString string) (*UserInfo, error)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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