Skip to content

Commit

Permalink
Added some files for testing
Browse files Browse the repository at this point in the history
  • Loading branch information
nathangeology committed Jun 26, 2024
1 parent d21ba73 commit 2d93b57
Show file tree
Hide file tree
Showing 2 changed files with 170 additions and 0 deletions.
56 changes: 56 additions & 0 deletions test/suites/perf/local_cluster_setup.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
context_name="karpenter-test-kind-cluster"
prom_ns="prometheus"
kind create cluster --name ${context_name}
cd ..
cd ..
cd ..
make apply-with-kind
cat <<EOF | envsubst | kubectl apply -f -
apiVersion: karpenter.sh/v1beta1
kind: NodePool
metadata:
name: default
spec:
template:
spec:
requirements:
- key: kubernetes.io/arch
operator: In
values: ["amd64"]
- key: kubernetes.io/os
operator: In
values: ["linux"]
- key: karpenter.sh/capacity-type
operator: In
values: ["spot"]
nodeClassRef:
name: nil
limits:
cpu: 1500
disruption:
consolidationPolicy: WhenUnderutilized
expireAfter: 720h # 30 * 24h = 720h
EOF
kubectl create namespace "$prom_ns"
helm upgrade --values valuesv3.yaml --install prometheus prometheus-community/kube-prometheus-stack -n "$prom_ns" \
--set "kubelet.serviceMonitor.cAdvisorRelabelings[0].targetLabel=metrics_path" \
--set "kubelet.serviceMonitor.cAdvisorRelabelings[0].action=replace" \
--set "kubelet.serviceMonitor.cAdvisorRelabelings[0].sourceLabels[0]=__metrics_path__" \
--set "kubelet.serviceMonitor.cAdvisorRelabelings[1].targetLabel=clusterName" \
--set "kubelet.serviceMonitor.cAdvisorRelabelings[1].replacement=$CLUSTER_NAME" \
--set "kubelet.serviceMonitor.cAdvisorRelabelings[2].targetLabel=gitRef" \
--set "kubelet.serviceMonitor.cAdvisorRelabelings[2].replacement=$(git rev-parse HEAD)" \
--set "kubelet.serviceMonitor.cAdvisorRelabelings[3].targetLabel=mostRecentTag" \
--set "kubelet.serviceMonitor.cAdvisorRelabelings[3].replacement=$(git describe --abbrev=0 --tags)" \
--set "kubelet.serviceMonitor.cAdvisorRelabelings[4].targetLabel=commitsAfterTag" \
--set "kubelet.serviceMonitor.cAdvisorRelabelings[4].replacement=\"$(git describe --tags | cut -d '-' -f 2)\"" \
--wait
# Testing out pyroscope for profiling
helm repo add grafana https://grafana.github.io/helm-charts
helm repo update
# This only creates one replica for testing, but not multiple backends
#kubectl create namespace pyroscope-test
helm -n karpenter install pyroscope grafana/pyroscope
make test
read -p "press enter to delete cluster" temp_var
kind delete cluster --name ${context_name}
114 changes: 114 additions & 0 deletions valuesv3.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,114 @@
prometheus:
prometheusSpec:
serviceMonitorSelector: {}
serviceMonitorNamespaceSelector: {}
additionalScrapeConfigs:
- job_name: serviceMonitor/karpenter/karpenter/0
honor_timestamps: true
track_timestamps_staleness: false
scrape_interval: 30s
scrape_timeout: 10s
scrape_protocols:
- OpenMetricsText1.0.0
- OpenMetricsText0.0.1
- PrometheusText0.0.4
metrics_path: /metrics
scheme: http
enable_compression: true
follow_redirects: true
enable_http2: true
relabel_configs:
- source_labels: [ job ]
separator: ;
regex: (.*)
target_label: __tmp_prometheus_job_name
replacement: $1
action: replace
- source_labels: [ __meta_kubernetes_service_label_app_kubernetes_io_instance, __meta_kubernetes_service_labelpresent_app_kubernetes_io_instance ]
separator: ;
regex: (karpenter);true
replacement: $1
action: keep
- source_labels: [ __meta_kubernetes_service_label_app_kubernetes_io_name, __meta_kubernetes_service_labelpresent_app_kubernetes_io_name ]
separator: ;
regex: (karpenter);true
replacement: $1
action: keep
- source_labels: [ __meta_kubernetes_endpoint_port_name ]
separator: ;
regex: http-metrics
replacement: $1
action: keep
- source_labels: [ __meta_kubernetes_endpoint_address_target_kind, __meta_kubernetes_endpoint_address_target_name ]
separator: ;
regex: Node;(.*)
target_label: node
replacement: ${1}
action: replace
- source_labels: [ __meta_kubernetes_endpoint_address_target_kind, __meta_kubernetes_endpoint_address_target_name ]
separator: ;
regex: Pod;(.*)
target_label: pod
replacement: ${1}
action: replace
- source_labels: [ __meta_kubernetes_namespace ]
separator: ;
regex: (.*)
target_label: namespace
replacement: $1
action: replace
- source_labels: [ __meta_kubernetes_service_name ]
separator: ;
regex: (.*)
target_label: service
replacement: $1
action: replace
- source_labels: [ __meta_kubernetes_pod_name ]
separator: ;
regex: (.*)
target_label: pod
replacement: $1
action: replace
- source_labels: [ __meta_kubernetes_pod_container_name ]
separator: ;
regex: (.*)
target_label: container
replacement: $1
action: replace
- source_labels: [ __meta_kubernetes_pod_phase ]
separator: ;
regex: (Failed|Succeeded)
replacement: $1
action: drop
- source_labels: [ __meta_kubernetes_service_name ]
separator: ;
regex: (.*)
target_label: job
replacement: ${1}
action: replace
- separator: ;
regex: (.*)
target_label: endpoint
replacement: http-metrics
action: replace
- source_labels: [ __address__ ]
separator: ;
regex: (.*)
modulus: 1
target_label: __tmp_hash
replacement: $1
action: hashmod
- source_labels: [ __tmp_hash ]
separator: ;
regex: "0"
replacement: $1
action: keep
kubernetes_sd_configs:
- role: endpoints
kubeconfig_file: ""
follow_redirects: true
enable_http2: true
namespaces:
own_namespace: false
names:
- karpenter

0 comments on commit 2d93b57

Please sign in to comment.