Documentation ¶
Index ¶
- Constants
- Variables
- func BuildRemoteCfg(remoteCluster *api.Cluster, remoteCtx *api.Context, clusterName, token string) api.Config
- func SecretToConfig(secret *kubev1.Secret) (clusterName string, config clientcmd.ClientConfig, err error)
- func ToSecret(namespace string, cluster string, kc api.Config) (*kubev1.Secret, error)
- type KubeLoader
Constants ¶
View Source
const ( // SecretType is used to indicate which kubernetes secrets contain a KubeConfig. SecretType = "solo.io/kubeconfig" // Key is the KubeConfig's key in the KubeConfig secret data. Key = "kubeconfig" )
Variables ¶
View Source
var ( FailedToConvertKubeConfigToSecret = func(err error) error { return eris.Wrap(err, "Could not serialize KubeConfig to yaml while generating secret.") } FailedToConvertSecretToKubeConfig = func(err error) error { return eris.Wrapf(err, "Could not deserialize string to KubeConfig while generating KubeConfig") } FailedToConvertSecretToClientConfig = func(err error) error { return eris.Wrap(err, "Could not convert config to ClientConfig") } SecretHasNoKubeConfig = func(meta metav1.ObjectMeta) error { return eris.Errorf("kube config secret %s.%s has no KubeConfig value for key %v", meta.Namespace, meta.Name, Key) } FailedToConvertSecretToRestConfig = func(err error) error { return eris.Wrap(err, "Could not convert config to *rest.Config") } )
View Source
var ( FailedToReadCAFile = func(err error, fileName string) error { return eris.Wrapf(err, "Failed to read kubeconfig CA file: %s", fileName) } )
View Source
var Predicate = predicate.Funcs{ CreateFunc: func(e event.CreateEvent) bool { return isKubeConfigSecret(e.Object) }, DeleteFunc: func(e event.DeleteEvent) bool { return isKubeConfigSecret(e.Object) }, UpdateFunc: func(e event.UpdateEvent) bool { if isKubeConfigSecret(e.ObjectNew) { oldSecret, newSecret := e.ObjectOld.(*corev1.Secret), e.ObjectNew.(*corev1.Secret) return !reflect.DeepEqual(oldSecret.Data, newSecret.Data) } return false }, GenericFunc: func(e event.GenericEvent) bool { return isKubeConfigSecret(e.Object) }, }
Functions ¶
func BuildRemoteCfg ¶
func SecretToConfig ¶
func SecretToConfig(secret *kubev1.Secret) (clusterName string, config clientcmd.ClientConfig, err error)
SecretToConfig extracts the cluster name and *Config from a KubeConfig secret. If the provided secret is not a KubeConfig secret, an error is returned.
Types ¶
type KubeLoader ¶
type KubeLoader interface { GetRestConfigForContext(path string, context string) (*rest.Config, error) GetRawConfigForContext(path, context string) (clientcmdapi.Config, error) GetClientConfigForContext(path, context string) (clientcmd.ClientConfig, error) GetRestConfigFromBytes(config []byte) (*rest.Config, error) }
Source Files ¶
Click to show internal directories.
Click to hide internal directories.