Documentation
¶
Index ¶
- Constants
- type Credential
- type CredentialType
- type Filter
- type FilterStyle
- type FilterType
- type HealthStatus
- type Namespace
- type NamespaceQuery
- type Policy
- type PolicyQuery
- type Registry
- type RegistryInfo
- type RegistryQuery
- type RegistryType
- type Repository
- type Resource
- type ResourceMetadata
- type ResourceType
- type Trigger
- type TriggerSettings
- type TriggerType
Constants ¶
const ( FilterTypeResource FilterType = "resource" FilterTypeName FilterType = "name" FilterTypeTag FilterType = "tag" FilterTypeLabel FilterType = "label" TriggerTypeManual TriggerType = "manual" TriggerTypeScheduled TriggerType = "scheduled" TriggerTypeEventBased TriggerType = "event_based" )
const definition
const ( // CredentialTypeBasic indicates credential by user name, password CredentialTypeBasic = "basic" // CredentialTypeOAuth indicates credential by OAuth token CredentialTypeOAuth = "oauth" // CredentialTypeSecret is only used by the communication of Harbor internal components CredentialTypeSecret = "secret" )
const definitions
const ( // Healthy indicates registry is healthy Healthy = "healthy" // Unhealthy indicates registry is unhealthy Unhealthy = "unhealthy" // Unknown indicates health status of registry is unknown Unknown = "unknown" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Credential ¶
type Credential struct {
// Type of the credential
Type CredentialType `json:"type"`
// The key of the access account, for OAuth token, it can be empty
AccessKey string `json:"access_key"`
// The secret or password for the key
AccessSecret string `json:"access_secret"`
}
Credential keeps the access key and/or secret for the related registry
type CredentialType ¶
type CredentialType string
CredentialType represents the supported credential types e.g: u/p, OAuth token
type Filter ¶
type Filter struct {
Type FilterType `json:"type"`
Value interface{} `json:"value"`
}
Filter holds the info of the filter
type FilterStyle ¶
type FilterStyle struct {
Type FilterType `json:"type"`
Style string `json:"style"`
Values []string `json:"values,omitempty"`
}
FilterStyle ...
type HealthStatus ¶
type HealthStatus string
HealthStatus describes whether a target is healthy or not
type Namespace ¶
type Namespace struct {
Name string `json:"name"`
Metadata map[string]interface{} `json:"metadata"`
}
Namespace represents the full path of resource isolation unit; if the namespace has hierarchical structure, e.g organization->team, it should be converted to organization.team
type NamespaceQuery ¶
type NamespaceQuery struct {
Name string
}
NamespaceQuery defines the query condition for listing namespaces
type Policy ¶
type Policy struct {
ID int64 `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
Creator string `json:"creator"`
// source
SrcRegistry *Registry `json:"src_registry"`
// destination
DestRegistry *Registry `json:"dest_registry"`
// Only support two dest namespace modes:
// Put all the src resources to the one single dest namespace
// or keep namespaces same with the source ones (under this case,
// the DestNamespace should be set to empty)
DestNamespace string `json:"dest_namespace"`
// Filters
Filters []*Filter `json:"filters"`
// Trigger
Trigger *Trigger `json:"trigger"`
// Settings
// TODO: rename the property name
Deletion bool `json:"deletion"`
// If override the image tag
Override bool `json:"override"`
// Operations
Enabled bool `json:"enabled"`
CreationTime time.Time `json:"creation_time"`
UpdateTime time.Time `json:"update_time"`
}
Policy defines the structure of a replication policy
type PolicyQuery ¶
type PolicyQuery struct {
Name string
// TODO: need to consider how to support listing the policies
// of one namespace in both pull and push modes
Namespace string
SrcRegistry int64
DestRegistry int64
models.Pagination
}
PolicyQuery defines the query conditions for listing policies
type Registry ¶
type Registry struct {
ID int64 `json:"id"`
Name string `json:"name"`
Description string `json:"description"`
Type RegistryType `json:"type"`
URL string `json:"url"`
// TokenServiceURL is only used for local harbor instance to
// avoid the requests passing through the external proxy for now
TokenServiceURL string `json:"token_service_url"`
Credential *Credential `json:"credential"`
Insecure bool `json:"insecure"`
Status string `json:"status"`
CreationTime time.Time `json:"creation_time"`
UpdateTime time.Time `json:"update_time"`
}
Registry keeps the related info of registry Data required for the secure access way is not contained here. DAO layer is not considered here
type RegistryInfo ¶
type RegistryInfo struct {
Type RegistryType `json:"type"`
Description string `json:"description"`
SupportedResourceTypes []ResourceType `json:"-"`
SupportedResourceFilters []*FilterStyle `json:"supported_resource_filters"`
SupportedTriggers []TriggerType `json:"supported_triggers"`
}
RegistryInfo provides base info and capability declarations of the registry
type RegistryQuery ¶
type RegistryQuery struct {
// Name is name of the registry to query
Name string
// Pagination specifies the pagination
Pagination *models.Pagination
}
RegistryQuery defines the query conditions for listing registries
type RegistryType ¶
type RegistryType string
RegistryType indicates the type of registry
const ( RegistryTypeHarbor RegistryType = "harbor" RegistryTypeDockerHub RegistryType = "docker-hub" RegistryTypeDockerRegistry RegistryType = "docker-registry" RegistryTypeHuawei RegistryType = "huawei-SWR" FilterStyleTypeText = "input" FilterStyleTypeRadio = "radio" )
const definition
type Repository ¶
type Repository struct {
Name string `json:"name"`
Metadata map[string]interface{} `json:"metadata"`
}
Repository info of the resource
type Resource ¶
type Resource struct {
Type ResourceType `json:"type"`
Metadata *ResourceMetadata `json:"metadata"`
Registry *Registry `json:"registry"`
ExtendedInfo map[string]interface{} `json:"extended_info"`
// Indicate if the resource is a deleted resource
Deleted bool `json:"deleted"`
// indicate whether the resource can be overridden
Override bool `json:"override"`
}
Resource represents the general replicating content
type ResourceMetadata ¶
type ResourceMetadata struct {
Repository *Repository `json:"repository"`
// TODO the labels should be put into tag and repository level?
Labels []string `json:"labels"`
}
ResourceMetadata of resource
func (*ResourceMetadata) GetResourceName ¶
func (r *ResourceMetadata) GetResourceName() string
GetResourceName returns the name of the resource TODO remove
type ResourceType ¶
type ResourceType string
ResourceType represents the type of the resource
const ( ResourceTypeImage ResourceType = "image" ResourceTypeChart ResourceType = "chart" )
the resource type
func (ResourceType) Valid ¶
func (r ResourceType) Valid() bool
Valid indicates whether the ResourceType is a valid value
type Trigger ¶
type Trigger struct {
Type TriggerType `json:"type"`
Settings *TriggerSettings `json:"trigger_settings"`
}
Trigger holds info for a trigger
type TriggerSettings ¶
type TriggerSettings struct {
Cron string `json:"cron"`
}
TriggerSettings is the setting about the trigger