8552efa955
* add config watcher to the config package * add logging to watcher * add test and refactor to add WatcherEvent. * add all API calls and fix a bug with recreated files * add tests for watcher * remove the unnecessary use of context * Add debug log and a test for file rename * use inode to detect if the file is recreated/replaced and only listen to create events. * tidy ups (#1535) * tidy ups * Add tests for inode reconcile * fix linux vs windows syscall * fix linux vs windows syscall * fix windows compile error * increase timeout * use ctime ID * remove remove/creation test as it's a use case that fail in linux * fix linux/windows to use Ino/CreationTime * fix the watcher to only overwrite current file id * fix linter error * fix remove/create test * set reconcile loop to 200 Milliseconds * fix watcher to not trigger event on remove, add more tests * on a remove event try to add the file back to the watcher and trigger the handler if success * fix race condition * fix flaky test * fix race conditions * set level to info * fix when file is removed and get an event for it after * fix to trigger handler when we get a remove but re-add fail * fix error message * add tests for directory watch and fixes * detect if a file is a symlink and return an error on Add * rename Watcher to FileWatcher and remove symlink deref * add fsnotify@v1.5.1 * fix go mod * do not reset timer on errors, rename OS specific files * rename New func * events trigger on write and rename * add missing test * fix flaking tests * fix flaky test * check reconcile when removed * delete invalid file * fix test to create files with different mod time. * back date file instead of sleeping * add watching file in agent command. * fix watcher call to use new API * add configuration and stop watcher when server stop * add certs as watched files * move FileWatcher to the agent start instead of the command code * stop watcher before replacing it * save watched files in agent * add add and remove interfaces to the file watcher * fix remove to not return an error * use `Add` and `Remove` to update certs files * fix tests * close events channel on the file watcher even when the context is done * extract `NotAutoReloadableRuntimeConfig` is a separate struct * fix linter errors * add Ca configs and outgoing verify to the not auto reloadable config * add some logs and fix to use background context * add tests to auto-config reload * remove stale test * add tests to changes to config files * add check to see if old cert files still trigger updates * rename `NotAutoReloadableRuntimeConfig` to `StaticRuntimeConfig` * fix to re add both key and cert file. Add test to cover this case. * review suggestion Co-authored-by: R.B. Boyer <4903+rboyer@users.noreply.github.com> * add check to static runtime config changes * fix test * add changelog file * fix review comments * Apply suggestions from code review Co-authored-by: R.B. Boyer <4903+rboyer@users.noreply.github.com> * update flag description Co-authored-by: FFMMM <FFMMM@users.noreply.github.com> * fix compilation error * add static runtime config support * fix test * fix review comments * fix log test * Update .changelog/12329.txt Co-authored-by: Dan Upton <daniel@floppy.co> * transfer tests to runtime_test.go * fix filewatcher Replace to not deadlock. * avoid having lingering locks Co-authored-by: R.B. Boyer <4903+rboyer@users.noreply.github.com> * split ReloadConfig func * fix warning message Co-authored-by: R.B. Boyer <4903+rboyer@users.noreply.github.com> * convert `FileWatcher` into an interface * fix compilation errors * fix tests * extract func for adding and removing files Co-authored-by: Ashwin Venkatesh <ashwin@hashicorp.com> Co-authored-by: R.B. Boyer <4903+rboyer@users.noreply.github.com> Co-authored-by: FFMMM <FFMMM@users.noreply.github.com> Co-authored-by: Daniel Upton <daniel@floppy.co>
460 lines
13 KiB
Plaintext
460 lines
13 KiB
Plaintext
{
|
|
"ACLEnableKeyListPolicy": false,
|
|
"ACLInitialManagementToken": "hidden",
|
|
"ACLResolverSettings": {
|
|
"ACLDefaultPolicy": "",
|
|
"ACLDownPolicy": "",
|
|
"ACLPolicyTTL": "0s",
|
|
"ACLRoleTTL": "0s",
|
|
"ACLTokenTTL": "0s",
|
|
"ACLsEnabled": false,
|
|
"Datacenter": "",
|
|
"EnterpriseMeta": {},
|
|
"NodeName": ""
|
|
},
|
|
"ACLTokenReplication": false,
|
|
"ACLTokens": {
|
|
"ACLAgentRecoveryToken": "hidden",
|
|
"ACLAgentToken": "hidden",
|
|
"ACLDefaultToken": "hidden",
|
|
"ACLReplicationToken": "hidden",
|
|
"DataDir": "",
|
|
"EnablePersistence": false,
|
|
"EnterpriseConfig": {}
|
|
},
|
|
"ACLsEnabled": false,
|
|
"AEInterval": "0s",
|
|
"AdvertiseAddrLAN": "",
|
|
"AdvertiseAddrWAN": "",
|
|
"AdvertiseReconnectTimeout": "0s",
|
|
"AllowWriteHTTPFrom": [
|
|
"127.0.0.0/8",
|
|
"::1/128"
|
|
],
|
|
"AutoConfig": {
|
|
"Authorizer": {
|
|
"AllowReuse": false,
|
|
"AuthMethod": {
|
|
"ACLAuthMethodEnterpriseFields": {},
|
|
"Config": {},
|
|
"Description": "",
|
|
"DisplayName": "",
|
|
"EnterpriseMeta": {},
|
|
"MaxTokenTTL": "0s",
|
|
"Name": "",
|
|
"RaftIndex": {
|
|
"CreateIndex": 0,
|
|
"ModifyIndex": 0
|
|
},
|
|
"TokenLocality": "",
|
|
"Type": ""
|
|
},
|
|
"ClaimAssertions": [],
|
|
"Enabled": false
|
|
},
|
|
"DNSSANs": [],
|
|
"Enabled": false,
|
|
"IPSANs": [],
|
|
"IntroToken": "hidden",
|
|
"IntroTokenFile": "",
|
|
"ServerAddresses": []
|
|
},
|
|
"AutoEncryptAllowTLS": false,
|
|
"AutoEncryptDNSSAN": [],
|
|
"AutoEncryptIPSAN": [],
|
|
"AutoEncryptTLS": false,
|
|
"AutoReloadConfig": false,
|
|
"AutopilotCleanupDeadServers": false,
|
|
"AutopilotDisableUpgradeMigration": false,
|
|
"AutopilotLastContactThreshold": "0s",
|
|
"AutopilotMaxTrailingLogs": 0,
|
|
"AutopilotMinQuorum": 0,
|
|
"AutopilotRedundancyZoneTag": "",
|
|
"AutopilotServerStabilizationTime": "0s",
|
|
"AutopilotUpgradeVersionTag": "",
|
|
"BindAddr": "127.0.0.1",
|
|
"Bootstrap": false,
|
|
"BootstrapExpect": 0,
|
|
"Cache": {
|
|
"EntryFetchMaxBurst": 42,
|
|
"EntryFetchRate": 0.334,
|
|
"Logger": null
|
|
},
|
|
"CheckDeregisterIntervalMin": "0s",
|
|
"CheckOutputMaxSize": 4096,
|
|
"CheckReapInterval": "0s",
|
|
"CheckUpdateInterval": "0s",
|
|
"Checks": [
|
|
{
|
|
"AliasNode": "",
|
|
"AliasService": "",
|
|
"Body": "",
|
|
"DeregisterCriticalServiceAfter": "0s",
|
|
"DockerContainerID": "",
|
|
"EnterpriseMeta": {},
|
|
"FailuresBeforeCritical": 0,
|
|
"FailuresBeforeWarning": 0,
|
|
"GRPC": "",
|
|
"GRPCUseTLS": false,
|
|
"H2PING": "",
|
|
"H2PingUseTLS": false,
|
|
"HTTP": "",
|
|
"Header": {},
|
|
"ID": "",
|
|
"Interval": "0s",
|
|
"Method": "",
|
|
"Name": "zoo",
|
|
"Notes": "",
|
|
"OutputMaxSize": 4096,
|
|
"ScriptArgs": [],
|
|
"ServiceID": "",
|
|
"Shell": "",
|
|
"Status": "",
|
|
"SuccessBeforePassing": 0,
|
|
"TCP": "",
|
|
"TLSServerName": "",
|
|
"TLSSkipVerify": false,
|
|
"TTL": "0s",
|
|
"Timeout": "0s",
|
|
"Token": "hidden"
|
|
}
|
|
],
|
|
"ClientAddrs": [],
|
|
"ConfigEntryBootstrap": [],
|
|
"ConnectCAConfig": {},
|
|
"ConnectCAProvider": "",
|
|
"ConnectEnabled": false,
|
|
"ConnectMeshGatewayWANFederationEnabled": false,
|
|
"ConnectServerlessPluginEnabled": false,
|
|
"ConnectSidecarMaxPort": 0,
|
|
"ConnectSidecarMinPort": 0,
|
|
"ConnectTestCALeafRootChangeSpread": "0s",
|
|
"ConsulCoordinateUpdateBatchSize": 0,
|
|
"ConsulCoordinateUpdateMaxBatches": 0,
|
|
"ConsulCoordinateUpdatePeriod": "15s",
|
|
"ConsulRaftElectionTimeout": "0s",
|
|
"ConsulRaftHeartbeatTimeout": "0s",
|
|
"ConsulRaftLeaderLeaseTimeout": "0s",
|
|
"ConsulServerHealthInterval": "0s",
|
|
"DNSARecordLimit": 0,
|
|
"DNSAddrs": [
|
|
"tcp://1.2.3.4:5678",
|
|
"udp://1.2.3.4:5678"
|
|
],
|
|
"DNSAllowStale": false,
|
|
"DNSAltDomain": "",
|
|
"DNSCacheMaxAge": "0s",
|
|
"DNSDisableCompression": false,
|
|
"DNSDomain": "",
|
|
"DNSEnableTruncate": false,
|
|
"DNSMaxStale": "0s",
|
|
"DNSNodeMetaTXT": false,
|
|
"DNSNodeTTL": "0s",
|
|
"DNSOnlyPassing": false,
|
|
"DNSPort": 0,
|
|
"DNSRecursorStrategy": "",
|
|
"DNSRecursorTimeout": "0s",
|
|
"DNSRecursors": [],
|
|
"DNSSOA": {
|
|
"Expire": 86400,
|
|
"Minttl": 0,
|
|
"Refresh": 3600,
|
|
"Retry": 600
|
|
},
|
|
"DNSServiceTTL": {},
|
|
"DNSUDPAnswerLimit": 0,
|
|
"DNSUseCache": false,
|
|
"DataDir": "",
|
|
"Datacenter": "",
|
|
"DefaultQueryTime": "0s",
|
|
"DevMode": false,
|
|
"DisableAnonymousSignature": false,
|
|
"DisableCoordinates": false,
|
|
"DisableHTTPUnprintableCharFilter": false,
|
|
"DisableHostNodeID": false,
|
|
"DisableKeyringFile": false,
|
|
"DisableRemoteExec": false,
|
|
"DisableUpdateCheck": false,
|
|
"DiscardCheckOutput": false,
|
|
"DiscoveryMaxStale": "0s",
|
|
"EnableAgentTLSForChecks": false,
|
|
"EnableCentralServiceConfig": false,
|
|
"EnableDebug": false,
|
|
"EnableLocalScriptChecks": false,
|
|
"EnableRemoteScriptChecks": false,
|
|
"EncryptKey": "hidden",
|
|
"EnterpriseRuntimeConfig": {},
|
|
"ExposeMaxPort": 0,
|
|
"ExposeMinPort": 0,
|
|
"GRPCAddrs": [],
|
|
"GRPCPort": 0,
|
|
"GossipLANGossipInterval": "0s",
|
|
"GossipLANGossipNodes": 0,
|
|
"GossipLANProbeInterval": "0s",
|
|
"GossipLANProbeTimeout": "0s",
|
|
"GossipLANRetransmitMult": 0,
|
|
"GossipLANSuspicionMult": 0,
|
|
"GossipWANGossipInterval": "0s",
|
|
"GossipWANGossipNodes": 0,
|
|
"GossipWANProbeInterval": "0s",
|
|
"GossipWANProbeTimeout": "0s",
|
|
"GossipWANRetransmitMult": 0,
|
|
"GossipWANSuspicionMult": 0,
|
|
"HTTPAddrs": [
|
|
"tcp://1.2.3.4:5678",
|
|
"unix:///var/run/foo"
|
|
],
|
|
"HTTPBlockEndpoints": [],
|
|
"HTTPMaxConnsPerClient": 0,
|
|
"HTTPMaxHeaderBytes": 0,
|
|
"HTTPPort": 0,
|
|
"HTTPResponseHeaders": {},
|
|
"HTTPSAddrs": [],
|
|
"HTTPSHandshakeTimeout": "0s",
|
|
"HTTPSPort": 0,
|
|
"HTTPUseCache": false,
|
|
"KVMaxValueSize": 1234567800000000,
|
|
"LeaveDrainTime": "0s",
|
|
"LeaveOnTerm": false,
|
|
"Logging": {
|
|
"EnableSyslog": false,
|
|
"LogFilePath": "",
|
|
"LogJSON": false,
|
|
"LogLevel": "",
|
|
"LogRotateBytes": 0,
|
|
"LogRotateDuration": "0s",
|
|
"LogRotateMaxFiles": 0,
|
|
"Name": "",
|
|
"SyslogFacility": ""
|
|
},
|
|
"MaxQueryTime": "0s",
|
|
"NodeID": "",
|
|
"NodeMeta": {},
|
|
"NodeName": "",
|
|
"PidFile": "",
|
|
"PrimaryDatacenter": "",
|
|
"PrimaryGateways": [
|
|
"pmgw_foo=bar pmgw_key=baz pmgw_secret=boom pmgw_bang=bar"
|
|
],
|
|
"PrimaryGatewaysInterval": "0s",
|
|
"RPCAdvertiseAddr": "",
|
|
"RPCBindAddr": "",
|
|
"RPCConfig": {
|
|
"EnableStreaming": false
|
|
},
|
|
"RPCHandshakeTimeout": "0s",
|
|
"RPCHoldTimeout": "0s",
|
|
"RPCMaxBurst": 0,
|
|
"RPCMaxConnsPerClient": 0,
|
|
"RPCProtocol": 0,
|
|
"RPCRateLimit": 0,
|
|
"RaftBoltDBConfig": {
|
|
"NoFreelistSync": false
|
|
},
|
|
"RaftProtocol": 3,
|
|
"RaftSnapshotInterval": "0s",
|
|
"RaftSnapshotThreshold": 0,
|
|
"RaftTrailingLogs": 0,
|
|
"ReadReplica": false,
|
|
"ReconnectTimeoutLAN": "0s",
|
|
"ReconnectTimeoutWAN": "0s",
|
|
"RejoinAfterLeave": false,
|
|
"RetryJoinIntervalLAN": "0s",
|
|
"RetryJoinIntervalWAN": "0s",
|
|
"RetryJoinLAN": [
|
|
"foo=bar key=hidden secret=hidden bang=bar"
|
|
],
|
|
"RetryJoinMaxAttemptsLAN": 0,
|
|
"RetryJoinMaxAttemptsWAN": 0,
|
|
"RetryJoinWAN": [
|
|
"wan_foo=bar wan_key=hidden wan_secret=hidden wan_bang=bar"
|
|
],
|
|
"Revision": "",
|
|
"SegmentLimit": 0,
|
|
"SegmentName": "",
|
|
"SegmentNameLimit": 0,
|
|
"Segments": [],
|
|
"SerfAdvertiseAddrLAN": "tcp://1.2.3.4:5678",
|
|
"SerfAdvertiseAddrWAN": "",
|
|
"SerfAllowedCIDRsLAN": [
|
|
"192.168.1.0/24",
|
|
"127.0.0.0/8"
|
|
],
|
|
"SerfAllowedCIDRsWAN": [],
|
|
"SerfBindAddrLAN": "",
|
|
"SerfBindAddrWAN": "",
|
|
"SerfPortLAN": 0,
|
|
"SerfPortWAN": 0,
|
|
"ServerMode": false,
|
|
"ServerName": "",
|
|
"ServerPort": 0,
|
|
"Services": [
|
|
{
|
|
"Address": "",
|
|
"Check": {
|
|
"AliasNode": "",
|
|
"AliasService": "",
|
|
"Body": "",
|
|
"CheckID": "",
|
|
"DeregisterCriticalServiceAfter": "0s",
|
|
"DockerContainerID": "",
|
|
"FailuresBeforeCritical": 0,
|
|
"FailuresBeforeWarning": 0,
|
|
"GRPC": "",
|
|
"GRPCUseTLS": false,
|
|
"H2PING": "",
|
|
"H2PingUseTLS": false,
|
|
"HTTP": "",
|
|
"Header": {},
|
|
"Interval": "0s",
|
|
"Method": "",
|
|
"Name": "blurb",
|
|
"Notes": "",
|
|
"OutputMaxSize": 4096,
|
|
"ProxyGRPC": "",
|
|
"ProxyHTTP": "",
|
|
"ScriptArgs": [],
|
|
"Shell": "",
|
|
"Status": "",
|
|
"SuccessBeforePassing": 0,
|
|
"TCP": "",
|
|
"TLSServerName": "",
|
|
"TLSSkipVerify": false,
|
|
"TTL": "0s",
|
|
"Timeout": "0s"
|
|
},
|
|
"Checks": [],
|
|
"Connect": null,
|
|
"EnableTagOverride": false,
|
|
"EnterpriseMeta": {},
|
|
"ID": "",
|
|
"Kind": "",
|
|
"Meta": {},
|
|
"Name": "foo",
|
|
"Port": 0,
|
|
"Proxy": null,
|
|
"SocketPath": "",
|
|
"TaggedAddresses": {},
|
|
"Tags": [],
|
|
"Token": "hidden",
|
|
"Weights": {
|
|
"Passing": 67,
|
|
"Warning": 3
|
|
}
|
|
}
|
|
],
|
|
"SessionTTLMin": "0s",
|
|
"SkipLeaveOnInt": false,
|
|
"StartJoinAddrsLAN": [],
|
|
"StartJoinAddrsWAN": [],
|
|
"StaticRuntimeConfig": {
|
|
"EncryptVerifyIncoming": false,
|
|
"EncryptVerifyOutgoing": false
|
|
},
|
|
"SyncCoordinateIntervalMin": "0s",
|
|
"SyncCoordinateRateTarget": 0,
|
|
"TLS": {
|
|
"AutoTLS": false,
|
|
"Domain": "",
|
|
"EnableAgentTLSForChecks": false,
|
|
"GRPC": {
|
|
"CAFile": "",
|
|
"CAPath": "",
|
|
"CertFile": "",
|
|
"CipherSuites": [],
|
|
"KeyFile": "hidden",
|
|
"TLSMinVersion": "",
|
|
"VerifyIncoming": false,
|
|
"VerifyOutgoing": false,
|
|
"VerifyServerHostname": false
|
|
},
|
|
"HTTPS": {
|
|
"CAFile": "",
|
|
"CAPath": "",
|
|
"CertFile": "",
|
|
"CipherSuites": [],
|
|
"KeyFile": "hidden",
|
|
"TLSMinVersion": "",
|
|
"VerifyIncoming": false,
|
|
"VerifyOutgoing": false,
|
|
"VerifyServerHostname": false
|
|
},
|
|
"InternalRPC": {
|
|
"CAFile": "",
|
|
"CAPath": "",
|
|
"CertFile": "",
|
|
"CipherSuites": [],
|
|
"KeyFile": "hidden",
|
|
"TLSMinVersion": "",
|
|
"VerifyIncoming": false,
|
|
"VerifyOutgoing": false,
|
|
"VerifyServerHostname": false
|
|
},
|
|
"NodeName": "",
|
|
"ServerName": ""
|
|
},
|
|
"TaggedAddresses": {},
|
|
"Telemetry": {
|
|
"AllowedPrefixes": [],
|
|
"BlockedPrefixes": [],
|
|
"CirconusAPIApp": "",
|
|
"CirconusAPIToken": "hidden",
|
|
"CirconusAPIURL": "",
|
|
"CirconusBrokerID": "",
|
|
"CirconusBrokerSelectTag": "",
|
|
"CirconusCheckDisplayName": "",
|
|
"CirconusCheckForceMetricActivation": "",
|
|
"CirconusCheckID": "",
|
|
"CirconusCheckInstanceID": "",
|
|
"CirconusCheckSearchTag": "",
|
|
"CirconusCheckTags": "",
|
|
"CirconusSubmissionInterval": "",
|
|
"CirconusSubmissionURL": "",
|
|
"Disable": false,
|
|
"DisableCompatOneNine": false,
|
|
"DisableHostname": false,
|
|
"DogstatsdAddr": "",
|
|
"DogstatsdTags": [],
|
|
"FilterDefault": false,
|
|
"MetricsPrefix": "",
|
|
"PrometheusOpts": {
|
|
"CounterDefinitions": [],
|
|
"Expiration": "0s",
|
|
"GaugeDefinitions": [],
|
|
"Name": "",
|
|
"Registerer": null,
|
|
"SummaryDefinitions": []
|
|
},
|
|
"StatsdAddr": "",
|
|
"StatsiteAddr": ""
|
|
},
|
|
"TranslateWANAddrs": false,
|
|
"TxnMaxReqLen": 5678000000000000,
|
|
"UIConfig": {
|
|
"ContentPath": "",
|
|
"DashboardURLTemplates": {},
|
|
"Dir": "",
|
|
"Enabled": false,
|
|
"MetricsProvider": "",
|
|
"MetricsProviderFiles": [],
|
|
"MetricsProviderOptionsJSON": "",
|
|
"MetricsProxy": {
|
|
"AddHeaders": [
|
|
{
|
|
"Name": "foo",
|
|
"Value": "hidden"
|
|
}
|
|
],
|
|
"BaseURL": "",
|
|
"PathAllowlist": []
|
|
}
|
|
},
|
|
"UnixSocketGroup": "",
|
|
"UnixSocketMode": "",
|
|
"UnixSocketUser": "",
|
|
"UseStreamingBackend": false,
|
|
"Version": "",
|
|
"VersionPrerelease": "",
|
|
"Watches": []
|
|
}
|