# Functions

APIServerArguments is an internal-only (NEVER SHOULD BE EXPOSED) function that sets up the API server just before starting it, without actually starting it.
KubeConfigFromREST reverse-engineers a kubeconfig file from a rest.Config.
NewCertAuthn creates a new client-cert-based Authn with a new CA.
PrepareAPIServer is an internal-only (NEVER SHOULD BE EXPOSED) function that sets up the API server just before starting it, without actually starting it.

# Variables

APIServerDefaultArgs exposes the default args for the APIServer so that you can use those to append your own additional arguments.
EtcdDefaultArgs exposes the default args for Etcd so that you can use those to append your own additional arguments.
NewTinyCA creates a new a tiny CA utility for provisioning serving certs and client certs FOR TESTING ONLY.

# Structs

APIServer knows how to run a kubernetes apiserver.
AuthenticatedUser contains access information for an provisioned user, including REST config, kubeconfig contents, and access to a KubeCtl instance.
CertAuthn is an authenticator (Authn) that makes use of client certificate authn.
ControlPlane is a struct that knows how to start your test control plane.
Etcd knows how to run an etcd server.
KubeCtl is a wrapper around the kubectl binary.
SecureServing provides/configures how the API server serves on the secure port.
User represents a Kubernetes user.

# Interfaces

Authn knows how to configure an API server for a particular type of authentication, and provision users under that authentication scheme.