Support E2E Testing Cilium Services (#12412)

This commit is contained in:
mrproliu 2024-07-04 04:28:04 +00:00 committed by GitHub
parent fb6f35297b
commit e96b75f186
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
19 changed files with 648 additions and 27 deletions

View File

@ -685,6 +685,9 @@ jobs:
- name: OTLP Trace
config: test/e2e-v2/cases/otlp-traces/e2e.yaml
- name: Cilium Service
config: test/e2e-v2/cases/cilium/e2e.yaml
steps:
- uses: actions/checkout@v3
with:
@ -720,7 +723,7 @@ jobs:
if: matrix.test.docker != null
run: docker build -t ${{ matrix.test.docker.name }} -f ${{ matrix.test.docker.base }}/${{ matrix.test.docker.file }} ${{ matrix.test.docker.base }}
- name: ${{ matrix.test.name }}
uses: apache/skywalking-infra-e2e@0a5b398fc9668ccb848b16e6da4f09180955dc3e
uses: apache/skywalking-infra-e2e@7f6b0da20f170b181a79cf89ef7d47848ac34138
with:
e2e-file: $GITHUB_WORKSPACE/${{ matrix.test.config }}
- if: ${{ failure() }}

View File

@ -221,6 +221,7 @@ public class CiliumNodeManager implements ClusterWatcher {
}
});
newNodes.sort(Comparator.comparing(CiliumNode::getAddress));
this.usingNodes = ImmutableList.copyOf(newNodes);
}

View File

