Skip to content

Commit

Permalink
add lua scripts for istio (#178)
Browse files Browse the repository at this point in the history
* add lua scripts for istio

Signed-off-by: Kuromesi <[email protected]>

* make some improvements for istio lua script

Signed-off-by: Kuromesi <[email protected]>

---------

Signed-off-by: Kuromesi <[email protected]>
  • Loading branch information
Kuromesi authored Nov 6, 2023
1 parent d41b1fa commit 07b7f20
Show file tree
Hide file tree
Showing 8 changed files with 484 additions and 1 deletion.
2 changes: 1 addition & 1 deletion lua_configuration/convert_test_case_to_lua_object.go
Original file line number Diff line number Diff line change
Expand Up @@ -138,7 +138,7 @@ func objectToTable(path string) error {
return fmt.Errorf("failed to open file: %s", err)
}
defer fileStream.Close()
header := "-- THIS IS GENERATED BY LUA.GO FOR DEBUGGING --\n"
header := "-- THIS IS GENERATED BY CONVERT_TEST_CASE_TO_LUA_OBJECT.GO FOR DEBUGGING --\n"
_, err = io.WriteString(fileStream, header+objStr)
if err != nil {
return fmt.Errorf("failed to WriteString %s", err)
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,49 @@
trafficRouting:
apiVersion: rollouts.kruise.io/v1alpha1
kind: TrafficRouting
metadata:
name: tr-demo
spec:
strategy:
matches:
- headers:
- type: Exact
name: version
value: canary
objectRef:
- service: svc-demo
customNetworkRefs:
- apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
name: ds-demo
original:
apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: ds-demo
spec:
host: svc-demo
trafficPolicy:
loadBalancer:
simple: ROUND_ROBIN
subsets:
- labels:
version: base
name: version-base
expected:
- apiVersion: networking.istio.io/v1beta1
kind: DestinationRule
metadata:
name: ds-demo
spec:
host: svc-demo
trafficPolicy:
loadBalancer:
simple: ROUND_ROBIN
subsets:
- labels:
version: base
name: version-base
- labels:
istio.service.tag: gray
name: canary
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
local spec = obj.data.spec
local canary = {}
canary.labels = {}
canary.name = "canary"
local podLabelKey = "istio.service.tag"
canary.labels[podLabelKey] = "gray"
table.insert(spec.subsets, canary)
return obj.data
Original file line number Diff line number Diff line change
@@ -0,0 +1,122 @@
rollout:
apiVersion: rollouts.kruise.io/v1alpha1
kind: Rollout
metadata:
name: rollouts-demo
annotations:
rollouts.kruise.io/rolling-style: canary
spec:
disabled: false
objectRef:
workloadRef:
apiVersion: apps/v1
kind: Deployment
name: deploy-demo
strategy:
canary:
steps:
- matches:
- headers:
- type: Exact
name: user-agent
value: pc
- type: RegularExpression
name: name
value: ".*demo"
- matches:
- headers:
- type: Exact
name: user-agent
value: pc
- headers:
- type: RegularExpression
name: name
value: ".*demo"
- weight: 50
trafficRoutings:
- service: svc-demo
customNetworkRefs:
- apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
name: vs-demo
original:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: vs-demo
spec:
hosts:
- "*"
gateways:
- nginx-gateway
http:
- route:
- destination:
host: svc-demo
expected:
- apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: vs-demo
spec:
hosts:
- "*"
gateways:
- nginx-gateway
http:
- match:
- headers:
user-agent:
exact: pc
name:
regex: .*demo
route:
- destination:
host: svc-demo-canary
- route:
- destination:
host: svc-demo
- apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: vs-demo
spec:
hosts:
- "*"
gateways:
- nginx-gateway
http:
- match:
- headers:
name:
regex: .*demo
route:
- destination:
host: svc-demo-canary
- match:
- headers:
user-agent:
exact: pc
route:
- destination:
host: svc-demo-canary
- route:
- destination:
host: svc-demo
- apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: vs-demo
spec:
hosts:
- "*"
gateways:
- nginx-gateway
http:
- route:
- destination:
host: svc-demo
weight: 50
- destination:
host: svc-demo-canary
weight: 50
Original file line number Diff line number Diff line change
@@ -0,0 +1,61 @@
trafficRouting:
apiVersion: rollouts.kruise.io/v1alpha1
kind: TrafficRouting
metadata:
name: tr-demo
spec:
strategy:
matches:
- headers:
- type: Exact
name: user-agent
value: pc
- type: RegularExpression
name: name
value: ".*demo"
objectRef:
- service: svc-demo
customNetworkRefs:
- apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
name: vs-demo
original:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: vs-demo
spec:
hosts:
- "*"
gateways:
- nginx-gateway
http:
- route:
- destination:
host: svc-demo
subset: base
expected:
- apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: vs-demo
spec:
hosts:
- "*"
gateways:
- nginx-gateway
http:
- match:
- headers:
user-agent:
exact: pc
name:
regex: .*demo
route:
- destination:
host: svc-demo
subset: canary
- route:
- destination:
host: svc-demo
subset: base
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
trafficRouting:
apiVersion: rollouts.kruise.io/v1alpha1
kind: TrafficRouting
metadata:
name: tr-demo
spec:
strategy:
matches:
- headers:
- type: Exact
name: user-agent
value: pc
- headers:
- type: RegularExpression
name: name
value: ".*demo"
objectRef:
- service: svc-demo
customNetworkRefs:
- apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
name: vs-demo
original:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: vs-demo
spec:
hosts:
- "*"
gateways:
- nginx-gateway
http:
- route:
- destination:
host: svc-demo
subset: base
expected:
- apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: vs-demo
spec:
hosts:
- "*"
gateways:
- nginx-gateway
http:
- match:
- headers:
name:
regex: .*demo
route:
- destination:
host: svc-demo
subset: canary
- match:
- headers:
user-agent:
exact: pc
route:
- destination:
host: svc-demo
subset: canary
- route:
- destination:
host: svc-demo
subset: base
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
trafficRouting:
apiVersion: rollouts.kruise.io/v1alpha1
kind: TrafficRouting
metadata:
name: tr-demo
spec:
strategy:
weight: 50
objectRef:
- service: svc-demo
customNetworkRefs:
- apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
name: vs-demo
original:
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: vs-demo
spec:
hosts:
- "*"
gateways:
- nginx-gateway
http:
- route:
- destination:
host: svc-demo
subset: base
expected:
- apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: nginx-vs
namespace: demo
spec:
hosts:
- "*"
gateways:
- nginx-gateway
http:
- route:
- destination:
host: svc-demo
subset: base
weight: 50
- destination:
host: svc-demo
subset: canary
weight: 50
Loading

0 comments on commit 07b7f20

Please sign in to comment.