From 6999aa44b8b56e4a7b29079ae2afe2842949bb13 Mon Sep 17 00:00:00 2001 From: Leonid Kondrashov Date: Wed, 7 Jun 2023 11:15:55 +0800 Subject: [PATCH 01/11] Move loader from master node to separate node Signed-off-by: Leonid Kondrashov --- README.md | 11 ++++---- pkg/metric/record.go | 2 ++ pkg/metric/scrape_infra.py | 11 ++++---- pkg/metric/scrape_kn.py | 4 ++- scripts/setup/create_multinode.sh | 24 +++++++++++------ scripts/setup/label.sh | 44 ++++++------------------------- 6 files changed, 40 insertions(+), 56 deletions(-) diff --git a/README.md b/README.md index 6fd266e2..c215cc34 100644 --- a/README.md +++ b/README.md @@ -9,7 +9,7 @@ can choose the APT cluster `d430` node. ## Create a cluster -First, configure `script/setup.cfg`. You can specify there which vHive branch to use, loader branch, operation mode +First, configure `script/setup/setup.cfg`. You can specify there which vHive branch to use, loader branch, operation mode (sandbox type), maximum number of pods per node, and the Github token. All these configurations are mandatory. We currently support the following modes: containerd (`container`), Firecracker (`firecracker`), and Firecracker with snapshots (`firecracker_snapshots`). @@ -21,12 +21,13 @@ API server certificate. * To create a multi-node cluster, specify the node addresses as the arguments and run the following command: ```bash -$ bash ./scripts/setup/create_multinode.sh ... +$ bash ./scripts/setup/create_multinode.sh ... ``` -The loader should be running on a separate node that is part of the Kubernetes cluster. Do not collocate master and -worker node components where the loader is located for performance reasons. Make sure you taint the node where loader is -located prior to running any experiment. +This command will create the following setup: control plane is placed on master node, loader node is used for running +loader and monitoring pods (mostly, Prometheus, if enabled in setup config), workers are used purely for working pods. In +this setup, neither control plane nor workers are affected by loader and monitoring, creating more reliable measurements +of performance. * Single-node cluster (experimental) diff --git a/pkg/metric/record.go b/pkg/metric/record.go index e1cf9266..d38c318f 100644 --- a/pkg/metric/record.go +++ b/pkg/metric/record.go @@ -142,6 +142,8 @@ type ClusterUsage struct { PodCpu []string `csv:"pod_cpu" json:"pod_cpu"` PodMemory []string `csv:"pod_memory" json:"pod_mem"` Pods []int `csv:"pods" json:"pods"` + LoaderCpu float64 `csv:"loader_cpu" json:"loader_cpu"` + LoaderMem float64 `csv:"loader_mem" json:"loader_mem"` } type AdfResult struct { diff --git a/pkg/metric/scrape_infra.py b/pkg/metric/scrape_infra.py index aba0d6db..d4e63304 100644 --- a/pkg/metric/scrape_infra.py +++ b/pkg/metric/scrape_infra.py @@ -3,11 +3,11 @@ import sys import os -loader_total_cores = 8 +prometheus_ip = os.popen("kubectl get svc -n monitoring | grep prometheus-kube-prometheus-prometheus | awk '{print $3}'").read().strip().split('\n')[0] def get_promql_query(query): def promql_query(): - return "tools/bin/promql --no-headers --host 'http://localhost:9090' '" + query + "' | grep . | sort | awk '{print $2}'" + return "tools/bin/promql --no-headers --host 'http://" + prometheus_ip + ":9090' '" + query + "' | grep . | sort | awk '{print $2}'" return promql_query if __name__ == "__main__": @@ -42,12 +42,13 @@ def promql_query(): "pod_cpu": [], "pod_mem": [], "pods": [], + "loader_cpu": 0, + "loader_mem": 0, } - loader_cpu_pct, loader_mem_pct = list( + result["loader_cpu"], result["loader_mem"] = list( map(float, subprocess.check_output(cmd_get_loader_pct).decode("utf-8").strip().split()) ) - loader_cpu_pct /= loader_total_cores #* Normalise to [0, 100] abs_out = subprocess.check_output(cmd_get_abs_vals).decode("utf-8")[:-1].split('\n') pcts_out = subprocess.check_output(cmd_get_pcts).decode("utf-8").split('\n') @@ -66,8 +67,6 @@ def promql_query(): if is_master: # Record master node. result['master_cpu_pct'], result['master_mem_pct'] = list(map(float, pcts[:-1].split('%'))) - result['master_cpu_pct'] = max(0, result['master_cpu_pct'] - loader_cpu_pct) - result['master_mem_pct'] = max(0, result['master_mem_pct'] - loader_mem_pct) result['master_mem_req'] = float(mem_r) result['master_mem_lim'] = float(mem_l) result['master_cpu_req'] = float(cpu_r) diff --git a/pkg/metric/scrape_kn.py b/pkg/metric/scrape_kn.py index 9cf4a653..7432e320 100644 --- a/pkg/metric/scrape_kn.py +++ b/pkg/metric/scrape_kn.py @@ -1,9 +1,11 @@ import os import json +prometheus_ip = os.popen("kubectl get svc -n monitoring | grep prometheus-kube-prometheus-prometheus | awk '{print $3}'").read().strip().split('\n')[0] + def get_promql_query(query): def promql_query(): - return "tools/bin/promql --no-headers --host 'http://localhost:9090' '" + query + "' | awk '{print $1}'" + return "tools/bin/promql --no-headers --host 'http://" + prometheus_ip + ":9090' '" + query + "' | awk '{print $1}'" return promql_query if __name__ == "__main__": diff --git a/scripts/setup/create_multinode.sh b/scripts/setup/create_multinode.sh index 6c3aa032..96b71a53 100755 --- a/scripts/setup/create_multinode.sh +++ b/scripts/setup/create_multinode.sh @@ -95,6 +95,14 @@ function setup_master() { LOGIN_TOKEN=${LOGIN_TOKEN//[$'\t\r\n']} } +function setup_loader() { + echo "Setting up loader/monitoring node: $1" + + server_exec "$1" 'wget -q https://go.dev/dl/go1.20.5.linux-amd64.tar.gz >/dev/null' + server_exec "$1" 'sudo rm -rf /usr/local/go && sudo tar -C /usr/local/ -xzf go1.20.5.linux-amd64.tar.gz >/dev/null' + server_exec "$1" 'echo "export PATH=$PATH:/usr/local/go/bin" >> .profile' +} + function setup_vhive_firecracker_daemon() { node=$1 @@ -232,6 +240,7 @@ function clone_loader_on_workers() { shift # make argument list only contain worker nodes (drops master node) setup_master + setup_loader $1 setup_workers "$@" if [ $PODS_PER_NODE -gt 240 ]; then @@ -249,15 +258,14 @@ function clone_loader_on_workers() { server_exec $MASTER_NODE 'cd loader; bash scripts/setup/patch_init_scale.sh' source $DIR/label.sh - if [[ "$DEPLOY_PROMETHEUS" == true ]]; then - # # Force placement of metrics collectors and instrumentation on the master node - label_workers $MASTER_NODE - label_master $MASTER_NODE - $DIR/expose_infra_metrics.sh $MASTER_NODE - else - label_all_workers $MASTER_NODE - fi + # Force placement of metrics collectors and instrumentation on the loader node and control plane on master + label_nodes $MASTER_NODE $1 # loader node is second on the list, becoming first after arg shift + # patch knative to accept nodeselector server_exec $MASTER_NODE "cd loader; kubectl patch configmap config-features -n knative-serving -p '{\"data\": {\"kubernetes.podspec-nodeselector\": \"enabled\"}}'" + + if [[ "$DEPLOY_PROMETHEUS" == true ]]; then + $DIR/expose_infra_metrics.sh $MASTER_NODE + fi } diff --git a/scripts/setup/label.sh b/scripts/setup/label.sh index d805db79..1705c941 100755 --- a/scripts/setup/label.sh +++ b/scripts/setup/label.sh @@ -11,8 +11,11 @@ server_exec() { ssh -oStrictHostKeyChecking=no -p 22 $1 $2; } -label_master() { +label_nodes() { MASTER_NODE=$1 + LOADER_NODE=$2 + LOADER_NODE_NAME="$(server_exec "$LOADER_NODE" hostname)" + echo $LOADER_NODE_NAME server_exec $MASTER_NODE 'kubectl get nodes' > tmp sed -i '1d' tmp @@ -21,46 +24,15 @@ label_master() { NODE=$(echo $LINE | cut -d ' ' -f 1) TYPE=$(echo $LINE | cut -d ' ' -f 3) + echo "Label ${NODE}" if [[ $TYPE == *"master"* ]]; then - echo "Label ${NODE}" + server_exec $MASTER_NODE "kubectl label nodes ${NODE} loader-nodetype=master" < /dev/null + elif [[ $NODE == $LOADER_NODE_NAME ]]; then server_exec $MASTER_NODE "kubectl label nodes ${NODE} loader-nodetype=monitoring" < /dev/null - fi - done < tmp - - rm tmp -} - -label_workers() { - MASTER_NODE=$1 - - server_exec $MASTER_NODE 'kubectl get nodes' > tmp - sed -i '1d' tmp - - while read LINE; do - NODE=$(echo $LINE | cut -d ' ' -f 1) - TYPE=$(echo $LINE | cut -d ' ' -f 3) - - if [[ $TYPE != *"master"* ]]; then - echo "Label ${NODE}" + else server_exec $MASTER_NODE "kubectl label nodes ${NODE} loader-nodetype=worker" < /dev/null fi done < tmp rm tmp } - -label_all_workers() { - MASTER_NODE=$1 - - server_exec $MASTER_NODE 'kubectl get nodes' > tmp - sed -i '1d' tmp - - while read LINE; do - NODE=$(echo $LINE | cut -d ' ' -f 1) - - echo "Label ${NODE}" - server_exec $MASTER_NODE "kubectl label nodes ${NODE} loader-nodetype=worker" < /dev/null - done < tmp - - rm tmp -} From 1d6dbc036ebf4c928342388fdbf6ee0b3b1688ea Mon Sep 17 00:00:00 2001 From: Leonid Kondrashov Date: Tue, 2 May 2023 15:47:35 +0200 Subject: [PATCH 02/11] Fix node resource scraping Signed-off-by: Leonid Kondrashov --- pkg/metric/scrape_infra.py | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/pkg/metric/scrape_infra.py b/pkg/metric/scrape_infra.py index d4e63304..249dc2c1 100644 --- a/pkg/metric/scrape_infra.py +++ b/pkg/metric/scrape_infra.py @@ -7,7 +7,7 @@ def get_promql_query(query): def promql_query(): - return "tools/bin/promql --no-headers --host 'http://" + prometheus_ip + ":9090' '" + query + "' | grep . | sort | awk '{print $2}'" + return "tools/bin/promql --no-headers --host 'http://" + prometheus_ip + ":9090' '" + query + "' | grep . | LC_COLLATE=C sort | awk '{print $2}'" return promql_query if __name__ == "__main__": @@ -15,10 +15,10 @@ def promql_query(): cmd_get_abs_vals = ['bash', 'scripts/metrics/get_node_stats_abs.sh'] cmd_get_pcts = ['bash', 'scripts/metrics/get_node_stats_percent.sh'] cmd_get_pod_abs_vals = ['bash', 'scripts/metrics/get_pod_stats_abs.sh'] - query_mem_req = 'sum(kube_pod_container_resource_requests{resource="memory"} and on(container, pod) (kube_pod_container_status_running==1)) by (node)' - query_mem_lim = 'sum(kube_pod_container_resource_limits{resource="memory"} and on(container, pod) (kube_pod_container_status_running==1)) by (node)' - query_cpu_req = 'sum(kube_pod_container_resource_requests{resource="cpu"} and on(container, pod) (kube_pod_container_status_running==1)) by (node)' - query_cpu_lim = 'sum(kube_pod_container_resource_limits{resource="cpu"} and on(container, pod) (kube_pod_container_status_running==1)) by (node)' + query_mem_req = 'sum(kube_pod_container_resource_requests{resource="memory"} and on(container, pod) (kube_pod_container_status_running==1) or on(node) (kube_node_info*0)) by (node)' + query_mem_lim = 'sum(kube_pod_container_resource_limits{resource="memory"} and on(container, pod) (kube_pod_container_status_running==1) or on(node) (kube_node_info*0)) by (node)' + query_cpu_req = 'sum(kube_pod_container_resource_requests{resource="cpu"} and on(container, pod) (kube_pod_container_status_running==1) or on(node) (kube_node_info*0)) by (node)' + query_cpu_lim = 'sum(kube_pod_container_resource_limits{resource="cpu"} and on(container, pod) (kube_pod_container_status_running==1) or on(node) (kube_node_info*0)) by (node)' query_pod_count = 'count(kube_pod_info and on(pod) max(kube_pod_container_status_running==1) by (pod)) by(node)' result = { From 3060c9bd9178c109888e4017511e95d87e10ac7c Mon Sep 17 00:00:00 2001 From: Leonid Kondrashov Date: Tue, 20 Jun 2023 18:09:32 +0800 Subject: [PATCH 03/11] Add scraping for deployment scales Signed-off-by: Leonid Kondrashov --- pkg/driver/trace_driver.go | 14 +++++++++++-- pkg/metric/collect.go | 20 +++---------------- pkg/metric/record.go | 19 ++++++++---------- pkg/metric/scale_registry.go | 38 ------------------------------------ pkg/metric/scrape_scales.py | 36 ++++++++++++++++++++++++++-------- 5 files changed, 51 insertions(+), 76 deletions(-) delete mode 100644 pkg/metric/scale_registry.go diff --git a/pkg/driver/trace_driver.go b/pkg/driver/trace_driver.go index 94d7c690..202c282b 100644 --- a/pkg/driver/trace_driver.go +++ b/pkg/driver/trace_driver.go @@ -85,8 +85,8 @@ func (d *Driver) CreateMetricsScrapper(interval time.Duration, return func() { signalReady.Done() - clusterUsageRecords := make(chan interface{}, 100) knStatRecords := make(chan interface{}, 100) + scaleRecords := make(chan interface{}, 100) writerDone := sync.WaitGroup{} clusterUsageFile, err := os.Create(d.outputFilename("cluster_usage")) @@ -96,6 +96,9 @@ func (d *Driver) CreateMetricsScrapper(interval time.Duration, writerDone.Add(1) go d.runCSVWriter(knStatRecords, d.outputFilename("kn_stats"), &writerDone) + writerDone.Add(1) + go d.runCSVWriter(scaleRecords, d.outputFilename("deployment_scale"), &writerDone) + for { select { case <-timer.C: @@ -111,12 +114,19 @@ func (d *Driver) CreateMetricsScrapper(interval time.Duration, _, err = clusterUsageFile.WriteString("\n") common.Check(err) + recScale := mc.ScrapeDeploymentScales() + timestamp := time.Now().UnixMicro() + for _, rec := range recScale { + rec.Timestamp = timestamp + scaleRecords <- rec + } + recKnative := mc.ScrapeKnStats() recKnative.Timestamp = time.Now().UnixMicro() knStatRecords <- recKnative case <-finishCh: - close(clusterUsageRecords) close(knStatRecords) + close(scaleRecords) writerDone.Wait() allRecordsWritten.Done() diff --git a/pkg/metric/collect.go b/pkg/metric/collect.go index 567e366d..7d89ce57 100644 --- a/pkg/metric/collect.go +++ b/pkg/metric/collect.go @@ -3,16 +3,12 @@ package metric import ( "encoding/json" "os/exec" - "time" log "github.com/sirupsen/logrus" ) -func ScrapeDeploymentScales() []ScaleRecord { - cmd := exec.Command( - "python3", - "pkg/metric/scrape_scales.py", - ) +func ScrapeDeploymentScales() []DeploymentScale { + cmd := exec.Command("python3", "pkg/metric/scrape_scales.py") out, err := cmd.CombinedOutput() if err != nil { log.Warn("Fail to scrape deployment scales: ", err) @@ -24,17 +20,7 @@ func ScrapeDeploymentScales() []ScaleRecord { log.Warn("Fail to parse deployment scales: ", string(out[:]), err) } - timestamp := time.Now().UnixMicro() - records := []ScaleRecord{} - for _, result := range results { - records = append(records, ScaleRecord{ - Timestamp: timestamp, - Deployment: result.Deployment, - DesiredScale: result.DesiredScale, - ActualScale: result.ActualScale, - }) - } - return records + return results } func ScrapeKnStats() KnStats { diff --git a/pkg/metric/record.go b/pkg/metric/record.go index d38c318f..145e1123 100644 --- a/pkg/metric/record.go +++ b/pkg/metric/record.go @@ -86,18 +86,15 @@ type ExecutionRecord struct { ColdStartCount int `csv:"coldstart_count"`*/ } -type ScaleRecord struct { - Timestamp int64 `csv:"timestamp"` - Deployment string `csv:"deployment"` - DesiredScale int `csv:"desired_scale"` - ActualScale int `csv:"actual_scale"` -} - type DeploymentScale struct { - Timestamp int64 `csv:"timestamp"` - Deployment string `csv:"deployment"` - DesiredScale int `csv:"desired_scale"` - ActualScale int `csv:"actual_scale"` + Timestamp int64 `csv:"timestamp" json:"timestamp"` + Function string `csv:"function" json:"function"` + DesiredPods int `csv:"desired_pods" json:"desired_pods"` + RunningPods int `csv:"running_pods" json:"running_pods"` + UnreadyPods int `csv:"unready_pods" json:"unready_pods"` + PendingPods int `csv:"pending_pods" json:"pending_pods"` + TerminatingPods int `csv:"terminating_pods" json:"terminating_pods"` + ActivatorQueue float64 `csv:"activator_queue" json:"activator_queue"` } type KnStats struct { diff --git a/pkg/metric/scale_registry.go b/pkg/metric/scale_registry.go deleted file mode 100644 index febfff60..00000000 --- a/pkg/metric/scale_registry.go +++ /dev/null @@ -1,38 +0,0 @@ -package metric - -type ScaleRegistry struct { - scaleGauge map[string]int -} - -func (r *ScaleRegistry) Init(records []ScaleRecord) { - r.scaleGauge = map[string]int{} - for _, record := range records { - r.scaleGauge[record.Deployment] = record.ActualScale - } -} - -//! Since all functions are deployed once, we assume no duplications. -func (r *ScaleRegistry) UpdateAndGetColdStartCount(records []ScaleRecord) int { - coldStarts := 0 - for _, record := range records { - prevScale := r.scaleGauge[record.Deployment] - currScale := record.ActualScale - - //* Check if it's scaling from 0. - if prevScale == 0 && currScale > 0 { - coldStarts++ - } - //* Update registry. - r.scaleGauge[record.Deployment] = currScale - } - return coldStarts -} - -func (r *ScaleRegistry) GetOneColdFunctionName() string { - for f, scale := range r.scaleGauge { - if scale == 0 { - return f - } - } - return "None" -} diff --git a/pkg/metric/scrape_scales.py b/pkg/metric/scrape_scales.py index 9e5c7fa2..4e457d0c 100644 --- a/pkg/metric/scrape_scales.py +++ b/pkg/metric/scrape_scales.py @@ -1,18 +1,38 @@ import json import os +prometheus_ip = os.popen("kubectl get svc -n monitoring | grep prometheus-kube-prometheus-prometheus | awk '{print $3}'").read().strip().split('\n')[0] + +def get_promql_query(query): + def promql_query(): + return "tools/bin/promql --no-headers --host 'http://" + prometheus_ip + ":9090' '" + query + "' | grep . | awk '{print $1\" \"$2}'" + return promql_query + if __name__ == "__main__": - cmd = "kubectl get podautoscalers | awk '{print $1\" \"$2\" \"$3}'" - out = os.popen(cmd).read().strip().split('\n') + query_desired_pods = 'max(autoscaler_desired_pods) by(configuration_name)' + query_running_pods = 'max(autoscaler_actual_pods) by(configuration_name)' + query_unready_pods = 'max(autoscaler_not_ready_pods) by(configuration_name)' + query_pending_pods = 'max(autoscaler_pending_pods) by(configuration_name)' + query_terminating_pods = 'max(autoscaler_terminating_pods) by(configuration_name)' + query_activator_queue = 'max(activator_request_concurrency) by(configuration_name)' + + desired_pods_count = {x.split()[0]: int(x.split()[1]) for x in os.popen(get_promql_query(query_desired_pods)()).read().strip().split('\n')} + running_pods_count = {x.split()[0]: int(x.split()[1]) for x in os.popen(get_promql_query(query_running_pods)()).read().strip().split('\n')} + unready_pods_count = {x.split()[0]: int(x.split()[1]) for x in os.popen(get_promql_query(query_unready_pods)()).read().strip().split('\n')} + pending_pods_count = {x.split()[0]: int(x.split()[1]) for x in os.popen(get_promql_query(query_pending_pods)()).read().strip().split('\n')} + terminating_pods_count = {x.split()[0]: int(x.split()[1]) for x in os.popen(get_promql_query(query_terminating_pods)()).read().strip().split('\n')} + queue_size = {x.split()[0]: float(x.split()[1]) for x in os.popen(get_promql_query(query_activator_queue)()).read().strip().split('\n')} results = [] - for line in out[1:]: - deployment, desired_scale, actual_scale = line.split() + for func in desired_pods_count.keys(): results.append({ - # Cut of the deployment suffix as each function is only deployed once. - "deployment": '-'.join(deployment.split('-')[:-1]), - "desired_scale": int(desired_scale), - "actual_scale": int(actual_scale), + 'function': func, + 'desired_pods': desired_pods_count[func], + 'running_pods': running_pods_count[func], + 'unready_pods': unready_pods_count[func], + 'pending_pods': pending_pods_count[func], + 'terminating_pods': terminating_pods_count[func], + 'activator_queue': queue_size.get(func, 0) }) print(json.dumps(results)) From 28d1def1e78de16ce04fe17a09086b96062eba89 Mon Sep 17 00:00:00 2001 From: Leonid Kondrashov Date: Wed, 21 Jun 2023 08:33:29 +0000 Subject: [PATCH 04/11] Fix intermittent problems with unready namespace during setup Signed-off-by: Leonid Kondrashov --- scripts/setup/create_multinode.sh | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/scripts/setup/create_multinode.sh b/scripts/setup/create_multinode.sh index 96b71a53..40a38841 100755 --- a/scripts/setup/create_multinode.sh +++ b/scripts/setup/create_multinode.sh @@ -249,6 +249,13 @@ function clone_loader_on_workers() { # Notify the master that all nodes have joined the cluster server_exec $MASTER_NODE 'tmux send -t master "y" ENTER' + + namespace_info=$(server_exec $MASTER_NODE "kubectl get namespaces") + while [[ ${namespace_info} != *'knative-serving'* ]]; do + sleep 60 + namespace_info=$(server_exec $MASTER_NODE "kubectl get namespaces") + done + echo "Master node $MASTER_NODE finalised." # Copy API server certificates from master to each worker node From 7cbaf59d97ebef220b6a8ddec04ccafb7620bedf Mon Sep 17 00:00:00 2001 From: Leonid Kondrashov Date: Fri, 30 Jun 2023 12:25:22 +0800 Subject: [PATCH 05/11] Fix scraping of queue occupancy Signed-off-by: Leonid Kondrashov --- pkg/metric/scrape_scales.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/metric/scrape_scales.py b/pkg/metric/scrape_scales.py index 4e457d0c..717cf0a0 100644 --- a/pkg/metric/scrape_scales.py +++ b/pkg/metric/scrape_scales.py @@ -14,7 +14,7 @@ def promql_query(): query_unready_pods = 'max(autoscaler_not_ready_pods) by(configuration_name)' query_pending_pods = 'max(autoscaler_pending_pods) by(configuration_name)' query_terminating_pods = 'max(autoscaler_terminating_pods) by(configuration_name)' - query_activator_queue = 'max(activator_request_concurrency) by(configuration_name)' + query_activator_queue = 'sum(activator_request_concurrency) by(configuration_name)' desired_pods_count = {x.split()[0]: int(x.split()[1]) for x in os.popen(get_promql_query(query_desired_pods)()).read().strip().split('\n')} running_pods_count = {x.split()[0]: int(x.split()[1]) for x in os.popen(get_promql_query(query_running_pods)()).read().strip().split('\n')} From 7cc59c3390dc68d9d20e551e8c2a62c61e870634 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Jun 2023 08:52:02 +0000 Subject: [PATCH 06/11] Bump pyopenssl from 19.0.0 to 23.2.0 Bumps [pyopenssl](https://github.com/pyca/pyopenssl) from 19.0.0 to 23.2.0. - [Changelog](https://github.com/pyca/pyopenssl/blob/main/CHANGELOG.rst) - [Commits](https://github.com/pyca/pyopenssl/compare/19.0.0...23.2.0) --- updated-dependencies: - dependency-name: pyopenssl dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- config/requirements_dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/requirements_dev.txt b/config/requirements_dev.txt index f26ac5bc..e1a6fe8c 100644 --- a/config/requirements_dev.txt +++ b/config/requirements_dev.txt @@ -19,7 +19,7 @@ pssh==2.3.1 PyGObject==3.44.1 pymacaroons==0.13.0 PyNaCl==1.5.0 -pyOpenSSL==19.0.0 +pyOpenSSL==23.2.0 pyparsing==3.0.7 python-apt==2.0.0+ubuntu0.20.4.3 python-dateutil==2.8.2 From 963ec59b8c748706991e278a6e01085fce0bbd95 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 26 Jun 2023 20:58:45 +0000 Subject: [PATCH 07/11] Bump google.golang.org/grpc from 1.55.0 to 1.56.1 Bumps [google.golang.org/grpc](https://github.com/grpc/grpc-go) from 1.55.0 to 1.56.1. - [Release notes](https://github.com/grpc/grpc-go/releases) - [Commits](https://github.com/grpc/grpc-go/compare/v1.55.0...v1.56.1) --- updated-dependencies: - dependency-name: google.golang.org/grpc dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- go.mod | 6 +++--- go.sum | 20 +++++++++++--------- 2 files changed, 14 insertions(+), 12 deletions(-) diff --git a/go.mod b/go.mod index 55e4c95f..ac233f0c 100644 --- a/go.mod +++ b/go.mod @@ -11,7 +11,7 @@ require ( golang.org/x/sys v0.8.0 gonum.org/v1/gonum v0.13.0 gonum.org/v1/plot v0.13.0 - google.golang.org/grpc v1.55.0 + google.golang.org/grpc v1.56.1 ) require github.com/stretchr/testify v1.8.0 @@ -43,8 +43,8 @@ require ( go.opentelemetry.io/otel/metric v0.20.0 // indirect go.opentelemetry.io/otel/sdk v0.20.0 // indirect go.opentelemetry.io/otel/trace v0.20.0 // indirect - golang.org/x/net v0.8.0 // indirect + golang.org/x/net v0.9.0 // indirect golang.org/x/text v0.9.0 // indirect - google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 // indirect + google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 // indirect google.golang.org/protobuf v1.30.0 // indirect ) diff --git a/go.sum b/go.sum index da762f42..b4b0edf0 100644 --- a/go.sum +++ b/go.sum @@ -14,7 +14,7 @@ cloud.google.com/go v0.110.0 h1:Zc8gqp3+a9/Eyph2KDmcGaPtbKRIoqq4YTlL4NMD0Ys= cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/compute v1.18.0 h1:FEigFqoDbys2cvFkZ9Fjq4gnHBP55anJ0yQyau2f9oY= +cloud.google.com/go/compute v1.19.1 h1:am86mquDUgjGNWxiGn+5PGLbmgiWXlE/yNWpIpNvuXY= cloud.google.com/go/compute/metadata v0.2.3 h1:mg4jlk7mCAj6xXp9UJ4fjI9VUI5rubuGBW5aJ7UnBMY= cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= @@ -108,6 +108,7 @@ github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDk github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= github.com/cncf/xds/go v0.0.0-20210312221358-fbca930ec8ed/go.mod h1:eXthEFrGJvWHgFFCl3hGmgk+/aYT6PnTQLykKQRLhEs= +github.com/cncf/xds/go v0.0.0-20230607035331-e9ce68804cb4 h1:/inchEIKaYC1Akx+H+gqO04wryn5h75LSazbRlnya1k= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/containerd/aufs v0.0.0-20200908144142-dab0cbea06f4/go.mod h1:nukgQABAEopAHvB6j7cnP5zJ+/3aVcE7hCYqvIwAHyE= github.com/containerd/aufs v0.0.0-20201003224125-76a6863f2989/go.mod h1:AkGGQs9NM2vtYHaUen+NljV0/baGCAPELGm2q9ZXpWU= @@ -251,6 +252,7 @@ github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.m github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= github.com/envoyproxy/go-control-plane v0.9.9-0.20210512163311-63b5d3c536b0/go.mod h1:hliV/p42l8fGbc6Y9bQ70uLwIvmJyVE5k4iMKlh8wCQ= github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= +github.com/envoyproxy/protoc-gen-validate v0.10.1 h1:c0g45+xCJhdgFGw7a5QAfdS4byAbud7miNWJ1WwEVf8= github.com/evanphx/json-patch v4.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/form3tech-oss/jwt-go v3.2.2+incompatible/go.mod h1:pbq4aXjuKjdthFRnoDwaVPLA+WlJuPGy+QneDUgJi2k= @@ -743,14 +745,14 @@ golang.org/x/net v0.0.0-20201224014010-6772e930b67b/go.mod h1:m0MpNAwzfU5UDzcl9v golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= golang.org/x/net v0.0.0-20220722155237-a158d28d115b/go.mod h1:XRhObCWvk6IyKnWLug+ECip1KBveYUHfp+8e9klMJ9c= golang.org/x/net v0.6.0/go.mod h1:2Tu9+aMcznHK/AK1HMvgo6xiTLG5rD5rZLDS+rp2Bjs= -golang.org/x/net v0.8.0 h1:Zrh2ngAOFYneWTAIAPethzeaQLuHwhuBkuV6ZiRnUaQ= -golang.org/x/net v0.8.0/go.mod h1:QVkue5JL9kW//ek3r6jTKnTFis1tRmNAW2P1shuFdJc= +golang.org/x/net v0.9.0 h1:aWJ/m6xSmxWBx+V0XRHTlrYrPG56jKsLdTFmsSsCzOM= +golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.6.0 h1:Lh8GPgSKBfWSwFvtuWOfeI3aAAnbXTSutYxJiOJFgIw= +golang.org/x/oauth2 v0.7.0 h1:qe6s0zUXlPX80/dITx3440hWZ7GwMwgDDyrSGTPJG/g= golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= @@ -833,7 +835,7 @@ golang.org/x/sys v0.8.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= golang.org/x/term v0.5.0/go.mod h1:jMB1sMXY+tzblOD4FWmEbocvup2/aLOaQEp7JmGp78k= -golang.org/x/term v0.6.0 h1:clScbb1cHjoCkyRbWwBEUZ5H/tIFu5TAXIqaZD0Gcjw= +golang.org/x/term v0.7.0 h1:BEvjmm5fURWqcfbSKTdpkDXYBrUS1c0m8agp14W48vQ= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -940,8 +942,8 @@ google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfG google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= google.golang.org/genproto v0.0.0-20201110150050-8816d57aaa9a/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4 h1:DdoeryqhaXp1LtT/emMP1BRJPHHKFi5akj/nbx/zNTA= -google.golang.org/genproto v0.0.0-20230306155012-7f2fa6fef1f4/go.mod h1:NWraEVixdDnqcqQ30jipen1STv2r/n24Wb7twVTGR4s= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1 h1:KpwkzHKEF7B9Zxg18WzOa7djJ+Ha5DzthMyZYQfEn2A= +google.golang.org/genproto v0.0.0-20230410155749-daa745c078e1/go.mod h1:nKE/iIaLqn2bQwXBg8f1g2Ylh6r5MN5CmZvuzZCgsCU= google.golang.org/grpc v0.0.0-20160317175043-d3ddb4469d5a/go.mod h1:yo6s7OP7yaDglbqo1J04qKzAhqBH6lvTonzMVmEdcZw= google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= @@ -960,8 +962,8 @@ google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= google.golang.org/grpc v1.37.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= google.golang.org/grpc v1.39.0/go.mod h1:PImNr+rS9TWYb2O4/emRugxiyHZ5JyHW5F+RPnDzfrE= -google.golang.org/grpc v1.55.0 h1:3Oj82/tFSCeUrRTg/5E/7d/W5A1tj6Ky1ABAuZuv5ag= -google.golang.org/grpc v1.55.0/go.mod h1:iYEXKGkEBhg1PjZQvoYEVPTDkHo1/bjTnfwTeGONTY8= +google.golang.org/grpc v1.56.1 h1:z0dNfjIl0VpaZ9iSVjA6daGatAYwPGstTjt5vkRMFkQ= +google.golang.org/grpc v1.56.1/go.mod h1:I9bI3vqKfayGqPUAwGdOSu7kt6oIJLixfffKrpXqQ9s= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= From 6f240308a0f0c15f920e95dc06ce3456f4702a80 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 3 Jul 2023 08:36:16 +0000 Subject: [PATCH 08/11] Bump numpy from 1.24.2 to 1.25.0 in /tools/trace_synthesizer Bumps [numpy](https://github.com/numpy/numpy) from 1.24.2 to 1.25.0. - [Release notes](https://github.com/numpy/numpy/releases) - [Changelog](https://github.com/numpy/numpy/blob/main/doc/RELEASE_WALKTHROUGH.rst) - [Commits](https://github.com/numpy/numpy/compare/v1.24.2...v1.25.0) --- updated-dependencies: - dependency-name: numpy dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- tools/trace_synthesizer/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/trace_synthesizer/requirements.txt b/tools/trace_synthesizer/requirements.txt index 6c803995..00a8763f 100644 --- a/tools/trace_synthesizer/requirements.txt +++ b/tools/trace_synthesizer/requirements.txt @@ -1,2 +1,2 @@ -numpy==1.24.2 +numpy==1.25.0 pandas==2.0.1 From b0005989b6ccdfeb7357b9d9d2c0bf2f2cecf230 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 19 Jun 2023 20:59:35 +0000 Subject: [PATCH 09/11] Bump rojopolis/spellcheck-github-actions from 0.30.0 to 0.33.0 Bumps [rojopolis/spellcheck-github-actions](https://github.com/rojopolis/spellcheck-github-actions) from 0.30.0 to 0.33.0. - [Release notes](https://github.com/rojopolis/spellcheck-github-actions/releases) - [Changelog](https://github.com/rojopolis/spellcheck-github-actions/blob/master/CHANGELOG.md) - [Commits](https://github.com/rojopolis/spellcheck-github-actions/compare/0.30.0...0.33.0) --- updated-dependencies: - dependency-name: rojopolis/spellcheck-github-actions dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- .github/workflows/linters.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/linters.yaml b/.github/workflows/linters.yaml index 464c80cf..08f5c957 100644 --- a/.github/workflows/linters.yaml +++ b/.github/workflows/linters.yaml @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v3 - - uses: rojopolis/spellcheck-github-actions@0.30.0 + - uses: rojopolis/spellcheck-github-actions@0.33.0 name: Spellcheck with: config_path: .github/configs/spellcheck.yml From 8b6a427bfffc7e3530eef6d72efe93fe2c27a686 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Jun 2023 08:51:53 +0000 Subject: [PATCH 10/11] Bump dbus-python from 1.2.16 to 1.3.2 Bumps [dbus-python](https://github.com/python-sdbus/python-sdbus) from 1.2.16 to 1.3.2. - [Release notes](https://github.com/python-sdbus/python-sdbus/releases) - [Changelog](https://github.com/python-sdbus/python-sdbus/blob/master/CHANGELOG.md) - [Commits](https://github.com/python-sdbus/python-sdbus/commits) --- updated-dependencies: - dependency-name: dbus-python dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- config/requirements_dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/requirements_dev.txt b/config/requirements_dev.txt index e1a6fe8c..ccdb32d0 100644 --- a/config/requirements_dev.txt +++ b/config/requirements_dev.txt @@ -3,7 +3,7 @@ certifi==2019.11.28 chardet==5.1.0 command-not-found==0.3 cryptography==40.0.2 -dbus-python==1.2.16 +dbus-python==1.3.2 distro==1.8.0 distro-info===1.0 html5lib==1.1 From cc50f4678f2f0ac8216cf19cb97ce78c789d1270 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 9 Jun 2023 08:51:58 +0000 Subject: [PATCH 11/11] Bump idna from 2.8 to 3.4 Bumps [idna](https://github.com/kjd/idna) from 2.8 to 3.4. - [Changelog](https://github.com/kjd/idna/blob/master/HISTORY.rst) - [Commits](https://github.com/kjd/idna/compare/v2.8...v3.4) --- updated-dependencies: - dependency-name: idna dependency-type: direct:development update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] --- config/requirements_dev.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/requirements_dev.txt b/config/requirements_dev.txt index ccdb32d0..cbd63702 100644 --- a/config/requirements_dev.txt +++ b/config/requirements_dev.txt @@ -7,7 +7,7 @@ dbus-python==1.3.2 distro==1.8.0 distro-info===1.0 html5lib==1.1 -idna==2.8 +idna==3.4 language-selector==0.1 lxml==4.9.2 netifaces==0.11.0