apiVersion: v1 kind: Service metadata: name: nginx namespace: kgateway-base spec: selector: app.kubernetes.io/name: nginx ports: - protocol: TCP port: 8080 targetPort: http-web-svc name: http - protocol: TCP port: 8443 targetPort: https-web-svc name: https --- apiVersion: v1 kind: Service metadata: name: nginx2 namespace: kgateway-base spec: selector: app.kubernetes.io/name: nginx2 ports: - protocol: TCP port: 8080 targetPort: http-web-svc name: http - protocol: TCP port: 8443 targetPort: https-web-svc name: https --- # nginx cert and key generated via: # openssl req -x509 -out ex.crt -keyout ex.key \ # -newkey rsa:2048 -days 365 -nodes -sha256 \ # -subj '/CN=example.com' -extensions EXT -config <( \ # printf "[dn]\nCN=example.com\n[req]\ndistinguished_name = dn\n[EXT]\nsubjectAltName=DNS:example.com\nkeyUsage=digitalSignature\nextendedKeyUsage=serverAuth") apiVersion: v1 kind: ConfigMap metadata: name: nginx-conf namespace: kgateway-base data: nginx.conf: | user nginx; worker_processes 1; events { worker_connections 10240; } http { server { listen 80; listen 443 ssl; server_name example.com; ssl_certificate /etc/nginx/example.crt; ssl_certificate_key /etc/nginx/example.key; location / { root /usr/share/nginx/html; index index.html index.htm; } } } example.crt: | -----BEGIN CERTIFICATE----- MIIDFTCCAf2gAwIBAgIUIlv+uw9O1gTwKnf4HvCIFusHWh4wDQYJKoZIhvcNAQEL BQAwFjEUMBIGA1UEAwwLZXhhbXBsZS5jb20wHhcNMjYwNzA3MTY0OTM2WhcNMzYw NzA0MTY0OTM2WjAWMRQwEgYDVQQDDAtleGFtcGxlLmNvbTCCASIwDQYJKoZIhvcN AQEBBQADggEPADCCAQoCggEBAJJiw/saYoXDnvJ2hgLGErN/DEOU7NCFE7h5tECa 8uTmBV2m2bXnlXjg6umB0rPsKSOnSpF2qCt64Ll7I+/kODyu/VkuhYA/ki5Wi32V uFU7scb1FwbuhNL1/zq6hRhpsqajmpt6Q7ndpfp1mVXx/dblsufV6dyODkjenU97 BukkLXar+G0KBouw1MNqLzN9y6ISuo0BvEvfLBUi0b9NuNXmtICrffBHzVNBf7Sx 7KEW4nSO+55AoLJnAga6X0ZvSQju9GXE9iyrV4YRY51fwW/E+jU4GYOlUQow7bEI fOJDupwoUuFsUthhMCNpnJS955hxPFjqmeWJCJs0rTNoU1UCAwEAAaNbMFkwFgYD VR0RBA8wDYILZXhhbXBsZS5jb20wCwYDVR0PBAQDAgeAMBMGA1UdJQQMMAoGCCsG AQUFBwMBMB0GA1UdDgQWBBQRB7nN8rfErGTItgws/E8EPzPSIjANBgkqhkiG9w0B AQsFAAOCAQEAH63LT5aquDjz13D4HuXGiJlXyBnTmYQ5yQRbioeWJp3msai12/MJ /St1T4CyhWV5pUAUDdpjsjgAZjGxntYdw/fs4bJbLqnbKGC5ujObxwZ/tzbPvm+v t0UH8beP4ba5wKzwqeWu3sWMNPwoxyzIRQpInZPSxnqYe/7ataB93d3wLS/AcuU6 Lijsx/zJXw0xNoyfJjvqdI0cSoV6lyYggxul06Mc5d08NNeck/gObDc3Ku2IapN3 Ith7RWjemymjJw/gQZguqctyRnBaAZZrFES8s6Acqsxa3Ee9Oyk+9OZs6wnXWscZ cmk3NzvSnsKQt+jTR3DZWdUR5Iua0WP6xw== -----END CERTIFICATE----- example.key: | -----BEGIN PRIVATE KEY----- MIIEvAIBADANBgkqhkiG9w0BAQEFAASCBKYwggSiAgEAAoIBAQCSYsP7GmKFw57y doYCxhKzfwxDlOzQhRO4ebRAmvLk5gVdptm155V44OrpgdKz7Ckjp0qRdqgreuC5 eyPv5Dg8rv1ZLoWAP5IuVot9lbhVO7HG9RcG7oTS9f86uoUYabKmo5qbekO53aX6 dZlV8f3W5bLn1encjg5I3p1PewbpJC12q/htCgaLsNTDai8zfcuiErqNAbxL3ywV ItG/TbjV5rSAq33wR81TQX+0seyhFuJ0jvueQKCyZwIGul9Gb0kI7vRlxPYsq1eG EWOdX8FvxPo1OBmDpVEKMO2xCHziQ7qcKFLhbFLYYTAjaZyUveeYcTxY6pnliQib NK0zaFNVAgMBAAECggEAQcRl0Hb2NKrCyqQ9aRmcZVB7LhHGo5hmV8c2GKCE6Bn/ 5yeDQJqfKQPEBszw4S0E/qO2eMwamg5G0I5mguzB52GnKV4hVJE7F96CJRYTDxgW sxCCG/clbbJfzP7ntSQnw35Vg+zWaLcQTwpurZJfPSFN06Ljwtd/y3VYr9DSNgQA 2S0S3M6GoQ2Eji/XrykCii8BhU2Qz8D3Vl9mPRbFIlyhqnI/OTi/IzW0pMV6U7Ze p07SAFGQRVBwnJ8p9z2MgmPq9anBS2XGWq98FDPxh1hFnT1+1azPb4c1DslZEZ0f fPihZfGjPl37YUYAx3WiE16NlrjtOl233bfHdTsysQKBgQDKiD0YUtcbmMbWYJxi DgygbjY8NLN+U1u7efW+S6A2mc2CbeH0Xup+S6Mq9WdjIJEykTsG11yGtw6PYIqz eYaVyHItdZBqK+gM0oeNMQL5OANwBYIb01T1gibE6A5L4RSXSW+o23AZWMl+IQsv YNTpM/khJ21r+uSnkh/aueP8PwKBgQC5B/pnaB/Ck07wndGKhT/E9m4ccUi6kYVK fs7tS9kroMPZtfdBeld/Z/sM1v3BYTdP2geJqyRdq1ml+Nrt/yHpeJ19yWMN0Zy1 ONN5HfAn3PhXZcNzCVkudNG+l0JAoQEVHZRnrfiHH2LjKCkPOGAhIHkSWUDFRqxt mF6KgqzbawKBgB8sHvMqdO9LcXc3gXpaHTloHTLhDato2xqc5+T1MOCWhZoInZmG LmNn8uI+yT3pmk+FKOehqB0X+ca5nj+Hed597ozupl6hCWNH2BM0Mvf21hic0GzF 9zKeaKcv7Ftjdk7ev6/mrndIQiMGpPkS11JZbIPc1Kuk/yKHjB2XNO7zAoGAPjHV VJ7mVhQH689QmNwzVDR1TLAzfyrc/+5iBdeB9y1Bx9NneiXydUvxUh6OC0tvOTMT Z44UWjv3lVdx15/zuTOm1Jo15nY30553TvXmPLAE9fOp3+gbhwcTXZogVfMIlx1r PfJ3YIwHRE3Ch3Aut9PffnBr2iPoX6pg1PQZwGMCgYBTmGoJqhZ5Yu3sCz2NF4rl ID1xDB/LEMySE+nuzBjVe74yYo/Gcga5OJjERd2eeTKJ5PTLukitcTWJ/wL/Bq1+ e6G65k5SyLaSts74zXhLhDeYSppC/Pi+n+j62NiGY/I0gF+IrP4EMSTcddlwuWQL OHnItVU7MYDTZ9YUeQ/cdg== -----END PRIVATE KEY----- --- apiVersion: v1 kind: Pod metadata: name: nginx namespace: kgateway-base labels: app.kubernetes.io/name: nginx spec: terminationGracePeriodSeconds: 0 containers: - name: nginx image: nginx:1.28.0 ports: - containerPort: 80 name: http-web-svc - containerPort: 443 name: https-web-svc volumeMounts: - name: nginx-conf mountPath: /etc/nginx/ readOnly: true volumes: - name: nginx-conf configMap: name: nginx-conf items: - key: nginx.conf path: nginx.conf - key: example.crt path: example.crt - key: example.key path: example.key --- apiVersion: v1 kind: Pod metadata: name: nginx2 namespace: kgateway-base labels: app.kubernetes.io/name: nginx2 spec: terminationGracePeriodSeconds: 0 containers: - name: nginx image: nginx:1.28.0 ports: - containerPort: 80 name: http-web-svc - containerPort: 443 name: https-web-svc volumeMounts: - name: nginx-conf mountPath: /etc/nginx/ readOnly: true volumes: - name: nginx-conf configMap: name: nginx-conf items: - key: nginx.conf path: nginx.conf - key: example.crt path: example.crt - key: example.key path: example.key