Skip to content

Instantly share code, notes, and snippets.

@bittrance
Last active May 12, 2025 18:21
Show Gist options
  • Save bittrance/80b897fb6b96154b772e710f6a10d330 to your computer and use it in GitHub Desktop.
Save bittrance/80b897fb6b96154b772e710f6a10d330 to your computer and use it in GitHub Desktop.
apiVersion: v1
kind: Namespace
metadata:
name: hello-grpc
---
apiVersion: gateway.networking.k8s.io/v1beta1
kind: Gateway
metadata:
name: hello-grpc
namespace: hello-grpc
spec:
gatewayClassName: cilium
listeners:
- name: https
protocol: HTTPS
port: 443
tls:
mode: Terminate
certificateRefs:
- kind: Secret
group: ""
name: hello-grpc-certificate
---
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: hello-grpc
namespace: hello-grpc
spec:
secretName: hello-grpc-certificate
isCA: false
usages:
- server auth
dnsNames:
- cilium-gateway-hello-grpc.hello-grpc.test
issuerRef:
name: ca-issuer
kind: ClusterIssuer
group: cert-manager.io
---
apiVersion: v1
kind: Secret
metadata:
name: hello-grpc-certificate
namespace: hello-grpc
type: Opaque
---
apiVersion: gateway.networking.k8s.io/v1
kind: GRPCRoute
metadata:
name: hello-grpc
namespace: hello-grpc
spec:
parentRefs:
- name: hello-grpc
sectionName: https
hostnames:
- cilium-gateway-hello-grpc.hello-grpc.test
rules:
- backendRefs:
- name: hello-grpc
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: hello-grpc
namespace: hello-grpc
spec:
selector:
app.kubernetes.io/name: hello-grpc
type: NodePort
ports:
- name: grpc
port: 8080
targetPort: grpc
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-grpc
namespace: hello-grpc
labels:
app.kubernetes.io/name: hello-grpc
spec:
replicas: 5
selector:
matchLabels:
app.kubernetes.io/name: hello-grpc
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 1
template:
metadata:
labels:
app.kubernetes.io/name: hello-grpc
spec:
containers:
- name: hello-grpc
image: bittrance/hello-world:tonic-hello-grpc
lifecycle:
preStop:
sleep:
seconds: 2
env:
- name: HELLO_GRPC_REQUEST_DELAY
value: "0"
ports:
- name: grpc
containerPort: 8080
startupProbe:
failureThreshold: 10
grpc:
port: 8080
periodSeconds: 1
successThreshold: 1
timeoutSeconds: 1
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: hello-rest
namespace: hello-grpc
spec:
parentRefs:
- name: hello-grpc
sectionName: https
hostnames:
- cilium-gateway-hello-grpc.hello-grpc.test
rules:
- backendRefs:
- name: hello-rest
port: 8080
---
apiVersion: v1
kind: Service
metadata:
name: hello-rest
namespace: hello-grpc
spec:
selector:
app: hello-rest
type: NodePort
ports:
- name: http
port: 8080
targetPort: 8080
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: hello-rest
namespace: hello-grpc
labels:
app: hello-rest
spec:
selector:
matchLabels:
app: hello-rest
template:
metadata:
labels:
app: hello-rest
spec:
containers:
- name: axum-hello-rest
image: bittrance/hello-world:axum-hello-rest
ports:
- containerPort: 8080
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment