Skip to content

Commit ed402d4

Browse files
committed
Added ingress support
1 parent ecfcc50 commit ed402d4

File tree

8 files changed

+187
-30
lines changed

8 files changed

+187
-30
lines changed

.idea/workspace.xml

Lines changed: 32 additions & 22 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Tiltfile

Lines changed: 47 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,8 @@ docker_build(
44
context="./microservices/course-service",
55
dockerfile="./microservices/course-service/Dockerfile",
66
live_update=[
7-
sync("./microservices/course-service/src", "/app/src"), # Sync only Java files
8-
run("mvn package -DskipTests", trigger=["/app/src"]), # Rebuild JAR when code changes
7+
sync("./microservices/course-service/src", "/application/src"), # Sync only Java files
8+
run("mvn package -DskipTests", trigger=["/application/src"]), # Rebuild JAR when code changes
99
]
1010
)
1111
k8s_yaml([
@@ -24,8 +24,8 @@ docker_build(
2424
context="./microservices/review-service",
2525
dockerfile="./microservices/review-service/Dockerfile",
2626
live_update=[
27-
sync("./microservices/review-service/src", "/app/src"), # Sync only Java files
28-
run("mvn package -DskipTests", trigger=["/app/src"]), # Rebuild JAR when code changes
27+
sync("./microservices/review-service/src", "/application/src"), # Sync only Java files
28+
run("mvn package -DskipTests", trigger=["/application/src"]), # Rebuild JAR when code changes
2929
]
3030
)
3131
k8s_yaml([
@@ -36,4 +36,47 @@ k8s_resource(
3636
"review-service",
3737
port_forwards="9002:9002",
3838
labels=["services"]
39+
)
40+
41+
# Define and build course-aggregate-service
42+
docker_build(
43+
"course-composite-service",
44+
context="./microservices/course-composite-service",
45+
dockerfile="./microservices/course-composite-service/Dockerfile",
46+
live_update=[
47+
sync("./microservices/course-composite-service/src", "/application/src"), # Sync only Java files
48+
run("mvn package -DskipTests", trigger=["/application/src"]), # Rebuild JAR when code changes
49+
]
50+
)
51+
k8s_yaml([
52+
"microservices/course-composite-service/kubernetes/deployment.yml",
53+
"microservices/course-composite-service/kubernetes/service.yml"
54+
])
55+
k8s_resource(
56+
"course-composite-service",
57+
port_forwards="5000:5000",
58+
labels=["services"]
59+
)
60+
61+
62+
# Define and build gateway-service
63+
docker_build(
64+
"gateway-service",
65+
context="./spring-cloud/gateway-service",
66+
dockerfile="./spring-cloud/gateway-service/Dockerfile",
67+
live_update=[
68+
sync("./spring-cloud/gateway-service/src", "/application/src"), # Sync only Java files
69+
run("mvn package -DskipTests", trigger=["/application/src"]), # Rebuild JAR when code changes
70+
]
71+
)
72+
k8s_yaml([
73+
"spring-cloud/gateway-service/kubernetes/deployment.yml",
74+
"spring-cloud/gateway-service/kubernetes/service.yml",
75+
"spring-cloud/gateway-service/kubernetes/ingress.yml"
76+
])
77+
78+
k8s_resource(
79+
"gateway-service",
80+
# port_forwards="9000:9000", # Maps host port 9000 to container port 9000
81+
labels=["services"] # Optional: Group in Tilt UI
3982
)
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: course-composite-service
5+
labels:
6+
app: course-composite-service
7+
spec:
8+
replicas: 1
9+
selector:
10+
matchLabels:
11+
app: course-composite-service
12+
template:
13+
metadata:
14+
labels:
15+
app: course-composite-service
16+
spec:
17+
containers:
18+
- name: course-composite-service
19+
image: spring-boot-based-microservices-course-composite-service # Please rename these while building docker image
20+
imagePullPolicy: IfNotPresent
21+
lifecycle:
22+
preStop:
23+
exec:
24+
command: [ "sh", "-c", "sleep 5" ]
25+
ports:
26+
- containerPort: 5000
27+
env:
28+
# - name: SPRING_DATASOURCE_URL
29+
# value: jdbc:postgresql://course-postgres/course_db
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: course-composite-service
5+
labels:
6+
app: course-composite-service
7+
spec:
8+
type: ClusterIP
9+
selector:
10+
app: course-composite-service
11+
ports:
12+
- protocol: TCP
13+
port: 80
14+
targetPort: 5000

microservices/course-composite-service/src/main/java/io/javatab/microservices/composite/course/web/CourseAggregateController.java

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package io.javatab.microservices.composite.course.web;
22

3-
import io.javatab.util.http.NetworkUtility;
43
import org.slf4j.Logger;
54
import org.slf4j.LoggerFactory;
65
import org.springframework.http.ResponseEntity;
@@ -20,11 +19,10 @@ public class CourseAggregateController {
2019

2120

2221
private final CourseCompositeIntegration integration;
23-
private final NetworkUtility utility;
22+
//private final NetworkUtility utility;
2423

25-
public CourseAggregateController(CourseCompositeIntegration integration, NetworkUtility utility) {
24+
public CourseAggregateController(CourseCompositeIntegration integration) {
2625
this.integration = integration;
27-
this.utility = utility;
2826
}
2927

3028
@GetMapping("/{id}/with-details")
Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
name: gateway-service
5+
labels:
6+
app: gateway-service
7+
spec:
8+
replicas: 1
9+
selector:
10+
matchLabels:
11+
app: gateway-service
12+
template:
13+
metadata:
14+
labels:
15+
app: gateway-service
16+
spec:
17+
containers:
18+
- name: gateway-service
19+
image: spring-boot-based-spring-cloud-gateway-service
20+
imagePullPolicy: IfNotPresent
21+
lifecycle:
22+
preStop:
23+
exec:
24+
command: [ "sh", "-c", "sleep 5" ]
25+
ports:
26+
- containerPort: 9000
27+
env:
28+
- name: COURSE_SERVICE_URL
29+
value: http://course-service
30+
- name: REVIEW_SERVICE_URL
31+
value: http://review-service
32+
- name: COURSE_AGGREGATE_SERVICE_URL
33+
value: http://course-composite-service #there are service names in kubectl get svc
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
apiVersion: networking.k8s.io/v1
2+
kind: Ingress
3+
metadata:
4+
name: gateway-ingress
5+
spec:
6+
ingressClassName: nginx
7+
rules:
8+
- http:
9+
paths:
10+
- path: /
11+
pathType: Prefix
12+
backend:
13+
service:
14+
name: gateway-service
15+
port:
16+
number: 80
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
apiVersion: v1
2+
kind: Service
3+
metadata:
4+
name: gateway-service
5+
labels:
6+
app: gateway-service
7+
spec:
8+
type: ClusterIP
9+
selector:
10+
app: gateway-service
11+
ports:
12+
- protocol: TCP
13+
port: 80
14+
targetPort: 9000

0 commit comments

Comments
 (0)