Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions go.work
Original file line number Diff line number Diff line change
Expand Up @@ -2,5 +2,6 @@ go 1.26.2

use (
.
./scripts/setup
./tools/generateTimeline
)
16 changes: 0 additions & 16 deletions go.work.sum
Original file line number Diff line number Diff line change
Expand Up @@ -6,22 +6,16 @@ github.com/IBM/sarama v1.43.1/go.mod h1:GG5q1RURtDNPz8xxJs3mgX6Ytak8Z9eLhAkJPObe
github.com/boombuler/barcode v1.0.1/go.mod h1:paBWMcWSl3LHKBqUq+rly7CNSldXjb2rDl3JlRe0mD8=
github.com/campoy/embedmd v1.0.0/go.mod h1:oxyr9RCiSXg0M3VJ3ks0UGfp98BpSSGr0kpiX3MzVl8=
github.com/cncf/xds/go v0.0.0-20251210132809-ee656c7534f5/go.mod h1:KdCmV+x/BuvyMxRnYBlmVaq4OLiKW6iRQfvC62cvdkI=
github.com/containerd/containerd v1.5.2/go.mod h1:0DOxVqwDy2iZvrZp2JUx/E+hS0UNTVn7dJnIOwtYR4g=
github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E=
github.com/eapache/go-resiliency v1.6.0/go.mod h1:5yPzW0MIvSe0JDsv0v+DvcjEv2FyD6iZYSs1ZI+iQho=
github.com/eapache/go-xerial-snappy v0.0.0-20230731223053-c322873962e3/go.mod h1:YvSRo5mw33fLEx1+DlK6L2VV43tJt5Eyel9n9XBcR+0=
github.com/eapache/queue v1.1.0/go.mod h1:6eCeP0CKFpHLu8blIFXhExK/dRa7WDZfr6jVFPTqq+I=
github.com/ease-lab/vhive/utils/tracing/go v0.0.0-20211206145412-3a4607297428/go.mod h1:7a477TAJimC1AkzEynida5yXncx5l2FwL1YqEaxLNI8=
github.com/envoyproxy/go-control-plane v0.14.0/go.mod h1:NcS5X47pLl/hfqxU70yPwL9ZMkUlwlKxtAohpi2wBEU=
github.com/envoyproxy/go-control-plane/envoy v1.36.0/go.mod h1:ty89S1YCCVruQAm9OtKeEkQLTb+Lkz0k8v9W0Oxsv98=
github.com/envoyproxy/go-control-plane/ratelimit v0.1.0/go.mod h1:Wk+tMFAFbCXaJPzVVHnPgRKdUdwW/KdbRt94AzgRee4=
github.com/envoyproxy/protoc-gen-validate v1.3.0/go.mod h1:HvYl7zwPa5mffgyeTUHA9zHIH36nmrm7oCbo4YKoSWA=
github.com/go-fonts/liberation v0.3.1/go.mod h1:jdJ+cqF+F4SUL2V+qxBth8fvBpBDS7yloUL5Fi8GTGY=
github.com/go-fonts/liberation v0.3.3/go.mod h1:eUAzNRuJnpSnd1sm2EyloQfSOT79pdw7X7++Ri+3MCU=
github.com/go-jose/go-jose/v4 v4.1.3/go.mod h1:x4oUasVrzR7071A4TnHLGSPpNOm2a21K9Kf04k1rs08=
github.com/go-latex/latex v0.0.0-20230307184459-12ec69307ad9/go.mod h1:gWuR/CrFDDeVRFQwHPvsv9soJVB/iqymhuZQuJ3a9OM=
github.com/go-latex/latex v0.0.0-20240709081214-31cef3c7570e/go.mod h1:J4SAGzkcl+28QWi7yz72tyC/4aGnppOvya+AEv4TaAQ=
github.com/go-pdf/fpdf v0.8.0/go.mod h1:gfqhcNwXrsd3XYKte9a7vM3smvU/jB4ZRDrmWSxpfdc=
github.com/go-pdf/fpdf v0.9.0/go.mod h1:oO8N111TkmKb9D7VvWGLvLJlaZUQVPM+6V42pp3iV4Y=
github.com/go-task/slim-sprig v0.0.0-20230315185526-52ccab3ef572/go.mod h1:9Pwr4B2jHnOSGXyyzV8ROjYa2ojvAY6HCGYYfMoC3Ls=
github.com/goccmack/gocc v1.0.2/go.mod h1:LXX2tFVUggS/Zgx/ICPOr3MLyusuM7EcbfkPvNsjdO8=
Expand All @@ -42,34 +36,24 @@ github.com/onsi/ginkgo/v2 v2.11.0/go.mod h1:ZhrRA5XmEE3x3rhlzamx/JJvujdZoJ2uvgI7
github.com/onsi/gomega v1.27.10/go.mod h1:RsS8tutOdbdgzbPtzzATp12yT7kM5I5aElG3evPbQ0M=
github.com/phpdave11/gofpdi v1.0.13/go.mod h1:vBmVV0Do6hSBHC8uKUQ71JGW+ZGQq74llk/7bXwjDoI=
github.com/pierrec/lz4/v4 v4.1.21/go.mod h1:gZWDp/Ze/IJXGXf23ltt2EXimqmTUXEy0GFuRQyBid4=
github.com/pkg/diff v0.0.0-20210226163009-20ebb0f2a09e/go.mod h1:pJLUxLENpZxwdsKMEsNbx1VGcRFpLqf3715MtcvvzbA=
github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0=
github.com/planetscale/vtprotobuf v0.6.1-0.20240319094008-0393e58bdf10/go.mod h1:t/avpk3KcrXxUnYOhZhMXJlSEyie6gQbtLq5NM3loB8=
github.com/rabbitmq/amqp091-go v1.9.0/go.mod h1:+jPrT9iY2eLjRaMSRHUhc3z14E/l85kv/f+6luSD3pc=
github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqnVzQkZxMG4s8nGwiZ5l3QUCyqpo9Y+/ZMZ9VjZe4=
github.com/rogpeppe/go-internal v1.9.0/go.mod h1:WtVeX8xhTBvf0smdhujwtBcq4Qrzq/fJaraNFVN+nFs=
github.com/ruudk/golang-pdf417 v0.0.0-20201230142125-a7e3863a1245/go.mod h1:pQAZKsJ8yyVxGRWYNEm9oFB8ieLgKFnamEyDmSA0BRk=
github.com/spiffe/go-spiffe/v2 v2.6.0/go.mod h1:gm2SeUoMZEtpnzPNs2Csc0D/gX33k1xIx7lEzqblHEs=
github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
github.com/vhive-serverless/loader v0.0.0-20260415061204-0512e9eaa2a3/go.mod h1:yET1r9lcWPzTJl8W4RJ7xK+5G4iQXx+aSUWjBArdT5E=
github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI=
github.com/xdg-go/scram v1.1.2/go.mod h1:RT/sEzTbU5y00aCK8UOx6R7YryM0iF1N2MOmC3kKLN4=
github.com/xdg-go/stringprep v1.0.4/go.mod h1:mPGuuIYwz7CmR2bT9j4GbQqutWS1zV24gijq1dTyGkM=
github.com/youmark/pkcs8 v0.0.0-20240726163527-a2c0da244d78/go.mod h1:aL8wCCfTfSfmXjznFBSZNN13rSJjlIOI1fUNAtF7rmI=
go.opentelemetry.io/contrib v0.20.0 h1:ubFQUn0VCZ0gPwIoJfBJVpeBlyRMxu8Mm/huKWYd9p0=
go.opentelemetry.io/contrib v0.20.0/go.mod h1:G/EtFaa6qaN7+LxqfIAT3GiZa7Wv5DTBUzl5H4LY0Kc=
go.opentelemetry.io/contrib/detectors/gcp v1.39.0/go.mod h1:t/OGqzHBa5v6RHZwrDBJ2OirWc+4q/w2fTbLZwAKjTk=
go.opentelemetry.io/otel/exporters/trace/zipkin v0.20.0/go.mod h1:QnYEWBA4wTy/15vvmj7Poeklp6xndAMcdejvzZNUtvM=
golang.org/x/mod v0.35.0/go.mod h1:+GwiRhIInF8wPm+4AoT6L0FA1QWAad3OMdTRx4tFYlU=
golang.org/x/oauth2 v0.34.0/go.mod h1:lzm5WQJQwKZ3nwavOZ3IS5Aulzxi68dUSgRHujetwEA=
golang.org/x/sync v0.20.0/go.mod h1:9xrNwdLfx4jkKbNva9FpL6vEN7evnE43NNNJQ2LF3+0=
golang.org/x/sys v0.13.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
golang.org/x/sys v0.30.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
golang.org/x/tools v0.44.0/go.mod h1:KA0AfVErSdxRZIsOVipbv3rQhVXTnlU6UhKxHd1seDI=
golang.org/x/tools/go/expect v0.1.1-deprecated/go.mod h1:eihoPOH+FgIqa3FpoTwguz/bVUSGBlGQU67vpBeOrBY=
golang.org/x/tools/go/packages/packagestest v0.1.1-deprecated/go.mod h1:RVAQXBGNv1ib0J382/DPCRS/BPnsGebyM1Gj5VSDpG8=
gonum.org/v1/tools v0.0.0-20200318103217-c168b003ce8c/go.mod h1:fy6Otjqbk477ELp8IXTpw1cObQtLbRCBVonY+bTTfcM=
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/genproto/googleapis/api v0.0.0-20260120221211-b8f7ae30c516/go.mod h1:p3MLuOwURrGBRoEyFHBT3GjUwaCQVKeNqqWxlcISGdw=
4 changes: 2 additions & 2 deletions scripts/konk-ci/03-kind-metrics.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ yq eval '
.prometheus.prometheusSpec.resources.limits.memory = "512Mi" |
.prometheus.prometheusSpec.resources.requests.cpu = "100m" |
.prometheus.prometheusSpec.resources.requests.memory = "256Mi"
' -i "./config/prometh_values_kn.yaml"
' -i "./scripts/setup/configs/prometheus/prom_values.yaml"

