Documentation
¶
Index ¶
- Constants
- Variables
- func ArgListToString(args []string) string
- func ChangesInvalidateBuild(old, new Manifest) bool
- func DockerignoresToIgnores(source []Dockerignore) []v1alpha1.IgnoreDef
- func FilterLiveUpdateOnly(imageMapDeps []string, imageTargets []ImageTarget) []string
- func ImageTargetsByID(iTargets []ImageTarget) map[TargetID]ImageTarget
- func IsEmptyDockerComposeProject(p v1alpha1.DockerComposeProject) bool
- func LinksToURLStrings(lns []Link) []string
- func LocalRefSelectorsForManifests(manifests []Manifest, clusters map[string]*v1alpha1.Cluster) []container.RefSelector
- func MakeTargetMap(targets []TargetSpec) map[TargetID]TargetSpec
- func NewRelativeFileOrChildMatcher(baseDir string, paths ...string) fileOrChildMatcher
- func NormalizeName(s string) string
- func TargetIDSet(tids []TargetID) map[TargetID]bool
- func UnrecognizedWebModeError(v string) error
- func ValidTriggerMode(tm TriggerMode) bool
- func ValidateAPIServerName(name APIServerName) error
- type APIServerName
- type BuildDetails
- type BuildReason
- type BuildRecord
- type BuildType
- type ByURL
- type Cmd
- func ToBatCmd(cmd string) Cmd
- func ToHostCmd(cmd string) Cmd
- func ToHostCmdInDir(cmd string, dir string) Cmd
- func ToHostCmdInDirWithEnv(cmd string, dir string, env []string) Cmd
- func ToUnixCmd(cmd string) Cmd
- func ToUnixCmdInDir(cmd string, dir string) Cmd
- func ToUnixCmds(cmds []string) []Cmd
- func TrySquash(runs []Cmd) []Cmd
- type CompositePathMatcher
- type CustomBuild
- type DockerBuild
- type DockerComposeBuild
- type DockerComposeTarget
- func (t DockerComposeTarget) DependencyIDs() []TargetID
- func (t DockerComposeTarget) Empty() bool
- func (t DockerComposeTarget) ID() TargetID
- func (t DockerComposeTarget) ManifestName() ManifestName
- func (t DockerComposeTarget) PublishedPorts() []int
- func (dc DockerComposeTarget) Validate() error
- func (t DockerComposeTarget) WithImageMapDeps(names []string) DockerComposeTarget
- func (t DockerComposeTarget) WithLinks(links []Link) DockerComposeTarget
- func (t DockerComposeTarget) WithPublishedPorts(ports []int) DockerComposeTarget
- type DockerPruneSettings
- type Dockerignore
- type ImageTarget
- func (i ImageTarget) ClusterNeeds() v1alpha1.ClusterImageNeeds
- func (i ImageTarget) CustomBuildInfo() CustomBuild
- func (i ImageTarget) Dependencies() []string
- func (i ImageTarget) DependencyIDs() []TargetID
- func (i ImageTarget) DockerBuildInfo() DockerBuild
- func (i ImageTarget) DockerComposeBuildInfo() DockerComposeBuild
- func (i ImageTarget) GetFileWatchIgnores() []v1alpha1.IgnoreDef
- func (i ImageTarget) ID() TargetID
- func (i ImageTarget) ImageMapDeps() []string
- func (i ImageTarget) ImageMapName() string
- func (i ImageTarget) IsCustomBuild() bool
- func (i ImageTarget) IsDockerBuild() bool
- func (i ImageTarget) IsDockerComposeBuild() bool
- func (i ImageTarget) LocalPaths() []string
- func (i ImageTarget) MustWithRef(ref container.RefSelector) ImageTarget
- func (i ImageTarget) Refs(cluster *v1alpha1.Cluster) (container.RefSet, error)
- func (i ImageTarget) Validate() error
- func (i ImageTarget) WithBuildDetails(details BuildDetails) ImageTarget
- func (i ImageTarget) WithDockerImage(spec v1alpha1.DockerImageSpec) ImageTarget
- func (i ImageTarget) WithFileWatchIgnores(ignores []v1alpha1.IgnoreDef) ImageTarget
- func (i ImageTarget) WithIgnores(ignores []v1alpha1.IgnoreDef) ImageTarget
- func (i ImageTarget) WithImageMapDeps(names []string) ImageTarget
- func (i ImageTarget) WithLiveUpdateSpec(name string, luSpec v1alpha1.LiveUpdateSpec) ImageTarget
- func (i ImageTarget) WithOverrideCommand(cmd Cmd) ImageTarget
- type K8sTarget
- func (k8s K8sTarget) Dependencies() []string
- func (k8s K8sTarget) DependencyIDs() []TargetID
- func (k8s K8sTarget) Empty() bool
- func (k8s K8sTarget) GetFileWatchIgnores() []v1alpha1.IgnoreDef
- func (k8s K8sTarget) ID() TargetID
- func (k8s K8sTarget) RefInjectCounts() map[string]int
- func (k8s K8sTarget) Validate() error
- func (k8s K8sTarget) WithIgnores(ignores []v1alpha1.IgnoreDef) K8sTarget
- func (k8s K8sTarget) WithImageDependencies(imageMapDeps []string) K8sTarget
- func (k8s K8sTarget) WithPathDependencies(paths []string) K8sTarget
- func (k8s K8sTarget) WithRefInjectCounts(ric map[string]int) K8sTarget
- type LabelPair
- type Link
- type LocalTarget
- func (lt LocalTarget) Dependencies() []string
- func (lt LocalTarget) DependencyIDs() []TargetID
- func (lt LocalTarget) Empty() bool
- func (lt LocalTarget) GetFileWatchIgnores() []v1alpha1.IgnoreDef
- func (lt LocalTarget) ID() TargetID
- func (lt LocalTarget) UpdateCmdName() string
- func (lt LocalTarget) Validate() error
- func (lt LocalTarget) WithAllowParallel(val bool) LocalTarget
- func (lt LocalTarget) WithIgnores(ignores []v1alpha1.IgnoreDef) LocalTarget
- func (lt LocalTarget) WithLinks(links []Link) LocalTarget
- func (lt LocalTarget) WithReadinessProbe(probeSpec *v1alpha1.Probe) LocalTarget
- type LogSpanID
- type Manifest
- func (m *Manifest) ClusterName() string
- func (m Manifest) DependencyIDs() []TargetID
- func (m Manifest) DockerComposeTarget() DockerComposeTarget
- func (m Manifest) ID() TargetID
- func (m Manifest) ImageTargetAt(i int) ImageTarget
- func (m Manifest) ImageTargetWithID(id TargetID) ImageTarget
- func (m *Manifest) InferImageProperties() error
- func (m *Manifest) InferLiveUpdateSelectors() error
- func (m Manifest) IsDC() bool
- func (m Manifest) IsImageDeployed(iTarget ImageTarget) bool
- func (m Manifest) IsK8s() bool
- func (m Manifest) IsLocal() bool
- func (m Manifest) K8sTarget() K8sTarget
- func (m Manifest) LocalPaths() []string
- func (m Manifest) LocalTarget() LocalTarget
- func (m Manifest) ManifestName() ManifestName
- func (m Manifest) PodReadinessMode() PodReadinessMode
- func (m Manifest) ReverseDependencyIDs() map[TargetID][]TargetID
- func (m Manifest) TargetIDSet() map[TargetID]bool
- func (m Manifest) TargetSpecs() []TargetSpec
- func (m Manifest) Validate() error
- func (m Manifest) WithDeployTarget(t TargetSpec) Manifest
- func (m Manifest) WithDisableSource(disableSource *v1alpha1.DisableSource) Manifest
- func (m Manifest) WithImageTarget(iTarget ImageTarget) Manifest
- func (m Manifest) WithImageTargets(iTargets []ImageTarget) Manifest
- func (m Manifest) WithLabels(labels map[string]string) Manifest
- func (m Manifest) WithTriggerMode(mode TriggerMode) Manifest
- type ManifestName
- type ManifestNameSet
- type Orchestrator
- type PathMatcher
- type PathSet
- type PodReadinessMode
- type PortForward
- type Run
- type Secret
- type SecretSet
- type SecretSettings
- type Sync
- type Target
- type TargetGraph
- func (g TargetGraph) DeployedImages() []ImageTarget
- func (g TargetGraph) DepsOf(t TargetSpec) ([]TargetSpec, error)
- func (g TargetGraph) Images() []ImageTarget
- func (g TargetGraph) IsDeployedImage(iTarget ImageTarget) bool
- func (g TargetGraph) IsSingleSourceDAG() bool
- func (g TargetGraph) VisitTree(root TargetSpec, visit func(dep TargetSpec) error) error
- type TargetID
- type TargetName
- type TargetSpec
- type TargetStatus
- type TargetType
- type TelemetrySettings
- type TelemetryStatus
- type TiltBuild
- type TiltSubcommand
- type TriggerMode
- type UpdateSettings
- type UserConfigState
- type VersionSettings
- type WatchSettings
- type WebDevPort
- type WebHost
- type WebMode
- type WebPort
- type WebSHA
- type WebURL
- type WebVersion
Constants ¶
const BuildHistoryLimit = 2
const BuildReasonNone = BuildReason(0)
const (
DefaultMaxParallelUpdates = 3
)
const DefaultTelemetryPeriod = 60 * time.Second
const DefaultWebPort = 10350
const DockerPruneDefaultInterval = time.Hour
How often to prune Docker images while Tilt is running
const DockerPruneDefaultKeepRecent = 2
Keep the last 2 builds of an image
const DockerPruneDefaultMaxAge = time.Hour * 6
Prune Docker objects older than this
const MainTiltfileManifestName = ManifestName("(Tiltfile)")
const OrchestratorDC = Orchestrator("DockerCompose")
const OrchestratorK8s = Orchestrator("Kubernetes")
const OrchestratorUnknown = Orchestrator("")
const UnresourcedYAMLManifestName = ManifestName("uncategorized")
TODO(maia): throw an error if you try to name a manifest this in your Tiltfile?
Variables ¶
var TriggerModes = map[TriggerMode]bool{
TriggerModeAuto: true,
TriggerModeManualWithAutoInit: true,
TriggerModeManual: true,
TriggerModeAutoWithManualInit: true,
}
Functions ¶
func ArgListToString ¶ added in v0.21.1
func ArgListToString(args []string) string
func ChangesInvalidateBuild ¶
func ChangesInvalidateBuild(old, new Manifest) bool
ChangesInvalidateBuild checks whether the changes from old => new manifest invalidate our build of the old one; i.e. if we're replacing `old` with `new`, should we perform a full rebuild?
func DockerignoresToIgnores ¶ added in v0.27.3
func DockerignoresToIgnores(source []Dockerignore) []v1alpha1.IgnoreDef
func FilterLiveUpdateOnly ¶ added in v0.23.5
func FilterLiveUpdateOnly(imageMapDeps []string, imageTargets []ImageTarget) []string
func ImageTargetsByID ¶
func ImageTargetsByID(iTargets []ImageTarget) map[TargetID]ImageTarget
func IsEmptyDockerComposeProject ¶ added in v0.22.12
func IsEmptyDockerComposeProject(p v1alpha1.DockerComposeProject) bool
func LinksToURLStrings ¶ added in v0.17.8
func LinksToURLStrings(lns []Link) []string
func LocalRefSelectorsForManifests ¶ added in v0.14.0
func LocalRefSelectorsForManifests(manifests []Manifest, clusters map[string]*v1alpha1.Cluster) []container.RefSelector
func MakeTargetMap ¶
func MakeTargetMap(targets []TargetSpec) map[TargetID]TargetSpec
Map all the targets by their target ID.
func NewRelativeFileOrChildMatcher ¶
func NewRelativeFileOrChildMatcher(baseDir string, paths ...string) fileOrChildMatcher
NewRelativeFileOrChildMatcher returns a matcher for the given paths (with any relative paths converted to absolute, relative to the given baseDir).
func NormalizeName ¶ added in v0.23.4
func NormalizeName(s string) string
normalization logic from https://github.com/compose-spec/compose-go/blob/c39f6e771fe5034fe1bec40ba5f0285ec60f5efe/cli/options.go#L366-L371
func TargetIDSet ¶
func TargetIDSet(tids []TargetID) map[TargetID]bool
func UnrecognizedWebModeError ¶
func UnrecognizedWebModeError(v string) error
func ValidTriggerMode ¶ added in v0.18.4
func ValidTriggerMode(tm TriggerMode) bool
func ValidateAPIServerName ¶ added in v0.19.5
func ValidateAPIServerName(name APIServerName) error
Makes sure the apiserver name is well-formed.
Types ¶
type APIServerName ¶ added in v0.19.5
type APIServerName string
If there are multiple tilt apiservers running, we can refer to them by name.
func DefaultAPIServerName ¶ added in v0.19.5
func DefaultAPIServerName(port WebPort) APIServerName
Each apiserver has a name based on the web port.
func ProvideAPIServerName ¶ added in v0.19.5
func ProvideAPIServerName(port WebPort) APIServerName
Determines what the API server name should be based on the --port flag.
TODO(nick): Long-term, most tools in this space are moving away from making users manage ports, and using names to identify different instances.
type BuildDetails ¶
type BuildDetails interface {
// contains filtered or unexported methods
}
type BuildReason ¶
type BuildReason int
const (
BuildReasonFlagChangedFiles BuildReason = 1 << iota
BuildReasonFlagConfig
// NOTE(nick): In live-update-v1, if a container had live-updated changed,
// then crashed, we would automatically replace it with a fresh image.
// This approach was difficult to reason about and sometimes led to infinite loops.
// Users complained that it was too aggressive about doing an image build.
//
// In live-update-v2, the reconciler keeps track of how to bring crashing
// containers up to date. Instead, we only kick off fresh image builds
// if there's a new file change / trigger but the container has been
// marked unrecoverable. So this build reason is obsolete.
BuildReasonFlagCrashDeprecated
BuildReasonFlagInit
BuildReasonFlagTriggerWeb
BuildReasonFlagTriggerCLI
BuildReasonFlagTriggerUnknown
// An external process called `tilt args`
BuildReasonFlagTiltfileArgs
// Suppose you have
// manifestA with imageA depending on imageCommon
// manifestB with imageB depending on imageCommon
//
// Building manifestA will mark imageB
// with changed dependencies.
BuildReasonFlagChangedDeps
)
func (BuildReason) HasTrigger ¶ added in v0.14.0
func (r BuildReason) HasTrigger() bool
func (BuildReason) WithoutTriggers ¶ added in v0.25.1
func (r BuildReason) WithoutTriggers() BuildReason
type BuildRecord ¶
type BuildRecord struct {
Edits []string
Error error
StartTime time.Time
FinishTime time.Time // IsZero() == true for in-progress builds
Reason BuildReason
BuildTypes []BuildType
// The lookup key for the logs in the logstore.
SpanID LogSpanID
// We count the warnings by looking up all the logs with Level=WARNING
// in the logstore. We store this number separately for ease of use.
WarningCount int
}
func (BuildRecord) HasBuildType ¶ added in v0.10.14
func (r BuildRecord) HasBuildType(bt BuildType) bool
type BuildType ¶ added in v0.10.14
type BuildType string
const BuildTypeDockerCompose BuildType = "docker-compose"
const BuildTypeImage BuildType = "image"
const BuildTypeK8s BuildType = "k8s"
const BuildTypeLiveUpdate BuildType = "live-update"
const BuildTypeLocal BuildType = "local"
type ByURL ¶ added in v0.17.7
type ByURL []Link
ByURL implements sort.Interface based on the URL field.
type Cmd ¶
type Cmd struct {
Argv []string
Dir string
Env []string
}
func ToBatCmd ¶ added in v0.14.0
func ToBatCmd(cmd string) Cmd
🦇🦇🦇 Named in honor of Bazel https://docs.bazel.build/versions/master/be/general.html#genrule.cmd_bat
func ToHostCmd ¶ added in v0.14.0
func ToHostCmd(cmd string) Cmd
Create a shell command for running on the Host OS
func ToHostCmdInDir ¶ added in v0.18.1
func ToHostCmdInDir(cmd string, dir string) Cmd
func ToHostCmdInDirWithEnv ¶ added in v0.18.5
func ToHostCmdInDirWithEnv(cmd string, dir string, env []string) Cmd
func ToUnixCmdInDir ¶ added in v0.18.1
func ToUnixCmdInDir(cmd string, dir string) Cmd
func ToUnixCmds ¶ added in v0.14.0
func ToUnixCmds(cmds []string) []Cmd
func (Cmd) EntrypointStr ¶
func (c Cmd) EntrypointStr() string
func (Cmd) IsShellStandardForm ¶
func (c Cmd) IsShellStandardForm() bool
func (Cmd) IsWindowsStandardForm ¶ added in v0.14.0
func (c Cmd) IsWindowsStandardForm() bool
func (Cmd) ShellStandardScript ¶
func (c Cmd) ShellStandardScript() string
Get the script when the shell is in standard form. Panics if the command is not in shell standard form.
type CompositePathMatcher ¶
type CompositePathMatcher struct {
Matchers []PathMatcher
}
func (CompositePathMatcher) MatchesEntireDir ¶
func (c CompositePathMatcher) MatchesEntireDir(f string) (bool, error)
type CustomBuild ¶
type CustomBuild struct {
v1alpha1.CmdImageSpec
// Deps is a list of file paths that are dependencies of this command.
//
// TODO(nick): This creates a FileWatch. We should add a RestartOn field
// to CmdImageSpec that points to the FileWatch.
Deps []string
}
type DockerBuild ¶
type DockerBuild struct {
v1alpha1.DockerImageSpec
}
type DockerComposeBuild ¶ added in v0.23.2
type DockerComposeBuild struct {
// Service is the name of the Docker Compose service as defined in docker-compose.yaml.
Service string
// Context is the build context absolute path.
Context string
}
type DockerComposeTarget ¶
type DockerComposeTarget struct {
Spec v1alpha1.DockerComposeServiceSpec
Name TargetName
ServiceYAML string // for diff'ing when config files change
Links []Link
// contains filtered or unexported fields
}
func ExtractDockerComposeTargets ¶
func ExtractDockerComposeTargets(specs []TargetSpec) []DockerComposeTarget
func (DockerComposeTarget) DependencyIDs ¶
func (t DockerComposeTarget) DependencyIDs() []TargetID
func (DockerComposeTarget) ManifestName ¶
func (t DockerComposeTarget) ManifestName() ManifestName
TODO(nick): This is a temporary hack until we figure out how we want to pass these IDs to the docker-compose UX.
func (DockerComposeTarget) PublishedPorts ¶
func (t DockerComposeTarget) PublishedPorts() []int
func (DockerComposeTarget) WithImageMapDeps ¶ added in v0.23.5
func (t DockerComposeTarget) WithImageMapDeps(names []string) DockerComposeTarget
func (DockerComposeTarget) WithLinks ¶ added in v0.18.9
func (t DockerComposeTarget) WithLinks(links []Link) DockerComposeTarget
func (DockerComposeTarget) WithPublishedPorts ¶
func (t DockerComposeTarget) WithPublishedPorts(ports []int) DockerComposeTarget
type DockerPruneSettings ¶ added in v0.10.14
type DockerPruneSettings struct {
Enabled bool
MaxAge time.Duration // "prune Docker objects older than X"
NumBuilds int // "prune every Y builds" (takes precedence over "prune every Z hours")
Interval time.Duration // "prune every Z hours"
KeepRecent int // Keep the most recent N builds of a tag.
}
func DefaultDockerPruneSettings ¶ added in v0.10.14
func DefaultDockerPruneSettings() DockerPruneSettings
type Dockerignore ¶
type Dockerignore struct {
// The path to evaluate the dockerignore contents relative to
LocalPath string
// A human-readable string that identifies where the ignores come from.
Source string
// Patterns parsed out of the .dockerignore file.
Patterns []string
}
type ImageTarget ¶
type ImageTarget struct {
// An apiserver-driven data model for injecting the image into other resources.
v1alpha1.ImageMapSpec
// An apiserver-driven data model for live-updating containers.
LiveUpdateName string
LiveUpdateSpec v1alpha1.LiveUpdateSpec
LiveUpdateReconciler bool
// An apiserver-driven data model for using docker to build images.
DockerImageName string
CmdImageName string
BuildDetails BuildDetails
// In a live-update-only image, we don't inject the image into the Kubernetes
// deploy, we only live-update to the deployed object. See this issue:
//
// https://github.com/tilt-dev/tilt/issues/4577
//
// This is a hacky way to model this right now until we
// firm up how images work in the apiserver.
IsLiveUpdateOnly bool
FileWatchIgnores []v1alpha1.IgnoreDef
}
func ExtractImageTargets ¶
func ExtractImageTargets(specs []TargetSpec) []ImageTarget
func MustNewImageTarget ¶ added in v0.14.0
func MustNewImageTarget(ref container.RefSelector) ImageTarget
func (ImageTarget) ClusterNeeds ¶ added in v0.27.1
func (i ImageTarget) ClusterNeeds() v1alpha1.ClusterImageNeeds
func (ImageTarget) CustomBuildInfo ¶
func (i ImageTarget) CustomBuildInfo() CustomBuild
func (ImageTarget) Dependencies ¶
func (i ImageTarget) Dependencies() []string
TODO(nick): This method should be deleted. We should just de-dupe and sort LocalPaths once when we create it, rather than have a duplicate method that does the "right" thing.
func (ImageTarget) DependencyIDs ¶
func (i ImageTarget) DependencyIDs() []TargetID
func (ImageTarget) DockerBuildInfo ¶
func (i ImageTarget) DockerBuildInfo() DockerBuild
func (ImageTarget) DockerComposeBuildInfo ¶ added in v0.23.2
func (i ImageTarget) DockerComposeBuildInfo() DockerComposeBuild
func (ImageTarget) GetFileWatchIgnores ¶ added in v0.27.3
func (i ImageTarget) GetFileWatchIgnores() []v1alpha1.IgnoreDef
func (ImageTarget) ImageMapDeps ¶ added in v0.23.5
func (i ImageTarget) ImageMapDeps() []string
func (ImageTarget) ImageMapName ¶ added in v0.22.14
func (i ImageTarget) ImageMapName() string
func (ImageTarget) IsCustomBuild ¶
func (i ImageTarget) IsCustomBuild() bool
func (ImageTarget) IsDockerBuild ¶
func (i ImageTarget) IsDockerBuild() bool
func (ImageTarget) IsDockerComposeBuild ¶ added in v0.23.2
func (i ImageTarget) IsDockerComposeBuild() bool
func (ImageTarget) LocalPaths ¶
func (i ImageTarget) LocalPaths() []string
func (ImageTarget) MustWithRef ¶ added in v0.20.8
func (i ImageTarget) MustWithRef(ref container.RefSelector) ImageTarget
func (ImageTarget) Refs ¶ added in v0.14.0
func (i ImageTarget) Refs(cluster *v1alpha1.Cluster) (container.RefSet, error)
func (ImageTarget) WithBuildDetails ¶
func (i ImageTarget) WithBuildDetails(details BuildDetails) ImageTarget
func (ImageTarget) WithDockerImage ¶ added in v0.23.0
func (i ImageTarget) WithDockerImage(spec v1alpha1.DockerImageSpec) ImageTarget
func (ImageTarget) WithFileWatchIgnores ¶ added in v0.27.3
func (i ImageTarget) WithFileWatchIgnores(ignores []v1alpha1.IgnoreDef) ImageTarget
func (ImageTarget) WithIgnores ¶ added in v0.27.3
func (i ImageTarget) WithIgnores(ignores []v1alpha1.IgnoreDef) ImageTarget
Modified both FileWatchIgnores and ContextIgnores. Useful in tests where they're the same.
func (ImageTarget) WithImageMapDeps ¶ added in v0.23.5
func (i ImageTarget) WithImageMapDeps(names []string) ImageTarget
func (ImageTarget) WithLiveUpdateSpec ¶ added in v0.22.11
func (i ImageTarget) WithLiveUpdateSpec(name string, luSpec v1alpha1.LiveUpdateSpec) ImageTarget
func (ImageTarget) WithOverrideCommand ¶
func (i ImageTarget) WithOverrideCommand(cmd Cmd) ImageTarget
type K8sTarget ¶
type K8sTarget struct {
// An apiserver-driven data model for applying Kubernetes YAML.
//
// This will eventually replace K8sTarget. We represent this as an embedded
// struct while we're migrating fields.
v1alpha1.KubernetesApplySpec
Name TargetName
PodReadinessMode PodReadinessMode
// zero+ links assoc'd with this resource (to be displayed in UIs,
// in addition to any port forwards/LB endpoints)
Links []Link
FileWatchIgnores []v1alpha1.IgnoreDef
// contains filtered or unexported fields
}
func ExtractK8sTargets ¶
func ExtractK8sTargets(specs []TargetSpec) []K8sTarget
func NewK8sTargetForTesting ¶ added in v0.20.8
func NewK8sTargetForTesting(yaml string) K8sTarget
func (K8sTarget) Dependencies ¶ added in v0.23.0
func (k8s K8sTarget) Dependencies() []string
Dependencies are files required by this target.
Part of the WatchableTarget interface.
func (K8sTarget) DependencyIDs ¶
func (k8s K8sTarget) DependencyIDs() []TargetID
func (K8sTarget) GetFileWatchIgnores ¶ added in v0.27.3
func (k8s K8sTarget) GetFileWatchIgnores() []v1alpha1.IgnoreDef
func (K8sTarget) RefInjectCounts ¶
func (k8s K8sTarget) RefInjectCounts() map[string]int
func (K8sTarget) WithIgnores ¶ added in v0.27.3
func (k8s K8sTarget) WithIgnores(ignores []v1alpha1.IgnoreDef) K8sTarget
func (K8sTarget) WithImageDependencies ¶ added in v0.23.0
func (k8s K8sTarget) WithImageDependencies(imageMapDeps []string) K8sTarget
Track which images this depends on.
func (K8sTarget) WithPathDependencies ¶ added in v0.23.0
func (k8s K8sTarget) WithPathDependencies(paths []string) K8sTarget
WithPathDependencies registers paths that this K8sTarget depends on.
func (K8sTarget) WithRefInjectCounts ¶
func (k8s K8sTarget) WithRefInjectCounts(ric map[string]int) K8sTarget
type LabelPair ¶
type LabelPair struct {
Key string
Value string
}
func ToLabelPairs ¶
func ToLabelPairs(m map[string]string) []LabelPair
type Link ¶ added in v0.17.7
type Link struct {
URL *url.URL
// Optional name of the link; if given, used as text of the URL
// displayed in the web UI (e.g. <a href="localhost:8888">Debugger</a>)
Name string
}
A link associated with resource; may represent a port forward, an endpoint derived from a Service/Ingress/etc., or a URL manually associated with a resource via the Tiltfile
func MustNewLink ¶ added in v0.17.8
func MustNewLink(urlStr string, name string) Link
func PortForwardToLink ¶ added in v0.23.0
func PortForwardToLink(pf v1alpha1.Forward) Link
type LocalTarget ¶ added in v0.10.8
type LocalTarget struct {
UpdateCmdSpec *v1alpha1.CmdSpec
Name TargetName
ServeCmd Cmd // e.g. `python main.py`
Links []Link // zero+ links assoc'd with this resource (to be displayed in UIs)
Deps []string // a list of ABSOLUTE file paths that are dependencies of this target
FileWatchIgnores []v1alpha1.IgnoreDef
// Indicates that we should allow this to run in parallel with other
// resources (by default, this is presumed unsafe and is not allowed).
AllowParallel bool
ReadinessProbe *v1alpha1.Probe
// Move this to CmdServerSpec when we move CmdServer to API
ServeCmdDisableSource *v1alpha1.DisableSource
}
func NewLocalTarget ¶ added in v0.10.8
func NewLocalTarget(name TargetName, updateCmd Cmd, serveCmd Cmd, deps []string) LocalTarget
func (LocalTarget) Dependencies ¶ added in v0.10.8
func (lt LocalTarget) Dependencies() []string
Implements: engine.WatchableManifest
func (LocalTarget) DependencyIDs ¶ added in v0.10.8
func (lt LocalTarget) DependencyIDs() []TargetID
func (LocalTarget) GetFileWatchIgnores ¶ added in v0.27.3
func (lt LocalTarget) GetFileWatchIgnores() []v1alpha1.IgnoreDef
func (LocalTarget) UpdateCmdName ¶ added in v0.21.1
func (lt LocalTarget) UpdateCmdName() string
func (LocalTarget) WithAllowParallel ¶ added in v0.17.2
func (lt LocalTarget) WithAllowParallel(val bool) LocalTarget
func (LocalTarget) WithIgnores ¶ added in v0.10.16
func (lt LocalTarget) WithIgnores(ignores []v1alpha1.IgnoreDef) LocalTarget
func (LocalTarget) WithLinks ¶ added in v0.17.8
func (lt LocalTarget) WithLinks(links []Link) LocalTarget
func (LocalTarget) WithReadinessProbe ¶ added in v0.18.6
func (lt LocalTarget) WithReadinessProbe(probeSpec *v1alpha1.Probe) LocalTarget
type Manifest ¶
type Manifest struct {
// Properties for all manifests.
Name ManifestName
// Info needed to build an image. (This struct contains details of DockerBuild, CustomBuild... etc.)
ImageTargets []ImageTarget
// Info needed to deploy. Can be k8s yaml, docker compose, etc.
DeployTarget TargetSpec
// How updates are triggered:
// - automatically, when we detect a change
// - manually, only when the user tells us to
TriggerMode TriggerMode
// The resource in this manifest will not be built until all of its dependencies have been
// ready at least once.
ResourceDependencies []ManifestName
SourceTiltfile ManifestName
Labels map[string]string
}
NOTE: If you modify Manifest, make sure to modify `equalForBuildInvalidation` appropriately
func (*Manifest) ClusterName ¶ added in v0.27.2
func (m *Manifest) ClusterName() string
func (Manifest) DependencyIDs ¶
func (m Manifest) DependencyIDs() []TargetID
func (Manifest) DockerComposeTarget ¶
func (m Manifest) DockerComposeTarget() DockerComposeTarget
func (Manifest) ImageTargetAt ¶
func (m Manifest) ImageTargetAt(i int) ImageTarget
func (Manifest) ImageTargetWithID ¶ added in v0.17.5
func (m Manifest) ImageTargetWithID(id TargetID) ImageTarget
func (*Manifest) InferImageProperties ¶ added in v0.27.2
func (m *Manifest) InferImageProperties() error
Infer image properties for each image.
func (*Manifest) InferLiveUpdateSelectors ¶ added in v0.22.14
func (m *Manifest) InferLiveUpdateSelectors() error
Assemble selectors that point to other API objects created by this manifest.
func (Manifest) IsImageDeployed ¶
func (m Manifest) IsImageDeployed(iTarget ImageTarget) bool
func (Manifest) LocalPaths ¶
func (m Manifest) LocalPaths() []string
func (Manifest) LocalTarget ¶ added in v0.10.8
func (m Manifest) LocalTarget() LocalTarget
func (Manifest) ManifestName ¶
func (m Manifest) ManifestName() ManifestName
func (Manifest) PodReadinessMode ¶ added in v0.17.0
func (m Manifest) PodReadinessMode() PodReadinessMode
func (Manifest) ReverseDependencyIDs ¶ added in v0.16.0
func (m Manifest) ReverseDependencyIDs() map[TargetID][]TargetID
A map from each target id to the target IDs that depend on it.
func (Manifest) TargetIDSet ¶ added in v0.15.0
func (m Manifest) TargetIDSet() map[TargetID]bool
func (Manifest) TargetSpecs ¶
func (m Manifest) TargetSpecs() []TargetSpec
func (Manifest) WithDeployTarget ¶
func (m Manifest) WithDeployTarget(t TargetSpec) Manifest
func (Manifest) WithDisableSource ¶ added in v0.23.0
func (m Manifest) WithDisableSource(disableSource *v1alpha1.DisableSource) Manifest
Set DisableSource for any pieces of the manifest that are disable-able but not yet in the API
func (Manifest) WithImageTarget ¶
func (m Manifest) WithImageTarget(iTarget ImageTarget) Manifest
func (Manifest) WithImageTargets ¶
func (m Manifest) WithImageTargets(iTargets []ImageTarget) Manifest
func (Manifest) WithLabels ¶ added in v0.22.1
func (m Manifest) WithLabels(labels map[string]string) Manifest
func (Manifest) WithTriggerMode ¶
func (m Manifest) WithTriggerMode(mode TriggerMode) Manifest
type ManifestName ¶
type ManifestName string
TODO(nick): We should probably get rid of ManifestName completely and just use TargetName everywhere.
func ManifestNames ¶ added in v0.18.4
func ManifestNames(names []string) []ManifestName
func (ManifestName) TargetName ¶
func (m ManifestName) TargetName() TargetName
type ManifestNameSet ¶ added in v0.17.1
type ManifestNameSet map[ManifestName]bool
type Orchestrator ¶
type Orchestrator string
The current orchestrator we're running with (K8s or DockerCompose)
type PathMatcher ¶
type PathMatcher interface {
Matches(f string) (bool, error)
// If this matches the entire dir, we can often optimize filetree walks a bit
MatchesEntireDir(file string) (bool, error)
}
var EmptyMatcher PathMatcher = emptyMatcher{}
func NewCompositeMatcher ¶
func NewCompositeMatcher(matchers []PathMatcher) PathMatcher
type PathSet ¶
type PathSet struct {
Paths []string
BaseDirectory string
}
A PathSet stores one or more filepaths, along with the directory that any relative paths are relative to NOTE(maia): in its current usage (for LiveUpdate.Run.Triggers, LiveUpdate.FallBackOnFiles()) this isn't strictly necessary, could just as easily convert paths to Abs when specified in the Tiltfile--but leaving this code in place for now because it was already written and may help with complicated future cases (glob support, etc.)
func NewPathSet ¶
func NewPathSet(paths []string, baseDir string) PathSet
func (PathSet) AnyMatch ¶
func (ps PathSet) AnyMatch(paths []string) (bool, string, error)
AnyMatch returns true if any of the given filepaths match any paths contained in the pathset (along with the first path that matched).
func (PathSet) Intersection ¶ added in v0.22.14
func (ps PathSet) Intersection(paths []string) ([]string, error)
Intersection returns the set of paths that are in both the PathSet and the passed set of paths.
type PodReadinessMode ¶ added in v0.17.0
type PodReadinessMode string
Specifies how a Pod's state factors into determining whether a resource is ready
const PodReadinessIgnore PodReadinessMode = "ignore"
Don't even wait for pods to appear.
const PodReadinessNone PodReadinessMode = ""
Pod readiness isn't applicable to this resource
const PodReadinessSucceeded PodReadinessMode = "succeeded"
wait until the pod has completed successfully
const PodReadinessWait PodReadinessMode = "wait"
Always wait for pods to become ready.
type PortForward ¶
type PortForward struct {
// The port to connect to inside the deployed container.
// If 0, we will connect to the first containerPort.
ContainerPort int
// The port to expose on the current machine.
LocalPort int
// Optional host to bind to on the current machine (localhost by default)
Host string
// Optional name of the port forward; if given, used as text of the URL
// displayed in the web UI (e.g. <a href="localhost:8888">Debugger</a>)
Name string
// contains filtered or unexported fields
}
func MustPortForward ¶ added in v0.17.9
func MustPortForward(local int, container int, host string, name string, path string) PortForward
func (PortForward) PathForAppend ¶ added in v0.17.9
func (pf PortForward) PathForAppend() string
type Run ¶
type Run struct {
// Required. The command to run.
Cmd Cmd
// Optional. If not specified, this command runs on every change.
// If specified, we only run the Cmd if the changed file matches a trigger.
Triggers PathSet
}
Self-contained spec for running in a container.
Unlike v1alpha1.LiveUpdateExec, all fields of this object must be absolute paths.
func (Run) WithTriggers ¶
func (r Run) WithTriggers(paths []string, baseDir string) Run
type Secret ¶ added in v0.10.10
type Secret struct {
// The name of the secret in the kubernetes cluster, so the user
// can look it up themselves.
Name string
Key string
Value []byte
ValueEncoded []byte
Replacement []byte
}
type SecretSet ¶ added in v0.10.10
type SecretSet map[string]Secret
Secrets are different than other kinds of build/deploy outputs.
Once something is marked as a secret, we want to scrub it from all logs until the user quits Tilt. Removing the secret from the Kubernetes cluster doesn't suddenly "reveal" the secret.
type SecretSettings ¶ added in v0.14.0
type SecretSettings struct {
ScrubSecrets bool // whether to scrub secrets in logs
}
func DefaultSecretSettings ¶ added in v0.14.0
func DefaultSecretSettings() SecretSettings
type Sync ¶
type Sync struct {
LocalPath string
ContainerPath string
}
Self-contained spec for syncing files from local to a container.
Unlike v1alpha1.LiveUpdateSync, all fields of this object must be absolute paths.
type TargetGraph ¶
type TargetGraph struct {
// contains filtered or unexported fields
}
func NewTargetGraph ¶
func NewTargetGraph(targets []TargetSpec) (TargetGraph, error)
func (TargetGraph) DeployedImages ¶
func (g TargetGraph) DeployedImages() []ImageTarget
Returns all the images in the graph that are directly deployed to a container.
func (TargetGraph) DepsOf ¶
func (g TargetGraph) DepsOf(t TargetSpec) ([]TargetSpec, error)
Return the direct dependency targets.
func (TargetGraph) IsDeployedImage ¶
func (g TargetGraph) IsDeployedImage(iTarget ImageTarget) bool
Is this image directly deployed a container?
func (TargetGraph) IsSingleSourceDAG ¶
func (g TargetGraph) IsSingleSourceDAG() bool
In Tilt, Manifests should always be DAGs with a single root node (the deploy target). This is just a quick sanity check to make sure that's true, because many of our graph-traversal algorithms won't work if it's not true.
type TargetID ¶
type TargetID struct {
Type TargetType
Name TargetName
}
func DedupeTargetIDs ¶
func DedupeTargetIDs(ids []TargetID) []TargetID
De-duplicate target ids, maintaining the same order.
type TargetName ¶
type TargetName string
type TargetSpec ¶
type TargetSpec interface {
ID() TargetID
// Check to make sure the spec is well-formed.
// All TargetSpecs should throw an error in the case where the ID is empty.
Validate() error
DependencyIDs() []TargetID
}
func TopologicalSort ¶
func TopologicalSort(targets []TargetSpec) ([]TargetSpec, error)
Create a topologically sorted list of targets. Returns an error if the targets can't be topologically sorted. (e.g., there's a cycle).
type TargetStatus ¶
type TargetStatus interface {
TargetID() TargetID
LastBuild() BuildRecord
}
type TargetType ¶
type TargetType string
const (
// Deployed k8s entities
TargetTypeK8s TargetType = "k8s"
// Image builds
TargetTypeImage TargetType = "image"
// Docker-compose service build and deploy
// TODO(nick): Currently, build and deploy are represented as a single target.
// In the future, we might have a separate build target and deploy target.
TargetTypeDockerCompose TargetType = "docker-compose"
// Runs a local command when triggered (manually or via changed dep)
TargetTypeLocal TargetType = "local"
// Aggregation of multiple targets into one UI view.
// TODO(nick): Currently used as the type for both Manifest and YAMLManifest, though
// we expect YAMLManifest to go away.
TargetTypeManifest TargetType = "manifest"
// Changes that affect all targets, rebuilding the target graph.
TargetTypeConfigs TargetType = "configs"
)
type TelemetrySettings ¶ added in v0.10.25
type TelemetrySettings struct {
Cmd Cmd
Workdir string // directory from which this Cmd should be run
// How often to send the trace data.
Period time.Duration
}
type TelemetryStatus ¶ added in v0.10.25
type TelemetryStatus struct {
LastRunAt time.Time
ControllerActionCount int
}
type TiltBuild ¶
type TiltBuild struct {
// Version w/o leading "v"
Version string
CommitSHA string
Date string
Dev bool
}
Information on a build of the Tilt binary
func (TiltBuild) AnalyticsVersion ¶
func (b TiltBuild) AnalyticsVersion() string
func (TiltBuild) HumanBuildStamp ¶ added in v0.15.0
func (b TiltBuild) HumanBuildStamp() string
func (TiltBuild) WebVersion ¶
func (b TiltBuild) WebVersion() WebVersion
type TriggerMode ¶
type TriggerMode int
const (
// Tilt automatically performs all builds (initial and non-initial) without manual intervention
TriggerModeAuto TriggerMode = iota
// Tilt automatically performs initial builds without manual intervention, but requires manual intervention for non-initial builds
TriggerModeManualWithAutoInit TriggerMode = iota
// Tilt requires manual intervention for all builds, and never automatically performs a build
TriggerModeManual TriggerMode = iota
// Resource does not automatically build on `tilt up`, but builds automatically in response to file changes
TriggerModeAutoWithManualInit TriggerMode = iota
)
Currently TriggerMode models two orthogonal attributes in one enum:
- Whether a file change should update the resource immediately (auto vs manual mode)
- Whether a resource should start when the env starts (auto_init=true vs auto_init=false mode, sometimes called AutoInit vs ManualInit mode)
In the APIServer, we don't model these as attributes of a resource. Rather, the resource specifies where these attribute comes from, with the ability to define different sources.
Update triggers are modeled as StartOn/RestartOn, so resources can be configured with different types of update triggers.
Start/stop status of resources are modeled as DisableOn, so that individual objects can be independently started/stopped.
We expect TriggerMode to go away in the API in favor of better visualization of why updates have been triggered and why resources are stopped.
func (TriggerMode) AutoInitial ¶ added in v0.10.18
func (t TriggerMode) AutoInitial() bool
func (TriggerMode) AutoOnChange ¶ added in v0.10.18
func (t TriggerMode) AutoOnChange() bool
type UpdateSettings ¶ added in v0.14.0
type UpdateSettings struct {
// A list of images to suppress the warning for.
SuppressUnusedImageWarnings []string
// contains filtered or unexported fields
}
func DefaultUpdateSettings ¶ added in v0.14.0
func DefaultUpdateSettings() UpdateSettings
func (UpdateSettings) K8sUpsertTimeout ¶ added in v0.14.0
func (us UpdateSettings) K8sUpsertTimeout() time.Duration
func (UpdateSettings) MaxParallelUpdates ¶ added in v0.14.0
func (us UpdateSettings) MaxParallelUpdates() int
func (UpdateSettings) WithK8sUpsertTimeout ¶ added in v0.14.0
func (us UpdateSettings) WithK8sUpsertTimeout(timeout time.Duration) UpdateSettings
func (UpdateSettings) WithMaxParallelUpdates ¶ added in v0.14.0
func (us UpdateSettings) WithMaxParallelUpdates(n int) UpdateSettings
type UserConfigState ¶ added in v0.10.24
type UserConfigState struct {
ArgsChangeTime time.Time
Args []string
}
func NewUserConfigState ¶ added in v0.10.24
func NewUserConfigState(args []string) UserConfigState
type VersionSettings ¶ added in v0.10.19
type VersionSettings struct {
CheckUpdates bool
}
type WatchSettings ¶ added in v0.17.6
type WatchSettings struct {
Ignores []Dockerignore
}
type WebDevPort ¶
type WebDevPort int
type WebMode ¶
type WebMode string
const (
// By default, we serve the js locally in dev builds and from prod in released
// builds.
DefaultWebMode WebMode = "default"
// Local webpack server
LocalWebMode WebMode = "local"
// Generic prod build; uses embedded if available otherwise cloud
ProdWebMode WebMode = "prod"
// Production build embedded assets
EmbeddedWebMode WebMode = "embedded"
// Production build assets from cloud bucket
CloudWebMode WebMode = "cloud"
// Precompiled with `make build-js`. This is an experimental mode
// we're playing around with to avoid the cost of webpack startup.
PrecompiledWebMode WebMode = "precompiled"
)
type WebSHA ¶ added in v0.10.14
type WebSHA string
Web version of the form aaaaaaa where a is a hex letter Used for fetching web assets
type WebVersion ¶
type WebVersion string
Web version of the form vA.B.C, where A, B, and C are integers Used for fetching web assets
Source Files
¶
- api.go
- build_reason.go
- build_status.go
- cmd.go
- docker_compose_target.go
- docker_prune.go
- dockercompose.go
- extractors.go
- globalyaml.go
- image_target.go
- k8s_target.go
- label_pair.go
- local_target.go
- logstore.go
- manifest.go
- matcher.go
- orchestrator.go
- secret.go
- secret_settings.go
- squash.go
- target.go
- target_graph.go
- telemetry_settings.go
- telemetry_state.go
- tilt_build.go
- tilt_subcommand.go
- trigger_mode.go
- update_settings.go
- user_config_state.go
- version_settings.go
- watch_settings.go
- web.go