Skip to content

Instantly share code, notes, and snippets.

@scostello
Last active May 27, 2019 15:16
Show Gist options
  • Save scostello/12eaf4ab175997e86f7910ac4c3d733b to your computer and use it in GitHub Desktop.
Save scostello/12eaf4ab175997e86f7910ac4c3d733b to your computer and use it in GitHub Desktop.
Helm generate Kubernetes manifests
---
# Source: my-api/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: local-release-my-api-env
data:
# API
API_HOST: "0.0.0.0"
API_PORT: "4000"
# DB
PG_HOST: "postgres-postgresql.default.svc"
PG_PORT: "5432"
PG_DB_NAME: "my_api_db"
PG_DB_USER: "mydb_user"
PG_DB_PASSWORD: "mysecretpassword"
---
# Source: my-api/templates/service.yaml
apiVersion: v1
kind: Service
metadata:
name: local-release-my-api
labels:
app.kubernetes.io/name: my-api
helm.sh/chart: my-api-0.1.0
app.kubernetes.io/instance: local-release
app.kubernetes.io/managed-by: Tiller
spec:
type: ClusterIP
ports:
- port: 4000
targetPort: http
protocol: TCP
name: http
selector:
app.kubernetes.io/name: my-api
app.kubernetes.io/instance: local-release
---
# Source: my-api/templates/tests/test-connection.yaml
apiVersion: v1
kind: Pod
metadata:
name: "local-release-my-api-test-connection"
labels:
app.kubernetes.io/name: my-api
helm.sh/chart: my-api-0.1.0
app.kubernetes.io/instance: local-release
app.kubernetes.io/managed-by: Tiller
annotations:
"helm.sh/hook": test-success
spec:
containers:
- name: wget
image: busybox
command: ['wget']
args: ['local-release-my-api:4000']
restartPolicy: Never
---
# Source: my-api/templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: local-release-my-api
labels:
app.kubernetes.io/name: my-api
helm.sh/chart: my-api-0.1.0
app.kubernetes.io/instance: local-release
app.kubernetes.io/managed-by: Tiller
spec:
replicas: 1
selector:
matchLabels:
app.kubernetes.io/name: my-api
app.kubernetes.io/instance: local-release
template:
metadata:
labels:
app.kubernetes.io/name: my-api
app.kubernetes.io/instance: local-release
spec:
containers:
- name: my-api
image: "my-api:local"
imagePullPolicy: Never # Required for images built within minikube VM
command:
- "/bin/sh"
- "-ecx"
- |
yarn run watch
envFrom:
- configMapRef:
name: "local-release-my-api-env"
ports:
- name: http
containerPort: 4000
protocol: TCP
resources:
{}
volumeMounts:
- name: my-api-src
mountPath: "/apps/my-api/src"
- name: my-api-babel
mountPath: "/apps/my-api/.babelrc"
- name: my-api-package
mountPath: "/apps/my-api/package.json"
volumes:
- name: my-api-src
hostPath:
path: "/path/to/api/src"
type: Directory
- name: pfa-api-babel
hostPath:
path: "/path/to/api/.babelrc"
type: File
- name: pfa-api-package
hostPath:
path: "/path/to/api/package.json"
type: File
---
# Source: my-api/templates/ingress.yaml
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: local-release-my-api
labels:
app.kubernetes.io/name: my-api
helm.sh/chart: my-api-0.1.0
app.kubernetes.io/instance: local-release
app.kubernetes.io/managed-by: Tiller
annotations:
kubernetes.io/ingress.class: kong
spec:
rules:
- host: "api.myapp.test"
http:
paths:
- path: /
backend:
serviceName: local-release-my-api
servicePort: http
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment