anthos-bm-utils/abm-nettest/nettest.yaml (281 lines of code) (raw):
# Copyright 2022 Google LLC
#
# Licensed 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: Namespace
apiVersion: v1
metadata:
name: nettest
---
kind: DaemonSet
apiVersion: apps/v1
metadata:
name: echoserver-non-hostnetwork
namespace: nettest
spec:
selector:
matchLabels:
run: echoserver-non-hostnetwork
template:
metadata:
labels:
run: echoserver-non-hostnetwork
spec:
containers:
- name: echoserver
image: gcr.io/anthos-baremetal-release/simplehttpserver:v0.3.7-gke.9__linux_amd64
imagePullPolicy: IfNotPresent
args: ["--port=9222"]
ports:
- containerPort: 9222
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule
---
kind: DaemonSet
apiVersion: apps/v1
metadata:
name: echoserver-hostnetwork
namespace: nettest
spec:
selector:
matchLabels:
run: echoserver-hostnetwork
template:
metadata:
labels:
run: echoserver-hostnetwork
spec:
hostNetwork: true
containers:
- name: echoserver
image: gcr.io/anthos-baremetal-release/simplehttpserver:v0.3.7-gke.9__linux_amd64
imagePullPolicy: IfNotPresent
args: ["--port=9222"]
ports:
- containerPort: 9222
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
effect: NoSchedule
- key: node-role.kubernetes.io/control-plane
operator: Exists
effect: NoSchedule
---
apiVersion: v1
kind: Service
metadata:
name: echoserver-non-hostnetwork
namespace: nettest
spec:
ports:
- port: 80
targetPort: 9222
protocol: TCP
selector:
run: echoserver-non-hostnetwork
---
apiVersion: v1
kind: Service
metadata:
name: echoserver-hostnetwork
namespace: nettest
spec:
ports:
- port: 80
targetPort: 9222
protocol: TCP
selector:
run: echoserver-hostnetwork
---
kind: ServiceAccount
apiVersion: v1
metadata:
name: nettest
namespace: nettest
---
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: nettest:nettest
rules:
- apiGroups: [""]
resources: ["nodes"]
verbs: ["get", "list"]
- apiGroups: [""]
resources: ["pods"]
verbs: ["get", "list", "watch"]
- apiGroups: [""]
resources: ["services"]
verbs: ["create", "get", "list", "delete"]
- apiGroups: [""]
resources: ["endpoints"]
verbs: ["get", "list"]
- apiGroups: [""]
resources: ["configmaps"]
verbs: ["create", "get", "list", "delete"]
- apiGroups: ["apps"]
resources: ["daemonsets"]
verbs: ["create", "get", "update", "delete"]
---
kind: ClusterRoleBinding
apiVersion: rbac.authorization.k8s.io/v1
metadata:
name: nettest:nettest
subjects:
- kind: ServiceAccount
name: nettest
namespace: nettest
roleRef:
kind: ClusterRole
name: nettest:nettest
apiGroup: rbac.authorization.k8s.io
---
kind: ConfigMap
apiVersion: v1
metadata:
name: nettest-engine
namespace: nettest
data:
engine.yaml: |
steps:
- sanityCheck: {}
- setupTargets:
targets:
google.com:
url:
endpoint: www.google.com
anthos.googleapis.com:
url:
endpoint: anthos.googleapis.com
anthosaudit.googleapis.com:
url:
endpoint: anthosaudit.googleapis.com
anthosgke.googleapis.com:
url:
endpoint: anthosgke.googleapis.com
cloudresourcemanager.googleapis.com:
url:
endpoint: cloudresourcemanager.googleapis.com
connectgateway.googleapis.com:
url:
endpoint: connectgateway.googleapis.com
container.googleapis.com:
url:
endpoint: container.googleapis.com
gkeconnect.googleapis.com:
url:
endpoint: gkeconnect.googleapis.com
gkehub.googleapis.com:
url:
endpoint: gkehub.googleapis.com
iam.googleapis.com:
url:
endpoint: iam.googleapis.com
logging.googleapis.com:
url:
endpoint: logging.googleapis.com
monitoring.googleapis.com:
url:
endpoint: monitoring.googleapis.com
opsconfigmonitoring.googleapis.com:
url:
endpoint: opsconfigmonitoring.googleapis.com
serviceusage.googleapis.com:
url:
endpoint: serviceusage.googleapis.com
stackdriver.googleapis.com:
url:
endpoint: stackdriver.googleapis.com
service:
service:
namespace: nettest
name: echoserver-non-hostnetwork
checkDNS: true
service-hostnetwork:
service:
namespace: nettest
name: echoserver-hostnetwork
pods:
endpoint:
namespace: nettest
name: echoserver-non-hostnetwork
nodes:
endpoint:
namespace: nettest
name: echoserver-hostnetwork
- createCloudprobers:
cloudproberImage: gcr.io/anthos-baremetal-release/cloudprober:release-0.11.7-gke.28
probeFromCPNodes: true
- waitFor:
duration: 5m
- validateMetrics: {}
---
kind: ConfigMap
apiVersion: v1
metadata:
name: nettest-prometheus
namespace: nettest
data:
prometheus.yaml: |
scrape_configs:
- job_name: 'nettest'
scrape_interval: 15s
kubernetes_sd_configs:
- role: pod
relabel_configs:
# Only scrape pods with specific annotation.
- source_labels: [__meta_kubernetes_pod_annotation_nettest_should_be_scraped]
action: keep
regex: true
# Only scrape the prometheus port.
- source_labels: [__address__, __meta_kubernetes_pod_annotation_nettest_scrape_port]
action: replace
regex: ([^:]+)(?::\d+)?;(\d+)
replacement: $1:$2
target_label: __address__
---
apiVersion: v1
kind: Pod
metadata:
name: nettest
namespace: nettest
labels:
app: nettest
spec:
containers:
- name: nettest
image: gcr.io/anthos-baremetal-release/nettest:v0.3.7-gke.9__linux_amd64
imagePullPolicy: IfNotPresent
command: ["/nettest"]
args: ["-v=2", "-alsologtostderr", "-engine_config=/cfg/engine.yaml"]
ports:
- name: http
containerPort: 8999
volumeMounts:
- name: nettest-engine
mountPath: /cfg
- name: prometheus
imagePullPolicy: IfNotPresent
image: gcr.io/anthos-baremetal-release/prometheus:2.18.1-gke.5
args:
- --config.file=/cfg/prometheus.yaml
- --storage.tsdb.path=/prometheus/
ports:
- name: http
containerPort: 9090
volumeMounts:
- name: nettest-prometheus
mountPath: /cfg
volumes:
- name: nettest-engine
configMap:
name: nettest-engine
- name: nettest-prometheus
configMap:
name: nettest-prometheus
serviceAccountName: nettest
restartPolicy: Never
tolerations:
- key: node-role.kubernetes.io/master
operator: Exists
- key: node-role.kubernetes.io/control-plane
operator: Exists