Documentation ¶
Overview ¶
Package envtest provides libraries for integration testing by starting a local control plane
Control plane binaries (etcd and kube-apiserver) are loaded by default from /usr/local/kubebuilder/bin. This can be overridden by setting the KUBEBUILDER_ASSETS environment variable, or by directly creating a ControlPlane for the Environment to use.
Environment can also be configured to work with an existing cluster, and simply load CRDs and provide client configuration.
Index ¶
- Constants
- Variables
- func CreateCRDs(config *rest.Config, crds []*apiextensionsv1beta1.CustomResourceDefinition) error
- func InstallCRDs(config *rest.Config, options CRDInstallOptions) ([]*apiextensionsv1beta1.CustomResourceDefinition, error)
- func WaitForCRDs(config *rest.Config, crds []*apiextensionsv1beta1.CustomResourceDefinition, ...) error
- type CRDInstallOptions
- type Environment
- type NewlineReporter
Constants ¶
const ( StartTimeout = 60 StopTimeout = 60 )
Default binary path for test framework
Variables ¶
var DefaultKubeAPIServerFlags = []string{
"--etcd-servers={{ if .EtcdURL }}{{ .EtcdURL.String }}{{ end }}",
"--cert-dir={{ .CertDir }}",
"--insecure-port={{ if .URL }}{{ .URL.Port }}{{ end }}",
"--insecure-bind-address={{ if .URL }}{{ .URL.Hostname }}{{ end }}",
"--secure-port={{ if .SecurePort }}{{ .SecurePort }}{{ end }}",
"--admission-control=AlwaysAdmit",
}
DefaultKubeAPIServerFlags are default flags necessary to bring up apiserver.
Functions ¶
func CreateCRDs ¶
func CreateCRDs(config *rest.Config, crds []*apiextensionsv1beta1.CustomResourceDefinition) error
CreateCRDs creates the CRDs
func InstallCRDs ¶
func InstallCRDs(config *rest.Config, options CRDInstallOptions) ([]*apiextensionsv1beta1.CustomResourceDefinition, error)
InstallCRDs installs a collection of CRDs into a cluster by reading the crd yaml files from a directory
func WaitForCRDs ¶
func WaitForCRDs(config *rest.Config, crds []*apiextensionsv1beta1.CustomResourceDefinition, options CRDInstallOptions) error
WaitForCRDs waits for the CRDs to appear in discovery
Types ¶
type CRDInstallOptions ¶
type CRDInstallOptions struct { // Paths is the path to the directory containing CRDs Paths []string // CRDs is a list of CRDs to install CRDs []*apiextensionsv1beta1.CustomResourceDefinition // ErrorIfPathMissing will cause an error if a Path does not exist ErrorIfPathMissing bool // contains filtered or unexported fields }
CRDInstallOptions are the options for installing CRDs
type Environment ¶
type Environment struct { // ControlPlane is the ControlPlane including the apiserver and etcd ControlPlane integration.ControlPlane // Config can be used to talk to the apiserver. It's automatically // populated if not set using the standard controller-runtime config // loading. Config *rest.Config // CRDs is a list of CRDs to install CRDs []*apiextensionsv1beta1.CustomResourceDefinition // CRDDirectoryPaths is a list of paths containing CRD yaml or json configs. CRDDirectoryPaths []string // UseExisting indicates that this environments should use an // existing kubeconfig, instead of trying to stand up a new control plane. // This is useful in cases that need aggregated API servers and the like. UseExistingCluster *bool // ControlPlaneStartTimeout is the maximum duration each controlplane component // may take to start. It defaults to the KUBEBUILDER_CONTROLPLANE_START_TIMEOUT // environment variable or 20 seconds if unspecified ControlPlaneStartTimeout time.Duration // ControlPlaneStopTimeout is the maximum duration each controlplane component // may take to stop. It defaults to the KUBEBUILDER_CONTROLPLANE_STOP_TIMEOUT // environment variable or 20 seconds if unspecified ControlPlaneStopTimeout time.Duration // KubeAPIServerFlags is the set of flags passed while starting the api server. KubeAPIServerFlags []string // AttachControlPlaneOutput indicates if control plane output will be attached to os.Stdout and os.Stderr. // Enable this to get more visibility of the testing control plane. // It respect KUBEBUILDER_ATTACH_CONTROL_PLANE_OUTPUT environment variable. AttachControlPlaneOutput bool }
Environment creates a Kubernetes test environment that will start / stop the Kubernetes control plane and install extension APIs
type NewlineReporter ¶
type NewlineReporter = printer.NewlineReporter
NewlineReporter is Reporter that Prints a newline after the default Reporter output so that the results are correctly parsed by test automation. See issue https://github.com/jstemmer/go-junit-report/issues/31 It's re-exported here to avoid compatibility breakage/mass rewrites.