Documentation ¶
Index ¶
- type APITokenCredential
- type BasicAuthCredential
- type Configuration
- type CredentialProvider
- type Deployment
- type DeploymentState
- type DeploymentStatus
- type ImportFile
- type JWTTokenCredential
- type KubernetesObject
- type KubernetesSecret
- type Layout
- type LayoutResource
- type Manifest
- type Registry
- type RegistryCredential
- type RegistryFormat
- type RegistryService
- type RegistryType
- type Resource
- type ResourceState
- type ResourceStatus
- type Schema
- type SchemaImport
- type Template
- type TypeInstance
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type BasicAuthCredential ¶
type BasicAuthCredential struct { Username string `json:"username"` Password string `json:"password"` }
BasicAuthCredential holds a username and password.
type Configuration ¶
type Configuration struct {
Resources []*Resource `json:"resources"`
}
Configuration describes a set of resources in a form that can be instantiated.
type CredentialProvider ¶
type CredentialProvider interface { // Set the credential for a registry. // May not be supported by some registry services. SetCredential(name string, credential *RegistryCredential) error // GetCredential returns the specified credential or nil if there's no credential. // Error is non-nil if fetching the credential failed. GetCredential(name string) (*RegistryCredential, error) }
CredentialProvider provides credentials for registries.
type Deployment ¶
type Deployment struct { Name string `json:"name"` CreatedAt time.Time `json:"createdAt,omitempty"` DeployedAt time.Time `json:"deployedAt,omitempty"` ModifiedAt time.Time `json:"modifiedAt,omitempty"` DeletedAt time.Time `json:"deletedAt,omitempty"` State *DeploymentState `json:"state,omitempty"` LatestManifest string `json:"latestManifest,omitEmpty"` }
Deployment defines a deployment that describes the creation, modification and/or deletion of a set of resources.
func NewDeployment ¶
func NewDeployment(name string) *Deployment
NewDeployment creates a new deployment.
type DeploymentState ¶
type DeploymentState struct { Status DeploymentStatus `json:"status,omitempty"` Errors []string `json:"errors,omitempty"` }
DeploymentState describes the state of a resource. It is set to the terminal state depending on the outcome of an operation on the deployment.
type DeploymentStatus ¶
type DeploymentStatus string
DeploymentStatus is an enumeration type for the status of a deployment.
const ( CreatedStatus DeploymentStatus = "Created" DeletedStatus DeploymentStatus = "Deleted" DeployedStatus DeploymentStatus = "Deployed" FailedStatus DeploymentStatus = "Failed" ModifiedStatus DeploymentStatus = "Modified" )
These constants implement the DeploymentStatus enumeration type.
func (DeploymentStatus) String ¶
func (s DeploymentStatus) String() string
type ImportFile ¶
type ImportFile struct { Name string `json:"name,omitempty"` Path string `json:"path,omitempty"` // Actual URL for the file Content string `json:"content"` }
ImportFile describes a base64 encoded file imported by a Template.
type KubernetesObject ¶
type KubernetesObject struct { Kind string `json:"kind"` APIVersion string `json:"apiVersion"` Metadata map[string]interface{} `json:"metadata"` Spec map[string]interface{} `json:"spec"` }
KubernetesObject represents a native 'bare' Kubernetes object.
type KubernetesSecret ¶
type KubernetesSecret struct { Kind string `json:"kind"` APIVersion string `json:"apiVersion"` Metadata map[string]string `json:"metadata"` Data map[string]string `json:"data,omitempty"` }
KubernetesSecret represents a Kubernetes secret
type Layout ¶
type Layout struct {
Resources []*LayoutResource `json:"resources,omitempty"`
}
Layout defines the structure of a layout as returned from expansion.
type LayoutResource ¶
LayoutResource defines the structure of resources in the manifest layout.
type Manifest ¶
type Manifest struct { Deployment string `json:"deployment,omitempty"` Name string `json:"name,omitempty"` InputConfig *Template `json:"inputConfig,omitempty"` ExpandedConfig *Configuration `json:"expandedConfig,omitempty"` Layout *Layout `json:"layout,omitempty"` }
Manifest contains the input configuration for a deployment, the fully expanded configuration, and the layout structure of the manifest.
type Registry ¶
type Registry struct { Name string `json:"name,omitempty"` // Friendly name for the registry Type RegistryType `json:"type,omitempty"` // Technology implementing the registry URL string `json:"url,omitempty"` // URL to the root of the registry Format RegistryFormat `json:"format,omitempty"` // Format of the registry CredentialName string `json:"credentialname,omitempty"` // Name of the credential to use }
Registry describes a template registry TODO(jackr): Fix ambiguity re: whether or not URL has a scheme.
type RegistryCredential ¶
type RegistryCredential struct { APIToken APITokenCredential `json:"apitoken,omitempty"` BasicAuth BasicAuthCredential `json:"basicauth,omitempty"` ServiceAccount JWTTokenCredential `json:"serviceaccount,omitempty"` }
RegistryCredential holds a credential used to access a registry.
type RegistryFormat ¶
type RegistryFormat string
RegistryFormat is a semi-colon delimited string that describes the format of a registry.
const ( // VersionedRegistry identifies a versioned registry, where types appear under versions. VersionedRegistry RegistryFormat = "versioned" // UnversionedRegistry identifies an unversioned registry, where types appear under their names. UnversionedRegistry RegistryFormat = "unversioned" // CollectionRegistry identfies a collection registry, where types are grouped into collections. CollectionRegistry RegistryFormat = "collection" // OneLevelRegistry identifies a one level registry, where all types appear at the top level. OneLevelRegistry RegistryFormat = "onelevel" )
type RegistryService ¶
type RegistryService interface { // List all the registries List() ([]*Registry, error) // Create a new registry Create(registry *Registry) error // Get a registry Get(name string) (*Registry, error) // Get a registry with credential. GetRegistry(name string) (*Registry, error) // Delete a registry Delete(name string) error // Find a registry that backs the given URL GetByURL(URL string) (*Registry, error) // GetRegistryByURL returns a registry that handles the types for a given URL. GetRegistryByURL(URL string) (*Registry, error) }
RegistryService maintains a set of registries that defines the scope of all registry based operations, such as search and type resolution.
type RegistryType ¶
type RegistryType string
RegistryType defines the technology that implements the registry
const ( GithubRegistryType RegistryType = "github" GCSRegistryType RegistryType = "gcs" )
Constants that identify the supported registry layouts.
type Resource ¶
type Resource struct { Name string `json:"name"` Type string `json:"type"` Properties map[string]interface{} `json:"properties,omitempty"` State *ResourceState `json:"state,omitempty"` }
Resource describes a resource in a configuration. A resource has a name, a type and a set of properties. The name and type are used to identify the resource in Kubernetes. The properties are passed to Kubernetes as the resource configuration.
type ResourceState ¶
type ResourceState struct { Status ResourceStatus `json:"status,omitempty"` SelfLink string `json:"selflink,omitempty"` Errors []string `json:"errors,omitempty"` }
ResourceState describes the state of a resource. Status is set during resource creation and is a terminal state.
type ResourceStatus ¶
type ResourceStatus string
ResourceStatus is an enumeration type for the status of a resource.
const ( Created ResourceStatus = "Created" Failed ResourceStatus = "Failed" Aborted ResourceStatus = "Aborted" )
These constants implement the resourceStatus enumeration type.
type Schema ¶
type Schema struct {
Imports []SchemaImport `json:"imports"`
}
Schema is a partial DM schema. We only need access to the imports object at this level.
type SchemaImport ¶
SchemaImport represents an import as declared in a schema file.
type Template ¶
type Template struct { Name string `json:"name"` Content string `json:"content"` Imports []*ImportFile `json:"imports"` }
Template describes a set of resources to be deployed. Manager expands a Template into a Configuration, which describes the set in a form that can be instantiated.
type TypeInstance ¶
type TypeInstance struct { Name string `json:"name"` // instance name Type string `json:"type"` // instance type Deployment string `json:"deployment"` // deployment name Manifest string `json:"manifest"` // manifest name Path string `json:"path"` // JSON path within manifest }
TypeInstance defines the metadata for an instantiation of a template type in a deployment.