mirror of
https://github.com/juanfont/headscale.git
synced 2026-11-02 03:34:06 +09:00
types: emit SSH environment capability by default
Fixes #3559
(cherry picked from commit 8cf43952af, adapted: nodecap names on 0.29's v1.104 baseline)
This commit is contained in:
1 parent
93340a6b1b
commit
f20366b3dd
2 files changed
+38
-28
No files matched your search
@@ -12,6 +12,7 @@ import (
|
|||||||
"github.com/juanfont/headscale/hscontrol/types"
|
"github.com/juanfont/headscale/hscontrol/types"
|
||||||
"tailscale.com/net/tsaddr"
|
"tailscale.com/net/tsaddr"
|
||||||
"tailscale.com/tailcfg"
|
"tailscale.com/tailcfg"
|
||||||
|
"tailscale.com/tailcfg/nodecap"
|
||||||
"tailscale.com/types/key"
|
"tailscale.com/types/key"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -74,10 +75,11 @@ func TestTailNode(t *testing.T) {
|
|||||||
MachineAuthorized: true,
|
MachineAuthorized: true,
|
||||||
|
|
||||||
CapMap: tailcfg.NodeCapMap{
|
CapMap: tailcfg.NodeCapMap{
|
||||||
tailcfg.CapabilityAdmin: []tailcfg.RawMessage{},
|
nodecap.Admin: []tailcfg.RawMessage{},
|
||||||
tailcfg.CapabilitySSH: []tailcfg.RawMessage{},
|
nodecap.SSH: []tailcfg.RawMessage{},
|
||||||
tailcfg.CapabilityFileSharing: []tailcfg.RawMessage{},
|
nodecap.FileSharing: []tailcfg.RawMessage{},
|
||||||
tailcfg.NodeAttrDefaultAutoUpdate: []tailcfg.RawMessage{tailcfg.RawMessage("false")},
|
nodecap.DefaultAutoUpdate: []tailcfg.RawMessage{tailcfg.RawMessage("false")},
|
||||||
|
nodecap.SSHEnvironmentVariables: []tailcfg.RawMessage{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
wantErr: false,
|
wantErr: false,
|
||||||
@@ -163,10 +165,11 @@ func TestTailNode(t *testing.T) {
|
|||||||
MachineAuthorized: true,
|
MachineAuthorized: true,
|
||||||
|
|
||||||
CapMap: tailcfg.NodeCapMap{
|
CapMap: tailcfg.NodeCapMap{
|
||||||
tailcfg.CapabilityAdmin: []tailcfg.RawMessage{},
|
nodecap.Admin: []tailcfg.RawMessage{},
|
||||||
tailcfg.CapabilitySSH: []tailcfg.RawMessage{},
|
nodecap.SSH: []tailcfg.RawMessage{},
|
||||||
tailcfg.CapabilityFileSharing: []tailcfg.RawMessage{},
|
nodecap.FileSharing: []tailcfg.RawMessage{},
|
||||||
tailcfg.NodeAttrDefaultAutoUpdate: []tailcfg.RawMessage{tailcfg.RawMessage("false")},
|
nodecap.DefaultAutoUpdate: []tailcfg.RawMessage{tailcfg.RawMessage("false")},
|
||||||
|
nodecap.SSHEnvironmentVariables: []tailcfg.RawMessage{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
wantErr: false,
|
wantErr: false,
|
||||||
@@ -188,10 +191,11 @@ func TestTailNode(t *testing.T) {
|
|||||||
MachineAuthorized: true,
|
MachineAuthorized: true,
|
||||||
|
|
||||||
CapMap: tailcfg.NodeCapMap{
|
CapMap: tailcfg.NodeCapMap{
|
||||||
tailcfg.CapabilityAdmin: []tailcfg.RawMessage{},
|
nodecap.Admin: []tailcfg.RawMessage{},
|
||||||
tailcfg.CapabilitySSH: []tailcfg.RawMessage{},
|
nodecap.SSH: []tailcfg.RawMessage{},
|
||||||
tailcfg.CapabilityFileSharing: []tailcfg.RawMessage{},
|
nodecap.FileSharing: []tailcfg.RawMessage{},
|
||||||
tailcfg.NodeAttrDefaultAutoUpdate: []tailcfg.RawMessage{tailcfg.RawMessage("false")},
|
nodecap.DefaultAutoUpdate: []tailcfg.RawMessage{tailcfg.RawMessage("false")},
|
||||||
|
nodecap.SSHEnvironmentVariables: []tailcfg.RawMessage{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
wantErr: false,
|
wantErr: false,
|
||||||
@@ -274,10 +278,11 @@ func TestTailNodeBaselineGates(t *testing.T) {
|
|||||||
AutoUpdate: types.AutoUpdateConfig{Enabled: false},
|
AutoUpdate: types.AutoUpdateConfig{Enabled: false},
|
||||||
},
|
},
|
||||||
want: tailcfg.NodeCapMap{
|
want: tailcfg.NodeCapMap{
|
||||||
tailcfg.CapabilityAdmin: []tailcfg.RawMessage{},
|
nodecap.Admin: []tailcfg.RawMessage{},
|
||||||
tailcfg.CapabilitySSH: []tailcfg.RawMessage{},
|
nodecap.SSH: []tailcfg.RawMessage{},
|
||||||
tailcfg.CapabilityFileSharing: []tailcfg.RawMessage{},
|
nodecap.FileSharing: []tailcfg.RawMessage{},
|
||||||
tailcfg.NodeAttrDefaultAutoUpdate: autoUpdate(false),
|
nodecap.DefaultAutoUpdate: autoUpdate(false),
|
||||||
|
nodecap.SSHEnvironmentVariables: []tailcfg.RawMessage{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -287,9 +292,10 @@ func TestTailNodeBaselineGates(t *testing.T) {
|
|||||||
AutoUpdate: types.AutoUpdateConfig{Enabled: false},
|
AutoUpdate: types.AutoUpdateConfig{Enabled: false},
|
||||||
},
|
},
|
||||||
want: tailcfg.NodeCapMap{
|
want: tailcfg.NodeCapMap{
|
||||||
tailcfg.CapabilityAdmin: []tailcfg.RawMessage{},
|
nodecap.Admin: []tailcfg.RawMessage{},
|
||||||
tailcfg.CapabilitySSH: []tailcfg.RawMessage{},
|
nodecap.SSH: []tailcfg.RawMessage{},
|
||||||
tailcfg.NodeAttrDefaultAutoUpdate: autoUpdate(false),
|
nodecap.DefaultAutoUpdate: autoUpdate(false),
|
||||||
|
nodecap.SSHEnvironmentVariables: []tailcfg.RawMessage{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -299,10 +305,11 @@ func TestTailNodeBaselineGates(t *testing.T) {
|
|||||||
AutoUpdate: types.AutoUpdateConfig{Enabled: true},
|
AutoUpdate: types.AutoUpdateConfig{Enabled: true},
|
||||||
},
|
},
|
||||||
want: tailcfg.NodeCapMap{
|
want: tailcfg.NodeCapMap{
|
||||||
tailcfg.CapabilityAdmin: []tailcfg.RawMessage{},
|
nodecap.Admin: []tailcfg.RawMessage{},
|
||||||
tailcfg.CapabilitySSH: []tailcfg.RawMessage{},
|
nodecap.SSH: []tailcfg.RawMessage{},
|
||||||
tailcfg.CapabilityFileSharing: []tailcfg.RawMessage{},
|
nodecap.FileSharing: []tailcfg.RawMessage{},
|
||||||
tailcfg.NodeAttrDefaultAutoUpdate: autoUpdate(true),
|
nodecap.DefaultAutoUpdate: autoUpdate(true),
|
||||||
|
nodecap.SSHEnvironmentVariables: []tailcfg.RawMessage{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -312,9 +319,10 @@ func TestTailNodeBaselineGates(t *testing.T) {
|
|||||||
AutoUpdate: types.AutoUpdateConfig{Enabled: true},
|
AutoUpdate: types.AutoUpdateConfig{Enabled: true},
|
||||||
},
|
},
|
||||||
want: tailcfg.NodeCapMap{
|
want: tailcfg.NodeCapMap{
|
||||||
tailcfg.CapabilityAdmin: []tailcfg.RawMessage{},
|
nodecap.Admin: []tailcfg.RawMessage{},
|
||||||
tailcfg.CapabilitySSH: []tailcfg.RawMessage{},
|
nodecap.SSH: []tailcfg.RawMessage{},
|
||||||
tailcfg.NodeAttrDefaultAutoUpdate: autoUpdate(true),
|
nodecap.DefaultAutoUpdate: autoUpdate(true),
|
||||||
|
nodecap.SSHEnvironmentVariables: []tailcfg.RawMessage{},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -20,6 +20,7 @@ import (
|
|||||||
"google.golang.org/protobuf/types/known/timestamppb"
|
"google.golang.org/protobuf/types/known/timestamppb"
|
||||||
"tailscale.com/net/tsaddr"
|
"tailscale.com/net/tsaddr"
|
||||||
"tailscale.com/tailcfg"
|
"tailscale.com/tailcfg"
|
||||||
|
"tailscale.com/tailcfg/nodecap"
|
||||||
"tailscale.com/types/key"
|
"tailscale.com/types/key"
|
||||||
"tailscale.com/types/views"
|
"tailscale.com/types/views"
|
||||||
"tailscale.com/util/dnsname"
|
"tailscale.com/util/dnsname"
|
||||||
@@ -1421,8 +1422,9 @@ func (nv NodeView) TailNode(
|
|||||||
// what Tailscale SaaS emits for a default tailnet.
|
// what Tailscale SaaS emits for a default tailnet.
|
||||||
// cfg.Taildrop.Enabled gates CapabilityFileSharing.
|
// cfg.Taildrop.Enabled gates CapabilityFileSharing.
|
||||||
capMap := tailcfg.NodeCapMap{
|
capMap := tailcfg.NodeCapMap{
|
||||||
tailcfg.CapabilityAdmin: []tailcfg.RawMessage{},
|
nodecap.Admin: []tailcfg.RawMessage{},
|
||||||
tailcfg.CapabilitySSH: []tailcfg.RawMessage{},
|
nodecap.SSH: []tailcfg.RawMessage{},
|
||||||
|
nodecap.SSHEnvironmentVariables: []tailcfg.RawMessage{},
|
||||||
}
|
}
|
||||||
|
|
||||||
if cfg.Taildrop.Enabled {
|
if cfg.Taildrop.Enabled {
|
||||||
|
|||||||
Reference in new issue
Block a user