Documentation ¶
Index ¶
- Variables
- func ErrResourceNotFound(name string) error
- func UpdateManifest(m Manifests, root string, paths []string, id flux.ResourceID, ...) error
- type Cluster
- type ContainersOrExcuse
- type Controller
- type ManifestError
- type Manifests
- type Mock
- func (m *Mock) AllControllers(maybeNamespace string) ([]Controller, error)
- func (m *Mock) Export() ([]byte, error)
- func (m *Mock) LoadManifests(base string, paths []string) (map[string]resource.Resource, error)
- func (m *Mock) ParseManifests(def []byte) (map[string]resource.Resource, error)
- func (m *Mock) Ping() error
- func (m *Mock) PublicSSHKey(regenerate bool) (ssh.PublicKey, error)
- func (m *Mock) SomeControllers(s []flux.ResourceID) ([]Controller, error)
- func (m *Mock) Sync(c SyncDef) error
- func (m *Mock) UpdateImage(def []byte, id flux.ResourceID, container string, newImageID image.Ref) ([]byte, error)
- func (m *Mock) UpdateManifest(path string, resourceID string, f func(def []byte) ([]byte, error)) error
- func (m *Mock) UpdatePolicies(def []byte, id flux.ResourceID, p policy.Update) ([]byte, error)
- type ResourceError
- type SyncAction
- type SyncDef
- type SyncError
Constants ¶
This section is empty.
Variables ¶
var ( ErrEmptySelector = errors.New("empty selector") ErrWrongResourceKind = errors.New("new definition does not match existing resource") ErrNoMatchingService = errors.New("no matching service") ErrServiceHasNoSelector = errors.New("service has no selector") ErrNoMatching = errors.New("no matching replication controllers or deployments") ErrMultipleMatching = errors.New("multiple matching replication controllers or deployments") ErrNoMatchingImages = errors.New("no matching images") )
These errors all represent logical problems with cluster configuration, and may be recoverable; e.g., it might be fine if a service does not have a matching RC/deployment.
Functions ¶
func ErrResourceNotFound ¶
Types ¶
type Cluster ¶
type Cluster interface { // Get all of the services (optionally, from a specific namespace), excluding those AllControllers(maybeNamespace string) ([]Controller, error) SomeControllers([]flux.ResourceID) ([]Controller, error) Ping() error Export() ([]byte, error) Sync(SyncDef) error PublicSSHKey(regenerate bool) (ssh.PublicKey, error) }
The things we can get from the running cluster. These used to form the remote.Platform interface; but now we do more in the daemon so they are distinct interfaces.
type ContainersOrExcuse ¶
Sometimes we care if we can't find the containers for a service, sometimes we just want the information we can get.
type Controller ¶
type Controller struct { ID flux.ResourceID Status string // A status summary for display // Is the controller considered read-only because it's under the // control of the platform. In the case of Kubernetes, we simply // omit these controllers; but this may not always be the case. IsSystem bool // If this workload was created _because_ of another, antecedent // resource through some mechanism (like an operator, or custom // resource controller), we try to record the ID of that resource // in this field. Antecedent flux.ResourceID Labels map[string]string Containers ContainersOrExcuse }
Controller describes a cluster resource that declares versioned images.
func (Controller) ContainersOrError ¶
func (s Controller) ContainersOrError() ([]resource.Container, error)
func (Controller) ContainersOrNil ¶
func (s Controller) ContainersOrNil() []resource.Container
type ManifestError ¶
type ManifestError struct {
// contains filtered or unexported fields
}
type Manifests ¶
type Manifests interface { // Update the image in a manifest's bytes to that given UpdateImage(def []byte, resourceID flux.ResourceID, container string, newImageID image.Ref) ([]byte, error) // Load all the resource manifests under the paths // given. `baseDir` is used to relativise the paths, which are // supplied as absolute paths to directories or files; at least // one path should be supplied, even if it is the same as `baseDir`. LoadManifests(baseDir string, paths []string) (map[string]resource.Resource, error) // Parse the manifests given in an exported blob ParseManifests([]byte) (map[string]resource.Resource, error) // UpdatePolicies modifies a manifest to apply the policy update specified UpdatePolicies([]byte, flux.ResourceID, policy.Update) ([]byte, error) }
Manifests represents how a set of files are used as definitions of resources, e.g., in Kubernetes, YAML files describing Kubernetes resources.
type Mock ¶
type Mock struct { AllServicesFunc func(maybeNamespace string) ([]Controller, error) SomeServicesFunc func([]flux.ResourceID) ([]Controller, error) PingFunc func() error ExportFunc func() ([]byte, error) SyncFunc func(SyncDef) error PublicSSHKeyFunc func(regenerate bool) (ssh.PublicKey, error) UpdateImageFunc func(def []byte, id flux.ResourceID, container string, newImageID image.Ref) ([]byte, error) LoadManifestsFunc func(base string, paths []string) (map[string]resource.Resource, error) ParseManifestsFunc func([]byte) (map[string]resource.Resource, error) UpdateManifestFunc func(path, resourceID string, f func(def []byte) ([]byte, error)) error UpdatePoliciesFunc func([]byte, flux.ResourceID, policy.Update) ([]byte, error) }
Doubles as a cluster.Cluster and cluster.Manifests implementation
func (*Mock) AllControllers ¶
func (m *Mock) AllControllers(maybeNamespace string) ([]Controller, error)
func (*Mock) LoadManifests ¶
func (*Mock) ParseManifests ¶
func (*Mock) SomeControllers ¶
func (m *Mock) SomeControllers(s []flux.ResourceID) ([]Controller, error)
func (*Mock) UpdateImage ¶
func (*Mock) UpdateManifest ¶
func (*Mock) UpdatePolicies ¶
type ResourceError ¶
type SyncAction ¶
SyncAction represents either the deletion or application (create or update) of a resource.
type SyncDef ¶
type SyncDef struct { // The actions to undertake Actions []SyncAction }