Skip to content

Instantly share code, notes, and snippets.

@valtzu
Created September 28, 2022 19:01
Show Gist options
  • Save valtzu/e8975601ff611ded77576762a7c4e583 to your computer and use it in GitHub Desktop.
Save valtzu/e8975601ff611ded77576762a7c4e583 to your computer and use it in GitHub Desktop.
Kubernetes demo app
apiVersion: v1
kind: Namespace
metadata:
name: demo-app
---
apiVersion: v1
kind: ConfigMap
metadata:
name: php-src
namespace: demo-app
data:
index.php: |
<?php
header("Content-Type: text/plain");
echo 'Hello, world', PHP_EOL;
echo 'Node: ' . getenv('MY_NODE_NAME'), PHP_EOL;
echo 'Pod: ' . getenv('MY_POD_NAME'), PHP_EOL;
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: demo-app
namespace: demo-app
spec:
replicas: 4
selector:
matchLabels:
app: demo-app
template:
metadata:
labels:
app: demo-app
spec:
volumes:
- name: php-src
configMap: { name: php-src }
containers:
- image: php:8.1-cli
imagePullPolicy: IfNotPresent
name: demo-app
command: [php, -S, 0.0.0.0:3000, -t, /app]
ports:
- containerPort: 3000
name: http
volumeMounts:
- name: php-src
mountPath: /app
env:
- name: MY_NODE_NAME
valueFrom:
fieldRef: { fieldPath: spec.nodeName }
- name: MY_POD_NAME
valueFrom:
fieldRef: { fieldPath: metadata.name }
---
apiVersion: v1
kind: Service
metadata:
name: demo-app
namespace: demo-app
spec:
ports:
- port: 80
targetPort: http
name: http
protocol: TCP
type: ClusterIP
selector:
app: demo-app
---
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: demo-app
namespace: demo-app
annotations:
kubernetes.io/ingress.class: nginx
spec:
rules:
- http:
paths:
- path: /demo-app
pathType: Prefix
backend:
service:
name: demo-app
port:
name: http
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment