crd

package
v0.0.0-...-a1f2fe4 Latest Latest
Warning

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

Go to latest
Published: Nov 28, 2017 License: Apache-2.0 Imports: 33 Imported by: 0

Documentation

Overview

Package crd provides the store interface to config resources stored as kubernetes custom resource definitions (CRDs).

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func NewStore

func NewStore(u *url.URL) (store.Store2Backend, error)

NewStore creates a new Store instance.

func Register

func Register(builders map[string]store.Store2Builder)

Register registers this module as a Store2Backend. Do not use 'init()' for automatic registration; linker will drop the whole module because it looks unused.

Types

type AdmissionController

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

AdmissionController implements the external admission webhook for validation of pilot configuration.

func NewController

func NewController(client kubernetes.Interface, options ControllerOptions) (*AdmissionController, error)

NewController creates a new instance of the admission webhook controller.

func (*AdmissionController) Run

func (ac *AdmissionController) Run(stop <-chan struct{})

Run implements the admission controller run loop.

func (*AdmissionController) ServeHTTP

func (ac *AdmissionController) ServeHTTP(w http.ResponseWriter, r *http.Request)

ServeHTTP implements the external admission webhook.

type ControllerOptions

type ControllerOptions struct {
	// The name of the resources this controller can admit.
	ResourceNames []string

	// ExternalAdmissionWebhookName is the name of the
	// ExternalAdmissionHook which describes he external admission
	// webhook and resources and operations it applies to.
	ExternalAdmissionWebhookName string

	// ServiceName is the service name of the webhook.
	ServiceName string

	// ServiceNamespace is the namespace of the webhook service.
	ServiceNamespace string

	// ValidateNamespaces is a list of names to validate. Any
	// namespace not in this list is unconditionally validated as
	// good. This is useful when multiple validators are running in
	// the same cluster managing different sets of namespaces
	// (e.g. shared test clusters). Not for production use.
	ValidateNamespaces []string

	// SecretName is the name of k8s secret that contains the webhook
	// server key/cert and corresponding CA cert that signed them. The
	// server key/cert are used to serve the webhook and the CA cert
	// is provided to k8s apiserver during admission controller
	// registration.
	SecretName string

	// Port where the webhook is served. Per k8s admission
	// registration requirements this should be 443 unless there is
	// only a single port for the service.
	Port int

	// RegistrationDelay controls how long admission registration
	// occurs after the webhook is started. This is used to avoid
	// potential races where registration completes and k8s apiserver
	// invokes the webhook before the HTTP server is started.
	RegistrationDelay time.Duration

	// Validator defines the actual logic of validating data.
	Validator store.BackendValidator
}

ControllerOptions contains the configuration for the Istio Pilot validation admission controller.

type Store

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

Store offers store.Store2Backend interface through kubernetes custom resource definitions.

func (*Store) Get

func (s *Store) Get(key store.Key) (*store.BackEndResource, error)

Get implements store.Store2Backend interface.

func (*Store) Init

func (s *Store) Init(ctx context.Context, kinds []string) error

Init implements store.Store2Backend interface.

func (*Store) List

func (s *Store) List() map[store.Key]*store.BackEndResource

List implements store.Store2Backend interface.

func (*Store) OnAdd

func (s *Store) OnAdd(obj interface{})

OnAdd implements cache.ResourceEventHandler interface.

func (*Store) OnDelete

func (s *Store) OnDelete(obj interface{})

OnDelete implements cache.ResourceEventHandler interface.

func (*Store) OnUpdate

func (s *Store) OnUpdate(oldObj, newObj interface{})

OnUpdate implements cache.ResourceEventHandler interface.

func (*Store) Watch

func (s *Store) Watch(ctx context.Context) (<-chan store.BackendEvent, error)

Watch implements store.Store2Backend interface.

Jump to

Keyboard shortcuts

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