* chore: Add nix shell for simple development setup
This enables contributors using Nix to set up their environment with ease.
* improve nix style, flake output schema
* fix error message
* Update scripts/build_go_slim.sh
Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
* Update scripts/build_go_slim.sh
Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
* Add UTC default for timezone and remove unnecessary goreleaser dependency
* Skip TZ test if localtime does not exist
Co-authored-by: Charlie Moog <moogcharlie@gmail.com>
Co-authored-by: Mathias Fredriksson <mafredri@gmail.com>
This allows deployments using our Prometheus export t determine
the number of active users in the past hour.
The interval is an hour to align with API key last used refresh times.
SSH connections poll to check shutdown time, so this will be accurate
even on long-running connections without dashboard requests.
* make gcp-linux example template use a non-root user
* don't try to create user account if it already exists
* upgrade to debian-10 image since debian-9 is no longer available
This seems to have caused flakes on Windows, the reason could be that
the input is lost due to writing to stdin before the shell is ready, or
simply that the command wasn't echoed (for the same reason).
We no longer need to consume the output since #2122 has been fixed, so
this might remove the flake in the latter case.
Ideally we would wait for the prompt to be present, but since we are
spawning the users shell, we have no control of what the prompt looks
like. In CI we can make assumption but even then it could change in the
future.
Since we were not failing tests with `require` the error output was
somewhat hidden in the stream of log messages. This change standardizes
`ptytest` logging and failing to improve visibility.
* fix: Improve shutdown procedure of ssh, portforward, wgtunnel cmds
We could turn it into a practice to wrap `cmd.Context()` so that we have
more fine-grained control of cancellation. Sometimes in tests we may be
running commands with a context that is never canceled.
Related to #3221
* fix: Set ssh session stderr to stderr
* Initial support for metadata in provisioner API and Terraform provisioner
* add support for nullable metadata fields
* handle metadata fields in provisionerd and API
* fix: don't use adduser and addgroup for docker images
* Revert "fix: Remove alternative image architectures until we virtualize (#3336)"
This reverts commit 00c5116a2e.
With the addition of a command being executed inside the Docker build,
we could no longer build non-amd64 images on amd64. They will be added
back, but to allow for releases this temporarily removes them.