4import * as _ from 'lodash-es' 6export const rewriteHostForLan = async ({str, cluster_name, klusterVipHostname, klustCertsH}: { 7 str: string, cluster_name?: string, klusterVipHostname?: string, klustCertsH?: Record<string, string | string[]> 10 klusterVipHostname ||= clusterCfg?.klusterVipHostname 11 klustCertsH ||= clusterCfg?.klustCertsH 13 const clusterVip = clusterCfg?.clusterVip ?? nodePortsCfg?.lanHostIpsH?.clusterVip 15 if (!klusterVipHostname || !klustCertsH || !cluster_name) return str 17 const vipSuffix = klusterVipHostname.replace('*', '') 18 const extSuffix = _.chain(klustCertsH).values().flatten() 19 .map(hn => hn.replace('*', '')) 20 .find(suffix => suffix !== vipSuffix) 23 if (!extSuffix) return str 24 if (!_.includes(str, vipSuffix) && !_.includes(str, extSuffix)) return str 26 const inLan = await isOnSameLan({cluster_name, nodeIpsExtHost: nodePortsCfg?.nodeIpsExtHost, clusterVip}) 27 const fromSuffix = inLan ? extSuffix : vipSuffix 28 const toSuffix = inLan ? vipSuffix : extSuffix 30 if (!_.includes(str, fromSuffix)) return str 32 return str.replaceAll(fromSuffix, toSuffix) 35export const rewriteKcHostForLan = async ({klusterCfgStr, cluster_name, klusterVipHostname, klustCertsH}: { 38 klusterVipHostname?: string 39 klustCertsH?: Record<string, string | string[]> 43 cluster_name ||= ctx.cluster_name ?? appCfg?.cluster_name 44 klusterVipHostname ||= ctx.klusterVipHostname 45 klustCertsH ||= ctx.klustCertsH 46 return rewriteHostForLan({str: klusterCfgStr, cluster_name, klusterVipHostname, klustCertsH})