mirror of
https://github.com/status-im/consul.git
synced 2025-01-26 05:29:55 +00:00
724a281e1c
It is no safe to assumes that the mapstructure keys will contain all the keys because some config can be specified with command line flags or literals. This change allows us to remove the json marshal/unmarshal cycle for command line flags, which will allow us to remove all of the hcl/json struct tags on config fields.
72 lines
1.8 KiB
Go
72 lines
1.8 KiB
Go
// +build !consulent
|
|
|
|
package config
|
|
|
|
import (
|
|
"fmt"
|
|
)
|
|
|
|
// validateEnterpriseConfig is a function to validate the enterprise specific
|
|
// configuration items after Parsing but before merging into the overall
|
|
// configuration. The original intent is to use it to ensure that we warn
|
|
// for enterprise configurations used in OSS.
|
|
func validateEnterpriseConfigKeys(config *Config) []error {
|
|
var result []error
|
|
add := func(k string) {
|
|
result = append(result, enterpriseConfigKeyError{key: k})
|
|
}
|
|
|
|
if config.ReadReplica != nil {
|
|
add(`read_replica (or the deprecated non_voting_server)`)
|
|
}
|
|
if stringVal(config.SegmentName) != "" {
|
|
add("segment")
|
|
}
|
|
if len(config.Segments) > 0 {
|
|
add("segments")
|
|
}
|
|
if stringVal(config.Autopilot.RedundancyZoneTag) != "" {
|
|
add("autopilot.redundancy_zone_tag")
|
|
}
|
|
if stringVal(config.Autopilot.UpgradeVersionTag) != "" {
|
|
add("autopilot.upgrade_version_tag")
|
|
}
|
|
if config.Autopilot.DisableUpgradeMigration != nil {
|
|
add("autopilot.disable_upgrade_migration")
|
|
}
|
|
if config.DNS.PreferNamespace != nil {
|
|
add("dns_config.prefer_namespace")
|
|
config.DNS.PreferNamespace = nil
|
|
}
|
|
if config.ACL.MSPDisableBootstrap != nil {
|
|
add("acl.msp_disable_bootstrap")
|
|
config.ACL.MSPDisableBootstrap = nil
|
|
}
|
|
if len(config.ACL.Tokens.ManagedServiceProvider) > 0 {
|
|
add("acl.tokens.managed_service_provider")
|
|
config.ACL.Tokens.ManagedServiceProvider = nil
|
|
}
|
|
if config.Audit != nil {
|
|
add("audit")
|
|
config.Audit = nil
|
|
}
|
|
|
|
return result
|
|
}
|
|
|
|
type enterpriseConfigKeyError struct {
|
|
key string
|
|
}
|
|
|
|
func (e enterpriseConfigKeyError) Error() string {
|
|
return fmt.Sprintf("%q is a Consul Enterprise configuration and will have no effect", e.key)
|
|
}
|
|
|
|
func (*Builder) BuildEnterpriseRuntimeConfig(_ *RuntimeConfig, _ *Config) error {
|
|
return nil
|
|
}
|
|
|
|
func (*Builder) validateEnterpriseConfig(_ RuntimeConfig) error {
|
|
return nil
|
|
}
|