# Edit the Kurtosis config file in order to have K3S cluster configuration
-run:
name:Add K3S cluster config in Kurtosis config file
command:|
KURTOSIS_CONFIG_FILEPATH=$(kurtosis config path)
cat \<< EOF > "$KURTOSIS_CONFIG_FILEPATH"
config-version: 2
should-send-metrics: true
kurtosis-clusters:
docker:
type: docker
k3d-k3s-default:
type: kubernetes
config:
kubernetes-cluster-name: k3d-k3s-default
storage-class: local-path
enclave-size-in-megabytes: 2048
EOF
# Set the K3S cluster with some previous steps to force this cluster type in the cluster-setting file. This save us to start the engine with the cluster set command
# because we are going to start it on the next step
kurtosis cluster set k3d-k3s-default --cli-log-level trace
-run:
name:Start Kurtosis engine in K8s backend
command:|
kurtosis engine start --enclave-pool-size 2
-run:
name:Run Kurtosis gateway
command:"kurtosisgateway"
background:true
# NOTE: Because CircleCI jobs run on separate machines from each other, we duplicate steps (like checkout) between jobs. This is because doing the "correct" DRY
# refactoring of, "one job for checkout, one job for build Docker image, etc." would require a) persisting files between jobs and b) persisting Docker images between
# jobs. Both are annoying (saving/loading workspaces require re-downloading the workspace over the network, and there doesn't seem to be a good way to do Docker
# images), so we run everything inside a single job.
# See also: https://discuss.circleci.com/t/can-docker-images-be-preserved-between-jobs-in-a-workflow-without-a-manual-load-save/23388/12
jobs:
run_starlark_arm64:
executor:ubuntu_vm
resource_class:arm.medium
steps:
-<<:*setup_kurtosis
-checkout
-run:kurtosis run ${PWD}
mev_k8s:
executor:ubuntu_vm
steps:
-checkout
-run:kurtosis run ${PWD} --verbosity detailed --args-file=./.github/tests/mev.yaml
mix_with_tools_k8s:
resource_class:xlarge
executor:ubuntu_vm
steps:
-checkout
-run:kurtosis run ${PWD} --verbosity detailed --args-file=./.github/tests/mev.yaml