Documentation ¶
Index ¶
- func Init(portalProxy interfaces.PortalProxy) (interfaces.StratosPlugin, error)
- type APIListResponse
- type APIResponse
- type BodyAPIListResponse
- type BodyAPIResponse
- type Chart
- type ChartMaintainer
- type ChartMetadata
- type ChartVersion
- type HelmHubChart
- type HelmHubChartResponse
- type IndexFile
- type IndexFileMetadata
- type Meta
- type Monocular
- func (m *Monocular) AddAdminGroupRoutes(echoGroup *echo.Group)
- func (m *Monocular) AddSessionGroupRoutes(echoGroup *echo.Group)
- func (m *Monocular) Connect(ec echo.Context, cnsiRecord interfaces.CNSIRecord, userId string) (*interfaces.TokenRecord, bool, error)
- func (m *Monocular) Destroy()
- func (m *Monocular) GetClientId() string
- func (m *Monocular) GetEndpointPlugin() (interfaces.EndpointPlugin, error)
- func (m *Monocular) GetMiddlewarePlugin() (interfaces.MiddlewarePlugin, error)
- func (m *Monocular) GetRoutePlugin() (interfaces.RoutePlugin, error)
- func (m *Monocular) GetType() string
- func (m *Monocular) Info(apiEndpoint string, skipSSLValidation bool) (interfaces.CNSIRecord, interface{}, error)
- func (m *Monocular) Init() error
- func (m *Monocular) InitSync()
- func (m *Monocular) OnEndpointNotification(action interfaces.EndpointAction, endpoint *interfaces.CNSIRecord)
- func (m *Monocular) Register(echoContext echo.Context) error
- func (m *Monocular) Sync(action interfaces.EndpointAction, endpoint *interfaces.CNSIRecord)
- func (m *Monocular) UpdateMetadata(info *interfaces.Info, userGUID string, echoContext echo.Context)
- func (m *Monocular) Validate(userGUID string, cnsiRecord interfaces.CNSIRecord, ...) error
- type Rel
- type RelMap
- type Repo
- type RepoCheck
- type SelfLink
- type SyncJob
- type SyncMetadata
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Init ¶
func Init(portalProxy interfaces.PortalProxy) (interfaces.StratosPlugin, error)
Init creates a new Monocular
Types ¶
type APIListResponse ¶
type APIListResponse []*APIResponse
APIListResponse is an API response in list format
type APIResponse ¶
type APIResponse struct { ID string `json:"id"` Type string `json:"type"` Attributes interface{} `json:"attributes"` Links interface{} `json:"links"` Relationships RelMap `json:"relationships"` }
APIResponse is an API response in non-list format
type BodyAPIListResponse ¶
type BodyAPIListResponse struct { Data *APIListResponse `json:"data"` Meta Meta `json:"meta,omitempty"` }
BodyAPIListResponse is an API body response in list format including the number of results pages
type BodyAPIResponse ¶
type BodyAPIResponse struct {
Data APIResponse `json:"data"`
}
BodyAPIResponse is an API body response in non-list format
type Chart ¶
type Chart struct { ID string `json:"-"` Name string `json:"name"` Repo Repo `json:"repo"` Description string `json:"description"` Home string `json:"home"` Keywords []string `json:"keywords"` Maintainers []ChartMaintainer `json:"maintainers"` Sources []string `json:"sources"` Icon string `json:"icon"` RawIcon []byte `json:"-"` IconContentType string `json:"-"` ChartVersions []ChartVersion `json:"-"` }
Chart is a higher-level representation of a chart package
type ChartMaintainer ¶
type ChartMaintainer struct { // Name is a user name or organization name Name string `json:"name,omitempty"` // Email is an optional email address to contact the named maintainer Email string `json:"email,omitempty"` // URL is an optional URL to an address for the named maintainer URL string `json:"url,omitempty"` }
ChartMaintainer describes a Chart maintainer.
type ChartMetadata ¶
type ChartMetadata struct { // The name of the chart Name string `json:"name,omitempty"` // The URL to a relevant project page, git repo, or contact person Home string `json:"home,omitempty"` // Source is the URL to the source code of this chart Sources []string `json:"sources,omitempty"` // A SemVer 2 conformant version string of the chart Version string `json:"version,omitempty"` // A one-sentence description of the chart Description string `json:"description,omitempty"` // A list of string keywords Keywords []string `json:"keywords,omitempty"` // A list of name and URL/email address combinations for the maintainer(s) Maintainers []*ChartMaintainer `json:"maintainers,omitempty"` // The URL to an icon file. Icon string `json:"icon,omitempty"` // The API Version of this chart. APIVersion string `json:"apiVersion,omitempty"` // The condition to check to enable chart Condition string `json:"condition,omitempty"` // The tags to check to enable chart Tags string `json:"tags,omitempty"` // The version of the application enclosed inside of this chart. AppVersion string `json:"appVersion,omitempty"` // Whether or not this chart is deprecated Deprecated bool `json:"deprecated,omitempty"` // Annotations are additional mappings uninterpreted by Helm, // made available for inspection by other applications. Annotations map[string]string `json:"annotations,omitempty"` // KubeVersion is a SemVer constraint specifying the version of Kubernetes required. KubeVersion string `json:"kubeVersion,omitempty"` // Specifies the chart type: application or library Type string `json:"type,omitempty"` }
ChartMetadata for a Chart file. This models the structure of a Chart.yaml file.
type ChartVersion ¶
type ChartVersion struct { Version string `json:"version"` AppVersion string `json:"app_version"` Created time.Time `json:"created"` Digest string `json:"digest"` URLs []string `json:"urls"` Readme string `json:"readme,omitempty"` Values string `json:"values,omitempty"` Schema string `json:"schema"` }
ChartVersion is a representation of a specific version of a chart
type HelmHubChart ¶
type HelmHubChart struct { APIResponse Attributes *ChartVersion `json:"attributes"` }
type HelmHubChartResponse ¶
type HelmHubChartResponse struct {
Data HelmHubChart `json:"data"`
}
type IndexFile ¶
type IndexFile struct { APIVersion string `json:"apiVersion,omitempty"` Entries map[string][]IndexFileMetadata `json:"entries,omitempty"` }
IndexFile represents the index.yaml structure for a Helm Repository
type IndexFileMetadata ¶
type IndexFileMetadata struct { Name string `json:"name,omitempty"` AppVersion string `json:"appVersion" yaml:"appVersion"` Description string `json:"description,omitempty"` Digest string `json:"digest,omitempty"` Version string `json:"version,omitempty"` Created time.Time `json:"created"` Icon string `json:"icon,omitempty"` URLs []string `json:"-" yaml:"urls"` Sources []string `json:"-" yaml:"sources"` APIVersion string `json:"-" yaml:"apiVersion"` }
IndexFileMetadata represents the metadata for a single chart version
type Meta ¶
type Meta struct {
TotalPages int `json:"totalPages"`
}
Meta the number of pages in the response
type Monocular ¶
type Monocular struct { ChartStore store.ChartStore FoundationDBURL string SyncServiceURL string CacheFolder string // contains filtered or unexported fields }
Monocular is a plugin for Monocular
func (*Monocular) AddAdminGroupRoutes ¶
func (m *Monocular) AddAdminGroupRoutes(echoGroup *echo.Group)
AddAdminGroupRoutes adds the admin routes for this plugin to the Echo server
func (*Monocular) AddSessionGroupRoutes ¶
func (m *Monocular) AddSessionGroupRoutes(echoGroup *echo.Group)
AddSessionGroupRoutes adds the session routes for this plugin to the Echo server
func (*Monocular) Connect ¶
func (m *Monocular) Connect(ec echo.Context, cnsiRecord interfaces.CNSIRecord, userId string) (*interfaces.TokenRecord, bool, error)
Connect to the endpoint
func (*Monocular) Destroy ¶
func (m *Monocular) Destroy()
Destroy does any cleanup for the plugin on exit
func (*Monocular) GetClientId ¶
GetClientId gets the default client ID to use
func (*Monocular) GetEndpointPlugin ¶
func (m *Monocular) GetEndpointPlugin() (interfaces.EndpointPlugin, error)
GetEndpointPlugin gets the endpoint plugin for this plugin
func (*Monocular) GetMiddlewarePlugin ¶
func (m *Monocular) GetMiddlewarePlugin() (interfaces.MiddlewarePlugin, error)
GetMiddlewarePlugin gets the middleware plugin for this plugin
func (*Monocular) GetRoutePlugin ¶
func (m *Monocular) GetRoutePlugin() (interfaces.RoutePlugin, error)
GetRoutePlugin gets the route plugin for this plugin
func (*Monocular) Info ¶
func (m *Monocular) Info(apiEndpoint string, skipSSLValidation bool) (interfaces.CNSIRecord, interface{}, error)
Info checks the endpoint type and fetches any metadata
func (*Monocular) InitSync ¶
func (m *Monocular) InitSync()
InitSync starts the go routine that will sync repositories in the background
func (*Monocular) OnEndpointNotification ¶
func (m *Monocular) OnEndpointNotification(action interfaces.EndpointAction, endpoint *interfaces.CNSIRecord)
OnEndpointNotification handles notification that endpoint has been remoevd
func (*Monocular) Sync ¶
func (m *Monocular) Sync(action interfaces.EndpointAction, endpoint *interfaces.CNSIRecord)
Sync schedules a sync action for the given endpoint
func (*Monocular) UpdateMetadata ¶
func (m *Monocular) UpdateMetadata(info *interfaces.Info, userGUID string, echoContext echo.Context)
UpdateMetadata not needed for Helm endpoints
func (*Monocular) Validate ¶
func (m *Monocular) Validate(userGUID string, cnsiRecord interfaces.CNSIRecord, tokenRecord interfaces.TokenRecord) error
Validate validates the connection to the endpoint - verifies that we can actually connect and call its API
type Rel ¶
type Rel struct { Data interface{} `json:"data"` Links SelfLink `json:"links"` }
Rel describes a relationship between element(s) in a response
type RepoCheck ¶
type RepoCheck struct { ID string `bson:"_id"` LastUpdate time.Time `bson:"last_update"` Checksum string `bson:"checksum"` }
RepoCheck describes the state of a repository in terms its current checksum and last update time. It is used to determine whether or not to re-sync a respository.
type SelfLink ¶
type SelfLink struct {
Self string `json:"self"`
}
SelfLink the self-referencing URL to a chart in a response
type SyncJob ¶
type SyncJob struct { Action interfaces.EndpointAction Endpoint *interfaces.CNSIRecord }