Package envtest provides libraries for integration testing by starting a local control plane



    View Source
    const (
    	StartTimeout = 60
    	StopTimeout  = 60

      Default binary path for test framework


      View Source
      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 }}",

        DefaultKubeAPIServerFlags are default flags necessary to bring up apiserver.


        func CreateCRDs

        func CreateCRDs(config *rest.Config, crds []*apiextensionsv1beta1.CustomResourceDefinition) error

          CreateCRDs creates the CRDs

          func InstallCRDs

            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


              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
                	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

                  Environment creates a Kubernetes test environment that will start / stop the Kubernetes control plane and install extension APIs

                  func (*Environment) Start

                  func (te *Environment) Start() (*rest.Config, error)

                    Start starts a local Kubernetes server and updates te.ApiserverPort with the port it is listening on

                    func (*Environment) Stop

                    func (te *Environment) Stop() error

                      Stop stops a running server

                      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 It's re-exported here to avoid compatibility breakage/mass rewrites.


                        Path Synopsis