Documentation ¶
Index ¶
- Variables
- func AppService() (appTypes.AppService, error)
- func Build(ctx context.Context, opts DeployOptions) (string, error)
- func CacheService() (cache.AppCacheService, error)
- func CreateApp(ctx context.Context, app *App, user *auth.User) error
- func Delete(ctx context.Context, app *App, evt *event.Event, requestID string) error
- func Deploy(ctx context.Context, opts DeployOptions) (string, error)
- func GetAppRouterUpdater() *appRouterUpdater
- func MigrateDeploysToEvents() error
- func PlanService() (appTypes.PlanService, error)
- func PlatformService() (appTypes.PlatformService, error)
- func QuotaService() (quotaTypes.QuotaService, error)
- func RenameTeam(ctx context.Context, oldName, newName string) error
- func RollbackUpdate(ctx context.Context, app *App, imageID, reason string, disableRollback bool) error
- func Swap(ctx context.Context, app1, app2 *App, cnameOnly bool) error
- func Units(ctx context.Context, apps []App) (map[string]AppUnitsResponse, error)
- func ValidateOrigin(origin string) bool
- type App
- func (app *App) AddCName(cnames ...string) error
- func (app *App) AddInstance(addArgs bind.AddInstanceArgs) error
- func (app *App) AddRouter(appRouter appTypes.AppRouter) error
- func (app *App) AddUnits(n uint, process, versionStr string, w io.Writer) error
- func (app *App) AutoScale(spec provision.AutoScaleSpec) error
- func (app *App) AutoScaleInfo() ([]provision.AutoScaleSpec, error)
- func (app *App) Context() context.Context
- func (app *App) DeleteVersion(ctx context.Context, w io.Writer, versionStr string) error
- func (app *App) DeployedVersions() ([]int, error)
- func (app *App) Envs() map[string]bindTypes.EnvVar
- func (app *App) GetAddresses() ([]string, error)
- func (app *App) GetCertificates() (map[string]map[string]string, error)
- func (app *App) GetCname() []string
- func (app *App) GetDeploys() uint
- func (app *App) GetHealthcheckData() (routerTypes.HealthcheckData, error)
- func (app *App) GetInternalBindableAddresses() ([]string, error)
- func (app *App) GetMetadata(process string) appTypes.Metadata
- func (app *App) GetName() string
- func (app *App) GetPlan() appTypes.Plan
- func (app *App) GetPlatform() string
- func (app *App) GetPlatformVersion() string
- func (app *App) GetPool() string
- func (app *App) GetProcess(process string) *appTypes.Process
- func (app *App) GetQuota() (*quota.Quota, error)
- func (app *App) GetQuotaInUse() (int, error)
- func (app *App) GetRegistry() (imgTypes.ImageRegistry, error)
- func (app *App) GetRouters() []appTypes.AppRouter
- func (app *App) GetRoutersWithAddr() ([]appTypes.AppRouter, error)
- func (app *App) GetTeamOwner() string
- func (app *App) GetTeams() []authTypes.Team
- func (app *App) GetTeamsName() []string
- func (app *App) GetUUID() (string, error)
- func (app *App) GetUpdatePlatform() bool
- func (app *App) Grant(team *authTypes.Team) error
- func (app *App) InstanceEnvs(serviceName, instanceName string) map[string]bindTypes.EnvVar
- func (app *App) KillUnit(unitName string, force bool) error
- func (app *App) LastLogs(ctx context.Context, logService appTypes.AppLogService, ...) ([]appTypes.Applog, error)
- func (app *App) ListTags() []string
- func (app *App) MarshalJSON() ([]byte, error)
- func (app *App) RemoveAutoScale(process string) error
- func (app *App) RemoveCName(cnames ...string) error
- func (app *App) RemoveCertificate(name string) error
- func (app *App) RemoveInstance(removeArgs bind.RemoveInstanceArgs) error
- func (app *App) RemoveRouter(name string) error
- func (app *App) RemoveUnits(ctx context.Context, n uint, process, versionStr string, w io.Writer) error
- func (app *App) ReplaceContext(ctx context.Context)
- func (app *App) Restart(ctx context.Context, process, versionStr string, w io.Writer) error
- func (app *App) Revoke(team *authTypes.Team) error
- func (app *App) RoutableAddresses(ctx context.Context) ([]appTypes.RoutableAddresses, error)
- func (app *App) Run(cmd string, w io.Writer, args provision.RunArgs) error
- func (app *App) SetCertificate(name, certificate, key string) error
- func (app *App) SetEnvs(setEnvs bind.SetEnvArgs) error
- func (app *App) SetPool() error
- func (app *App) SetQuotaLimit(limit int) error
- func (app *App) SetRoutable(ctx context.Context, version appTypes.AppVersion, isRoutable bool) error
- func (app *App) SetUpdatePlatform(check bool) error
- func (app *App) Shell(opts provision.ExecOptions) error
- func (app *App) Start(ctx context.Context, w io.Writer, process, versionStr string) error
- func (app *App) Stop(ctx context.Context, w io.Writer, process, versionStr string) error
- func (a *App) SuppressSensitiveEnvs()
- func (app *App) Units() ([]provision.Unit, error)
- func (app *App) UnitsMetrics() ([]provision.UnitMetric, error)
- func (app *App) UnsetEnvs(unsetEnvs bind.UnsetEnvArgs) error
- func (app *App) Update(args UpdateAppArgs) (err error)
- func (app *App) UpdateRouter(appRouter appTypes.AppRouter) error
- func (app *App) ValidateService(services ...string) error
- func (app *App) VerticalAutoScaleRecommendations() ([]provision.RecommendedResources, error)
- type AppUnitsResponse
- type DeployData
- type DeployOptions
- type Filter
- type LogWriter
- type UpdateAppArgs
- type UpdateUnitsResult
Constants ¶
This section is empty.
Variables ¶
var ( ErrAlreadyHaveAccess = errors.New("team already have access to this app") ErrNoAccess = errors.New("team does not have access to this app") ErrCannotOrphanApp = errors.New("cannot revoke access from this team, as it's the unique team with access to the app") ErrDisabledPlatform = errors.New("Disabled Platform, only admin users can create applications with the platform") ErrRouterAlreadyLinked = errors.New("router already linked to this app") ErrNoVersionProvisioner = errors.New("The current app provisioner does not support multiple versions handling") ErrKillUnitProvisioner = errors.New("The current app provisioner does not support killing a unit") ErrSwapMultipleVersions = errors.New("swapping apps with multiple versions is not allowed") ErrSwapMultipleRouters = errors.New("swapping apps with multiple routers is not supported") ErrSwapDifferentRouters = errors.New("swapping apps with different routers is not supported") ErrSwapNoCNames = errors.New("no cnames to swap") ErrSwapDeprecated = errors.New("swapping using router api v2 will work only with cnameOnly") )
var (
AuthScheme auth.Scheme
)
var (
ErrAppAlreadyExists = errors.New("there is already an app with this name")
)
var SuppressedEnv = "*** (private variable)"
var TestLogWriterWaitOnClose = false
TestLogWriterWaitOnClose should only be set when running tests to avoid different test cases interacting.
Functions ¶
func AppService ¶
func AppService() (appTypes.AppService, error)
func CacheService ¶
func CacheService() (cache.AppCacheService, error)
func CreateApp ¶
CreateApp creates a new app.
Creating a new app is a process composed of the following steps:
- Save the app in the database
- Provision the app using the provisioner
func Deploy ¶
func Deploy(ctx context.Context, opts DeployOptions) (string, error)
Deploy runs a deployment of an application. It will first try to run an archive based deploy (if opts.ArchiveURL is not empty), and then fallback to the Git based deployment.
func GetAppRouterUpdater ¶
func GetAppRouterUpdater() *appRouterUpdater
func MigrateDeploysToEvents ¶
func MigrateDeploysToEvents() error
func PlanService ¶
func PlanService() (appTypes.PlanService, error)
func PlatformService ¶
func PlatformService() (appTypes.PlatformService, error)
func QuotaService ¶
func QuotaService() (quotaTypes.QuotaService, error)
func RollbackUpdate ¶
func ValidateOrigin ¶
Types ¶
type App ¶
type App struct { Env map[string]bindTypes.EnvVar ServiceEnvs []bindTypes.ServiceEnvVar Platform string `bson:"framework"` PlatformVersion string Name string CName []string Teams []string TeamOwner string Owner string Plan appTypes.Plan UpdatePlatform bool Lock appTypes.AppLock Pool string Description string Router string RouterOpts map[string]string Deploys uint Tags []string Error string Routers []appTypes.AppRouter Metadata appTypes.Metadata Processes []appTypes.Process // UUID is a v4 UUID lazily generated on the first call to GetUUID() UUID string // InterApp Properties implemented by provision.InterAppProvisioner // it is lazy generated on the first call to FillInternalAddresses InternalAddresses []provision.AppInternalAddress `json:",omitempty" bson:"-"` Quota quota.Quota // contains filtered or unexported fields }
App is the main type in tsuru. An app represents a real world application. This struct holds information about the app: its name, address, list of teams that have access to it, used platform, etc.
func (*App) AddCName ¶
AddCName adds a CName to app. It updates the attribute, calls the SetCName function on the provisioner and saves the app in the database, returning an error when it cannot save the change in the database or add the CName on the provisioner.
func (*App) AddInstance ¶
func (app *App) AddInstance(addArgs bind.AddInstanceArgs) error
func (*App) AddUnits ¶
AddUnits creates n new units within the provisioner, saves new units in the database and enqueues the apprc serialization.
func (*App) AutoScaleInfo ¶
func (app *App) AutoScaleInfo() ([]provision.AutoScaleSpec, error)
func (*App) DeleteVersion ¶
DeleteVersion deletes an app version.
func (*App) DeployedVersions ¶
func (*App) GetAddresses ¶
func (*App) GetCertificates ¶
func (*App) GetDeploys ¶
GetDeploys returns the amount of deploys of an app.
func (*App) GetHealthcheckData ¶
func (app *App) GetHealthcheckData() (routerTypes.HealthcheckData, error)
func (*App) GetInternalBindableAddresses ¶
func (*App) GetPlatform ¶
GetPlatform returns the platform of the app.
func (*App) GetPlatformVersion ¶
GetPlatformVersion returns the platform version of the app.
func (*App) GetQuotaInUse ¶
func (*App) GetRegistry ¶
func (app *App) GetRegistry() (imgTypes.ImageRegistry, error)
func (*App) GetRouters ¶
func (*App) GetTeamOwner ¶
GetTeamOwner returns the team owner of the app.
func (*App) GetTeamsName ¶
GetTeamsName returns the names of the app teams.
func (*App) GetUUID ¶
GetUUID returns the app v4 UUID. An UUID will be generated if it does not exist.
func (*App) GetUpdatePlatform ¶
func (*App) Grant ¶
Grant allows a team to have access to an app. It returns an error if the team already have access to the app.
func (*App) InstanceEnvs ¶
InstanceEnvs returns a map of environment variables that belongs to the given service and service instance.
func (*App) LastLogs ¶
func (app *App) LastLogs(ctx context.Context, logService appTypes.AppLogService, args appTypes.ListLogArgs) ([]appTypes.Applog, error)
LastLogs returns a list of the last `lines` log of the app, matching the fields in the log instance received as an example.
func (*App) MarshalJSON ¶
MarshalJSON marshals the app in json format.
func (*App) RemoveAutoScale ¶
func (*App) RemoveCName ¶
func (*App) RemoveCertificate ¶
func (*App) RemoveInstance ¶
func (app *App) RemoveInstance(removeArgs bind.RemoveInstanceArgs) error
func (*App) RemoveRouter ¶
func (*App) RemoveUnits ¶
func (app *App) RemoveUnits(ctx context.Context, n uint, process, versionStr string, w io.Writer) error
RemoveUnits removes n units from the app. It's a process composed of multiple steps:
- Remove units from the provisioner
- Update quota
func (*App) ReplaceContext ¶
func (*App) Revoke ¶
Revoke removes the access from a team. It returns an error if the team do not have access to the app.
func (*App) RoutableAddresses ¶
func (*App) SetCertificate ¶
func (*App) SetEnvs ¶
func (app *App) SetEnvs(setEnvs bind.SetEnvArgs) error
SetEnvs saves a list of environment variables in the app.
func (*App) SetQuotaLimit ¶
func (*App) SetRoutable ¶
func (*App) SetUpdatePlatform ¶
func (*App) Start ¶
Start starts the app calling the provisioner.Start method and changing the units state to StatusStarted.
func (*App) SuppressSensitiveEnvs ¶
func (a *App) SuppressSensitiveEnvs()
func (*App) UnitsMetrics ¶
func (app *App) UnitsMetrics() ([]provision.UnitMetric, error)
func (*App) UnsetEnvs ¶
func (app *App) UnsetEnvs(unsetEnvs bind.UnsetEnvArgs) error
UnsetEnvs removes environment variables from an app, serializing the remaining list of environment variables to all units of the app.
func (*App) Update ¶
func (app *App) Update(args UpdateAppArgs) (err error)
Update changes informations of the application.
func (*App) ValidateService ¶
func (*App) VerticalAutoScaleRecommendations ¶
func (app *App) VerticalAutoScaleRecommendations() ([]provision.RecommendedResources, error)
type AppUnitsResponse ¶
type DeployData ¶
type DeployData struct { ID bson.ObjectId `bson:"_id,omitempty"` App string Timestamp time.Time Duration time.Duration Commit string Error string Image string Version int Log string User string Origin string CanRollback bool Diff string Message string }
func GetDeploy ¶
func GetDeploy(id string) (*DeployData, error)
func ListDeploys ¶
ListDeploys returns the list of deploy that match a given filter.
type DeployOptions ¶
type DeployOptions struct { App *App Commit string BuildTag string ArchiveURL string Dockerfile string FileSize int64 File io.ReadCloser `bson:"-"` OutputStream io.Writer `bson:"-"` User string Image string Origin string Event *event.Event `bson:"-"` Kind provisionTypes.DeployKind Message string Rollback bool Build bool NewVersion bool OverrideVersions bool }
func (*DeployOptions) GetKind ¶
func (o *DeployOptions) GetKind() (kind provisionTypes.DeployKind)
func (*DeployOptions) GetOrigin ¶
func (o *DeployOptions) GetOrigin() string