1import { kubeSvcTmpl } from '../k8sF/kubeSvcTmplF.mts'2import { genericIngressTmpl } from '../k8sF/generic1IngressTmplF.mts'3import { resourcesAction } from '../k8sF/resourcesActionF.mts'4import { deployLabel } from '../k8sF/kubeLabelsF.mts'6const deploymentTmpl = ({name}: {name: string}) => {7 const image = 'nginxdemos/hello:latest'8 return {9 apiVersion: 'apps/v1',10 kind: 'Deployment',11 metadata: {12 name,13 namespace: 'default',14 },15 spec: {16 replicas: 1,17 selector: {18 matchLabels: {19 name20 }21 },22 template: {23 metadata: {24 labels: {25 name,26 [deployLabel]: name,27 }28 },29 spec: {30 containers: [31 {32 image,33 name,34 }35 ],36 }37 }38 }39 }40}42export const k8sNginxHello = async ({hostname, ingressClassName}: {hostname: string, ingressClassName?: string}) => {43 const name = 'nginxhello'44 const portNo = 8045 const resources = [46 deploymentTmpl({name}),47 kubeSvcTmpl({name, portNo}),48 genericIngressTmpl({name, hostname, ingressClassName, portNo}),49 ]50 await resourcesAction({resources})51}