v0.14.0

juanfont/headscalev0.14.0Feb 24, 2022by github-actions[bot]

AI Summary

This release focuses on aligning Headscale's ACL behavior with Tailscale's control panel by treating namespaces as users and removing default isolation between machines. It also removes the dependency on CGO for the SQLite database driver.

Key Highlights

  • ACLs rewritten to align with Tailscale (namespaces treated as users)
  • Machines can communicate across namespaces by default
  • Configurable mTLS support added
  • Removed CGO dependency (switched to pure Go SQLite)

Breaking Changes

  • ACLs rewritten (namespaces treated as users)
  • All machines can communicate regardless of namespace

New Features

  • Configurable mutual TLS (mTLS) authentication

Full Release Notes

**UPCOMING BREAKING**:
From the **next** version (`0.15.0`), all machines will be able to communicate regardless of
if they are in the same namespace. This means that the behaviour currently limited to ACLs
will become default. From version `0.15.0`, all limitation of communications must be done
with ACLs.

This is a part of aligning `headscale`'s behaviour with Tailscale's upstream behaviour.

**BREAKING**:

- ACLs have been rewritten to align with the bevaviour Tailscale Control Panel provides. **NOTE:** This is only active if you use ACLs
  - Namespaces are now treated as Users
  - All machines can communicate with all machines by default
  - Tags should now work correctly and adding a host to Headscale should now reload the rules.
  - The documentation have a [fictional example](docs/acls.md) that should cover some use cases of the ACLs features

**Features**:

- Add support for configurable mTLS [docs](docs/tls.md#configuring-mutual-tls-authentication-mtls) [#297](https://github.com/juanfont/headscale/pull/297)

**Changes**:

- Remove dependency on CGO (switch from CGO SQLite to pure Go) [#346](https://github.com/juanfont/headscale/pull/346)


## Changelog
* daa75da Linting and updating tests
* 9e619fc Making client authentication mode configurable
* af25aa7 Merge branch 'configurable-mtls' of github.com:arch4ngel/headscale into configurable-mtls
* 52db80a Merge branch 'configurable-mtls' of github.com:arch4ngel/headscale into configurable-mtls
* 0609c97 Merge branch 'main' into configurable-mtls
* afb67b6 Merge branch 'main' into configurable-mtls
* 823cc49 Merge branch 'main' into configurable-mtls
* 7bf2a91 Merge branch 'main' into configurable-mtls
* 168b1bd Merge branch 'main' into configurable-mtls
* 1b2fff4 Merge branch 'main' into configurable-mtls
* f562ad5 Merge branch 'main' into configurable-mtls
* 5596a0a Merge pull request #297 from arch4ngel/configurable-mtls
* 8c33907 Sort lint
* d44b2a7 adding default for tls_client_auth_mode
* da5250e linting again
* c98a559 linting/formatting
* 310e7b1 making alternatives constants
* 385dd9c refactoring
* 5935b13 refining
* 0c3fd16 refining and adding tests
* b5a59d4 updating changelog and docs
* 9de5c7f updating default