Documentation ¶
Overview ¶
Package kubecertagent provides controllers that ensure a pod (the kube-cert-agent), is co-located with the Kubernetes controller manager so that Pinniped can access its signing keys.
Index ¶
Constants ¶
const ( // ControllerManagerNamespace is the assumed namespace of the kube-controller-manager pod(s). ControllerManagerNamespace = "kube-system" ClusterInfoNamespace = "kube-public" )
Variables ¶
This section is empty.
Functions ¶
func NewAgentController ¶ added in v0.8.0
func NewAgentController( cfg AgentConfig, client *kubeclient.Client, kubeSystemPods corev1informers.PodInformer, agentDeployments appsv1informers.DeploymentInformer, agentPods corev1informers.PodInformer, kubePublicConfigMaps corev1informers.ConfigMapInformer, credentialIssuers configv1alpha1informers.CredentialIssuerInformer, dynamicCertProvider dynamiccert.Private, ) controllerlib.Controller
NewAgentController returns a controller that manages the kube-cert-agent Deployment. It also is tasked with updating the CredentialIssuer with any errors that it encounters.
func NewLegacyPodCleanerController ¶ added in v0.8.0
func NewLegacyPodCleanerController( cfg AgentConfig, client *kubeclient.Client, agentPods corev1informers.PodInformer, log plog.Logger, ) controllerlib.Controller
NewLegacyPodCleanerController returns a controller that cleans up legacy kube-cert-agent Pods created by Pinniped v0.7.0 and below.
Types ¶
type AgentConfig ¶ added in v0.8.0
type AgentConfig struct { // Namespace in which agent pods will be created. Namespace string // ContainerImage specifies the container image used for the agent pods. ContainerImage string // NamePrefix will be prefixed to all agent pod names. NamePrefix string // ServiceAccountName is the service account under which to run the agent pods. ServiceAccountName string // ContainerImagePullSecrets is a list of names of Kubernetes Secret objects that will be used as // ImagePullSecrets on the kube-cert-agent pods. ContainerImagePullSecrets []string // CredentialIssuerName specifies the CredentialIssuer to be created/updated. CredentialIssuerName string // Labels to be applied to the CredentialIssuer and agent pods. Labels map[string]string // DiscoveryURLOverride is the Kubernetes server endpoint to report in the CredentialIssuer, overriding any // value discovered in the kube-public/cluster-info ConfigMap. DiscoveryURLOverride *string }
AgentConfig is the configuration for the kube-cert-agent controller.
type PodCommandExecutor ¶
type PodCommandExecutor interface {
Exec(ctx context.Context, podNamespace string, podName string, containerName string, commandAndArgs ...string) (stdoutResult string, err error)
}
PodCommandExecutor can exec a command in a pod located via namespace and name.
func NewPodCommandExecutor ¶
func NewPodCommandExecutor(kubeConfig *restclient.Config, kubeClient kubernetes.Interface) PodCommandExecutor
NewPodCommandExecutor returns a PodCommandExecutor that will interact with a pod via the provided kubeConfig and corresponding kubeClient.