File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ FROM golang:1.13.7-alpine3.11 as builder
2+ WORKDIR /app
3+ COPY . .
4+ RUN go build -o <% .Name %> main.go
5+
6+ FROM alpine:3.11
7+ RUN apk add --update bash ca-certificates
8+ WORKDIR /app
9+ COPY --from=builder /app/<% .Name %> .
10+
11+ ENTRYPOINT ["/app/<% .Name %>" ]
Original file line number Diff line number Diff line change 1+ build :
2+ go build -o < % .Name %> main.go
3+
4+ run :
5+ SERVER_PORT=80 go run main.go
Original file line number Diff line number Diff line change 1+ ---
2+ name : example-app
3+
4+ # params are key value pairs passed into templates
5+ params :
6+
7+ # production host name
8+ productionHost : fix_me
9+
10+ # staging host name
11+ stagingHost : fix_me
12+
13+ # production database hostname
14+ productionDatabaseHostname : fix_me
15+
16+ # staging database hostname
17+ stagingDatabaseHostname : fix_me
Original file line number Diff line number Diff line change 1+ apiVersion : apps/v1
2+ kind : Deployment
3+ metadata :
4+ name : <% .Name %>
5+ spec :
6+ revisionHistoryLimit : 5
7+ selector :
8+ matchLabels :
9+ app : <% .Name %>
10+ template :
11+ spec :
12+ containers :
13+ - name : <% .Name %>
14+ image : fake-image
15+ resources :
16+ requests :
17+ memory : 64Mi
18+ cpu : 0.1
19+ limits :
20+ memory : 256Mi
21+ cpu : 0.5
22+ livenessProbe :
23+ exec :
24+ command :
25+ - rm
26+ - /tmp/service-alive
27+ initialDelaySeconds : 5
28+ periodSeconds : 5
29+ readinessProbe :
30+ httpGet :
31+ port : http
32+ path : /status/ready
33+ initialDelaySeconds : 5
34+ periodSeconds : 10
35+ timeoutSeconds : 2
36+ envFrom :
37+ - configMapRef :
38+ name : <% .Name %>-config
39+ env :
40+ - name : DATABASE_USERNAME
41+ valueFrom :
42+ secretKeyRef :
43+ name : <% .Name %>
44+ key : DATABASE_USERNAME
45+ - name : DATABASE_PASSWORD
46+ valueFrom :
47+ secretKeyRef :
48+ name : <% .Name %>
49+ key : DATABASE_PASSWORD
50+ ---
51+ apiVersion : autoscaling/v1
52+ kind : HorizontalPodAutoscaler
53+ metadata :
54+ name : <% .Name %>
55+ spec :
56+ scaleTargetRef :
57+ apiVersion : apps/v1
58+ kind : Deployment
59+ name : <% .Name %>
60+ maxReplicas : 2
61+ minReplicas : 1
62+ targetCPUUtilizationPercentage : 60
Original file line number Diff line number Diff line change 1+ apiVersion : kustomize.config.k8s.io/v1beta1
2+ kind : Kustomization
3+
4+ resources :
5+ - deployment.yml
6+ - service.yml
7+
8+ configMapGenerator :
9+ - name : <% .Name %>-config
10+ literals :
11+ - SERVICE_PORT=80
12+ - DATABASE_HOST=localhost
13+ - DATABASE_PORT=5432
14+
15+ commonLabels :
16+ app : <% .Name %>
Original file line number Diff line number Diff line change 1+ apiVersion : v1
2+ kind : Service
3+ metadata :
4+ name : <% .Name %>
5+ spec :
6+ ports :
7+ - name : http
8+ protocol : TCP
9+ port : 80
10+ targetPort : 80
11+ selector :
12+ app : <% .Name %>
Original file line number Diff line number Diff line change 1+ apiVersion : apps/v1
2+ kind : Deployment
3+ metadata :
4+ name : <% .Name %>
5+ spec :
6+ template :
7+ spec :
8+ containers :
9+ - name : <% .Name %>
10+ resources :
11+ requests :
12+ memory : 128Mi
13+ cpu : 0.5
14+ limits :
15+ memory : 512Mi
16+ cpu : 1.0
17+ ---
18+ apiVersion : autoscaling/v1
19+ kind : HorizontalPodAutoscaler
20+ metadata :
21+ name : <% .Name %>
22+ spec :
23+ maxReplicas : 4
24+ minReplicas : 2
Original file line number Diff line number Diff line change 1+ apiVersion : extensions/v1beta1
2+ kind : Ingress
3+ metadata :
4+ name : <% .Name %>
5+ annotations :
6+ # nginx ingress
7+ kubernetes.io/ingress.class : nginx
8+ nginx.ingress.kubernetes.io/rewrite-target : /$1
9+ # cert-manager
10+ ingress.kubernetes.io/ssl-redirect : " true"
11+ cert-manager.io/cluster-issuer : clusterissuer-letsencrypt-production
12+ # external-dns
13+ external-dns.alpha.kubernetes.io/hostname : <% index .Params `productionHost` %>
14+
15+ spec :
16+ rules :
17+ - host : <% index .Params `productionHost` %>
18+ http :
19+ paths :
20+ - path : /(.*)
21+ backend :
22+ serviceName : <% .Name %>
23+ servicePort : http
24+ tls :
25+ - hosts :
26+ - <% index .Params `productionHost` %>
27+ secretName : <% .Name %>-tls-secret
Original file line number Diff line number Diff line change 1+ apiVersion : kustomize.config.k8s.io/v1beta1
2+ kind : Kustomization
3+
4+ bases :
5+ - ../base
6+
7+ patchesStrategicMerge :
8+ - deployment.yml
9+
10+ resources :
11+ - ingress.yaml
12+ - pdb.yaml
13+
14+ configMapGenerator :
15+ - name : <% .Name %>-config
16+ behavior : merge
17+ literals :
18+ - DATABASE_HOST=<% index .Params `productionDatabaseHostname` %>
19+ - DATABASE_NAME=<% .Name %>_production
20+ - ENVIRONMENT=production
Original file line number Diff line number Diff line change 1+ ---
2+ apiVersion : policy/v1beta1
3+ kind : PodDisruptionBudget
4+ metadata :
5+ name : <% .Name %>
6+ spec :
7+ minAvailable : 2
8+ selector :
9+ matchLabels :
10+ service : <% .Name %>
You can’t perform that action at this time.
0 commit comments