Skip to content

Commit da93097

Browse files
committed
Kubernetes deployment, service, and storage PV for PostgreSQL database
1 parent cab7d0e commit da93097

8 files changed

+98
-17
lines changed

Diff for: deployment.yaml renamed to app-deployment.yaml

+8-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
apiVersion: apps/v1
22
kind: Deployment
33
metadata:
4-
name: spring-boot-deployment
4+
name: spring-boot-app
55
spec:
66
replicas: 1
77
selector:
@@ -18,5 +18,10 @@ spec:
1818
imagePullPolicy: Never
1919
ports:
2020
- containerPort: 8080
21-
22-
21+
env:
22+
- name: SPRING_DATASOURCE_URL
23+
value: jdbc:postgresql://postgres:5432/mydatabase
24+
- name: SPRING_DATASOURCE_USERNAME
25+
value: user
26+
- name: SPRING_DATASOURCE_PASSWORD
27+
value: password

Diff for: service.yaml renamed to app-service.yaml

+5-8
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,12 @@
11
apiVersion: v1
22
kind: Service
33
metadata:
4-
name: spring-boot-service
4+
name: spring-boot-app
55
spec:
66
type: NodePort
7-
selector:
8-
app: spring-boot-app
97
ports:
10-
- protocol: TCP
11-
port: 8080
8+
- port: 8080
129
targetPort: 8080
13-
nodePort: 30007
14-
15-
10+
nodePort: 30001
11+
selector:
12+
app: spring-boot-app

Diff for: compose.yaml

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,4 +6,4 @@ services:
66
- 'POSTGRES_PASSWORD=password'
77
- 'POSTGRES_USER=user'
88
ports:
9-
- '5432:5432'
9+
- '5432'

Diff for: postgres-deployment.yaml

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: postgres
5+
spec:
6+
replicas: 1
7+
selector:
8+
matchLabels:
9+
app: postgres
10+
template:
11+
metadata:
12+
labels:
13+
app: postgres
14+
spec:
15+
containers:
16+
- name: postgres
17+
image: postgres:latest
18+
env:
19+
- name: POSTGRES_DB
20+
value: mydatabase
21+
- name: POSTGRES_PASSWORD
22+
value: password
23+
- name: POSTGRES_USER
24+
value: user
25+
ports:
26+
- containerPort: 5432
27+
volumeMounts:
28+
- mountPath: /var/lib/postgresql/data
29+
name: postgres-storage
30+
volumes:
31+
- name: postgres-storage
32+
persistentVolumeClaim:
33+
claimName: postgres-pvc

Diff for: postgres-service.yaml

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: postgres
5+
spec:
6+
type: NodePort
7+
ports:
8+
- port: 5432
9+
targetPort: 5432
10+
nodePort: 32432
11+
selector:
12+
app: postgres
13+
14+

Diff for: postgres-storage.yaml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
apiVersion: v1
2+
kind: PersistentVolume
3+
metadata:
4+
name: postgres-pv
5+
spec:
6+
capacity:
7+
storage: 1Gi
8+
accessModes:
9+
- ReadWriteOnce
10+
hostPath:
11+
path: /data/postgres
12+
---
13+
apiVersion: v1
14+
kind: PersistentVolumeClaim
15+
metadata:
16+
name: postgres-pvc
17+
spec:
18+
accessModes:
19+
- ReadWriteOnce
20+
resources:
21+
requests:
22+
storage: 1Gi

Diff for: src/main/resources/application.properties

+13-2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,14 @@
1-
spring.application.name=spring-boot-app
1+
spring.datasource.url=jdbc:postgresql://localhost:5432/mydatabase
2+
spring.datasource.username=user
3+
spring.datasource.password=password
4+
# spring.datasource.driver-class-name=org.postgresql.Driver
5+
6+
# Hibernate settings
7+
spring.jpa.hibernate.ddl-auto=update
8+
# spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.PostgreSQLDialect
9+
10+
spring.jpa.show-sql=true
11+
spring.jpa.properties.hibernate.format_sql=true
12+
13+
# Initialize database
214
spring.sql.init.mode=always
3-
spring.jpa.hibernate.ddl-auto=create

Diff for: src/main/resources/schema.sql

+2-3
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
DROP TABLE IF EXISTS User; -- don't do this on a production environment
22

33
CREATE TABLE User (
4-
id varchar(255) NOT NULL,
4+
id SERIAL PRIMARY KEY,
55
name varchar(255) NOT NULL,
6-
email varchar(255) NOT NULL,
7-
PRIMARY KEY (id)
6+
email varchar(255) NOT NULL
87
);
98

109
INSERT INTO User

0 commit comments

Comments
 (0)