@@ -187,9 +187,10 @@ func RenderTiCDCStartScript(tc *v1alpha1.TidbCluster) (string, error) {
187187 var script string
188188 serverCmd := strings .Join (cmdArgs , " " )
189189
190- wgetDiscoveryPrefix := "http"
190+ discoveryFetchPrefix := "wget -qO- -T 3 http"
191191 if tc .IsDiscoveryMTLSEnabled () {
192- wgetDiscoveryPrefix = "--ca-certificate=/var/lib/ticdc-tls/ca.crt --certificate=/var/lib/ticdc-tls/tls.crt --private-key=/var/lib/ticdc-tls/tls.key https"
192+ // Use curl for discovery mTLS because wget in the runtime image does not reliably present the client cert.
193+ discoveryFetchPrefix = "curl -sS --fail --max-time 3 --cacert /var/lib/ticdc-tls/ca.crt --cert /var/lib/ticdc-tls/tls.crt --key /var/lib/ticdc-tls/tls.key https"
193194 }
194195
195196 if changefeedInfo .Enabled {
@@ -234,13 +235,13 @@ wait ${CDC_PID}
234235pd_url="%s"
235236encoded_domain_url=$(echo $pd_url | base64 | tr "\n" " " | sed "s/ //g")
236237discovery_url="%s-discovery.${NAMESPACE}:10261"
237- until result=$(wget -qO- -T 3 %s://${discovery_url}/verify/${encoded_domain_url} 2>/dev/null); do
238+ until result=$(%s://${discovery_url}/verify/${encoded_domain_url} 2>/dev/null); do
238239echo "waiting for the verification of PD endpoints ..."
239240sleep 2
240241done
241242`
242243
243- script += fmt .Sprintf (str , pdAddr , tc .GetName (), wgetDiscoveryPrefix )
244+ script += fmt .Sprintf (str , pdAddr , tc .GetName (), discoveryFetchPrefix )
244245 script += "\n " + changefeedScript
245246 } else {
246247 script = "set -uo pipefail\n " + changefeedScript
@@ -258,13 +259,13 @@ done
258259pd_url="%s"
259260encoded_domain_url=$(echo $pd_url | base64 | tr "\n" " " | sed "s/ //g")
260261discovery_url="%s-discovery.${NAMESPACE}:10261"
261- until result=$(wget -qO- -T 3 %s://${discovery_url}/verify/${encoded_domain_url} 2>/dev/null); do
262+ until result=$(%s://${discovery_url}/verify/${encoded_domain_url} 2>/dev/null); do
262263echo "waiting for the verification of PD endpoints ..."
263264sleep 2
264265done
265266`
266267
267- script += fmt .Sprintf (str , pdAddr , tc .GetName (), wgetDiscoveryPrefix )
268+ script += fmt .Sprintf (str , pdAddr , tc .GetName (), discoveryFetchPrefix )
268269 script += "\n " + strings .Join (append ([]string {"exec" }, cmdArgs ... ), " " )
269270 } else {
270271 script = serverCmd
@@ -435,15 +436,16 @@ func RenderTiFlashInitScript(tc *v1alpha1.TidbCluster) (string, error) {
435436 } else {
436437 pdAddr = fmt .Sprintf ("http://%s-pd:%d" , tcName , v1alpha1 .DefaultPDClientPort )
437438 }
438- wgetDiscoveryPrefix := "http"
439+ discoveryFetchPrefix := "wget -qO- -T 3 http"
439440 if tc .IsDiscoveryMTLSEnabled () {
440- wgetDiscoveryPrefix = "--ca-certificate=/var/lib/tiflash-tls/ca.crt --certificate=/var/lib/tiflash-tls/tls.crt --private-key=/var/lib/tiflash-tls/tls.key https"
441+ // Use curl for discovery mTLS because wget in the runtime image does not reliably present the client cert.
442+ discoveryFetchPrefix = "curl -sS --fail --max-time 3 --cacert /var/lib/tiflash-tls/ca.crt --cert /var/lib/tiflash-tls/tls.crt --key /var/lib/tiflash-tls/tls.key https"
441443 }
442444 str := `pd_url="%s"
443445set +e
444446encoded_domain_url=$(echo $pd_url | base64 | tr "\n" " " | sed "s/ //g")
445447discovery_url="%s-discovery.%s:10261"
446- until result=$(wget -qO- -T 3 %s://${discovery_url}/verify/${encoded_domain_url} 2>/dev/null | sed 's/http:\/\///g' | sed 's/https:\/\///g'); do
448+ until result=$(%s://${discovery_url}/verify/${encoded_domain_url} 2>/dev/null | sed 's/http:\/\///g' | sed 's/https:\/\///g'); do
447449echo "waiting for the verification of PD endpoints ..."
448450sleep 2
449451done
@@ -453,7 +455,7 @@ sed -i s/PD_ADDR/${result}/g /data0/config.toml
453455sed -i s/PD_ADDR/${result}/g /data0/proxy.toml
454456`
455457 script += "\n "
456- script += fmt .Sprintf (str , pdAddr , tc .GetName (), tc .GetNamespace (), wgetDiscoveryPrefix )
458+ script += fmt .Sprintf (str , pdAddr , tc .GetName (), tc .GetNamespace (), discoveryFetchPrefix )
457459 }
458460
459461 return script , nil
0 commit comments