Propagate the swarm cluster and node TLS info provided by the swarm
objects into the REST API responses. In the CLI, display only whether the nodes' TLS info matches the cluster's TLS info, or whether the node needs cert rotation. Signed-off-by: Ying Li <ying.li@docker.com> Upstream-commit: 64cccedbce86542fc9289ad9cca1dd758f2f21c2 Component: engine
This commit is contained in:
@@ -50,6 +50,11 @@ func NodeFromGRPC(n swarmapi.Node) types.Node {
|
||||
node.Description.Engine.Plugins = append(node.Description.Engine.Plugins, types.PluginDescription{Type: plugin.Type, Name: plugin.Name})
|
||||
}
|
||||
}
|
||||
if n.Description.TLSInfo != nil {
|
||||
node.Description.TLSInfo.TrustRoot = string(n.Description.TLSInfo.TrustRoot)
|
||||
node.Description.TLSInfo.CertIssuerPublicKey = n.Description.TLSInfo.CertIssuerPublicKey
|
||||
node.Description.TLSInfo.CertIssuerSubject = n.Description.TLSInfo.CertIssuerSubject
|
||||
}
|
||||
}
|
||||
|
||||
//Manager
|
||||
|
||||
@@ -7,6 +7,7 @@ import (
|
||||
|
||||
types "github.com/docker/docker/api/types/swarm"
|
||||
swarmapi "github.com/docker/swarmkit/api"
|
||||
"github.com/docker/swarmkit/ca"
|
||||
gogotypes "github.com/gogo/protobuf/types"
|
||||
)
|
||||
|
||||
@@ -30,6 +31,10 @@ func SwarmFromGRPC(c swarmapi.Cluster) types.Swarm {
|
||||
AutoLockManagers: c.Spec.EncryptionConfig.AutoLockManagers,
|
||||
},
|
||||
},
|
||||
TLSInfo: types.TLSInfo{
|
||||
TrustRoot: string(c.RootCA.CACert),
|
||||
},
|
||||
RootRotationInProgress: c.RootCA.RootRotation != nil,
|
||||
},
|
||||
JoinTokens: types.JoinTokens{
|
||||
Worker: c.RootCA.JoinTokens.Worker,
|
||||
@@ -37,6 +42,12 @@ func SwarmFromGRPC(c swarmapi.Cluster) types.Swarm {
|
||||
},
|
||||
}
|
||||
|
||||
issuerInfo, err := ca.IssuerFromAPIRootCA(&c.RootCA)
|
||||
if err == nil && issuerInfo != nil {
|
||||
swarm.TLSInfo.CertIssuerSubject = issuerInfo.Subject
|
||||
swarm.TLSInfo.CertIssuerPublicKey = issuerInfo.PublicKey
|
||||
}
|
||||
|
||||
heartbeatPeriod, _ := gogotypes.DurationFromProto(c.Spec.Dispatcher.HeartbeatPeriod)
|
||||
swarm.Spec.Dispatcher.HeartbeatPeriod = heartbeatPeriod
|
||||
|
||||
|
||||
Reference in New Issue
Block a user