@ -81,7 +81,6 @@
"type": "Widget",
"expressions": [
"cilium_endpoint_protocol_http_status_1xx_cpm",
"cilium_endpoint_protocol_http_status_2xx_cpm",
"cilium_endpoint_protocol_http_status_3xx_cpm",
"cilium_endpoint_protocol_http_status_4xx_cpm",
"cilium_endpoint_protocol_http_status_5xx_cpm"
@ -98,9 +97,6 @@
{
"label": "1xx"
},
{
"label": "2xx"
},
{
"label": "3xx"
},
@ -112,7 +108,7 @@
}
],
"widget": {
"title": "HTTP Response Code(Count per min)"
"title": "HTTP Non-2xx Response Code(Count per min)"
}
},
{

View File

@ -304,7 +304,6 @@
"type": "Widget",
"expressions": [
"cilium_service_instance_relation_protocol_http_status_1xx_cpm",
"cilium_service_instance_relation_protocol_http_status_2xx_cpm",
"cilium_service_instance_relation_protocol_http_status_3xx_cpm",
"cilium_service_instance_relation_protocol_http_status_4xx_cpm",
"cilium_service_instance_relation_protocol_http_status_5xx_cpm"
@ -318,15 +317,12 @@
"showYAxis": true
},
"widget": {
"title": "HTTP Response Status Server Side(Count Per Min)"
"title": "HTTP Non-2xx Response Status Server Side(Count Per Min)"
},
"metricConfig": [
{
"label": "1xx"
},
{
"label": "2xx"
},
{
"label": "3xx"
},

View File

@ -188,7 +188,6 @@
"type": "Widget",
"expressions": [
"cilium_service_instance_protocol_http_status_1xx_cpm",
"cilium_service_instance_protocol_http_status_2xx_cpm",
"cilium_service_instance_protocol_http_status_3xx_cpm",
"cilium_service_instance_protocol_http_status_4xx_cpm",
"cilium_service_instance_protocol_http_status_5xx_cpm"
@ -205,9 +204,6 @@
{
"label": "1xx"
},
{
"label": "2xx"
},
{
"label": "3xx"
},
@ -219,7 +215,7 @@
}
],
"widget": {
"title": "HTTP Response Code(Count per min)"
"title": "HTTP Non-2xx Response Code(Count per min)"
}
},
{

View File

@ -304,7 +304,6 @@
"type": "Widget",
"expressions": [
"cilium_service_relation_protocol_http_status_1xx_cpm",
"cilium_service_relation_protocol_http_status_2xx_cpm",
"cilium_service_relation_protocol_http_status_3xx_cpm",
"cilium_service_relation_protocol_http_status_4xx_cpm",
"cilium_service_relation_protocol_http_status_5xx_cpm"
@ -318,15 +317,12 @@
"showYAxis": true
},
"widget": {
"title": "HTTP Response Status Server Side(Count Per Min)"
"title": "HTTP Non-2xx Response Status Server Side(Count Per Min)"
},
"metricConfig": [
{
"label": "1xx"
},
{
"label": "2xx"
},
{
"label": "3xx"
},

View File

@ -188,7 +188,6 @@
"type": "Widget",
"expressions": [
"cilium_service_protocol_http_status_1xx_cpm",
"cilium_service_protocol_http_status_2xx_cpm",
"cilium_service_protocol_http_status_3xx_cpm",
"cilium_service_protocol_http_status_4xx_cpm",
"cilium_service_protocol_http_status_5xx_cpm"
@ -205,9 +204,6 @@
{
"label": "1xx"
},
{
"label": "2xx"
},
{
"label": "3xx"
},
@ -219,7 +215,7 @@
}
],
"widget": {
"title": "HTTP Response Code(Count per min)"
"title": "HTTP Non-2xx Response Code(Count per min)"
}
},
{

View File

@ -0,0 +1,161 @@
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
name: "rule3"
spec:
description: "L7 policy to restrict access to specific HTTP call"
endpointSelector:
matchLabels:
app: productpage
ingress:
- fromEndpoints:
- matchLabels:
"k8s:app": details
- matchLabels:
"k8s:app": reviews
- matchLabels:
"k8s:app": trafficgenerator
egress:
- toEndpoints:
- matchLabels:
"k8s:io.kubernetes.pod.namespace": kube-system
"k8s:k8s-app": kube-dns
toPorts:
- ports:
- port: "53"
protocol: ANY
rules:
dns:
- matchPattern: "*"
- toEndpoints:
- matchLabels:
"k8s:app": trafficgenerator
- matchLabels:
"k8s:app": details
- matchLabels:
"k8s:app": reviews
toPorts:
- ports:
- port: "9080"
protocol: TCP
rules:
http:
- method: ""
path: ""
---
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
name: "rule5"
spec:
description: "L7 policy to restrict access to specific HTTP call"
endpointSelector:
matchLabels:
app: reviews
ingress:
- fromEndpoints:
- matchLabels:
"k8s:app": productpage
- matchLabels:
"k8s:app": ratings
- matchLabels:
"k8s:io.kubernetes.pod.namespace": kube-system
"k8s:k8s-app": kube-dns
- toPorts:
- ports:
- port: "9080"
protocol: TCP
rules:
http:
- method: ""
path: ""
egress:
- toEndpoints:
- matchLabels:
"k8s:io.kubernetes.pod.namespace": kube-system
"k8s:k8s-app": kube-dns
toPorts:
- ports:
- port: "53"
protocol: ANY
rules:
dns:
- matchPattern: "*"
- toEndpoints:
- matchLabels:
"k8s:app": productpage
- matchLabels:
"k8s:app": ratings
toPorts:
- ports:
- port: "9080"
protocol: TCP
rules:
http:
- method: ""
path: ""
---
apiVersion: "cilium.io/v2"
kind: CiliumNetworkPolicy
metadata:
name: "rule4"
spec:
description: "L7 policy to restrict access to specific HTTP call"
endpointSelector:
matchLabels:
app: trafficgenerator
ingress:
- fromEndpoints:
- matchLabels:
"k8s:app": productpage
- toPorts:
- ports:
- port: "9080"
protocol: TCP
rules:
http:
- method: ""
path: ""
egress:
- toEndpoints:
- matchLabels:
"k8s:io.kubernetes.pod.namespace": kube-system
"k8s:k8s-app": kube-dns
toPorts:
- ports:
- port: "53"
protocol: ANY
rules:
dns:
- matchPattern: "*"
- toEndpoints:
- matchLabels:
"k8s:app": productpage
toPorts:
- ports:
- port: "9080"
protocol: TCP
rules:
http:
- method: ""
path: ""

View File

@ -0,0 +1,152 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# This file is used to show how to write configuration files and can be used to test.
setup:
env: kind
file: kind.yaml
init-system-environment: ../../script/env
timeout: 10m
kind:
no-wait: true
import-images:
- skywalking/ui:latest
- skywalking/oap:latest
expose-ports:
- namespace: kube-system
resource: service/skywalking-ui
port: 80
steps:
- name: set PATH
command: export PATH=/tmp/skywalking-infra-e2e/bin:$PATH
- name: install yq
command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh yq
- name: install swctl
command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh swctl
- name: install kubectl
command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh kubectl
- name: Install helm
command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh helm
- name: Install kubectl
command: bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh kubectl
- name: install cilium
command: |
bash test/e2e-v2/script/prepare/setup-e2e-shell/install.sh cilium
cilium install --wait
cilium status --wait
- name: Install SkyWalking
command: |
helm -n kube-system install skywalking \
oci://ghcr.io/apache/skywalking-helm/skywalking-helm \
--version "0.0.0-${SW_KUBERNETES_COMMIT_SHA}" \
--set fullnameOverride=skywalking \
--set elasticsearch.replicas=1 \
--set elasticsearch.minimumMasterNodes=1 \
--set oap.replicas=1 \
--set ui.image.repository=skywalking/ui \
--set ui.image.tag=latest \
--set oap.image.tag=latest \
--set oap.image.repository=skywalking/oap \
--set oap.storageType=elasticsearch \
-f test/e2e-v2/cases/cilium/values.yaml
wait:
- namespace: kube-system
resource: deployments/skywalking-oap
for: condition=available
- name: Deploy demo services
command: |
kubectl apply -f https://raw.githubusercontent.com/istio/istio/1.18.0/samples/bookinfo/platform/kube/bookinfo.yaml
wait:
- namespace: default
resource: pod
for: condition=Ready
- name: Generate traffic
path: traffic-gen.yaml
wait:
- namespace: default
resource: pod
for: condition=Ready
- name: Apply Cilium Network Policy
path: cilium-network-policy.yaml
verify:
retry:
count: 10
interval: 10s
cases:
# service list
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql service ls
expected: expected/service.yml
# service instance list
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=productpage.default
expected: expected/service-instance.yml
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=reviews.default
expected: expected/service-instance.yml
# service endpoint list
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql endpoint list --service-name=productpage.default
expected: expected/service-endpoint-productpage.yml
# dependency service
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql dependency global --layer=CILIUM_SERVICE
expected: expected/dependency-services.yml
# service metrics
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=cilium_service_l4_read_pkg_cpm --service-name='productpage.default'
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=cilium_service_l4_write_pkg_cpm --service-name='productpage.default'
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=cilium_service_protocol_http_call_cpm --service-name='productpage.default'
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=cilium_service_protocol_http_status_2xx_cpm --service-name='productpage.default'
expected: expected/metrics-has-value.yml
# service instance metrics
- query: |
swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=cilium_service_instance_l4_read_pkg_cpm --service-name='productpage.default' --instance-name=$(
swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=productpage.default | yq e '.[0].name' -
)
expected: expected/metrics-has-value.yml
- query: |
swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=cilium_service_instance_l4_write_pkg_cpm --service-name='productpage.default' --instance-name=$(
swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=productpage.default | yq e '.[0].name' -
)
expected: expected/metrics-has-value.yml
- query: |
swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=cilium_service_instance_protocol_http_call_cpm --service-name='productpage.default' --instance-name=$(
swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=productpage.default | yq e '.[0].name' -
)
expected: expected/metrics-has-value.yml
- query: |
swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=cilium_service_instance_protocol_http_status_2xx_cpm --service-name='productpage.default' --instance-name=$(
swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql instance list --service-name=productpage.default | yq e '.[0].name' -
)
expected: expected/metrics-has-value.yml
# service endpoint metrics
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=cilium_endpoint_protocol_http_call_cpm --service-name='productpage.default' --endpoint-name="GET:/productpage"
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=cilium_endpoint_protocol_http_status_2xx_cpm --service-name='productpage.default' --endpoint-name="GET:/productpage"
expected: expected/metrics-has-value.yml
# service relation metrics
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=cilium_service_relation_server_l4_read_pkg_cpm --service-name='productpage.default' --dest-service-name='details.default'
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=cilium_service_relation_server_l4_write_pkg_cpm --service-name='productpage.default' --dest-service-name='details.default'
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=cilium_service_relation_server_protocol_http_call_cpm --service-name='productpage.default' --dest-service-name='details.default'
expected: expected/metrics-has-value.yml
- query: swctl --display yaml --base-url=http://${service_skywalking_ui_host}:${service_skywalking_ui_80}/graphql metrics exec --expression=cilium_service_relation_protocol_http_status_2xx_cpm --service-name='productpage.default' --dest-service-name='details.default'
expected: expected/metrics-has-value.yml

View File

@ -0,0 +1,70 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
nodes:
{{- contains .nodes }}
- id: {{ b64enc "productpage.default"}}.1
name: productpage.default
type: http
isreal: true
- id: {{ b64enc "details.default"}}.1
name: details.default
type: http
isreal: true
- id: {{ b64enc "ratings.default" }}.1
name: ratings.default
type: http
isreal: true
- id: {{ b64enc "reviews.default" }}.1
name: reviews.default
type: http
isreal: true
{{- end }}
calls:
{{- contains .calls }}
- source: {{ b64enc "productpage.default"}}.1
sourcecomponents: []
target: {{ b64enc "reviews.default"}}.1
targetcomponents:
{{- contains .targetcomponents }}
- http
- tcp
{{- end }}
id: {{ b64enc "productpage.default"}}.1-{{ b64enc "reviews.default"}}.1
detectpoints:
- SERVER
- source: {{ b64enc "reviews.default" }}.1
sourcecomponents: []
target: {{ b64enc "ratings.default"}}.1
targetcomponents:
{{- contains .targetcomponents }}
- http
- tcp
{{- end }}
id: {{ b64enc "reviews.default" }}.1-{{ b64enc "ratings.default"}}.1
detectpoints:
- SERVER
- source: {{ b64enc "productpage.default" }}.1
sourcecomponents: []
target: {{ b64enc "details.default"}}.1
targetcomponents:
{{- contains .targetcomponents }}
- http
- tcp
{{- end }}
id: {{ b64enc "productpage.default" }}.1-{{ b64enc "details.default"}}.1
detectpoints:
- SERVER
{{- end }}

View File

@ -0,0 +1,31 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
type: TIME_SERIES_VALUES
results:
{{- contains .results }}
- metric:
labels: []
values:
{{- contains .values }}
- id: {{ notEmpty .id }}
value: {{ .value }}
traceid: null
- id: {{ notEmpty .id }}
value: null
traceid: null
{{- end}}
{{- end}}
error: null

View File

@ -0,0 +1,19 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
{{- contains . }}
- id: {{ b64enc "productpage.default" }}.1_{{ b64enc "GET:/productpage" }}
name: GET:/productpage
{{- end }}

View File

@ -0,0 +1,22 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
{{- contains . }}
- id: {{ notEmpty .id }}
name: {{ notEmpty .name }}
attributes: []
language: UNKNOWN
instanceuuid: {{ notEmpty .instanceuuid }}
{{- end }}

View File

@ -0,0 +1,45 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
{{- contains . }}
- id: {{ b64enc "details.default" }}.1
name: details.default
group: ""
shortname: details.default
layers:
- CILIUM_SERVICE
normal: true
- id: {{ b64enc "reviews.default" }}.1
name: reviews.default
group: ""
shortname: reviews.default
layers:
- CILIUM_SERVICE
normal: true
- id: {{ b64enc "productpage.default" }}.1
name: productpage.default
group: ""
shortname: productpage.default
layers:
- CILIUM_SERVICE
normal: true
- id: {{ b64enc "ratings.default" }}.1
name: ratings.default
group: ""
shortname: ratings.default
layers:
- CILIUM_SERVICE
normal: true
{{- end }}

View File

@ -0,0 +1,23 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
kind: Cluster
apiVersion: kind.x-k8s.io/v1alpha4
nodes:
- role: control-plane
- role: worker
- role: worker
networking:
disableDefaultCNI: true

View File

@ -0,0 +1,40 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
apiVersion: apps/v1
kind: Deployment
metadata:
name: trafficgenerator
labels:
app: trafficgenerator
spec:
replicas: 1
selector:
matchLabels:
app: trafficgenerator
template:
metadata:
annotations:
sidecar.istio.io/inject: "false"
labels:
app: trafficgenerator
spec:
containers:
- name: trafficgenerator
image: elswork/wrk
command: ["wrk", "-t1", "-c1", "-d20m", "http://productpage:9080/productpage"]
resources:
requests:
cpu: 0.1

View File

@ -0,0 +1,40 @@
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
oap:
secretMounts:
- name: cilium-tls
secretName: hubble-server-certs
path: /etc/config/cilium-tls
env:
SW_CILIUM_FETCHER_CONVERT_CLIENT_AS_SERVER_TRAFFIC: "true"
SW_CILIUM_FETCHER: default
SW_CILIUM_FETCHER_PEER_PORT: 443
SW_CILIUM_FETCHER_SSL_CONNECTION: "true"
SW_CILIUM_FETCHER_PRIVATE_KEY_FILE_PATH: /etc/config/cilium-tls/tls.key
SW_CILIUM_FETCHER_CERT_CHAIN_FILE_PATH: /etc/config/cilium-tls/tls.crt
SW_CILIUM_FETCHER_CA_FILE_PATH: /etc/config/cilium-tls/ca.crt
elasticsearch:
esConfig:
elasticsearch.yml: |
cluster.routing.allocation.disk.threshold_enabled: false
volumeClaimTemplate:
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 2Gi
persistence:
enabled: true

View File

@ -21,7 +21,7 @@ SW_AGENT_GO_COMMIT=774a6d56baba1187eb03bf1861af542c923b3dff
SW_AGENT_PYTHON_COMMIT=c76a6ec51a478ac91abb20ec8f22a99b8d4d6a58
SW_AGENT_CLIENT_JS_COMMIT=af0565a67d382b683c1dbd94c379b7080db61449
SW_AGENT_CLIENT_JS_TEST_COMMIT=4f1eb1dcdbde3ec4a38534bf01dded4ab5d2f016
SW_KUBERNETES_COMMIT_SHA=1741f5a0959b85faaf0a2fc6bbd7b550ec330280
SW_KUBERNETES_COMMIT_SHA=1335f15bf821a40a7cd71448fa805f0be265afcc
SW_ROVER_COMMIT=6bbd39aa701984482330d9dfb4dbaaff0527d55c
SW_BANYANDB_COMMIT=e7210733022566cd0cee7ea2dc12cfb2f30fa8f3
SW_AGENT_PHP_COMMIT=3192c553002707d344bd6774cfab5bc61f67a1d3

View File

@ -0,0 +1,34 @@
#!/usr/bin/env bash
# ----------------------------------------------------------------------------
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
# ----------------------------------------------------------------------------
BASE_DIR=$1
BIN_DIR=$2
if ! command -v cilium &> /dev/null; then
mkdir -p $BASE_DIR/cilium && cd $BASE_DIR/cilium
CILIUM_CLI_VERSION="v0.16.11"
CLI_ARCH=amd64
if [ "$(uname -m)" = "aarch64" ]; then CLI_ARCH=arm64; fi
curl -L --fail --remote-name-all https://github.com/cilium/cilium-cli/releases/download/${CILIUM_CLI_VERSION}/cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}
sha256sum --check cilium-linux-${CLI_ARCH}.tar.gz.sha256sum
sudo tar xzvfC cilium-linux-${CLI_ARCH}.tar.gz $BIN_DIR
rm cilium-linux-${CLI_ARCH}.tar.gz{,.sha256sum}
fi