kubeconfig

package
v0.0.0-...-ee2d30e Latest Latest
Warning

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

Go to latest
Published: Feb 15, 2023 License: Apache-2.0 Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// AWSIAMAuthenticator defines the name of the AWS IAM authenticator
	AWSIAMAuthenticator = "aws-iam-authenticator"
	// AWSEKSAuthenticator defines the recently added `aws eks get-token` command
	AWSEKSAuthenticator = "aws"
	// AWSIAMAuthenticatorMinimumBetaVersion this is the minimum version at which aws-iam-authenticator uses v1beta1 as APIVersion
	AWSIAMAuthenticatorMinimumBetaVersion = "0.5.3"
	// AWSCLIv1MinimumBetaVersion this is the minimum version at which aws-cli v1 uses v1beta1 as APIVersion
	AWSCLIv1MinimumBetaVersion = "1.23.9"
	// AWSCLIv2MinimumBetaVersion this is the minimum version at which aws-cli v2 uses v1beta1 as APIVersion
	AWSCLIv2MinimumBetaVersion = "2.6.3"
)

Variables

This section is empty.

Functions

func AppendAuthenticator

func AppendAuthenticator(config *clientcmdapi.Config, cluster ClusterInfo, authenticatorCMD, roleARN, profile string)

AppendAuthenticator appends the AWS IAM authenticator, and if profile is non-empty string it sets AWS_PROFILE environment variable also

func AuthenticatorCommands

func AuthenticatorCommands() []string

AuthenticatorCommands returns all authenticator commands.

func AutoPath

func AutoPath(name string) string

AutoPath returns the path for the auto-generated kubeconfig

func DefaultPath

func DefaultPath() string

DefaultPath defines the default path

func LookupAuthenticator

func LookupAuthenticator() (string, bool)

LookupAuthenticator looks up an available authenticator

func MaybeDeleteConfig

func MaybeDeleteConfig(meta *api.ClusterMeta)

MaybeDeleteConfig will delete the auto-generated kubeconfig, if it exists

func NewForKubectl

func NewForKubectl(cluster ClusterInfo, username, roleARN, profile string) *clientcmdapi.Config

NewForKubectl creates configuration for a user with kubectl by configuring a suitable authenticator and respecting provider settings

func NewForUser

func NewForUser(cluster ClusterInfo, username string) *clientcmdapi.Config

NewForUser returns a Config suitable for a user by respecting provider settings

func Write

func Write(path string, newConfig clientcmdapi.Config, setContext bool) (string, error)

Write will write Kubernetes client configuration to a file. If path isn't specified then the path will be determined by client-go. If file pointed to by path doesn't exist it will be created. If the file already exists then the configuration will be merged with the existing file.

Types

type AWSAuthenticatorVersionFormat

type AWSAuthenticatorVersionFormat struct {
	Version string `json:"Version"`
}

AWSAuthenticatorVersionFormat is the format in which aws-iam-authenticator displays version information: {"Version":"0.5.5","Commit":"85e50980d9d916ae95882176c18f14ae145f916f"}

type ClusterInfo

type ClusterInfo interface {
	// ID returns the cluster ID.
	// This can either be the name of the cluster or a UUID.
	ID() string
	// Meta returns the cluster metadata.
	Meta() *api.ClusterMeta
	// GetStatus returns the cluster status.
	GetStatus() *api.ClusterStatus
}

ClusterInfo holds the cluster info.

type ConfigBuilder

type ConfigBuilder struct {
	// contains filtered or unexported fields
}

ConfigBuilder can create a client-go clientcmd Config

func NewBuilder

func NewBuilder(metadata *api.ClusterMeta, status *api.ClusterStatus, username string) *ConfigBuilder

NewBuilder returns a minimal ConfigBuilder

func (*ConfigBuilder) Build

func (cb *ConfigBuilder) Build() *clientcmdapi.Config

Build creates the Config with the ConfigBuilder settings

func (*ConfigBuilder) UseCertificateAuthorityFile

func (cb *ConfigBuilder) UseCertificateAuthorityFile(path string) *ConfigBuilder

UseCertificateAuthorityFile sets the config to use CA from file for TLS communication instead of the CA retrieved from EKS

func (*ConfigBuilder) UseSystemCA

func (cb *ConfigBuilder) UseSystemCA() *ConfigBuilder

UseSystemCA sets the config to use the system CAs for TLS communication instead of the CA retrieved from EKS

type ExecCommandFunc

type ExecCommandFunc func(name string, arg ...string) *exec.Cmd

type KubectlVersionData

type KubectlVersionData struct {
	Version string `json:"gitVersion"`
}

KubectlVersionFormat is the format used by kubectl version --format=json, example output:

{
  "clientVersion": {
    "major": "1",
    "minor": "23",
    "gitVersion": "v1.23.6",
    "gitCommit": "ad3338546da947756e8a88aa6822e9c11e7eac22",
    "gitTreeState": "archive",
    "buildDate": "2022-04-29T06:39:16Z",
    "goVersion": "go1.18.1",
    "compiler": "gc",
    "platform": "linux/amd64"
  }
}

type KubectlVersionFormat

type KubectlVersionFormat struct {
	ClientVersion KubectlVersionData `json:"clientVersion"`
}

Jump to

Keyboard shortcuts

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