Skip to content

Commit 8543bc5

Browse files
committed
Added some generated examples
1 parent 3d45401 commit 8543bc5

20 files changed

+402
-0
lines changed

Diff for: examples/basic/README.md

+10
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
# Basic example
2+
3+
This is a basic example of what can do Katenary with standard docker-compose file.
4+
5+
In this example:
6+
7+
- `depends_on` yield a `initContainer` in the webapp ddeployment to wait for database
8+
- so we need to declare the listened port inside `database` container as we don't use it with docker-compose- also, we needed to declare that `DB_HOST` is actually a service name
9+
10+
Take a look on [chart/basic](chart/basic) directory to see what `katenary convert` command has generated.

Diff for: examples/basic/chart/basic/Chart.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Create on 2022-02-17T10:27:30+01:00
2+
# Katenary command line: katenary convert
3+
apiVersion: v2
4+
appVersion: 0.0.1
5+
description: A helm chart for basic
6+
name: basic
7+
type: application
8+
version: 0.1.0

Diff for: examples/basic/chart/basic/templates/NOTES.txt

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
Congratulations,
3+
4+
Your application is now deployed. This may take a while to be up and responding.
5+
6+
{{ if .Values.webapp.ingress.enabled -}}
7+
- webapp is accessible on : http://{{ .Values.webapp.ingress.host }}
8+
{{- end }}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: '{{ .Release.Name }}-database'
5+
labels:
6+
katenary.io/component: database
7+
katenary.io/project: basic
8+
katenary.io/release: '{{ .Release.Name }}'
9+
annotations:
10+
katenary.io/docker-compose-sha1: b9f12bb7d1e97901c1d7680394209525763f6640
11+
katenary.io/version: master-3619cc4
12+
spec:
13+
replicas: 1
14+
selector:
15+
matchLabels:
16+
katenary.io/component: database
17+
katenary.io/release: '{{ .Release.Name }}'
18+
template:
19+
metadata:
20+
labels:
21+
katenary.io/component: database
22+
katenary.io/release: '{{ .Release.Name }}'
23+
spec:
24+
containers:
25+
- name: database
26+
image: '{{ .Values.database.image }}'
27+
ports:
28+
- name: database
29+
containerPort: 3306
30+
env:
31+
- name: MARIADB_PASSWORD
32+
value: foo
33+
- name: MARIADB_DATABASE
34+
value: myapp
35+
- name: MARIADB_ROOT_PASSWORD
36+
value: foobar
37+
- name: MARIADB_USER
38+
value: foo
39+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: '{{ .Release.Name }}-database'
5+
labels:
6+
katenary.io/component: database
7+
katenary.io/project: basic
8+
katenary.io/release: '{{ .Release.Name }}'
9+
annotations:
10+
katenary.io/docker-compose-sha1: b9f12bb7d1e97901c1d7680394209525763f6640
11+
katenary.io/version: master-3619cc4
12+
spec:
13+
selector:
14+
katenary.io/component: database
15+
katenary.io/release: '{{ .Release.Name }}'
16+
ports:
17+
- protocol: TCP
18+
port: 3306
19+
targetPort: 3306
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: '{{ .Release.Name }}-webapp'
5+
labels:
6+
katenary.io/component: webapp
7+
katenary.io/project: basic
8+
katenary.io/release: '{{ .Release.Name }}'
9+
annotations:
10+
katenary.io/docker-compose-sha1: b9f12bb7d1e97901c1d7680394209525763f6640
11+
katenary.io/version: master-3619cc4
12+
spec:
13+
replicas: 1
14+
selector:
15+
matchLabels:
16+
katenary.io/component: webapp
17+
katenary.io/release: '{{ .Release.Name }}'
18+
template:
19+
metadata:
20+
labels:
21+
katenary.io/component: webapp
22+
katenary.io/release: '{{ .Release.Name }}'
23+
spec:
24+
initContainers:
25+
- name: check-database
26+
image: busybox
27+
command:
28+
- sh
29+
- -c
30+
- |-
31+
OK=0
32+
echo "Checking database port"
33+
while [ $OK != 1 ]; do
34+
echo -n "."
35+
nc -z {{ .Release.Name }}-database 3306 2>&1 >/dev/null && OK=1 || sleep 1
36+
done
37+
echo
38+
echo "Done"
39+
containers:
40+
- name: webapp
41+
image: '{{ .Values.webapp.image }}'
42+
ports:
43+
- name: webapp
44+
containerPort: 80
45+
env:
46+
- name: DB_HOST
47+
value: '{{ .Release.Name }}-database'
48+
+34
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{{- if .Values.webapp.ingress.enabled -}}
2+
apiVersion: networking.k8s.io/v1
3+
kind: Ingress
4+
metadata:
5+
name: '{{ .Release.Name }}-webapp'
6+
labels:
7+
katenary.io/component: webapp
8+
katenary.io/project: basic
9+
katenary.io/release: '{{ .Release.Name }}'
10+
annotations:
11+
katenary.io/docker-compose-sha1: b9f12bb7d1e97901c1d7680394209525763f6640
12+
katenary.io/version: master-3619cc4
13+
spec:
14+
{{- if and .Values.webapp.ingress.class (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
15+
ingressClassName: '{{ .Values.webapp.ingress.class }}'
16+
{{- end }}
17+
rules:
18+
- host: '{{ .Values.webapp.ingress.host }}'
19+
http:
20+
paths:
21+
- path: /
22+
pathType: Prefix
23+
backend:
24+
{{- if semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion }}
25+
service:
26+
name: '{{ .Release.Name }}-webapp'
27+
port:
28+
number: 80
29+
{{- else }}
30+
serviceName: '{{ .Release.Name }}-webapp'
31+
servicePort: 80
32+
{{- end }}
33+
34+
{{- end -}}
+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: '{{ .Release.Name }}-webapp'
5+
labels:
6+
katenary.io/component: webapp
7+
katenary.io/project: basic
8+
katenary.io/release: '{{ .Release.Name }}'
9+
annotations:
10+
katenary.io/docker-compose-sha1: b9f12bb7d1e97901c1d7680394209525763f6640
11+
katenary.io/version: master-3619cc4
12+
spec:
13+
selector:
14+
katenary.io/component: webapp
15+
katenary.io/release: '{{ .Release.Name }}'
16+
ports:
17+
- protocol: TCP
18+
port: 80
19+
targetPort: 80

Diff for: examples/basic/chart/basic/values.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
database:
2+
image: mariadb:10
3+
webapp:
4+
image: php:7-apache
5+
ingress:
6+
class: nginx
7+
enabled: false
8+
host: webapp.basic.tld

Diff for: examples/same-pod/README.md

Whitespace-only changes.

Diff for: examples/same-pod/chart/same-pod/Chart.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# Create on 2022-02-17T11:36:02+01:00
2+
# Katenary command line: katenary convert --force
3+
apiVersion: v2
4+
appVersion: 0.0.1
5+
description: A helm chart for same-pod
6+
name: same-pod
7+
type: application
8+
version: 0.1.0

Diff for: examples/same-pod/chart/same-pod/templates/NOTES.txt

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
2+
Congratulations,
3+
4+
Your application is now deployed. This may take a while to be up and responding.
5+
6+
{{ if .Values.http.ingress.enabled -}}
7+
- http is accessible on : http://{{ .Values.http.ingress.host }}
8+
{{- end }}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: '{{ .Release.Name }}-config-nginx-http'
5+
labels:
6+
katenary.io/component: ""
7+
katenary.io/project: same-pod
8+
katenary.io/release: '{{ .Release.Name }}'
9+
annotations:
10+
katenary.io/docker-compose-sha1: 74e67695bfdbb829f15531321e158808018280e0
11+
katenary.io/version: master-bf44d44
12+
data:
13+
default.conf: |
14+
upstream _php {
15+
server unix:/sock/fpm.sock;
16+
}
17+
server {
18+
listen 80;
19+
location ~ ^/index\.php(/|$) {
20+
fastcgi_pass _php;
21+
include fastcgi_params;
22+
}
23+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
apiVersion: v1
2+
kind: ConfigMap
3+
metadata:
4+
name: '{{ .Release.Name }}-config-php-php'
5+
labels:
6+
katenary.io/component: ""
7+
katenary.io/project: same-pod
8+
katenary.io/release: '{{ .Release.Name }}'
9+
annotations:
10+
katenary.io/docker-compose-sha1: 74e67695bfdbb829f15531321e158808018280e0
11+
katenary.io/version: master-bf44d44
12+
data:
13+
www.conf: |
14+
[www]
15+
user = www-data
16+
group = www-data
17+
18+
listen = /sock/fpm.sock
19+
20+
pm = dynamic
21+
pm.max_children = 5
22+
pm.start_servers = 2
23+
pm.min_spare_servers = 1
24+
pm.max_spare_servers = 3
25+
26+
access.log = /proc/self/fd/2
27+
log_limit = 8192
28+
clear_env = no
29+
catch_workers_output = yes
30+
decorate_workers_output = no
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: '{{ .Release.Name }}-http'
5+
labels:
6+
katenary.io/component: http
7+
katenary.io/project: same-pod
8+
katenary.io/release: '{{ .Release.Name }}'
9+
annotations:
10+
katenary.io/docker-compose-sha1: 74e67695bfdbb829f15531321e158808018280e0
11+
katenary.io/version: master-bf44d44
12+
spec:
13+
replicas: 1
14+
selector:
15+
matchLabels:
16+
katenary.io/component: http
17+
katenary.io/release: '{{ .Release.Name }}'
18+
template:
19+
metadata:
20+
labels:
21+
katenary.io/component: http
22+
katenary.io/release: '{{ .Release.Name }}'
23+
spec:
24+
containers:
25+
- name: http
26+
image: '{{ .Values.http.image }}'
27+
ports:
28+
- name: http
29+
containerPort: 80
30+
volumeMounts:
31+
- mountPath: /sock
32+
name: sock
33+
- mountPath: /etc/nginx/conf.d
34+
name: config-nginx
35+
- name: php
36+
image: '{{ .Values.php.image }}'
37+
volumeMounts:
38+
- mountPath: /sock
39+
name: sock
40+
- mountPath: /usr/local/etc/php-fpm.d/www.conf
41+
name: config-php
42+
subPath: www.conf
43+
volumes:
44+
- emptyDir: {}
45+
name: sock
46+
- configMap:
47+
name: '{{ .Release.Name }}-config-nginx-http'
48+
name: config-nginx
49+
- configMap:
50+
name: '{{ .Release.Name }}-config-php-php'
51+
name: config-php
52+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
{{- if .Values.http.ingress.enabled -}}
2+
apiVersion: networking.k8s.io/v1
3+
kind: Ingress
4+
metadata:
5+
name: '{{ .Release.Name }}-http'
6+
labels:
7+
katenary.io/component: http
8+
katenary.io/project: same-pod
9+
katenary.io/release: '{{ .Release.Name }}'
10+
annotations:
11+
katenary.io/docker-compose-sha1: 74e67695bfdbb829f15531321e158808018280e0
12+
katenary.io/version: master-bf44d44
13+
spec:
14+
{{- if and .Values.http.ingress.class (semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion) }}
15+
ingressClassName: '{{ .Values.http.ingress.class }}'
16+
{{- end }}
17+
rules:
18+
- host: '{{ .Values.http.ingress.host }}'
19+
http:
20+
paths:
21+
- path: /
22+
pathType: Prefix
23+
backend:
24+
{{- if semverCompare ">=1.18-0" .Capabilities.KubeVersion.GitVersion }}
25+
service:
26+
name: '{{ .Release.Name }}-http'
27+
port:
28+
number: 80
29+
{{- else }}
30+
serviceName: '{{ .Release.Name }}-http'
31+
servicePort: 80
32+
{{- end }}
33+
34+
{{- end -}}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: '{{ .Release.Name }}-http'
5+
labels:
6+
katenary.io/component: http
7+
katenary.io/project: same-pod
8+
katenary.io/release: '{{ .Release.Name }}'
9+
annotations:
10+
katenary.io/docker-compose-sha1: 74e67695bfdbb829f15531321e158808018280e0
11+
katenary.io/version: master-bf44d44
12+
spec:
13+
selector:
14+
katenary.io/component: http
15+
katenary.io/release: '{{ .Release.Name }}'
16+
ports:
17+
- protocol: TCP
18+
port: 80
19+
targetPort: 80

Diff for: examples/same-pod/chart/same-pod/values.yaml

+8
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
http:
2+
image: nginx:alpine
3+
ingress:
4+
class: nginx
5+
enabled: false
6+
host: http.same-pod.tld
7+
php:
8+
image: php:fpm

0 commit comments

Comments
 (0)