describe

package
v1.25.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 14, 2023 License: Apache-2.0 Imports: 40 Imported by: 0

Documentation

Overview

Package describe provides functionality to retrieve information about deployed applications, environments and workloads.

Index

Constants

View Source
const (
	// BlankServiceDiscoveryURI is an empty URI to denote services
	// that cannot be reached with Service Discovery.
	BlankServiceDiscoveryURI = "-"
)

Variables

This section is empty.

Functions

func IsStackNotExistsErr

func IsStackNotExistsErr(err error) bool

IsStackNotExistsErr returns true if error type is stack not exist.

func NewAppRunnerStatusDescriber added in v1.7.0

func NewAppRunnerStatusDescriber(opt *NewServiceStatusConfig) (*appRunnerStatusDescriber, error)

NewAppRunnerStatusDescriber instantiates a new appRunnerStatusDescriber struct.

func NewECSStatusDescriber added in v1.7.0

func NewECSStatusDescriber(opt *NewServiceStatusConfig) (*ecsStatusDescriber, error)

NewECSStatusDescriber instantiates a new ecsStatusDescriber struct.

Types

type App

type App struct {
	Name                string                   `json:"name"`
	Version             string                   `json:"version"`
	URI                 string                   `json:"uri"`
	PermissionsBoundary string                   `json:"permissionsBoundary"`
	Envs                []*config.Environment    `json:"environments"`
	Services            []*config.Workload       `json:"services"`
	Jobs                []*config.Workload       `json:"jobs"`
	Pipelines           []*codepipeline.Pipeline `json:"pipelines"`
	WkldDeployedtoEnvs  map[string][]string      `json:"-"`
}

App contains serialized parameters for an application.

func (*App) HumanString

func (a *App) HumanString() string

HumanString returns the stringified App struct with human readable format.

func (*App) JSONString

func (a *App) JSONString() (string, error)

JSONString returns the stringified App struct with json format.

type AppDescriber added in v1.5.0

type AppDescriber struct {
	// contains filtered or unexported fields
}

AppDescriber retrieves information about an application.

func NewAppDescriber added in v1.5.0

func NewAppDescriber(appName string) (*AppDescriber, error)

NewAppDescriber instantiates an application describer.

func (*AppDescriber) Version added in v1.5.0

func (d *AppDescriber) Version() (string, error)

Version returns the app CloudFormation template version associated with the application by reading the Metadata.Version field from the template. Specifically it will get both app CFN stack template version and app StackSet template version, and return the minimum as the current app version.

If the Version field does not exist, then it's a legacy template and it returns an deploy.LegacyAppTemplateVersion and nil error.

type BackendServiceDescriber

type BackendServiceDescriber struct {
	// contains filtered or unexported fields
}

BackendServiceDescriber retrieves information about a backend service.

func NewBackendServiceDescriber

func NewBackendServiceDescriber(opt NewServiceConfig) (*BackendServiceDescriber, error)

NewBackendServiceDescriber instantiates a backend service describer.

func (*BackendServiceDescriber) Describe

Describe returns info of a backend service.

func (*BackendServiceDescriber) Manifest added in v1.20.0

func (d *BackendServiceDescriber) Manifest(env string) ([]byte, error)

Manifest returns the contents of the manifest used to deploy a backend service stack. If the Manifest metadata doesn't exist in the stack template, then returns ErrManifestNotFoundInTemplate.

func (*BackendServiceDescriber) URI

func (d *BackendServiceDescriber) URI(envName string) (URI, error)

URI returns the service discovery namespace and is used to make BackendServiceDescriber have the same signature as WebServiceDescriber.

type ConfigStoreSvc

type ConfigStoreSvc interface {
	GetEnvironment(appName string, environmentName string) (*config.Environment, error)
	ListEnvironments(appName string) ([]*config.Environment, error)
	ListServices(appName string) ([]*config.Workload, error)
	GetWorkload(appName string, name string) (*config.Workload, error)
	ListJobs(appName string) ([]*config.Workload, error)
}

ConfigStoreSvc wraps methods of config store.

type DeployedEnvServicesLister

