controllertools

package module
v0.0.1-alpha.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 4, 2022 License: Apache-2.0 Imports: 16 Imported by: 0

README

controller-tools

Helpers for writing kubernetes controllers

Examples

Integration Tests
package something_test

import (
	corev1 "k8s.io/api/core/v1"
	"k8s.io/client-go/kubernetes/scheme"
	"k8s.io/client-go/rest"
	"sigs.k8s.io/controller-runtime/pkg/client"
	"sigs.k8s.io/controller-runtime/pkg/envtest"

	"github.com/johnhoman/controller-tools/manager"

	. "github.com/onsi/ginkgo"
	. "github.com/onsi/gomega"
)

var cfg *rest.Config
var testEnv *envtest.Environment

var _ = BeforeSuite(func() {
    testEnv = &envtest.Environment{}
    var err error
    cfg, err = testEnv.Start()
    Expect(err).ToNot(HaveOccurred())
    Expect(cfg).ToNot(BeNil())
})

var _ = AfterSuite(func() {
    Expect(testEnv.Stop()).To(Succeed())
})

var _ = Describe("TestCase", func() {
    var mgr manager.IntegrationTest
    BeforeEach(func() {
        mgr = manager.IntegrationTestBuilder().
            WithScheme(scheme.Scheme).
            Complete(cfg)
        mgr.StartManager()
    })
    AfterEach(func() {
        mgr.StopManager()
    })
    It("Create a configmap", func() {
        cm := &corev1.ConfigMap{}
        cm.SetName("test-configmap-1")

        // mgr is set up with a namespaced client and a context
        mgr.Expect().Create(cm).To(Succeed())

        // To wait for the configmap to become available (e.g. asynchronous)
        cm = &corev1.ConfigMap{}
        mgr.Eventually().Get(types.NamespacedName{Name: "test-configmap-1"}, cm).Should(Succeed())
        Expect(cm.GetName()).To(Equal("test-configmap-1"))
    })
}) 

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

func NewManager

func NewManager(cfg *rest.Config, scheme *runtime.Scheme, opts ...func(options ctrl.Options)) *Manager

func (*Manager) Add

func (m *Manager) Add(runnable manager.Runnable) error

func (*Manager) AddHealthzCheck

func (m *Manager) AddHealthzCheck(name string, check healthz.Checker) error

func (*Manager) AddMetricsExtraHandler

func (m *Manager) AddMetricsExtraHandler(path string, handler http.Handler) error

func (*Manager) AddReadyzCheck

func (m *Manager) AddReadyzCheck(name string, check healthz.Checker) error

func (*Manager) Elected

func (m *Manager) Elected() <-chan struct{}

func (*Manager) GetAPIReader

func (m *Manager) GetAPIReader() client.Reader

func (*Manager) GetCache

func (m *Manager) GetCache() cache.Cache

func (*Manager) GetClient

func (m *Manager) GetClient() client.Client

func (*Manager) GetConfig

func (m *Manager) GetConfig() *rest.Config

func (*Manager) GetContext

func (m *Manager) GetContext() context.Context

func (*Manager) GetControllerOptions

func (m *Manager) GetControllerOptions() v1alpha1.ControllerConfigurationSpec

func (*Manager) GetEventRecorderFor

func (m *Manager) GetEventRecorderFor(name string) record.EventRecorder

func (*Manager) GetFieldIndexer

func (m *Manager) GetFieldIndexer() client.FieldIndexer

func (*Manager) GetLogger

func (m *Manager) GetLogger() logr.Logger

func (*Manager) GetNamespace

func (m *Manager) GetNamespace() string

func (*Manager) GetRESTMapper

func (m *Manager) GetRESTMapper() meta.RESTMapper

func (*Manager) GetScheme

func (m *Manager) GetScheme() *runtime.Scheme

func (*Manager) GetWebhookServer

func (m *Manager) GetWebhookServer() *webhook.Server

func (*Manager) NamespacedClient

func (m *Manager) NamespacedClient() client.Client

func (*Manager) RandomNamespace

func (m *Manager) RandomNamespace() (*corev1.Namespace, client.Client, error)

func (*Manager) SetFields

func (m *Manager) SetFields(i interface{}) error

func (*Manager) Start

func (m *Manager) Start(ctx context.Context) error

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL