container

package
v0.2.0 Latest Latest
Warning

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

Go to latest
Published: Jun 6, 2020 License: Apache-2.0 Imports: 6 Imported by: 1

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Filter

type Filter struct {

	// Image is the container image to use to create a container.
	Image string `yaml:"image,omitempty"`

	// Network is the container network to use.
	Network string `yaml:"network,omitempty"`

	// StorageMounts is a list of storage options that the container will have mounted.
	StorageMounts []runtimeutil.StorageMount `yaml:"mounts,omitempty"`

	Exec runtimeexec.Filter
}

Filter filters Resources using a container image. The container must start a process that reads the list of input Resources from stdin, reads the Configuration from the env API_CONFIG, and writes the filtered Resources to stdout. If there is a error or validation failure, the process must exit non-zero. The full set of environment variables from the parent process are passed to the container.

Function Scoping: Filter applies the function only to Resources to which it is scoped.

Resources are scoped to a function if any of the following are true:

  • the Resource were read from the same directory as the function config
  • the Resource were read from a subdirectory of the function config directory
  • the function config is in a directory named "functions" and they were read from a subdirectory of "functions" parent
  • the function config doesn't have a path annotation (considered globally scoped)
  • the Filter has GlobalScope == true

In Scope Examples:

Example 1: deployment.yaml and service.yaml in function.yaml scope

       same directory as the function config directory
.
├── function.yaml
├── deployment.yaml
└── service.yaml

Example 2: apps/deployment.yaml and apps/service.yaml in function.yaml scope

       subdirectory of the function config directory
.
├── function.yaml
└── apps
    ├── deployment.yaml
    └── service.yaml

Example 3: apps/deployment.yaml and apps/service.yaml in functions/function.yaml scope

       function config is in a directory named "functions"
.
├── functions
│   └── function.yaml
└── apps
    ├── deployment.yaml
    └── service.yaml

Out of Scope Examples:

Example 1: apps/deployment.yaml and apps/service.yaml NOT in stuff/function.yaml scope

.
├── stuff
│   └── function.yaml
└── apps
    ├── deployment.yaml
    └── service.yaml

Example 2: apps/deployment.yaml and apps/service.yaml NOT in stuff/functions/function.yaml scope

   .
   ├── stuff
   │   └── functions
   │       └── function.yaml
   └── apps
       ├── deployment.yaml
       └── service.yaml

Default Paths: Resources emitted by functions will have default path applied as annotations if none is present. The default path will be the function-dir/ (or parent directory in the case of "functions") + function-file-name/ + namespace/ + kind_name.yaml

Example 1: Given a function in fn.yaml that produces a Deployment name foo and a Service named bar

dir
└── fn.yaml

Would default newly generated Resources to:

dir
├── fn.yaml
└── fn
    ├── deployment_foo.yaml
    └── service_bar.yaml

Example 2: Given a function in functions/fn.yaml that produces a Deployment name foo and a Service named bar

dir
└── fn.yaml

Would default newly generated Resources to:

dir
├── functions
│   └── fn.yaml
└── fn
    ├── deployment_foo.yaml
    └── service_bar.yaml

Example 3: Given a function in fn.yaml that produces a Deployment name foo, namespace baz and a Service named bar namespace baz

dir
└── fn.yaml

Would default newly generated Resources to:

dir
├── fn.yaml
└── fn
    └── baz
        ├── deployment_foo.yaml
        └── service_bar.yaml

func (*Filter) Filter

func (c *Filter) Filter(nodes []*yaml.RNode) ([]*yaml.RNode, error)

func (Filter) GetExit

func (c Filter) GetExit() error

func (Filter) String

func (c Filter) String() string

Jump to

Keyboard shortcuts

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