Add new fields to HCP bootstrap config request and push state request

To support linking cluster, HCP needs to know the datacenter and if ACLs are enabled. Otherwise hosted Consul Core UI won't work properly.
pull/17215/head
Hans Hasselberg 2 years ago committed by GitHub
parent 8dce0ba504
commit b6097a99b8
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -1995,6 +1995,7 @@ func (s *Server) hcpServerStatus(deps Deps) hcp.StatusCallback {
status.LanAddress = s.config.RPCAdvertise.IP.String() status.LanAddress = s.config.RPCAdvertise.IP.String()
status.GossipPort = s.config.SerfLANConfig.MemberlistConfig.AdvertisePort status.GossipPort = s.config.SerfLANConfig.MemberlistConfig.AdvertisePort
status.RPCPort = s.config.RPCAddr.Port status.RPCPort = s.config.RPCAddr.Port
status.Datacenter = s.config.Datacenter
tlsCert := s.tlsConfigurator.Cert() tlsCert := s.tlsConfigurator.Cert()
if tlsCert != nil { if tlsCert != nil {
@ -2036,6 +2037,8 @@ func (s *Server) hcpServerStatus(deps Deps) hcp.StatusCallback {
status.ScadaStatus = deps.HCP.Provider.SessionStatus() status.ScadaStatus = deps.HCP.Provider.SessionStatus()
} }
status.ACL.Enabled = s.config.ACLsEnabled
return status, nil return status, nil
} }
} }

@ -80,10 +80,12 @@ func httpClient(c config.CloudConfig) (*httptransport.Runtime, error) {
} }
func (c *hcpClient) FetchBootstrap(ctx context.Context) (*BootstrapConfig, error) { func (c *hcpClient) FetchBootstrap(ctx context.Context) (*BootstrapConfig, error) {
version := version.GetHumanVersion()
params := hcpgnm.NewAgentBootstrapConfigParamsWithContext(ctx). params := hcpgnm.NewAgentBootstrapConfigParamsWithContext(ctx).
WithID(c.resource.ID). WithID(c.resource.ID).
WithLocationOrganizationID(c.resource.Organization). WithLocationOrganizationID(c.resource.Organization).
WithLocationProjectID(c.resource.Project) WithLocationProjectID(c.resource.Project).
WithConsulVersion(&version)
resp, err := c.gnm.AgentBootstrapConfig(params, nil) resp, err := c.gnm.AgentBootstrapConfig(params, nil)
if err != nil { if err != nil {
@ -132,10 +134,12 @@ type ServerStatus struct {
LanAddress string LanAddress string
GossipPort int GossipPort int
RPCPort int RPCPort int
Datacenter string
Autopilot ServerAutopilot Autopilot ServerAutopilot
Raft ServerRaft Raft ServerRaft
TLS ServerTLSInfo TLS ServerTLSInfo
ACL ServerACLInfo
ScadaStatus string ScadaStatus string
} }
@ -155,6 +159,10 @@ type ServerRaft struct {
TimeSinceLastContact time.Duration TimeSinceLastContact time.Duration
} }
type ServerACLInfo struct {
Enabled bool
}
type ServerTLSInfo struct { type ServerTLSInfo struct {
Enabled bool Enabled bool
CertExpiry time.Time CertExpiry time.Time
@ -199,6 +207,10 @@ func serverStatusToHCP(s *ServerStatus) *gnmmod.HashicorpCloudGlobalNetworkManag
}, },
Version: s.Version, Version: s.Version,
ScadaStatus: s.ScadaStatus, ScadaStatus: s.ScadaStatus,
ACL: &gnmmod.HashicorpCloudGlobalNetworkManager20220215ACLInfo{
Enabled: s.ACL.Enabled,
},
Datacenter: s.Datacenter,
} }
} }

@ -61,7 +61,7 @@ require (
github.com/hashicorp/golang-lru v0.5.4 github.com/hashicorp/golang-lru v0.5.4
github.com/hashicorp/hcl v1.0.0 github.com/hashicorp/hcl v1.0.0
github.com/hashicorp/hcp-scada-provider v0.2.3 github.com/hashicorp/hcp-scada-provider v0.2.3
github.com/hashicorp/hcp-sdk-go v0.40.1-0.20230404193545-846aea419cd1 github.com/hashicorp/hcp-sdk-go v0.44.1-0.20230508124639-28da4c5b03f3
github.com/hashicorp/hil v0.0.0-20200423225030-a18a1cd20038 github.com/hashicorp/hil v0.0.0-20200423225030-a18a1cd20038
github.com/hashicorp/memberlist v0.5.0 github.com/hashicorp/memberlist v0.5.0
github.com/hashicorp/raft v1.5.0 github.com/hashicorp/raft v1.5.0

@ -604,8 +604,8 @@ github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4=
github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ=
github.com/hashicorp/hcp-scada-provider v0.2.3 h1:AarYR+/Pcv+cMvPdAlb92uOBmZfEH6ny4+DT+4NY2VQ= github.com/hashicorp/hcp-scada-provider v0.2.3 h1:AarYR+/Pcv+cMvPdAlb92uOBmZfEH6ny4+DT+4NY2VQ=
github.com/hashicorp/hcp-scada-provider v0.2.3/go.mod h1:ZFTgGwkzNv99PLQjTsulzaCplCzOTBh0IUQsPKzrQFo= github.com/hashicorp/hcp-scada-provider v0.2.3/go.mod h1:ZFTgGwkzNv99PLQjTsulzaCplCzOTBh0IUQsPKzrQFo=
github.com/hashicorp/hcp-sdk-go v0.40.1-0.20230404193545-846aea419cd1 h1:C1des4/oIeUqQJVUWypnZth19Kg+k01q+V59OVNMB+Q= github.com/hashicorp/hcp-sdk-go v0.44.1-0.20230508124639-28da4c5b03f3 h1:9QstZdsLIS6iPyYxQoyymRz8nBw9jMdEbGy29gtgzVQ=
github.com/hashicorp/hcp-sdk-go v0.40.1-0.20230404193545-846aea419cd1/go.mod h1:hZqky4HEzsKwvLOt4QJlZUrjeQmb4UCZUhDP2HyQFfc= github.com/hashicorp/hcp-sdk-go v0.44.1-0.20230508124639-28da4c5b03f3/go.mod h1:hZqky4HEzsKwvLOt4QJlZUrjeQmb4UCZUhDP2HyQFfc=
github.com/hashicorp/hil v0.0.0-20200423225030-a18a1cd20038 h1:n9J0rwVWXDpNd5iZnwY7w4WZyq53/rROeI7OVvLW8Ok= github.com/hashicorp/hil v0.0.0-20200423225030-a18a1cd20038 h1:n9J0rwVWXDpNd5iZnwY7w4WZyq53/rROeI7OVvLW8Ok=
github.com/hashicorp/hil v0.0.0-20200423225030-a18a1cd20038/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE= github.com/hashicorp/hil v0.0.0-20200423225030-a18a1cd20038/go.mod h1:n2TSygSNwsLJ76m8qFXTSc7beTb+auJxYdqrnoqwZWE=
github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64=

Loading…
Cancel
Save