type DeployedEnvServicesLister interface {
	ListEnvironmentsDeployedTo(appName string, svcName string) ([]string, error)
	ListDeployedServices(appName string, envName string) ([]string, error)
	ListDeployedJobs(appName string, envName string) ([]string, error)
}

DeployedEnvServicesLister wraps methods of deploy store.

type ECSServiceConfig added in v1.7.0

type ECSServiceConfig struct {
	*ServiceConfig

	Tasks string `json:"tasks"`
}

type EnvDescriber

type EnvDescriber struct {
	// contains filtered or unexported fields
}

EnvDescriber retrieves information about an environment.

func NewEnvDescriber

func NewEnvDescriber(opt NewEnvDescriberConfig) (*EnvDescriber, error)

NewEnvDescriber instantiates an environment describer.

func (*EnvDescriber) AvailableFeatures added in v1.19.0

func (d *EnvDescriber) AvailableFeatures() ([]string, error)

AvailableFeatures returns the available features of the environment stack.

func (*EnvDescriber) Describe

func (d *EnvDescriber) Describe() (*EnvDescription, error)

Describe returns info about an application's environment.

func (*EnvDescriber) Manifest added in v1.19.0

func (d *EnvDescriber) Manifest() ([]byte, error)

Manifest returns the contents of the manifest used to deploy an environment stack.

func (*EnvDescriber) Outputs added in v1.7.1

func (d *EnvDescriber) Outputs() (map[string]string, error)

Outputs returns the outputs of the environment stack.

func (*EnvDescriber) Params added in v1.7.1

func (d *EnvDescriber) Params() (map[string]string, error)

Params returns the parameters of the environment stack.

func (*EnvDescriber) PublicCIDRBlocks added in v1.14.0

func (d *EnvDescriber) PublicCIDRBlocks() ([]string, error)

PublicCIDRBlocks returns the public CIDR blocks of the public subnets in the environment VPC.

func (*EnvDescriber) ServiceDiscoveryEndpoint added in v1.9.0

func (d *EnvDescriber) ServiceDiscoveryEndpoint() (string, error)

ServiceDiscoveryEndpoint returns the endpoint the environment was initialized with, if any. Otherwise, it returns the legacy app.local endpoint.

func (*EnvDescriber) ValidateCFServiceDomainAliases added in v1.21.0

func (d *EnvDescriber) ValidateCFServiceDomainAliases() error

ValidateCFServiceDomainAliases returns error if an environment using cdn is deployed without specifying http.alias for all load-balanced web services

func (*EnvDescriber) Version added in v0.5.0

func (d *EnvDescriber) Version() (string, error)

Version returns the CloudFormation template version associated with the environment by reading the Metadata.Version field from the template.

If the Version field does not exist, then it's a legacy template and it returns an deploy.LegacyEnvTemplateVersion and nil error.

type EnvDescription

type EnvDescription struct {
	Environment    *config.Environment `json:"environment"`
	Services       []*config.Workload  `json:"services"`
	Jobs           []*config.Workload  `json:"jobs"`
	Tags           map[string]string   `json:"tags,omitempty"`
	Resources      []*stack.Resource   `json:"resources,omitempty"`
	EnvironmentVPC EnvironmentVPC      `json:"environmentVPC"`
}

EnvDescription contains the information about an environment.

func (*EnvDescription) HumanString

func (e *EnvDescription) HumanString() string

HumanString returns the stringified EnvDescription struct with human readable format.

func (*EnvDescription) JSONString

func (e *EnvDescription) JSONString() (string, error)

JSONString returns the stringified EnvDescription struct with json format.

type EnvironmentVPC added in v0.6.0

type EnvironmentVPC struct {
	ID               string   `json:"id"`
	PublicSubnetIDs  []string `json:"publicSubnetIDs"`
	PrivateSubnetIDs []string `json:"privateSubnetIDs"`
}

EnvironmentVPC holds the ID of the environment's VPC configuration.

type ErrManifestNotFoundInTemplate added in v1.20.0

type ErrManifestNotFoundInTemplate struct {
	// contains filtered or unexported fields
}

func (*ErrManifestNotFoundInTemplate) Error added in v1.20.0

