TUN-7333: Default features checkable at runtime across all packages

This commit is contained in:
Devin Carr
2023-03-29 13:12:32 -07:00
parent b5e03dd66c
commit bbc8d9431b
4 changed files with 45 additions and 18 deletions

View File

@@ -28,6 +28,7 @@ import (
"github.com/cloudflare/cloudflared/cmd/cloudflared/updater"
"github.com/cloudflare/cloudflared/config"
"github.com/cloudflare/cloudflared/connection"
"github.com/cloudflare/cloudflared/features"
"github.com/cloudflare/cloudflared/ingress"
"github.com/cloudflare/cloudflared/logger"
"github.com/cloudflare/cloudflared/management"
@@ -398,8 +399,11 @@ func StartServer(
}
}
mgmt := management.New(c.String("management-hostname"))
localRules := []ingress.Rule{ingress.NewManagementRule(mgmt)}
localRules := []ingress.Rule{}
if features.Contains(features.FeatureManagementLogs) {
mgmt := management.New(c.String("management-hostname"))
localRules = []ingress.Rule{ingress.NewManagementRule(mgmt)}
}
orchestrator, err := orchestration.NewOrchestrator(ctx, orchestratorConfig, tunnelConfig.Tags, localRules, tunnelConfig.Log)
if err != nil {
return err

View File

@@ -25,6 +25,7 @@ import (
"github.com/cloudflare/cloudflared/connection"
"github.com/cloudflare/cloudflared/edgediscovery"
"github.com/cloudflare/cloudflared/edgediscovery/allregions"
"github.com/cloudflare/cloudflared/features"
"github.com/cloudflare/cloudflared/ingress"
"github.com/cloudflare/cloudflared/orchestration"
"github.com/cloudflare/cloudflared/supervisor"
@@ -40,8 +41,7 @@ var (
serviceUrl = developerPortal + "/reference/service/"
argumentsUrl = developerPortal + "/reference/arguments/"
secretFlags = [2]*altsrc.StringFlag{credentialsContentsFlag, tunnelTokenFlag}
defaultFeatures = []string{supervisor.FeatureAllowRemoteConfig, supervisor.FeatureSerializedHeaders, supervisor.FeatureDatagramV2, supervisor.FeatureQUICSupportEOF}
secretFlags = [2]*altsrc.StringFlag{credentialsContentsFlag, tunnelTokenFlag}
configFlags = []string{"autoupdate-freq", "no-autoupdate", "retries", "protocol", "loglevel", "transport-loglevel", "origincert", "metrics", "metrics-update-freq", "edge-ip-version", "edge-bind-address"}
)
@@ -216,13 +216,13 @@ func prepareTunnelConfig(
transportProtocol = connection.QUIC.String()
}
features := dedup(append(c.StringSlice("features"), defaultFeatures...))
clientFeatures := dedup(append(c.StringSlice("features"), features.DefaultFeatures...))
if needPQ {
features = append(features, supervisor.FeaturePostQuantum)
clientFeatures = append(clientFeatures, features.FeaturePostQuantum)
}
namedTunnel.Client = tunnelpogs.ClientInfo{
ClientID: clientID[:],
Features: features,
Features: clientFeatures,
Version: info.Version(),
Arch: info.OSArch(),
}