Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit d416efe

Browse files
authoredOct 11, 2019
Merge pull request sorintlab#714 from sgotti/k8s_example_update_api
k8s example: update deployment api
2 parents 0f184e7 + 29dc97e commit d416efe

File tree

3 files changed

+135
-123
lines changed

3 files changed

+135
-123
lines changed
 
Lines changed: 63 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
11
# PetSet was renamed to StatefulSet in k8s 1.5
22
# apiVersion: apps/v1alpha1
33
# kind: PetSet
4-
apiVersion: apps/v1beta1
4+
apiVersion: apps/v1
55
kind: StatefulSet
66
metadata:
77
name: stolon-keeper
88
spec:
99
serviceName: "stolon-keeper"
1010
replicas: 2
11+
selector:
12+
matchLabels:
13+
component: stolon-keeper
14+
stolon-cluster: kube-stolon
1115
template:
1216
metadata:
1317
labels:
@@ -20,68 +24,68 @@ spec:
2024
spec:
2125
terminationGracePeriodSeconds: 10
2226
containers:
23-
- name: stolon-keeper
24-
image: sorintlab/stolon:master-pg10
25-
command:
26-
- "/bin/bash"
27-
- "-ec"
28-
- |
29-
# Generate our keeper uid using the pod index
30-
IFS='-' read -ra ADDR <<< "$(hostname)"
31-
export STKEEPER_UID="keeper${ADDR[-1]}"
32-
export POD_IP=$(hostname -i)
33-
export STKEEPER_PG_LISTEN_ADDRESS=$POD_IP
34-
export STOLON_DATA=/stolon-data
35-
chown stolon:stolon $STOLON_DATA
36-
exec gosu stolon stolon-keeper --data-dir $STOLON_DATA
37-
env:
38-
- name: POD_NAME
39-
valueFrom:
40-
fieldRef:
41-
fieldPath: metadata.name
42-
- name: STKEEPER_CLUSTER_NAME
43-
valueFrom:
44-
fieldRef:
45-
fieldPath: metadata.labels['stolon-cluster']
46-
- name: STKEEPER_STORE_BACKEND
47-
value: "kubernetes"
48-
- name: STKEEPER_KUBE_RESOURCE_KIND
49-
value: "configmap"
50-
- name: STKEEPER_PG_REPL_USERNAME
51-
value: "repluser"
52-
# Or use a password file like in the below supersuser password
53-
- name: STKEEPER_PG_REPL_PASSWORD
54-
value: "replpassword"
55-
- name: STKEEPER_PG_SU_USERNAME
56-
value: "stolon"
57-
- name: STKEEPER_PG_SU_PASSWORDFILE
58-
value: "/etc/secrets/stolon/password"
59-
- name: STKEEPER_METRICS_LISTEN_ADDRESS
60-
value: "0.0.0.0:8080"
61-
# Uncomment this to enable debug logs
62-
#- name: STKEEPER_DEBUG
63-
# value: "true"
64-
ports:
65-
- containerPort: 5432
66-
- containerPort: 8080
67-
volumeMounts:
68-
- mountPath: /stolon-data
69-
name: data
70-
- mountPath: /etc/secrets/stolon
71-
name: stolon
27+
- name: stolon-keeper
28+
image: sorintlab/stolon:master-pg10
29+
command:
30+
- "/bin/bash"
31+
- "-ec"
32+
- |
33+
# Generate our keeper uid using the pod index
34+
IFS='-' read -ra ADDR <<< "$(hostname)"
35+
export STKEEPER_UID="keeper${ADDR[-1]}"
36+
export POD_IP=$(hostname -i)
37+
export STKEEPER_PG_LISTEN_ADDRESS=$POD_IP
38+
export STOLON_DATA=/stolon-data
39+
chown stolon:stolon $STOLON_DATA
40+
exec gosu stolon stolon-keeper --data-dir $STOLON_DATA
41+
env:
42+
- name: POD_NAME
43+
valueFrom:
44+
fieldRef:
45+
fieldPath: metadata.name
46+
- name: STKEEPER_CLUSTER_NAME
47+
valueFrom:
48+
fieldRef:
49+
fieldPath: metadata.labels['stolon-cluster']
50+
- name: STKEEPER_STORE_BACKEND
51+
value: "kubernetes"
52+
- name: STKEEPER_KUBE_RESOURCE_KIND
53+
value: "configmap"
54+
- name: STKEEPER_PG_REPL_USERNAME
55+
value: "repluser"
56+
# Or use a password file like in the below supersuser password
57+
- name: STKEEPER_PG_REPL_PASSWORD
58+
value: "replpassword"
59+
- name: STKEEPER_PG_SU_USERNAME
60+
value: "stolon"
61+
- name: STKEEPER_PG_SU_PASSWORDFILE
62+
value: "/etc/secrets/stolon/password"
63+
- name: STKEEPER_METRICS_LISTEN_ADDRESS
64+
value: "0.0.0.0:8080"
65+
# Uncomment this to enable debug logs
66+
#- name: STKEEPER_DEBUG
67+
# value: "true"
68+
ports:
69+
- containerPort: 5432
70+
- containerPort: 8080
71+
volumeMounts:
72+
- mountPath: /stolon-data
73+
name: data
74+
- mountPath: /etc/secrets/stolon
75+
name: stolon
7276
volumes:
7377
- name: stolon
7478
secret:
7579
secretName: stolon
7680
# Define your own volumeClaimTemplate. This example uses dynamic PV provisioning with a storage class named "standard" (so it will works by default with minikube)
7781
# In production you should use your own defined storage-class and configure your persistent volumes (statically or dynamically using a provisioner, see related k8s doc).
7882
volumeClaimTemplates:
79-
- metadata:
80-
name: data
81-
annotations:
82-
volume.alpha.kubernetes.io/storage-class: standard
83-
spec:
84-
accessModes: [ "ReadWriteOnce" ]
85-
resources:
86-
requests:
87-
storage: 512Mi
83+
- metadata:
84+
name: data
85+
annotations:
86+
volume.alpha.kubernetes.io/storage-class: standard
87+
spec:
88+
accessModes: ["ReadWriteOnce"]
89+
resources:
90+
requests:
91+
storage: 512Mi