Error implements the error interface.

type HumanJSONStringer

type HumanJSONStringer interface {
	HumanString() string
	JSONString() (string, error)
}

HumanJSONStringer contains methods that stringify app info for output.

type LBWebServiceDescriber added in v1.7.0

type LBWebServiceDescriber struct {
	// contains filtered or unexported fields
}

LBWebServiceDescriber retrieves information about a load balanced web service.

func NewLBWebServiceDescriber added in v1.7.0

func NewLBWebServiceDescriber(opt NewServiceConfig) (*LBWebServiceDescriber, error)

NewLBWebServiceDescriber instantiates a load balanced service describer.

func (*LBWebServiceDescriber) Describe added in v1.7.0

Describe returns info of a web service.

func (*LBWebServiceDescriber) Manifest added in v1.20.0

func (d *LBWebServiceDescriber) Manifest(env string) ([]byte, error)

Manifest returns the contents of the manifest used to deploy a load balanced web service stack. If the Manifest metadata doesn't exist in the stack template, then returns ErrManifestNotFoundInTemplate.

func (*LBWebServiceDescriber) URI added in v1.7.0

func (d *LBWebServiceDescriber) URI(envName string) (URI, error)

URI returns the LBWebServiceURI to identify this service uniquely given an environment name.

type LBWebServiceURI added in v1.7.0

type LBWebServiceURI struct {
	// contains filtered or unexported fields
}

LBWebServiceURI represents the unique identifier to access a load balanced web service.

func (*LBWebServiceURI) String added in v1.7.0

func (u *LBWebServiceURI) String() string

type NewEnvDescriberConfig

type NewEnvDescriberConfig struct {
	App             string
	Env             string
	EnableResources bool
	ConfigStore     ConfigStoreSvc
	DeployStore     DeployedEnvServicesLister
}

NewEnvDescriberConfig contains fields that initiates EnvDescriber struct.

type NewServiceConfig

type NewServiceConfig struct {
	App         string
	Svc         string
	ConfigStore ConfigStoreSvc

	EnableResources bool
	DeployStore     DeployedEnvServicesLister
}

NewServiceConfig contains fields that initiates service describer struct.

type NewServiceStatusConfig

type NewServiceStatusConfig struct {
	App         string
	Env         string
	Svc         string
	ConfigStore ConfigStoreSvc
}

NewServiceStatusConfig contains fields that initiates ServiceStatus struct.

type Pipeline

type Pipeline struct {
	// Name is the user provided name for a pipeline
	Name string `json:"name"`
	codepipeline.Pipeline

	Resources []*describestack.Resource `json:"resources,omitempty"`
}

Pipeline contains serialized parameters for a pipeline.

func (*Pipeline) HumanString

func (p *Pipeline) HumanString() string

HumanString returns the stringified Pipeline struct with human readable format.

func (*Pipeline) JSONString

func (p *Pipeline) JSONString() (string, error)

JSONString returns the stringified Pipeline struct with JSON format.

type PipelineDescriber

type PipelineDescriber struct {
	// contains filtered or unexported fields
}

PipelineDescriber retrieves information about a deployed pipeline.

func NewPipelineDescriber

func NewPipelineDescriber(pipeline deploy.Pipeline, showResources bool) (*PipelineDescriber, error)

NewPipelineDescriber instantiates a new pipeline describer

func (*PipelineDescriber) Describe

func (d *PipelineDescriber) Describe() (HumanJSONStringer, error)

Describe returns description of a pipeline.

type PipelineStatus

type PipelineStatus struct {
	Name string `json:"name"`
	codepipeline.PipelineState
}

PipelineStatus contains the status for a pipeline.

func (PipelineStatus) HumanString

func (p PipelineStatus) HumanString() string

HumanString returns stringified PipelineStatus struct with human readable format.

func (PipelineStatus) JSONString

func (p PipelineStatus) JSONString() (string, error)

JSONString returns stringified PipelineStatus struct with json format.

type PipelineStatusDescriber

type PipelineStatusDescriber struct {
	// contains filtered or unexported fields
}

PipelineStatusDescriber retrieves status of a deployed pipeline.

