Documentation ¶
Overview ¶
Package environment describes the operating environment for Tiller.
Tiller's environment encapsulates all of the service dependencies Tiller has. These dependencies are expressed as interfaces so that alternate implementations (mocks, etc.) can be easily generated.
Index ¶
- Constants
- Variables
- type Engine
- type EngineYard
- type Environment
- type KubeClient
- type PrintingKubeClient
- func (p *PrintingKubeClient) Build(ns string, reader io.Reader) (kube.Result, error)
- func (p *PrintingKubeClient) BuildUnstructured(ns string, reader io.Reader) (kube.Result, error)
- func (p *PrintingKubeClient) Create(ns string, r io.Reader, timeout int64, shouldWait bool) error
- func (p *PrintingKubeClient) Delete(ns string, r io.Reader) error
- func (p *PrintingKubeClient) Get(ns string, r io.Reader) (string, error)
- func (p *PrintingKubeClient) Update(ns string, currentReader, modifiedReader io.Reader, force bool, recreate bool, ...) error
- func (p *PrintingKubeClient) WaitAndGetCompletedPodPhase(namespace string, reader io.Reader, timeout time.Duration) (api.PodPhase, error)
- func (p *PrintingKubeClient) WatchUntilReady(ns string, r io.Reader, timeout int64, shouldWait bool) error
Constants ¶
const DefaultTillerNamespace = "kube-system"
DefaultTillerNamespace is the default namespace for Tiller.
const GoTplEngine = "gotpl"
GoTplEngine is the name of the Go template engine, as registered in the EngineYard.
Variables ¶
var DefaultEngine = GoTplEngine
DefaultEngine points to the engine that the EngineYard should treat as the default. A chart that does not specify an engine may be run through the default engine.
Functions ¶
This section is empty.
Types ¶
type Engine ¶
type Engine interface { // Render renders a chart. // // It receives a chart, a config, and a map of overrides to the config. // Overrides are assumed to be passed from the system, not the user. Render(*chart.Chart, chartutil.Values) (map[string]string, error) }
Engine represents a template engine that can render templates.
For some engines, "rendering" includes both compiling and executing. (Other engines do not distinguish between phases.)
The engine returns a map where the key is the named output entity (usually a file name) and the value is the rendered content of the template.
An Engine must be capable of executing multiple concurrent requests, but without tainting one request's environment with data from another request.
type EngineYard ¶
EngineYard maps engine names to engine implementations.
func (EngineYard) Default ¶
func (y EngineYard) Default() Engine
Default returns the default template engine.
The default is specified by DefaultEngine.
If the default template engine cannot be found, this panics.
func (EngineYard) Get ¶
func (y EngineYard) Get(k string) (Engine, bool)
Get retrieves a template engine by name.
If no matching template engine is found, the second return value will be false.
type Environment ¶
type Environment struct { // EngineYard provides access to the known template engines. EngineYard EngineYard // Releases stores records of releases. Releases *storage.Storage // KubeClient is a Kubernetes API client. KubeClient KubeClient }
Environment provides the context for executing a client request.
All services in a context are concurrency safe.
type KubeClient ¶
type KubeClient interface { // Create creates one or more resources. // // namespace must contain a valid existing namespace. // // reader must contain a YAML stream (one or more YAML documents separated // by "\n---\n"). Create(namespace string, reader io.Reader, timeout int64, shouldWait bool) error // Get gets one or more resources. Returned string hsa the format like kubectl // provides with the column headers separating the resource types. // // namespace must contain a valid existing namespace. // // reader must contain a YAML stream (one or more YAML documents separated // by "\n---\n"). Get(namespace string, reader io.Reader) (string, error) // Delete destroys one or more resources. // // namespace must contain a valid existing namespace. // // reader must contain a YAML stream (one or more YAML documents separated // by "\n---\n"). Delete(namespace string, reader io.Reader) error // Watch the resource in reader until it is "ready". // // For Jobs, "ready" means the job ran to completion (excited without error). // For all other kinds, it means the kind was created or modified without // error. WatchUntilReady(namespace string, reader io.Reader, timeout int64, shouldWait bool) error // Update updates one or more resources or creates the resource // if it doesn't exist. // // namespace must contain a valid existing namespace. // // reader must contain a YAML stream (one or more YAML documents separated // by "\n---\n"). Update(namespace string, originalReader, modifiedReader io.Reader, force bool, recreate bool, timeout int64, shouldWait bool) error Build(namespace string, reader io.Reader) (kube.Result, error) BuildUnstructured(namespace string, reader io.Reader) (kube.Result, error) // WaitAndGetCompletedPodPhase waits up to a timeout until a pod enters a completed phase // and returns said phase (PodSucceeded or PodFailed qualify). WaitAndGetCompletedPodPhase(namespace string, reader io.Reader, timeout time.Duration) (api.PodPhase, error) }
KubeClient represents a client capable of communicating with the Kubernetes API.
A KubeClient must be concurrency safe.
type PrintingKubeClient ¶
PrintingKubeClient implements KubeClient, but simply prints the reader to the given output.
func (*PrintingKubeClient) Build ¶
Build implements KubeClient Build.
func (*PrintingKubeClient) BuildUnstructured ¶
BuildUnstructured implements KubeClient BuildUnstructured.
func (*PrintingKubeClient) Create ¶
Create prints the values of what would be created with a real KubeClient.
func (*PrintingKubeClient) Delete ¶
func (p *PrintingKubeClient) Delete(ns string, r io.Reader) error
Delete implements KubeClient delete.
It only prints out the content to be deleted.
func (*PrintingKubeClient) Get ¶
Get prints the values of what would be created with a real KubeClient.
func (*PrintingKubeClient) Update ¶
func (p *PrintingKubeClient) Update(ns string, currentReader, modifiedReader io.Reader, force bool, recreate bool, timeout int64, shouldWait bool) error
Update implements KubeClient Update.