Documentation ¶
Overview ¶
Package types contains structs representing the various types in the app container specification. It is used by the [schema manifest types](../) to enforce validation.
Index ¶
- Constants
- Variables
- func AddIsolatorName(n ACIdentifier, ns map[ACIdentifier]struct{})
- func AddIsolatorValueConstructor(n ACIdentifier, i IsolatorValueConstructor)
- func IsValidOSArch(labels map[ACIdentifier]string, validOSArch map[string][]string) error
- func SanitizeACIdentifier(s string) (string, error)
- func SanitizeACName(s string) (string, error)
- func ShortHash(hash string) string
- func ToAppcOSArch(goOs string, goArch string, goArchFlavor string) (appcOs string, appcArch string, e error)
- func ToGoOSArch(appcOs string, appcArch string) (goOs string, goArch string, goArchFlavor string, e error)
- type ACIdentifier
- type ACIdentifierError
- type ACKind
- type ACKindError
- type ACName
- type ACNameError
- type ACVersionError
- type Annotation
- type Annotations
- type App
- type AsIsolator
- type Date
- type Dependencies
- type Dependency
- type Environment
- type EnvironmentVariable
- type EventHandler
- type Exec
- type ExposedPort
- type Hash
- type Isolator
- type IsolatorValue
- type IsolatorValueConstructor
- type Isolators
- type Label
- type Labels
- type LinuxCPUShares
- type LinuxCapabilitiesRetainSet
- func (l LinuxCapabilitiesRetainSet) AsIsolator() (*Isolator, error)
- func (l LinuxCapabilitiesRetainSet) AssertValid() error
- func (l LinuxCapabilitiesRetainSet) Conflicts() []ACIdentifier
- func (l LinuxCapabilitiesRetainSet) Set() []LinuxCapability
- func (l *LinuxCapabilitiesRetainSet) UnmarshalJSON(b []byte) error
- type LinuxCapabilitiesRevokeSet
- func (l LinuxCapabilitiesRevokeSet) AsIsolator() (*Isolator, error)
- func (l LinuxCapabilitiesRevokeSet) AssertValid() error
- func (l LinuxCapabilitiesRevokeSet) Conflicts() []ACIdentifier
- func (l LinuxCapabilitiesRevokeSet) Set() []LinuxCapability
- func (l *LinuxCapabilitiesRevokeSet) UnmarshalJSON(b []byte) error
- type LinuxCapabilitiesSet
- type LinuxCapability
- type LinuxNoNewPrivileges
- type LinuxOOMScoreAdj
- type LinuxSELinuxContext
- func (l LinuxSELinuxContext) AsIsolator() (*Isolator, error)
- func (l LinuxSELinuxContext) AssertValid() error
- func (l LinuxSELinuxContext) Conflicts() []ACIdentifier
- func (l LinuxSELinuxContext) Level() LinuxSELinuxLevel
- func (l LinuxSELinuxContext) Role() LinuxSELinuxRole
- func (l LinuxSELinuxContext) Type() LinuxSELinuxType
- func (l *LinuxSELinuxContext) UnmarshalJSON(b []byte) error
- func (l LinuxSELinuxContext) User() LinuxSELinuxUser
- type LinuxSELinuxLevel
- type LinuxSELinuxRole
- type LinuxSELinuxType
- type LinuxSELinuxUser
- type LinuxSeccompEntry
- type LinuxSeccompErrno
- type LinuxSeccompRemoveSet
- func (l LinuxSeccompRemoveSet) AsIsolator() (*Isolator, error)
- func (l LinuxSeccompRemoveSet) AssertValid() error
- func (l LinuxSeccompRemoveSet) Conflicts() []ACIdentifier
- func (l LinuxSeccompRemoveSet) Errno() LinuxSeccompErrno
- func (l LinuxSeccompRemoveSet) Set() []LinuxSeccompEntry
- func (l *LinuxSeccompRemoveSet) UnmarshalJSON(b []byte) error
- type LinuxSeccompRetainSet
- func (l LinuxSeccompRetainSet) AsIsolator() (*Isolator, error)
- func (l LinuxSeccompRetainSet) AssertValid() error
- func (l LinuxSeccompRetainSet) Conflicts() []ACIdentifier
- func (l LinuxSeccompRetainSet) Errno() LinuxSeccompErrno
- func (l LinuxSeccompRetainSet) Set() []LinuxSeccompEntry
- func (l *LinuxSeccompRetainSet) UnmarshalJSON(b []byte) error
- type LinuxSeccompSet
- type MountPoint
- type Port
- type Resource
- type ResourceBase
- type ResourceBlockBandwidth
- type ResourceBlockIOPS
- type ResourceCPU
- type ResourceMemory
- type ResourceNetworkBandwidth
- type SemVer
- type URL
- type UUID
- type UnixSysctl
- type UserAnnotations
- type UserLabels
- type Volume
Constants ¶
const ( LinuxCapabilitiesRetainSetName = "os/linux/capabilities-retain-set" LinuxCapabilitiesRevokeSetName = "os/linux/capabilities-remove-set" LinuxNoNewPrivilegesName = "os/linux/no-new-privileges" LinuxSeccompRemoveSetName = "os/linux/seccomp-remove-set" LinuxSeccompRetainSetName = "os/linux/seccomp-retain-set" LinuxOOMScoreAdjName = "os/linux/oom-score-adj" LinuxSELinuxContextName = "os/linux/selinux-context" )
const ( ResourceBlockBandwidthName = "resource/block-bandwidth" ResourceBlockIOPSName = "resource/block-iops" ResourceCPUName = "resource/cpu" ResourceMemoryName = "resource/memory" ResourceNetworkBandwidthName = "resource/network-bandwidth" )
const (
//TODO(lucab): add "ulimit" isolators
UnixSysctlName = "os/unix/sysctl"
)
Variables ¶
var ( // ValidACIdentifier is a regular expression that defines a valid ACIdentifier ValidACIdentifier = regexp.MustCompile("^[a-z0-9]+([-._~/][a-z0-9]+)*$") ErrEmptyACIdentifier = ACIdentifierError("ACIdentifier cannot be empty") ErrInvalidEdgeInACIdentifier = ACIdentifierError("ACIdentifier must start and end with only lower case " + "alphanumeric characters") ErrInvalidCharInACIdentifier = ACIdentifierError("ACIdentifier must contain only lower case " + `alphanumeric characters plus "-._~/"`) )
var ( // ValidACName is a regular expression that defines a valid ACName ValidACName = regexp.MustCompile("^[a-z0-9]+([-][a-z0-9]+)*$") ErrEmptyACName = ACNameError("ACName cannot be empty") ErrInvalidEdgeInACName = ACNameError("ACName must start and end with only lower case " + "alphanumeric characters") ErrInvalidCharInACName = ACNameError("ACName must contain only lower case " + `alphanumeric characters plus "-"`) )
var ( // ErrIncompatibleIsolator is returned whenever an Isolators set contains // conflicting IsolatorValue instances ErrIncompatibleIsolator = errors.New("isolators set contains incompatible types") // ErrInvalidIsolator is returned upon validation failures due to improper // or partially constructed Isolator instances (eg. from incomplete direct construction) ErrInvalidIsolator = errors.New("invalid isolator") )
var ( ErrDefaultTrue = errors.New("default must be false") ErrDefaultRequired = errors.New("default must be true") ErrRequestNonEmpty = errors.New("request not supported by this resource, must be empty") ResourceIsolatorNames = make(map[ACIdentifier]struct{}) )
var ( ErrNoZeroSemVer = ACVersionError("SemVer cannot be zero") ErrBadSemVer = ACVersionError("SemVer is bad") )
var (
ErrNoACKind = ACKindError("ACKind must be set")
)
var (
ErrNoEmptyUUID = errors.New("UUID cannot be empty")
)
var LinuxIsolatorNames = make(map[ACIdentifier]struct{})
var (
UnixIsolatorNames = make(map[ACIdentifier]struct{})
)
var ValidOSArch = map[string][]string{
"linux": {"amd64", "i386", "aarch64", "aarch64_be", "armv6l", "armv7l", "armv7b", "ppc64", "ppc64le", "s390x"},
"freebsd": {"amd64", "i386", "arm"},
"darwin": {"x86_64", "i386"},
}
Functions ¶
func AddIsolatorName ¶ added in v0.6.1
func AddIsolatorName(n ACIdentifier, ns map[ACIdentifier]struct{})
func AddIsolatorValueConstructor ¶ added in v0.4.0
func AddIsolatorValueConstructor(n ACIdentifier, i IsolatorValueConstructor)
func IsValidOSArch ¶ added in v0.7.0
func IsValidOSArch(labels map[ACIdentifier]string, validOSArch map[string][]string) error
IsValidOsArch checks if a OS-architecture combination is valid given a map of valid OS-architectures
func SanitizeACIdentifier ¶ added in v0.6.0
SanitizeACIdentifier replaces every invalid ACIdentifier character in s with an underscore making it a legal ACIdentifier string. If the character is an upper case letter it replaces it with its lower case. It also removes illegal edge characters (hyphens, period, underscore, tilde and slash).
This is a helper function and its algorithm is not part of the spec. It should not be called without the user explicitly asking for a suggestion.
func SanitizeACName ¶ added in v0.4.0
SanitizeACName replaces every invalid ACName character in s with a dash making it a legal ACName string. If the character is an upper case letter it replaces it with its lower case. It also removes illegal edge characters (hyphens).
This is a helper function and its algorithm is not part of the spec. It should not be called without the user explicitly asking for a suggestion.
Types ¶
type ACIdentifier ¶ added in v0.6.0
type ACIdentifier string
ACIdentifier (an App-Container Identifier) is a format used by keys in image names and image labels of the App Container Standard. An ACIdentifier is restricted to numeric and lowercase URI unreserved characters defined in URI RFC[1]; all alphabetical characters must be lowercase only. Furthermore, the first and last character ("edges") must be alphanumeric, and an ACIdentifier cannot be empty. Programmatically, an ACIdentifier must conform to the regular expression ValidACIdentifier.
[1] http://tools.ietf.org/html/rfc3986#section-2.3
func MustACIdentifier ¶ added in v0.6.0
func MustACIdentifier(s string) *ACIdentifier
MustACIdentifier generates a new ACIdentifier from a string, If the given string is not a valid ACIdentifier, it panics.
func NewACIdentifier ¶ added in v0.6.0
func NewACIdentifier(s string) (*ACIdentifier, error)
NewACIdentifier generates a new ACIdentifier from a string. If the given string is not a valid ACIdentifier, nil and an error are returned.
func (ACIdentifier) Empty ¶ added in v0.6.0
func (n ACIdentifier) Empty() bool
Empty returns a boolean indicating whether this ACIdentifier is empty.
func (ACIdentifier) Equals ¶ added in v0.6.0
func (n ACIdentifier) Equals(o ACIdentifier) bool
Equals checks whether a given ACIdentifier is equal to this one.
func (ACIdentifier) MarshalJSON ¶ added in v0.6.0
func (n ACIdentifier) MarshalJSON() ([]byte, error)
MarshalJSON implements the json.Marshaler interface
func (*ACIdentifier) Set ¶ added in v0.6.0
func (n *ACIdentifier) Set(s string) error
Set sets the ACIdentifier to the given value, if it is valid; if not, an error is returned.
func (ACIdentifier) String ¶ added in v0.6.0
func (n ACIdentifier) String() string
func (*ACIdentifier) UnmarshalJSON ¶ added in v0.6.0
func (n *ACIdentifier) UnmarshalJSON(data []byte) error
UnmarshalJSON implements the json.Unmarshaler interface
type ACIdentifierError ¶ added in v0.6.0
type ACIdentifierError string
An ACIdentifierError is returned when a bad value is used for an ACIdentifier
func (ACIdentifierError) Error ¶ added in v0.6.0
func (e ACIdentifierError) Error() string
type ACKind ¶
type ACKind string
ACKind wraps a string to define a field which must be set with one of several ACKind values. If it is unset, or has an invalid value, the field will refuse to marshal/unmarshal.
func (ACKind) MarshalJSON ¶
func (*ACKind) UnmarshalJSON ¶
type ACKindError ¶
type ACKindError string
An ACKindError is returned when the wrong ACKind is set in a manifest
func InvalidACKindError ¶ added in v0.4.0
func InvalidACKindError(kind ACKind) ACKindError
func (ACKindError) Error ¶
func (e ACKindError) Error() string
type ACName ¶
type ACName string
ACName (an App-Container Name) is a format used by keys in different formats of the App Container Standard. An ACName is restricted to numeric and lowercase characters accepted by the DNS RFC[1] plus "-"; all alphabetical characters must be lowercase only. Furthermore, the first and last character ("edges") must be alphanumeric, and an ACName cannot be empty. Programmatically, an ACName must conform to the regular expression ValidACName.
[1] http://tools.ietf.org/html/rfc1123#page-13
func MustACName ¶ added in v0.5.2
MustACName generates a new ACName from a string, If the given string is not a valid ACName, it panics.
func NewACName ¶
NewACName generates a new ACName from a string. If the given string is not a valid ACName, nil and an error are returned.
func (ACName) MarshalJSON ¶
MarshalJSON implements the json.Marshaler interface
func (*ACName) Set ¶ added in v0.2.0
Set sets the ACName to the given value, if it is valid; if not, an error is returned.
func (*ACName) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaler interface
type ACNameError ¶
type ACNameError string
An ACNameError is returned when a bad value is used for an ACName
func (ACNameError) Error ¶
func (e ACNameError) Error() string
type ACVersionError ¶
type ACVersionError string
An ACVersionError is returned when a bad ACVersion is set in a manifest
func (ACVersionError) Error ¶
func (e ACVersionError) Error() string
type Annotation ¶ added in v0.2.0
type Annotation struct { Name ACIdentifier `json:"name"` Value string `json:"value"` }
type Annotations ¶
type Annotations []Annotation
func (Annotations) Get ¶ added in v0.2.0
func (a Annotations) Get(name string) (val string, ok bool)
Retrieve the value of an annotation by the given name from Annotations, if it exists.
func (Annotations) MarshalJSON ¶
func (a Annotations) MarshalJSON() ([]byte, error)
func (*Annotations) Set ¶ added in v0.2.0
func (a *Annotations) Set(name ACIdentifier, value string)
Set sets the value of an annotation by the given name, overwriting if one already exists.
func (*Annotations) UnmarshalJSON ¶
func (a *Annotations) UnmarshalJSON(data []byte) error
type App ¶
type App struct { Exec Exec `json:"exec"` EventHandlers []EventHandler `json:"eventHandlers,omitempty"` User string `json:"user"` Group string `json:"group"` SupplementaryGIDs []int `json:"supplementaryGIDs,omitempty"` WorkingDirectory string `json:"workingDirectory,omitempty"` Environment Environment `json:"environment,omitempty"` MountPoints []MountPoint `json:"mountPoints,omitempty"` Ports []Port `json:"ports,omitempty"` Isolators Isolators `json:"isolators,omitempty"` UserAnnotations UserAnnotations `json:"userAnnotations,omitempty"` UserLabels UserLabels `json:"userLabels,omitempty"` }
func (App) MarshalJSON ¶
func (*App) UnmarshalJSON ¶
type AsIsolator ¶ added in v0.8.5
type Date ¶
Date wraps time.Time to marshal/unmarshal to/from JSON strings in strict accordance with RFC3339 TODO(jonboulle): golang's implementation seems slightly buggy here; according to http://tools.ietf.org/html/rfc3339#section-5.6 , applications may choose to separate the date and time with a space instead of a T character (for example, `date --rfc-3339` on GNU coreutils) - but this is considered an error by go's parser. File a bug?
func (Date) MarshalJSON ¶
func (*Date) UnmarshalJSON ¶
type Dependencies ¶
type Dependencies []Dependency
type Dependency ¶
type Dependency struct { ImageName ACIdentifier `json:"imageName"` ImageID *Hash `json:"imageID,omitempty"` Labels Labels `json:"labels,omitempty"` Size uint `json:"size,omitempty"` }
func (Dependency) MarshalJSON ¶
func (d Dependency) MarshalJSON() ([]byte, error)
func (*Dependency) UnmarshalJSON ¶
func (d *Dependency) UnmarshalJSON(data []byte) error
type Environment ¶ added in v0.3.0
type Environment []EnvironmentVariable
func (Environment) Get ¶ added in v0.3.0
func (e Environment) Get(name string) (value string, ok bool)
Retrieve the value of an environment variable by the given name from Environment, if it exists.
func (Environment) MarshalJSON ¶ added in v0.3.0
func (e Environment) MarshalJSON() ([]byte, error)
func (*Environment) Set ¶ added in v0.3.0
func (e *Environment) Set(name string, value string)
Set sets the value of an environment variable by the given name, overwriting if one already exists.
func (*Environment) UnmarshalJSON ¶ added in v0.3.0
func (e *Environment) UnmarshalJSON(data []byte) error
type EnvironmentVariable ¶ added in v0.3.0
type EventHandler ¶
func (EventHandler) MarshalJSON ¶
func (e EventHandler) MarshalJSON() ([]byte, error)
func (*EventHandler) UnmarshalJSON ¶
func (e *EventHandler) UnmarshalJSON(data []byte) error
type Exec ¶ added in v0.2.0
type Exec []string
func (Exec) MarshalJSON ¶ added in v0.2.0
func (*Exec) UnmarshalJSON ¶ added in v0.2.0
type ExposedPort ¶ added in v0.5.0
type ExposedPort struct { Name ACName `json:"name"` HostPort uint `json:"hostPort"` HostIP net.IP `json:"hostIP,omitempty"` // optional PodPort *Port `json:"podPort,omitempty"` // optional. If missing, try and find a corresponding App's port }
ExposedPort represents a port listening on the host side. The PodPort is optional -- if missing, then try and find the pod-side information by matching names
type Hash ¶
type Hash struct { Val string // contains filtered or unexported fields }
Hash encodes a hash specified in a string of the form:
"<type>-<value>"
for example
"sha512-06c733b1838136838e6d2d3e8fa5aea4c7905e92[...]"
Valid types are currently:
- sha512
func NewHashSHA512 ¶ added in v0.2.0
func (Hash) MarshalJSON ¶
func (*Hash) UnmarshalJSON ¶
type Isolator ¶
type Isolator struct { // Name is the name of the Isolator type as defined in the specification. Name ACIdentifier `json:"name"` // ValueRaw captures the raw JSON value of an Isolator that was // unmarshalled. This field is used for unmarshalling only. It MUST NOT // be referenced by external users of the Isolator struct. It is // exported only to satisfy Go's unfortunate requirement that fields // must be capitalized to be unmarshalled successfully. ValueRaw *json.RawMessage `json:"value"` // contains filtered or unexported fields }
Isolator is a model for unmarshalling isolator types from their JSON-encoded representation.
func (*Isolator) UnmarshalJSON ¶ added in v0.4.0
UnmarshalJSON populates this Isolator from a JSON-encoded representation. To unmarshal the Value of the Isolator, it will use the appropriate constructor as registered by AddIsolatorValueConstructor.
func (*Isolator) Value ¶ added in v0.4.0
func (i *Isolator) Value() IsolatorValue
Value returns the raw Value of this Isolator. Users should perform a type switch/assertion on this value to extract the underlying isolator type.
type IsolatorValue ¶ added in v0.4.0
type IsolatorValue interface { // UnmarshalJSON unserialize a JSON-encoded isolator UnmarshalJSON(b []byte) error // AssertValid returns a non-nil error value if an IsolatorValue is not valid // according to appc spec AssertValid() error // Conflicts returns a list of conflicting isolators types, which cannot co-exist // together with this IsolatorValue Conflicts() []ACIdentifier // contains filtered or unexported methods }
IsolatorValue encapsulates the actual value of an Isolator which may be serialized as any arbitrary JSON blob. Specific Isolator types should implement this interface to facilitate unmarshalling and validation.
type IsolatorValueConstructor ¶ added in v0.4.0
type IsolatorValueConstructor func() IsolatorValue
type Isolators ¶ added in v0.4.0
type Isolators []Isolator
Isolators encapsulates a list of individual Isolators for the ImageManifest and PodManifest schemas.
func (*Isolators) GetByName ¶ added in v0.4.0
func (is *Isolators) GetByName(name ACIdentifier) *Isolator
GetByName returns the last isolator in the list by the given name.
func (*Isolators) ReplaceIsolatorsByName ¶ added in v0.8.5
func (is *Isolators) ReplaceIsolatorsByName(newIs Isolator, oldNames []ACIdentifier)
ReplaceIsolatorsByName overrides matching isolator types with a new isolator, deleting them all and appending the new one instead
func (*Isolators) Unrecognized ¶ added in v0.4.1
Unrecognized returns a set of isolators that are not recognized. An isolator is not recognized if it has not had an associated constructor registered with AddIsolatorValueConstructor.
type Label ¶
type Label struct { Name ACIdentifier `json:"name"` Value string `json:"value"` }
type Labels ¶
type Labels []Label
func LabelsFromMap ¶ added in v0.5.1
func LabelsFromMap(labelsMap map[ACIdentifier]string) (Labels, error)
LabelsFromMap creates Labels from a map[ACIdentifier]string
func (Labels) Get ¶ added in v0.2.0
Get retrieves the value of the label by the given name from Labels, if it exists
func (Labels) MarshalJSON ¶
func (Labels) ToMap ¶ added in v0.5.2
func (l Labels) ToMap() map[ACIdentifier]string
ToMap creates a map[ACIdentifier]string.
func (*Labels) UnmarshalJSON ¶
type LinuxCPUShares ¶ added in v0.8.8
type LinuxCPUShares int
LinuxCPUShares assigns the CPU time share weight to the processes executed. See https://www.freedesktop.org/software/systemd/man/systemd.resource-control.html#CPUShares=weight, https://www.kernel.org/doc/Documentation/scheduler/sched-design-CFS.txt
func NewLinuxCPUShares ¶ added in v0.8.8
func NewLinuxCPUShares(val int) (*LinuxCPUShares, error)
func (LinuxCPUShares) AsIsolator ¶ added in v0.8.8
func (l LinuxCPUShares) AsIsolator() Isolator
func (LinuxCPUShares) AssertValid ¶ added in v0.8.8
func (l LinuxCPUShares) AssertValid() error
func (LinuxCPUShares) Conflicts ¶ added in v0.8.8
func (l LinuxCPUShares) Conflicts() []ACIdentifier
func (*LinuxCPUShares) UnmarshalJSON ¶ added in v0.8.8
func (l *LinuxCPUShares) UnmarshalJSON(b []byte) error
type LinuxCapabilitiesRetainSet ¶ added in v0.4.0
type LinuxCapabilitiesRetainSet struct {
// contains filtered or unexported fields
}
func NewLinuxCapabilitiesRetainSet ¶ added in v0.4.0
func NewLinuxCapabilitiesRetainSet(caps ...string) (*LinuxCapabilitiesRetainSet, error)
func (LinuxCapabilitiesRetainSet) AsIsolator ¶ added in v0.7.2
func (l LinuxCapabilitiesRetainSet) AsIsolator() (*Isolator, error)
func (LinuxCapabilitiesRetainSet) AssertValid ¶ added in v0.4.0
func (l LinuxCapabilitiesRetainSet) AssertValid() error
func (LinuxCapabilitiesRetainSet) Conflicts ¶ added in v0.8.5
func (l LinuxCapabilitiesRetainSet) Conflicts() []ACIdentifier
func (LinuxCapabilitiesRetainSet) Set ¶ added in v0.4.0
func (l LinuxCapabilitiesRetainSet) Set() []LinuxCapability
func (*LinuxCapabilitiesRetainSet) UnmarshalJSON ¶ added in v0.4.0
type LinuxCapabilitiesRevokeSet ¶ added in v0.4.0
type LinuxCapabilitiesRevokeSet struct {
// contains filtered or unexported fields
}
func NewLinuxCapabilitiesRevokeSet ¶ added in v0.4.0
func NewLinuxCapabilitiesRevokeSet(caps ...string) (*LinuxCapabilitiesRevokeSet, error)
func (LinuxCapabilitiesRevokeSet) AsIsolator ¶ added in v0.7.2
func (l LinuxCapabilitiesRevokeSet) AsIsolator() (*Isolator, error)
func (LinuxCapabilitiesRevokeSet) AssertValid ¶ added in v0.4.0
func (l LinuxCapabilitiesRevokeSet) AssertValid() error
func (LinuxCapabilitiesRevokeSet) Conflicts ¶ added in v0.8.5
func (l LinuxCapabilitiesRevokeSet) Conflicts() []ACIdentifier
func (LinuxCapabilitiesRevokeSet) Set ¶ added in v0.4.0
func (l LinuxCapabilitiesRevokeSet) Set() []LinuxCapability
func (*LinuxCapabilitiesRevokeSet) UnmarshalJSON ¶ added in v0.4.0
type LinuxCapabilitiesSet ¶ added in v0.4.0
type LinuxCapabilitiesSet interface { Set() []LinuxCapability AssertValid() error }
type LinuxCapability ¶ added in v0.4.0
type LinuxCapability string
type LinuxNoNewPrivileges ¶ added in v0.8.3
type LinuxNoNewPrivileges bool
func (LinuxNoNewPrivileges) AssertValid ¶ added in v0.8.3
func (l LinuxNoNewPrivileges) AssertValid() error
func (LinuxNoNewPrivileges) Conflicts ¶ added in v0.8.5
func (l LinuxNoNewPrivileges) Conflicts() []ACIdentifier
func (*LinuxNoNewPrivileges) UnmarshalJSON ¶ added in v0.8.3
func (l *LinuxNoNewPrivileges) UnmarshalJSON(b []byte) error
type LinuxOOMScoreAdj ¶ added in v0.8.8
type LinuxOOMScoreAdj int // -1000 to 1000
LinuxOOMScoreAdj is equivalent to /proc/[pid]/oom_score_adj
func NewLinuxOOMScoreAdj ¶ added in v0.8.8
func NewLinuxOOMScoreAdj(val int) (*LinuxOOMScoreAdj, error)
func (LinuxOOMScoreAdj) AsIsolator ¶ added in v0.8.8
func (l LinuxOOMScoreAdj) AsIsolator() Isolator
func (LinuxOOMScoreAdj) AssertValid ¶ added in v0.8.8
func (l LinuxOOMScoreAdj) AssertValid() error
func (LinuxOOMScoreAdj) Conflicts ¶ added in v0.8.8
func (l LinuxOOMScoreAdj) Conflicts() []ACIdentifier
func (*LinuxOOMScoreAdj) UnmarshalJSON ¶ added in v0.8.8
func (l *LinuxOOMScoreAdj) UnmarshalJSON(b []byte) error
type LinuxSELinuxContext ¶ added in v0.8.9
type LinuxSELinuxContext struct {
// contains filtered or unexported fields
}
func NewLinuxSELinuxContext ¶ added in v0.8.9
func NewLinuxSELinuxContext(selinuxUser, selinuxRole, selinuxType, selinuxLevel string) (*LinuxSELinuxContext, error)
func (LinuxSELinuxContext) AsIsolator ¶ added in v0.8.9
func (l LinuxSELinuxContext) AsIsolator() (*Isolator, error)
func (LinuxSELinuxContext) AssertValid ¶ added in v0.8.9
func (l LinuxSELinuxContext) AssertValid() error
func (LinuxSELinuxContext) Conflicts ¶ added in v0.8.9
func (l LinuxSELinuxContext) Conflicts() []ACIdentifier
func (LinuxSELinuxContext) Level ¶ added in v0.8.9
func (l LinuxSELinuxContext) Level() LinuxSELinuxLevel
func (LinuxSELinuxContext) Role ¶ added in v0.8.9
func (l LinuxSELinuxContext) Role() LinuxSELinuxRole
func (LinuxSELinuxContext) Type ¶ added in v0.8.9
func (l LinuxSELinuxContext) Type() LinuxSELinuxType
func (*LinuxSELinuxContext) UnmarshalJSON ¶ added in v0.8.9
func (l *LinuxSELinuxContext) UnmarshalJSON(b []byte) error
func (LinuxSELinuxContext) User ¶ added in v0.8.9
func (l LinuxSELinuxContext) User() LinuxSELinuxUser
type LinuxSELinuxLevel ¶ added in v0.8.9
type LinuxSELinuxLevel string
type LinuxSELinuxRole ¶ added in v0.8.9
type LinuxSELinuxRole string
type LinuxSELinuxType ¶ added in v0.8.9
type LinuxSELinuxType string
type LinuxSELinuxUser ¶ added in v0.8.9
type LinuxSELinuxUser string
type LinuxSeccompEntry ¶ added in v0.8.5
type LinuxSeccompEntry string
type LinuxSeccompErrno ¶ added in v0.8.5
type LinuxSeccompErrno string
type LinuxSeccompRemoveSet ¶ added in v0.8.5
type LinuxSeccompRemoveSet struct {
// contains filtered or unexported fields
}
func NewLinuxSeccompRemoveSet ¶ added in v0.8.5
func NewLinuxSeccompRemoveSet(errno string, syscall ...string) (*LinuxSeccompRemoveSet, error)
func (LinuxSeccompRemoveSet) AsIsolator ¶ added in v0.8.5
func (l LinuxSeccompRemoveSet) AsIsolator() (*Isolator, error)
func (LinuxSeccompRemoveSet) AssertValid ¶ added in v0.8.5
func (l LinuxSeccompRemoveSet) AssertValid() error
func (LinuxSeccompRemoveSet) Conflicts ¶ added in v0.8.5
func (l LinuxSeccompRemoveSet) Conflicts() []ACIdentifier
func (LinuxSeccompRemoveSet) Errno ¶ added in v0.8.5
func (l LinuxSeccompRemoveSet) Errno() LinuxSeccompErrno
func (LinuxSeccompRemoveSet) Set ¶ added in v0.8.5
func (l LinuxSeccompRemoveSet) Set() []LinuxSeccompEntry
func (*LinuxSeccompRemoveSet) UnmarshalJSON ¶ added in v0.8.5
type LinuxSeccompRetainSet ¶ added in v0.8.5
type LinuxSeccompRetainSet struct {
// contains filtered or unexported fields
}
func NewLinuxSeccompRetainSet ¶ added in v0.8.5
func NewLinuxSeccompRetainSet(errno string, syscall ...string) (*LinuxSeccompRetainSet, error)
func (LinuxSeccompRetainSet) AsIsolator ¶ added in v0.8.5
func (l LinuxSeccompRetainSet) AsIsolator() (*Isolator, error)
func (LinuxSeccompRetainSet) AssertValid ¶ added in v0.8.5
func (l LinuxSeccompRetainSet) AssertValid() error
func (LinuxSeccompRetainSet) Conflicts ¶ added in v0.8.5
func (l LinuxSeccompRetainSet) Conflicts() []ACIdentifier
func (LinuxSeccompRetainSet) Errno ¶ added in v0.8.5
func (l LinuxSeccompRetainSet) Errno() LinuxSeccompErrno
func (LinuxSeccompRetainSet) Set ¶ added in v0.8.5
func (l LinuxSeccompRetainSet) Set() []LinuxSeccompEntry
func (*LinuxSeccompRetainSet) UnmarshalJSON ¶ added in v0.8.5
type LinuxSeccompSet ¶ added in v0.8.5
type LinuxSeccompSet interface { Set() []LinuxSeccompEntry Errno() LinuxSeccompErrno AssertValid() error }
type MountPoint ¶
type MountPoint struct { Name ACName `json:"name"` Path string `json:"path"` ReadOnly bool `json:"readOnly,omitempty"` }
MountPoint is the application-side manifestation of a Volume.
func MountPointFromString ¶ added in v0.5.2
func MountPointFromString(mp string) (*MountPoint, error)
MountPointFromString takes a command line mountpoint parameter and returns a mountpoint
It is useful for actool patch-manifest --mounts ¶
Example mountpoint parameters:
database,path=/tmp,readOnly=true
type Port ¶
type Port struct { Name ACName `json:"name"` Protocol string `json:"protocol"` Port uint `json:"port"` Count uint `json:"count"` SocketActivated bool `json:"socketActivated"` }
Port represents a port as offered by an application *inside* the pod.
func PortFromString ¶ added in v0.6.1
PortFromString takes a command line port parameter and returns a port
It is useful for actool patch-manifest --ports ¶
Example port parameters:
health-check,protocol=udp,port=8000 query,protocol=tcp,port=8080,count=1,socketActivated=true
func (Port) MarshalJSON ¶ added in v0.5.2
func (*Port) UnmarshalJSON ¶ added in v0.5.2
type ResourceBase ¶ added in v0.4.0
type ResourceBase struct {
// contains filtered or unexported fields
}
func (ResourceBase) AssertValid ¶ added in v0.4.0
func (r ResourceBase) AssertValid() error
func (ResourceBase) Conflicts ¶ added in v0.8.5
func (l ResourceBase) Conflicts() []ACIdentifier
func (ResourceBase) Default ¶ added in v0.4.0
func (r ResourceBase) Default() bool
func (ResourceBase) Limit ¶ added in v0.4.0
func (r ResourceBase) Limit() *resource.Quantity
func (ResourceBase) Request ¶ added in v0.4.0
func (r ResourceBase) Request() *resource.Quantity
func (*ResourceBase) UnmarshalJSON ¶ added in v0.4.0
func (r *ResourceBase) UnmarshalJSON(b []byte) error
type ResourceBlockBandwidth ¶ added in v0.4.0
type ResourceBlockBandwidth struct {
ResourceBase
}
func (ResourceBlockBandwidth) AssertValid ¶ added in v0.4.0
func (r ResourceBlockBandwidth) AssertValid() error
type ResourceBlockIOPS ¶ added in v0.4.0
type ResourceBlockIOPS struct {
ResourceBase
}
func (ResourceBlockIOPS) AssertValid ¶ added in v0.4.0
func (r ResourceBlockIOPS) AssertValid() error
type ResourceCPU ¶ added in v0.4.0
type ResourceCPU struct {
ResourceBase
}
func NewResourceCPUIsolator ¶ added in v0.7.2
func NewResourceCPUIsolator(request, limit string) (*ResourceCPU, error)
func (ResourceCPU) AsIsolator ¶ added in v0.7.4
func (r ResourceCPU) AsIsolator() Isolator
func (ResourceCPU) AssertValid ¶ added in v0.4.0
func (r ResourceCPU) AssertValid() error
func (ResourceCPU) String ¶ added in v0.7.2
func (r ResourceCPU) String() string
type ResourceMemory ¶ added in v0.4.0
type ResourceMemory struct {
ResourceBase
}
func NewResourceMemoryIsolator ¶ added in v0.7.2
func NewResourceMemoryIsolator(request, limit string) (*ResourceMemory, error)
func (ResourceMemory) AsIsolator ¶ added in v0.7.4
func (r ResourceMemory) AsIsolator() Isolator
func (ResourceMemory) AssertValid ¶ added in v0.4.0
func (r ResourceMemory) AssertValid() error
func (ResourceMemory) String ¶ added in v0.7.2
func (r ResourceMemory) String() string
type ResourceNetworkBandwidth ¶ added in v0.4.0
type ResourceNetworkBandwidth struct {
ResourceBase
}
func (ResourceNetworkBandwidth) AssertValid ¶ added in v0.4.0
func (r ResourceNetworkBandwidth) AssertValid() error
type SemVer ¶
SemVer implements the Unmarshaler interface to define a field that must be a semantic version string TODO(jonboulle): extend upstream instead of wrapping?
func NewSemVer ¶
NewSemVer generates a new SemVer from a string. If the given string does not represent a valid SemVer, nil and an error are returned.
func (SemVer) LessThanExact ¶ added in v0.7.0
func (SemVer) LessThanMajor ¶ added in v0.7.0
func (SemVer) MarshalJSON ¶
MarshalJSON implements the json.Marshaler interface
func (*SemVer) UnmarshalJSON ¶
UnmarshalJSON implements the json.Unmarshaler interface
type URL ¶
URL wraps url.URL to marshal/unmarshal to/from JSON strings and enforce that the scheme is HTTP/HTTPS only
func (URL) MarshalJSON ¶
func (*URL) UnmarshalJSON ¶
type UUID ¶
type UUID [16]byte
UUID encodes an RFC4122-compliant UUID, marshaled to/from a string TODO(jonboulle): vendor a package for this? TODO(jonboulle): consider more flexibility in input string formats. Right now, we only accept:
"6733C088-A507-4694-AABF-EDBE4FC5266F" "6733C088A5074694AABFEDBE4FC5266F"
func NewUUID ¶
NewUUID generates a new UUID from the given string. If the string does not represent a valid UUID, nil and an error are returned.
func (UUID) MarshalJSON ¶
func (*UUID) UnmarshalJSON ¶
type UnixSysctl ¶ added in v0.8.7
func NewUnixSysctlIsolator ¶ added in v0.8.7
func NewUnixSysctlIsolator(cfg map[string]string) (*UnixSysctl, error)
func (UnixSysctl) AsIsolator ¶ added in v0.8.7
func (s UnixSysctl) AsIsolator() Isolator
func (UnixSysctl) AssertValid ¶ added in v0.8.7
func (s UnixSysctl) AssertValid() error
func (UnixSysctl) Conflicts ¶ added in v0.8.7
func (s UnixSysctl) Conflicts() []ACIdentifier
func (*UnixSysctl) UnmarshalJSON ¶ added in v0.8.7
func (s *UnixSysctl) UnmarshalJSON(b []byte) error
type UserAnnotations ¶ added in v0.8.8
UserAnnotations are arbitrary key-value pairs, to be supplied and interpreted by the user
type UserLabels ¶ added in v0.8.8
UserLabels are arbitrary key-value pairs, to be supplied and interpreted by the user
type Volume ¶
type Volume struct { Name ACName `json:"name"` Kind string `json:"kind"` // currently used only by "host" // TODO(jonboulle): factor out? Source string `json:"source,omitempty"` ReadOnly *bool `json:"readOnly,omitempty"` Recursive *bool `json:"recursive,omitempty"` // currently used only by "empty" Mode *string `json:"mode,omitempty"` UID *int `json:"uid,omitempty"` GID *int `json:"gid,omitempty"` }
Volume encapsulates a volume which should be mounted into the filesystem of all apps in a PodManifest
func VolumeFromParams ¶ added in v0.8.8
func VolumeFromString ¶ added in v0.3.0
VolumeFromString takes a command line volume parameter and returns a volume
Example volume parameters:
database,kind=host,source=/tmp,readOnly=true,recursive=true
func (Volume) MarshalJSON ¶
func (*Volume) UnmarshalJSON ¶
Source Files ¶
- acidentifier.go
- ackind.go
- acname.go
- annotations.go
- app.go
- date.go
- dependencies.go
- doc.go
- environment.go
- errors.go
- event_handler.go
- exec.go
- hash.go
- isolator.go
- isolator_linux_specific.go
- isolator_resources.go
- isolator_unix.go
- labels.go
- mountpoint.go
- port.go
- semver.go
- url.go
- user_annotations.go
- user_labels.go
- uuid.go
- volume.go