What it does
Goss is a server-validation tool that turns operating-system and service expectations into a compact YAML test file. It can add checks from the current machine state, run those assertions with a command-line validator, retry while a system becomes ready, or expose test results as a health endpoint. That makes it useful for validating configured hosts and container images in a deployment workflow. Unlike a browser or application test suite, it checks selected machine resources such as packages, files, ports, processes, and services.
Derive checks, then edit them into policy
The quick start demonstrates goss autoadd sshd to generate initial checks for an SSH service. Running as root lets the tool discover listening ports as well. Goss writes a YAML test file containing assertions about the service, process, user, group, and port; review and edit those values so the file describes the intended configuration rather than merely copying today's machine state. The examples are from documentation and were not run here.
Run the resulting suite with goss validate. The CLI can also retry until the system reaches the expected state, return JUnit or other output formats, or serve a health endpoint. For containers, the project documents wrappers such as dgoss; Kubernetes and Compose wrappers are separate additions with their own setup.
A small, focused validation layer
Goss is Apache-2.0-licensed and distributed as a command-line tool. Its documented resources cover common host properties, but the test author still decides which conditions matter and maintains the assertions as the image or server changes. The project recommends pinning a release in CI instead of relying on an unversioned latest download.
Strengths
- The `add` and `autoadd` commands can scaffold YAML checks from observed resources, then let a maintainer refine them.
- Validation supports retries, multiple output formats, and a health endpoint for checks written in the Goss file.
- The same focused assertions can be adapted to host, Docker, Compose, or Kubernetes workflows through the documented wrappers.
Watch out for
- Generated checks reflect observed state; maintainers must edit them to encode the desired configuration, and port discovery may require elevated privileges.
Best for
- Checking server or image configuration such as services, packages, ports, files, and users
- Adding lightweight host-state assertions to provisioning or deployment validation
- Publishing selected system checks as a health endpoint
Sources
- goss-org/goss README (Oct 26, 2026)
- Quick start - Goss (Oct 26, 2026)
- Command Line Interface - Goss (Oct 26, 2026)
- goss/LICENSE at master · goss-org/goss · GitHub (Oct 26, 2026)
