Skip to content

object88/tugboat

Repository files navigation

Tugboat

Tugboat is a work in progress, and documentation here does not reflect the current state of the project.

Tugboat improves the Helm chart deployment process for developers by exposing pod state and state transitions during a deployment.

In some kubernetes environments, a software developer may not have complete access all Kubernetes resources. For example, a production environment may be walled off. Tools such as Splunk or Datadog give an excellent overview of a complete Kubernetes environment, but may not provide an easily accessible, acute view of changes relevant to a deployment. This is not a criticism of these tools, just an observation of the space that Tugboat intends to fill.

What does Tugboat do?

Tugboat uses a Kubernetes custom resource (launch) to represent a Helm deployment, and uses the observer pattern to perform Help operations (install, update, delete). At the time of deployment, the helm chart's template files are decorated with labels and annotations. This allows tugboat to associate the changes in kubernetes resources introduced with a particular deployment.

Because Tugboat is in control of the Helm deployments, it has visibility into anticipated changes, and can detect and report on abnormalities.

What questions does Tugboat answer?

During deployment...

  • Have any of my pods updated?
  • Have all of my pods updated?
  • How are the new pods configured (docker image, etc.)?
  • Are my pods in a Crashloop Backoff?

Do I need Tugboat?

In short, no. Tugboat does not provide any mission critical tooling not already made available through other means. Tugboat exists as a facilitator for SREs and developers, providing proactive insight into existent data.

You may want Tugboat if an environment is unavailable via normal kubectl or helm commands, log collection is far from pod state, or state is not represented sufficiently quickly.

Why the name "Tugboat"?

The Kubernetes ecosystem follows a nautical theme (note the Kubernetes logo, applications such as helm, spinnaker, etc.). A tugboat (the nautical vessel) assists other, large boats as they launch from a port, ensuring that they are able to manuever into open waters.

While the process is not completely analogous, Tugboat (the software) is designed to help deploy software by hooking into a Kubernetes environment and providing feedback to a developer about what is happening during the deployment itself, in relatively real-time.

Limitations

Tugboat is not intended to observe the state of Kubernetes resources such as nodes.

Documentation:

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published