# Install prometheus stack
release_label="prometheus"
Expand All @@ -42,7 +42,7 @@ prometheus_chart_version="60.1.0"
helm install \
-n monitoring $release_label \
--version $prometheus_chart_version prometheus-community/kube-prometheus-stack \
-f ./config/prometh_values_kn.yaml
-f ./scripts/setup/configs/prometheus/prom_values.yaml

# Configure kubectl config for non-root user
docker exec knative-control-plane sh -c "mkdir -p /home/$(whoami)/.kube"
Expand Down
115 changes: 115 additions & 0 deletions scripts/setup/cluster/create_mulitnode.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,115 @@
package cluster

import (
"fmt"
"time"

"github.com/vhive-serverless/loader/scripts/setup/configs"
loaderUtils "github.com/vhive-serverless/loader/scripts/setup/utils"
"github.com/vhive-serverless/vHive/scripts/utils"
)

func CreateMultiNodeSetup(configDir string, configName string) error {
// Load Configurations
cfg, err := configs.CommonConfigSetup(configDir, configName)
if err != nil {
utils.FatalPrintf("Failed to load configurations: %v\n", err)
return err
}

// Distribute Loader SSH Key
utils.InfoPrintf("Distributing loader SSH key...\n")
if err := distributeLoaderSSHKey(cfg.LoaderNode, cfg.AllNodes); err != nil {
utils.FatalPrintf("Failed to distribute loader SSH key: %v\n", err)
return err
}
utils.InfoPrintf("Loader SSH key distributed.\n")

// Determine Operation Mode
var operationMode string
switch cfg.SetupCfg.ClusterMode {
case "container":
operationMode = "stock-only"
case "firecracker", "firecracker_snapshots":
operationMode = "firecracker"
default:
utils.FatalPrintf("Unsupported cluster mode: %s\n", cfg.SetupCfg.ClusterMode)
return fmt.Errorf("unsupported cluster mode: %s", cfg.SetupCfg.ClusterMode)
}

// Common Initialization on all nodes
utils.InfoPrintf("Starting common initialization on all nodes...\n")
if err := commonInit(cfg.AllNodes, cfg.SetupCfg, operationMode); err != nil {
utils.FatalPrintf("Failed during common initialization: %v\n", err)
return err
}
utils.InfoPrintf("Common initialization completed.\n")

// Setup Master Node
utils.InfoPrintf("Setting up master node: %s\n", cfg.MasterNode)
joinToken, err := setupMaster(cfg.MasterNode, operationMode)
if err != nil {
utils.FatalPrintf("Failed to setup master node: %v\n", err)
return err
}
utils.InfoPrintf("Master node setup completed.\n")

// Setup Worker Nodes
utils.InfoPrintf("Setting up worker nodes...\n")
if err := setupWorkers(cfg.WorkerNodes, joinToken, cfg.SetupCfg, operationMode); err != nil {
utils.FatalPrintf("Failed to setup worker nodes: %v\n", err)
return err
}
utils.InfoPrintf("Worker nodes setup completed.\n")

time.Sleep(5 * time.Second) // Wait for nodes to stabilize

// Extend CIDR if necessary
if cfg.SetupCfg.PodsPerNode > 240 {
if cfg.SetupCfg.PodsPerNode > 1022 {
utils.FatalPrintf("PODS_PER_NODE value %d is too high to extend CIDR range. Maximum supported is 1022.\n", cfg.SetupCfg.PodsPerNode)
return fmt.Errorf("PODS_PER_NODE value %d is too high to extend CIDR range. Maximum supported is 1022.", cfg.SetupCfg.PodsPerNode)
}
if len(cfg.AllNodes) > 63 {
utils.FatalPrintf("Total number of nodes %d is too high to extend CIDR range. Maximum supported is 63.\n", len(cfg.AllNodes))
return fmt.Errorf("Total number of nodes %d is too high to extend CIDR range. Maximum supported is 63.", len(cfg.AllNodes))
}
utils.InfoPrintf("Extending CIDR range...\n")
if err := extendCIDR(cfg.MasterNode, cfg.WorkerNodes, joinToken); err != nil {
utils.FatalPrintf("Failed to extend CIDR range: %v\n", err)
return err
}
utils.InfoPrintf("CIDR range extended.\n")
}

time.Sleep(5 * time.Second) // Wait for nodes to stabilize

// Finalize Cluster Setup
utils.InfoPrintf("Finalizing cluster setup...\n")
if err := finalizeClusterSetup(cfg.MasterNode, cfg.AllNodes); err != nil {
utils.FatalPrintf("Failed to finalize cluster setup: %v\n", err)
return err
}
utils.InfoPrintf("Cluster setup finalized.\n")

// Label Nodes
utils.InfoPrintf("Labeling nodes...\n")
if err := loaderUtils.LabelNodes(cfg.MasterNode, configDir, configName); err != nil {
utils.FatalPrintf("Failed to label nodes: %v\n", err)
return err
}
utils.InfoPrintf("Node labeling completed.\n")

// Deploy Prometheus if enabled
if cfg.SetupCfg.DeployPrometheus {
utils.InfoPrintf("Setting up Prometheus components...\n")
if err := setupPrometheus(cfg.MasterNode, cfg.AllNodes, cfg.PromConfig); err != nil {
utils.FatalPrintf("Failed to setup Prometheus components: %v\n", err)
return err
}
utils.InfoPrintf("Prometheus components setup completed.\n")
}

utils.InfoPrintf("Multi-node cluster setup finished successfully!\n")
return nil
}
Loading
Loading