Merge origin/main into multi-port-service
Lint Checks / Run linter (push) Successful in 24m22s
Lint Checks / Run linter (pull_request) Successful in 23m2s
Deploy Test / Run deploy test suite (pull_request) Successful in 25m37s
K8s Deploy Test / Run deploy test suite on kind/k8s (pull_request) Successful in 28m31s
K8s Deployment Control Test / Run deployment control suite on kind/k8s (pull_request) Successful in 27m46s
Webapp Test / Run webapp test suite (pull_request) Successful in 27m34s
Smoke Test / Run basic test suite (pull_request) Successful in 28m59s

Resolve conflicts:
- deployment_context.py: Keep single modify_yaml method from main
- fixturenet-optimism/commands.py: Use modify_yaml helper from main
- deployment_create.py: Keep helm-chart, network-dir, initial-peers options
- deploy_webapp.py: Update create_operation call signature

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
A. F. Dudley
2026-01-24 16:48:11 -05:00
co-authored by Claude Opus 4.5
9 changed files with 1270 additions and 30 deletions
@@ -14,7 +14,6 @@
# along with this program. If not, see <http:#www.gnu.org/licenses/>.
from stack_orchestrator.deploy.deployment_context import DeploymentContext
from ruamel.yaml import YAML
def create(context: DeploymentContext, extra_args):
@@ -28,17 +27,12 @@ def create(context: DeploymentContext, extra_args):
"compose", "docker-compose-fixturenet-eth.yml"
)
with open(fixturenet_eth_compose_file, "r") as yaml_file:
yaml = YAML()
yaml_data = yaml.load(yaml_file)
new_script = "../config/fixturenet-optimism/run-geth.sh:/opt/testnet/run.sh"
if new_script not in yaml_data["services"]["fixturenet-eth-geth-1"]["volumes"]:
yaml_data["services"]["fixturenet-eth-geth-1"]["volumes"].append(new_script)
def add_geth_volume(yaml_data):
if new_script not in yaml_data["services"]["fixturenet-eth-geth-1"]["volumes"]:
yaml_data["services"]["fixturenet-eth-geth-1"]["volumes"].append(new_script)
with open(fixturenet_eth_compose_file, "w") as yaml_file:
yaml = YAML()
yaml.dump(yaml_data, yaml_file)
context.modify_yaml(fixturenet_eth_compose_file, add_geth_volume)
return None
@@ -2,7 +2,6 @@ version: "1.0"
name: test
description: "A test stack"
repos:
- git.vdb.to/cerc-io/laconicd
- git.vdb.to/cerc-io/test-project@test-branch
containers:
- cerc/test-container
+14 -14
View File
@@ -47,20 +47,6 @@ class DeploymentContext:
def get_compose_file(self, name: str):
return self.get_compose_dir() / f"docker-compose-{name}.yml"
def modify_yaml(self, file_path: Path, modifier_func):
"""Load a YAML from the deployment, apply a modifier, and write back."""
if not file_path.absolute().is_relative_to(self.deployment_dir):
raise ValueError(f"File is not inside deployment directory: {file_path}")
yaml = get_yaml()
with open(file_path, "r") as f:
yaml_data = yaml.load(f)
modifier_func(yaml_data)
with open(file_path, "w") as f:
yaml.dump(yaml_data, f)
def get_cluster_id(self):
return self.id
@@ -82,3 +68,17 @@ class DeploymentContext:
unique_cluster_descriptor = f"{path},{self.get_stack_file()},None,None"
hash = hashlib.md5(unique_cluster_descriptor.encode()).hexdigest()[:16]
self.id = f"{constants.cluster_name_prefix}{hash}"
def modify_yaml(self, file_path: Path, modifier_func):
"""Load a YAML, apply a modification function, and write it back."""
if not file_path.absolute().is_relative_to(self.deployment_dir):
raise ValueError(f"File is not inside deployment directory: {file_path}")
yaml = get_yaml()
with open(file_path, "r") as f:
yaml_data = yaml.load(f)
modifier_func(yaml_data)
with open(file_path, "w") as f:
yaml.dump(yaml_data, f)
@@ -556,9 +556,9 @@ def create_operation(
deployment_command_context,
spec_file,
deployment_dir,
helm_chart,
network_dir,
initial_peers,
helm_chart=False,
network_dir=None,
initial_peers=None,
extra_args=(),
):
parsed_spec = Spec(