func NewPipelineStatusDescriber

func NewPipelineStatusDescriber(pipeline deploy.Pipeline) (*PipelineStatusDescriber, error)

NewPipelineStatusDescriber instantiates a new PipelineStatus struct.

func (*PipelineStatusDescriber) Describe

Describe returns status of a pipeline.

type RDWSRoute added in v1.23.0

type RDWSRoute struct {
	Environment string      `json:"environment"`
	URL         string      `json:"url"`
	Ingress     rdwsIngress `json:"ingress"`
}

RDWSRoute contains serialized route parameters for a Request-Driven Web Service.

type RDWebServiceDescriber added in v1.7.0

type RDWebServiceDescriber struct {
	// contains filtered or unexported fields
}

RDWebServiceDescriber retrieves information about a request-driven web service.

func NewRDWebServiceDescriber added in v1.7.0

func NewRDWebServiceDescriber(opt NewServiceConfig) (*RDWebServiceDescriber, error)

NewRDWebServiceDescriber instantiates a request-driven service describer.

func (*RDWebServiceDescriber) Describe added in v1.7.0

Describe returns info for a request-driven web service.

func (*RDWebServiceDescriber) Manifest added in v1.20.0

func (d *RDWebServiceDescriber) Manifest(env string) ([]byte, error)

Manifest returns the contents of the manifest used to deploy a request-driven web service stack. If the Manifest metadata doesn't exist in the stack template, then returns ErrManifestNotFoundInTemplate.

func (*RDWebServiceDescriber) ServiceARN added in v1.18.0

func (d *RDWebServiceDescriber) ServiceARN(env string) (string, error)

ServiceARN retrieves the ARN of the app runner service.

func (*RDWebServiceDescriber) URI added in v1.7.0

func (d *RDWebServiceDescriber) URI(envName string) (URI, error)

URI returns the WebServiceURI to identify this service uniquely given an environment name.

type ReachableService added in v1.10.0

type ReachableService interface {
	URI(env string) (URI, error)
}

ReachableService represents a service describer that has an endpoint.

func NewReachableService added in v1.10.0

func NewReachableService(app, svc string, store ConfigStoreSvc) (ReachableService, error)

NewReachableService returns a ReachableService based on the type of the service.

type ServiceConfig

type ServiceConfig struct {
	Environment string `json:"environment"`
	Port        string `json:"port"`
	CPU         string `json:"cpu"`
	Memory      string `json:"memory"`
	Platform    string `json:"platform,omitempty"`
}

ServiceConfig contains serialized configuration parameters for a service.

type URI added in v1.19.0

type URI struct {
	URI        string
	AccessType URIAccessType
}

type URIAccessType added in v1.19.0

type URIAccessType int
const (
	URIAccessTypeNone URIAccessType = iota
	URIAccessTypeInternet
	URIAccessTypeInternal
	URIAccessTypeServiceDiscovery
	URIAccessTypeServiceConnect
)

type WebServiceRoute

type WebServiceRoute struct {
	Environment string `json:"environment"`
	URL         string `json:"url"`
}

WebServiceRoute contains serialized route parameters for a web service.

type WorkerServiceDescriber added in v1.10.0

type WorkerServiceDescriber struct {
	// contains filtered or unexported fields
}

WorkerServiceDescriber retrieves information about a worker service.

func NewWorkerServiceDescriber added in v1.10.0

func NewWorkerServiceDescriber(opt NewServiceConfig) (*WorkerServiceDescriber, error)

NewWorkerServiceDescriber instantiates a worker service describer.

func (*WorkerServiceDescriber) Describe added in v1.10.0

Describe returns info of a worker service.

func (*WorkerServiceDescriber) Manifest added in v1.20.0

func (d *WorkerServiceDescriber) Manifest(env string) ([]byte, error)

Manifest returns the contents of the manifest used to deploy a worker service stack. If the Manifest metadata doesn't exist in the stack template, then returns ErrManifestNotFoundInTemplate.

Directories

Path Synopsis
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.
mocks
Package mocks is a generated GoMock package.
Package mocks is a generated GoMock package.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL