1import { createHash } from 'crypto' 7const authSecretName = 'ethrpc-basic-auth', authUsername = 'ethrpc' 9const basicAuthAnnotationsH = { 10 'nginx.ingress.kubernetes.io/auth-type': 'basic', 11 'nginx.ingress.kubernetes.io/auth-secret': authSecretName, 12 'nginx.ingress.kubernetes.io/auth-realm': 'ETH RPC', 15const shaHtpasswd = (username: string, password: string) => { 16 const sha1 = createHash('sha1').update(password).digest('base64') 17 return `${username}:{SHA}${sha1}` 20export const k8sEthRpcIngress = async ({execHostname, beaconHostname, execSvcName, execPortNo = 8545, beaconSvcName, beaconPortNo}: {execHostname: string, beaconHostname: string, execSvcName: string, execPortNo?: number, beaconSvcName: string, beaconPortNo: number}) => { 22 const htpasswdLine = shaHtpasswd(authUsername, password) 27 name: 'ethrpc', svcName: execSvcName, hostname: execHostname, portNo: execPortNo, 28 ingressAnnotationsH: basicAuthAnnotationsH, 31 name: 'ethbeacon', svcName: beaconSvcName, hostname: beaconHostname, portNo: beaconPortNo, 32 ingressAnnotationsH: basicAuthAnnotationsH,