Skip to content

Commit

Permalink
xDS router and lb integration test: demo and test case
Browse files Browse the repository at this point in the history
Signed-off-by: daizhenyu <[email protected]>
  • Loading branch information
daizhenyu committed Oct 9, 2024
1 parent 014e85f commit f0973bc
Show file tree
Hide file tree
Showing 23 changed files with 999 additions and 2 deletions.
Original file line number Diff line number Diff line change
@@ -1,2 +1,3 @@
plugins:
- xds-service-discovery
- xds-service-discovery
- service-router
14 changes: 14 additions & 0 deletions sermant-integration-tests/xds-service-test/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,25 @@
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<spring.version>2.7.17</spring.version>
<springcloud.version>2021.0.3</springcloud.version>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>${springcloud.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<modules>
<module>spring-client</module>
<module>spring-server</module>
<module>xds-service-discovery</module>
<module>spring-cloud-client</module>
</modules>
</project>
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
FROM openjdk:8
WORKDIR /home
COPY agent/ /home/agent
COPY spring-cloud-client.jar /home/spring-cloud-client.jar
COPY start.sh /home
RUN chmod -R 777 /home
ENTRYPOINT ["sh", "/home/start.sh"]
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
exec java -jar /home/spring-cloud-client.jar
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: spring-client
spec:
replicas: 1
selector:
matchLabels:
app: spring-client
template:
metadata:
labels:
app: spring-client
spec:
containers:
- name: spring-client
image: spring-client:1.0.0
imagePullPolicy: Never
ports:
- containerPort: 8080
env:
- name: agent_service_dynamic_config_enable
value: "false"
- name: agent_service_xds_service_enable
value: "true"
- name: router_plugin_enabled_xds_route
value: "true"
- name: xds_service_discovery_enabled
value: "false"
- name: JAVA_TOOL_OPTIONS
value: "-javaagent:/home/agent/sermant-agent.jar"
imagePullSecrets:
- name: default-secret
---
apiVersion: v1
kind: Service
metadata:
name: spring-client
spec:
type: ClusterIP
ports:
- port: 8080
targetPort: 8080
protocol: TCP
name: http
selector:
app: spring-client
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: spring-cloud-client
spec:
replicas: 1
selector:
matchLabels:
app: spring-cloud-client
template:
metadata:
labels:
app: spring-cloud-client
spec:
containers:
- name: spring-cloud-client
image: spring-cloud-client:1.0.0
imagePullPolicy: Never
ports:
- containerPort: 8082
env:
- name: agent_service_dynamic_config_enable
value: "false"
- name: agent_service_xds_service_enable
value: "true"
- name: router_plugin_enabled-xds-route
value: "true"
- name: ZOOKEEPER_IP
value: "zookeeper.default.svc.cluster.local"
- name: JAVA_TOOL_OPTIONS
value: "-javaagent:/home/agent/sermant-agent.jar"
imagePullSecrets:
- name: default-secret
---
apiVersion: v1
kind: Service
metadata:
name: spring-cloud-client
spec:
type: ClusterIP
ports:
- port: 8082
targetPort: 8082
protocol: TCP
name: http
selector:
app: spring-cloud-client
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: spring-server-v1
spec:
replicas: 1
selector:
matchLabels:
app: spring-server
version: v1
template:
metadata:
labels:
app: spring-server
version: v1
spec:
containers:
- name: spring-server
image: spring-server:1.0.0
imagePullPolicy: Never
ports:
- containerPort: 8081
env:
- name: SERVER_VERSION
value: "v1"
- name: ZOOKEEPER_IP
value: "zookeeper.default.svc.cluster.local"
- name: ZOOKEEPER_ENABLED
value: "true"
imagePullSecrets:
- name: default-secret
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: spring-server-v2
spec:
replicas: 1
selector:
matchLabels:
app: spring-server
version: v2
template:
metadata:
labels:
app: spring-server
version: v2
spec:
containers:
- name: spring-server
image: spring-server:1.0.0
imagePullPolicy: Never
ports:
- containerPort: 8081
env:
- name: SERVER_VERSION
value: "v2"
- name: ZOOKEEPER_IP
value: "zookeeper.default.svc.cluster.local"
- name: ZOOKEEPER_ENABLED
value: "true"
imagePullSecrets:
- name: default-secret
---
apiVersion: v1
kind: Service
metadata:
name: spring-server
spec:
type: ClusterIP
ports:
- port: 8081
targetPort: 8081
protocol: TCP
name: http
selector:
app: spring-server
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: spring-server-destinationrule-random
spec:
host: spring-server.default.svc.cluster.local
trafficPolicy:
loadBalancer:
simple: RANDOM
subsets:
- name: v1
labels:
version: v1
- name: v2
labels:
version: v2
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
apiVersion: networking.istio.io/v1alpha3
kind: DestinationRule
metadata:
name: spring-server-destinationrule-robin
spec:
host: spring-server.default.svc.cluster.local
trafficPolicy:
loadBalancer:
simple: ROUND_ROBIN
subsets:
- name: v1
labels:
version: v1
- name: v2
labels:
version: v2
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: spring-server-virtualservice
spec:
hosts:
- spring-server
http:
- name: "v1-routes"
match:
- headers:
version:
exact: v1
uri:
exact: /router
ignoreUriCase: false
route:
- destination:
host: spring-server
subset: v1
port:
number: 8081
- name: "v2-routes"
match:
- headers:
version:
exact: v2
uri:
prefix: /
ignoreUriCase: false
route:
- destination:
host: spring-server
port:
number: 8081
- name: "base-route"
match:
- headers:
version:
exact: base
uri:
exact: /router
ignoreUriCase: false
route:
- destination:
host: spring-server
subset: v1
port:
number: 8081
weight: 0
- destination:
host: spring-server
subset: v2
port:
number: 8081
weight: 100
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<httpclient.version>4.5.13</httpclient.version>
<okhttp2.version>2.7.5</okhttp2.version>
</properties>

<dependencies>
Expand All @@ -28,6 +29,11 @@
<artifactId>httpclient</artifactId>
<version>${httpclient.version}</version>
</dependency>
<dependency>
<groupId>com.squareup.okhttp</groupId>
<artifactId>okhttp</artifactId>
<version>${okhttp2.version}</version>
</dependency>
</dependencies>

<build>
Expand Down
Loading

0 comments on commit f0973bc

Please sign in to comment.