check: Add support for Consul field tls_server_name (#17334)

This commit is contained in:
Samantha
2023-06-02 10:19:12 -04:00
committed by GitHub
parent 16156b361f
commit 7ef1905333
10 changed files with 79 additions and 5 deletions

View File

@@ -1164,6 +1164,7 @@ func apiCheckRegistrationToCheck(r *api.AgentCheckRegistration) *api.AgentServic
Body: r.Body,
TCP: r.TCP,
Status: r.Status,
TLSServerName: r.TLSServerName,
TLSSkipVerify: r.TLSSkipVerify,
GRPC: r.GRPC,
GRPCUseTLS: r.GRPCUseTLS,
@@ -1653,6 +1654,7 @@ func createCheckReg(serviceID, checkID string, check *structs.ServiceCheck, host
if check.TLSSkipVerify {
chkReg.TLSSkipVerify = true
}
chkReg.TLSServerName = check.TLSServerName
base := url.URL{
Scheme: proto,
Host: net.JoinHostPort(host, strconv.Itoa(port)),
@@ -1681,6 +1683,7 @@ func createCheckReg(serviceID, checkID string, check *structs.ServiceCheck, host
if check.TLSSkipVerify {
chkReg.TLSSkipVerify = true
}
chkReg.TLSServerName = check.TLSServerName
default:
return nil, fmt.Errorf("check type %+q not valid", check.Type)

View File

@@ -972,6 +972,7 @@ func TestCreateCheckReg_GRPC(t *testing.T) {
PortLabel: "label",
GRPCService: "foo.Bar",
GRPCUseTLS: true,
TLSServerName: "localhost",
TLSSkipVerify: true,
Timeout: time.Second,
Interval: time.Minute,
@@ -988,13 +989,14 @@ func TestCreateCheckReg_GRPC(t *testing.T) {
AgentServiceCheck: api.AgentServiceCheck{
Timeout: "1s",
Interval: "1m0s",
GRPC: "localhost:8080/foo.Bar",
GRPC: "127.0.0.1:8080/foo.Bar",
GRPCUseTLS: true,
TLSServerName: "localhost",
TLSSkipVerify: true,
},
}
actual, err := createCheckReg(serviceID, checkID, check, "localhost", 8080, "default")
actual, err := createCheckReg(serviceID, checkID, check, "127.0.0.1", 8080, "default")
must.NoError(t, err)
must.Eq(t, expected, actual)
}

View File

@@ -1484,6 +1484,7 @@ func ApiServicesToStructs(in []*api.Service, group bool) []*structs.Service {
Interval: check.Interval,
Timeout: check.Timeout,
InitialStatus: check.InitialStatus,
TLSServerName: check.TLSServerName,
TLSSkipVerify: check.TLSSkipVerify,
Header: check.Header,
Method: check.Method,