‎examples/kubernetes/stolon-proxy.yaml

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1-
apiVersion: extensions/v1beta1
1+
apiVersion: apps/v1
22
kind: Deployment
33
metadata:
44
name: stolon-proxy
55
spec:
66
replicas: 2
7+
selector:
8+
matchLabels:
9+
component: stolon-proxy
10+
stolon-cluster: kube-stolon
711
template:
812
metadata:
913
labels:
@@ -14,38 +18,38 @@ spec:
1418
prometheus.io/port: "8080"
1519
spec:
1620
containers:
17-
- name: stolon-proxy
18-
image: sorintlab/stolon:master-pg10
19-
command:
20-
- "/bin/bash"
21-
- "-ec"
22-
- |
23-
exec gosu stolon stolon-proxy
24-
env:
25-
- name: POD_NAME
26-
valueFrom:
27-
fieldRef:
28-
fieldPath: metadata.name
29-
- name: STPROXY_CLUSTER_NAME
30-
valueFrom:
31-
fieldRef:
32-
fieldPath: metadata.labels['stolon-cluster']
33-
- name: STPROXY_STORE_BACKEND
34-
value: "kubernetes"
35-
- name: STPROXY_KUBE_RESOURCE_KIND
36-
value: "configmap"
37-
- name: STPROXY_LISTEN_ADDRESS
38-
value: "0.0.0.0"
39-
- name: STPROXY_METRICS_LISTEN_ADDRESS
40-
value: "0.0.0.0:8080"
41-
## Uncomment this to enable debug logs
42-
#- name: STPROXY_DEBUG
43-
# value: "true"
44-
ports:
45-
- containerPort: 5432
46-
- containerPort: 8080
47-
readinessProbe:
48-
tcpSocket:
49-
port: 5432
50-
initialDelaySeconds: 10
51-
timeoutSeconds: 5
21+
- name: stolon-proxy
22+
image: sorintlab/stolon:master-pg10
23+
command:
24+
- "/bin/bash"
25+
- "-ec"
26+
- |
27+
exec gosu stolon stolon-proxy
28+
env:
29+
- name: POD_NAME
30+
valueFrom:
31+
fieldRef:
32+
fieldPath: metadata.name
33+
- name: STPROXY_CLUSTER_NAME
34+
valueFrom:
35+
fieldRef:
36+
fieldPath: metadata.labels['stolon-cluster']
37+
- name: STPROXY_STORE_BACKEND
38+
value: "kubernetes"
39+
- name: STPROXY_KUBE_RESOURCE_KIND
40+
value: "configmap"
41+
- name: STPROXY_LISTEN_ADDRESS
42+
value: "0.0.0.0"
43+
- name: STPROXY_METRICS_LISTEN_ADDRESS
44+
value: "0.0.0.0:8080"
45+
## Uncomment this to enable debug logs
46+
#- name: STPROXY_DEBUG
47+
# value: "true"
48+
ports:
49+
- containerPort: 5432
50+
- containerPort: 8080
51+
readinessProbe:
52+
tcpSocket:
53+
port: 5432
54+
initialDelaySeconds: 10
55+
timeoutSeconds: 5
Lines changed: 32 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
1-
apiVersion: extensions/v1beta1
1+
apiVersion: apps/v1
22
kind: Deployment
33
metadata:
44
name: stolon-sentinel
55
spec:
66
replicas: 2
7+
selector:
8+
matchLabels:
9+
component: stolon-sentinel
10+
stolon-cluster: kube-stolon
711
template:
812
metadata:
913
labels:
@@ -14,30 +18,30 @@ spec:
1418
prometheus.io/port: "8080"
1519
spec:
1620
containers:
17-
- name: stolon-sentinel
18-
image: sorintlab/stolon:master-pg10
19-
command:
20-
- "/bin/bash"
21-
- "-ec"
22-
- |
23-
exec gosu stolon stolon-sentinel
24-
env:
25-
- name: POD_NAME
26-
valueFrom:
27-
fieldRef:
28-
fieldPath: metadata.name
29-
- name: STSENTINEL_CLUSTER_NAME
30-
valueFrom:
31-
fieldRef:
32-
fieldPath: metadata.labels['stolon-cluster']
33-
- name: STSENTINEL_STORE_BACKEND
34-
value: "kubernetes"
35-
- name: STSENTINEL_KUBE_RESOURCE_KIND
36-
value: "configmap"
37-
- name: STSENTINEL_METRICS_LISTEN_ADDRESS
38-
value: "0.0.0.0:8080"
39-
## Uncomment this to enable debug logs
40-
#- name: STSENTINEL_DEBUG
41-
# value: "true"
42-
ports:
43-
- containerPort: 8080
21+
- name: stolon-sentinel
22+
image: sorintlab/stolon:master-pg10
23+
command:
24+
- "/bin/bash"
25+
- "-ec"
26+
- |
27+
exec gosu stolon stolon-sentinel
28+
env:
29+
- name: POD_NAME
30+
valueFrom:
31+
fieldRef:
32+
fieldPath: metadata.name
33+
- name: STSENTINEL_CLUSTER_NAME
34+
valueFrom:
35+
fieldRef:
36+
fieldPath: metadata.labels['stolon-cluster']
37+
- name: STSENTINEL_STORE_BACKEND
38+
value: "kubernetes"
39+
- name: STSENTINEL_KUBE_RESOURCE_KIND
40+
value: "configmap"
41+
- name: STSENTINEL_METRICS_LISTEN_ADDRESS
42+
value: "0.0.0.0:8080"
43+
## Uncomment this to enable debug logs
44+
#- name: STSENTINEL_DEBUG
45+
# value: "true"
46+
ports:
47+
- containerPort: 8080

0 commit comments

Comments
 (0)
Please sign in to comment.