Compare commits

..
Author SHA1 Message Date
dboreham fbd340bd34 Merge branch 'main' into ci-test 2024-02-22 13:28:05 -07:00
dboreham 642c0ead0d Add test for two config parameters (#758)
Reviewed-on: cerc-io/stack-orchestrator#758
Co-authored-by: David Boreham <david@bozemanpass.com>
Co-committed-by: David Boreham <david@bozemanpass.com>
2024-02-22 19:35:55 +00:00
telackey 6bd77c893a Even more logging fixes (#757)
Hopefully the last one for a bit.

This only output the cmdline if log_file is present (ie, not to stdout).  It also fixes a bug where the log_file was not passed in one line.

Reviewed-on: cerc-io/stack-orchestrator#757
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-22 01:24:44 +00:00
telackey 4a4d48ddb9 Fix error when logging exception. (#756)
Reviewed-on: cerc-io/stack-orchestrator#756
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-22 00:11:06 +00:00
telackey 08438b1cd5 More logging for webapp deployments (#755)
Reviewed-on: cerc-io/stack-orchestrator#755
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-21 23:48:52 +00:00
telackey 9f1dd284a5 Better error logging for registry deployments. (#754)
We were missing errors related to registration, this should fix that.

Reviewed-on: cerc-io/stack-orchestrator#754
Co-authored-by: Thomas E Lackey <telackey@bozemanpass.com>
Co-committed-by: Thomas E Lackey <telackey@bozemanpass.com>
2024-02-21 20:12:52 +00:00
dboreham e22792dc4b Merge branch 'main' into ci-test 2024-02-17 07:30:29 -07:00
dboreham d79053b137 Merge branch 'main' into ci-test 2024-02-17 07:24:12 -07:00
dboreham 85204ca29a Enable debug output on test 2024-02-15 08:41:54 -07:00
dboreham d6d016cad8 Merge branch 'main' into ci-test 2024-02-15 08:13:10 -07:00
dboreham 3b553bb660 Revert to the stock runner 2024-01-30 11:13:21 -07:00
dboreham 466c149f36 Switch back to alternative runner 2024-01-30 07:39:05 -07:00
dboreham 3c84ebff68 Switch back to stock runner 2024-01-30 07:01:13 -07:00
dboreham d5244726aa Use new runner 2024-01-28 16:25:45 -07:00
dboreham 15ae2c0cdf Merge main 2024-01-28 16:24:26 -07:00
dboreham 6d5f661750 Try a longer sleep 2024-01-21 17:42:09 -07:00
dboreham bc872b09fb Add output to check cgroups version 2024-01-21 17:23:28 -07:00
dboreham a751e87dd4 Switch back to stock runner 2024-01-21 17:21:35 -07:00
dboreham 5ba9a803de Trigger k8s deploy test off changes to its scripts 2024-01-21 17:19:39 -07:00
dboreham b56c84b93a Merge main 2024-01-21 17:16:09 -07:00
dboreham 1520f7413d Debug CI 2023-11-08 20:02:21 -07:00
dboreham 1d78430679 Merge branch 'main' into ci-test 2023-11-08 20:01:26 -07:00
dboreham 46b726be9b Merge branch 'main' into ci-test 2023-10-12 15:26:38 -06:00
dboreham b3b57b6f28 Merge branch 'main' into ci-test 2023-10-03 07:25:32 -06:00
dboreham 69b352dcce Make the block window wider 2023-08-17 08:31:21 -06:00
dboreham 4e656df709 Extend the wait 2023-08-17 07:23:33 -06:00
dboreham 7fc6375886 Revert long wait 2023-08-17 03:04:22 -06:00
dboreham ac02753ffe Build lighthouse for older CPUs 2023-08-17 02:09:29 -06:00
dboreham 69d59b109b Add stack logs in case of fail 2023-08-17 00:36:36 -06:00
dboreham f62a8ff54f Try waiting even longer 2023-08-16 23:41:39 -06:00
dboreham 82a839d15f Try waiting longer for a new block 2023-08-16 22:12:45 -06:00
dboreham 5a31cb50c3 Add log output at end of test 2023-08-16 20:57:59 -06:00
dboreham fae2438e97 Comment out stack status step 2023-08-16 15:45:19 -06:00
dboreham 952ea29ca5 Add time stamps to test script 2023-08-16 13:50:27 -06:00
dboreham fbfc162ab7 Merge branch 'main' into ci-test 2023-08-16 09:32:29 -06:00
dboreham 6ff81b2049 Merge branch 'main' into ci-test 2023-08-03 14:30:10 -06:00
dboreham 3b3c688ee9 Merge branch 'dboreham/update-lighthouse' into ci-test 2023-07-27 20:14:54 -06:00
dboreham 16bef78312 Merge branch 'main' into ci-test 2023-07-27 20:14:45 -06:00
dboreham 12e68ff1ec Use latest stable lighthouse release 2023-07-27 20:14:12 -06:00
dboreham 6f3f20739d Merge branch 'main' into ci-test 2023-07-19 20:53:16 -06:00
dboreham caabaa35ff Merge branch 'main' into ci-test 2023-07-19 20:38:33 -06:00
dboreham a265794bd7 Update fixturenet-eth-test.yml
Change to trigger CI on Gitea
2023-07-18 11:43:18 -06:00
dboreham 5d7e7294c9 Update fixturenet-eth-test.yml
Change to trigger CI in gitea
2023-07-18 11:33:01 -06:00
dboreham d9805666c3 Merge main 2023-06-29 15:16:38 -06:00
dboreham 582b92d277 Merge main 2023-06-29 15:14:40 -06:00
David Boreham dc19d68aa4 Merge branch 'main' into ci-test 2023-06-05 20:50:43 -06:00
David Boreham d57e8d0efd Merge branch 'dboreham/build-local-lcli' into ci-test 2023-06-05 16:46:50 -06:00
telackey 91d3613247 Include --eth1-block-hash 2023-06-05 15:45:07 -05:00
David Boreham 76ab4a7717 Merge branch 'dboreham/build-local-lcli' into ci-test 2023-06-04 23:04:40 -06:00
David Boreham fd40aedadd Add lcli container to fixturenet-eth stack 2023-06-04 23:03:48 -06:00
David Boreham 3748fa38b1 Update ldcli options 2023-06-04 23:01:43 -06:00
David Boreham aa4c52c174 Fix typo 2023-06-04 16:43:38 -06:00
David Boreham 609128d004 Blind fix for lcli error 2023-06-04 16:42:44 -06:00
David Boreham 47164cb5f5 Test updated lcli command 2023-06-04 16:12:16 -06:00
David Boreham 93c47ec5cc Merge branch 'dboreham/build-local-lcli' into ci-test 2023-06-04 15:41:24 -06:00
David Boreham 700ce586a6 Merge main 2023-06-04 15:41:01 -06:00
David Boreham 223aacb16f Enable portable lcli build 2023-06-04 14:30:01 -06:00
David Boreham c120ee2086 Pull lighthouse repo 2023-06-04 14:29:07 -06:00
David Boreham 685e11ed6f Build lcli locally 2023-06-04 14:27:07 -06:00
dboreham 6cf9869a57 Merge branch 'dboreham/add-foundry-to-plugeth-stack' into ci-test 2023-05-30 23:22:03 -06:00
dboreham 00d34944a2 Add foundry to fixturenet-plugeth-tx 2023-05-30 23:20:26 -06:00
dboreham 40424cc3b6 Merge branch 'main' into ci-test 2023-05-30 22:33:37 -06:00
dboreham b594d15e91 Trigger CI 2023-05-30 12:23:48 -06:00
dboreham 500e60c480 Trigger CI 2023-05-30 08:49:36 -06:00
dboreham 8c3a8eb33d Add fixturenet-plugeth test 2023-05-25 16:56:59 -06:00
dboreham 27067e061c Merge branch 'main' into ci-test 2023-05-25 16:46:36 -06:00
dboreham eab5a6ccf1 Trigger CI 2023-05-24 21:49:35 -06:00
dboreham 7ed2448f03 Merge current main
Former-commit-id: d82ba6ed5035203d1ce3846744309210caadda62
2023-05-18 13:57:35 -06:00
dboreham e9e1d8bcd4 Merge branch 'main' into ci-test
Former-commit-id: 966539faa46bf33a3b6471a3289a4fb7c4685cc7
2023-05-18 13:55:29 -06:00
dboreham 0563764ca4 Trigger CI
Former-commit-id: bb1d81a906000d5acf22269eaca53c6ab32c5605
2023-05-02 14:22:40 -06:00
dboreham 069dd50fd3 Merge branch 'main' into ci-test
Former-commit-id: 4eb970350bbfca04ea98b21a6aaf0acfa3daa8cd
2023-04-28 09:44:05 -06:00
dboreham 595fbe4eca Force CI again
Former-commit-id: 401ab334f00273307f64397f06f2b295c1151085
2023-04-20 20:17:19 -06:00
dboreham 3e949b403f Force CI again
Former-commit-id: fa822a71297ad39d5f8301321e7230f55bb0cb27
2023-04-20 19:06:20 -06:00
dboreham 5524e95434 Force CI to run
Former-commit-id: 99ecc01e52eda6bf162679bc0dda79c0438b14cb
2023-04-20 18:24:45 -06:00
dboreham 616982d9ba Merge branch 'main' into ci-test
Former-commit-id: b3b24e3f1870763025d9ac9b07685b1a85567874
2023-04-20 17:40:41 -06:00
dboreham 2cbb6e1f1d Add debug output
Former-commit-id: 27d23144e4003fa131a7fc95b7f527848b6181ad
2023-04-20 15:00:20 -06:00
dboreham 0712012cf4 Start docker inside the executor
Former-commit-id: 2948691fc712898c4ad04bbf11296f8ecbbd5b0b
2023-04-20 13:58:20 -06:00
6 changed files with 69 additions and 29 deletions
+1 -1
View File
@@ -48,5 +48,5 @@ jobs:
run: |
source /opt/bash-utils/cgroup-helper.sh
join_cgroup
./tests/database/run-test.sh
CERC_SCRIPT_DEBUG=1 ./tests/database/run-test.sh
@@ -6,6 +6,7 @@ services:
CERC_SCRIPT_DEBUG: ${CERC_SCRIPT_DEBUG}
CERC_TEST_PARAM_1: ${CERC_TEST_PARAM_1:-FAILED}
CERC_TEST_PARAM_2: "CERC_TEST_PARAM_2_VALUE"
CERC_TEST_PARAM_3: ${CERC_TEST_PARAM_3:-FAILED}
volumes:
- test-data-bind:/data
- test-data-auto:/data2
@@ -39,6 +39,15 @@ fi
if [ -n "$CERC_TEST_PARAM_2" ]; then
echo "Test-param-2: ${CERC_TEST_PARAM_2}"
fi
if [ -n "$CERC_TEST_PARAM_3" ]; then
echo "Test-param-3: ${CERC_TEST_PARAM_3}"
fi
if [ -n "$CERC_TEST_PARAM_4" ]; then
echo "Test-param-4: ${CERC_TEST_PARAM_4}"
fi
if [ -n "$CERC_TEST_PARAM_5" ]; then
echo "Test-param-5: ${CERC_TEST_PARAM_5}"
fi
if [ -d "/config" ]; then
echo "/config: EXISTS"
@@ -33,6 +33,7 @@ from stack_orchestrator.deploy.webapp.util import (LaconicRegistryClient,
def process_app_deployment_request(
run_id,
ctx,
laconic: LaconicRegistryClient,
app_deployment_request,
@@ -42,18 +43,8 @@ def process_app_deployment_request(
deployment_parent_dir,
kube_config,
image_registry,
log_parent_dir
log_file=None
):
run_id = f"{app_deployment_request.id}-{str(time.time()).split('.')[0]}-{str(uuid.uuid4()).split('-')[0]}"
log_file = None
if log_parent_dir:
log_dir = os.path.join(log_parent_dir, app_deployment_request.id)
if not os.path.exists(log_dir):
os.mkdir(log_dir)
log_file_path = os.path.join(log_dir, f"{run_id}.log")
print(f"Directing build logs to: {log_file_path}")
log_file = open(log_file_path, "wt")
# 1. look up application
app = laconic.get_record(app_deployment_request.attributes.application, require=True)
@@ -291,10 +282,23 @@ def command(ctx, kube_config, laconic_config, image_registry, deployment_parent_
for r in requests_to_execute:
dump_known_requests(state_file, [r], "DEPLOYING")
status = "ERROR"
run_log_file = None
run_reg_client = laconic
try:
run_id = f"{r.id}-{str(time.time()).split('.')[0]}-{str(uuid.uuid4()).split('-')[0]}"
if log_dir:
run_log_dir = os.path.join(log_dir, r.id)
if not os.path.exists(run_log_dir):
os.mkdir(run_log_dir)
run_log_file_path = os.path.join(run_log_dir, f"{run_id}.log")
print(f"Directing deployment logs to: {run_log_file_path}")
run_log_file = open(run_log_file_path, "wt")
run_reg_client = LaconicRegistryClient(laconic_config, log_file=run_log_file)
process_app_deployment_request(
run_id,
ctx,
laconic,
run_reg_client,
r,
record_namespace_deployments,
record_namespace_dns,
@@ -302,8 +306,12 @@ def command(ctx, kube_config, laconic_config, image_registry, deployment_parent_
os.path.abspath(deployment_parent_dir),
kube_config,
image_registry,
log_dir
run_log_file
)
status = "DEPLOYED"
except Exception as e:
print("ERROR: " + str(e), file=run_log_file)
finally:
dump_known_requests(state_file, [r], status)
if run_log_file:
run_log_file.close()
+29 -14
View File
@@ -39,13 +39,19 @@ class AttrDict(dict):
return v
def cmd(*vargs):
def logged_cmd(log_file, *vargs):
result = None
try:
if log_file:
print(" ".join(vargs), file=log_file)
result = subprocess.run(vargs, capture_output=True)
result.check_returncode()
return result.stdout.decode()
except Exception as err:
print(result.stderr.decode())
if result:
print(result.stderr.decode(), file=log_file)
else:
print(str(err), file=log_file)
raise err
@@ -58,8 +64,9 @@ def match_owner(recordA, *records):
class LaconicRegistryClient:
def __init__(self, config_file):
def __init__(self, config_file, log_file=None):
self.config_file = config_file
self.log_file = log_file
self.cache = AttrDict(
{
"name_or_id": {},
@@ -77,7 +84,7 @@ class LaconicRegistryClient:
args.append("--%s" % k)
args.append(str(v))
results = [AttrDict(r) for r in json.loads(cmd(*args))]
results = [AttrDict(r) for r in json.loads(logged_cmd(self.log_file, *args))]
# Most recent records first
results.sort(key=lambda r: r.createTime)
@@ -115,7 +122,7 @@ class LaconicRegistryClient:
args = ["laconic", "-c", self.config_file, "cns", "name", "resolve", name]
parsed = [AttrDict(r) for r in json.loads(cmd(*args))]
parsed = [AttrDict(r) for r in json.loads(logged_cmd(self.log_file, *args))]
if parsed:
self._add_to_cache(parsed)
return parsed[0]
@@ -145,7 +152,7 @@ class LaconicRegistryClient:
name_or_id,
]
parsed = [AttrDict(r) for r in json.loads(cmd(*args))]
parsed = [AttrDict(r) for r in json.loads(logged_cmd(self.log_file, *args))]
if len(parsed):
self._add_to_cache(parsed)
return parsed[0]
@@ -173,22 +180,22 @@ class LaconicRegistryClient:
record_file = open(record_fname, 'w')
yaml.dump(record, record_file)
record_file.close()
print(open(record_fname, 'r').read())
print(open(record_fname, 'r').read(), file=self.log_file)
new_record_id = json.loads(
cmd("laconic", "-c", self.config_file, "cns", "record", "publish", "--filename", record_fname)
logged_cmd(self.log_file, "laconic", "-c", self.config_file, "cns", "record", "publish", "--filename", record_fname)
)["id"]
for name in names:
self.set_name(name, new_record_id)
return new_record_id
finally:
cmd("rm", "-rf", tmpdir)
logged_cmd(self.log_file, "rm", "-rf", tmpdir)
def set_name(self, name, record_id):
cmd("laconic", "-c", self.config_file, "cns", "name", "set", name, record_id)
logged_cmd(self.log_file, "laconic", "-c", self.config_file, "cns", "name", "set", name, record_id)
def delete_name(self, name):
cmd("laconic", "-c", self.config_file, "cns", "name", "delete", name)
logged_cmd(self.log_file, "laconic", "-c", self.config_file, "cns", "name", "delete", name)
def file_hash(filename):
@@ -227,8 +234,16 @@ def build_container_image(app_record, tag, extra_build_args=[], log_file=None):
git_env = dict(os.environ.copy())
# Never prompt
git_env["GIT_TERMINAL_PROMPT"] = "0"
subprocess.check_call(["git", "clone", repo, clone_dir], env=git_env, stdout=log_file, stderr=log_file)
subprocess.check_call(["git", "checkout", ref], cwd=clone_dir, env=git_env, stdout=log_file, stderr=log_file)
try:
subprocess.check_call(["git", "clone", repo, clone_dir], env=git_env, stdout=log_file, stderr=log_file)
except Exception as e:
print(f"git clone failed. Is the repository {repo} private?", file=log_file)
raise e
try:
subprocess.check_call(["git", "checkout", ref], cwd=clone_dir, env=git_env, stdout=log_file, stderr=log_file)
except Exception as e:
print(f"git checkout failed. Does ref {ref} exist?", file=log_file)
raise e
else:
result = subprocess.run(["git", "clone", "--depth", "1", repo, clone_dir], stdout=log_file, stderr=log_file)
result.check_returncode()
@@ -249,7 +264,7 @@ def build_container_image(app_record, tag, extra_build_args=[], log_file=None):
result = subprocess.run(build_command, stdout=log_file, stderr=log_file)
result.check_returncode()
finally:
cmd("rm", "-rf", tmpdir)
logged_cmd(log_file, "rm", "-rf", tmpdir)
def push_container_image(deployment_dir, log_file=None):
+8 -1
View File
@@ -83,7 +83,7 @@ $TEST_TARGET_SO --stack test deploy down --delete-volumes
# Basic test of creating a deployment
test_deployment_dir=$CERC_REPO_BASE_DIR/test-deployment-dir
test_deployment_spec=$CERC_REPO_BASE_DIR/test-deployment-spec.yml
$TEST_TARGET_SO --stack test deploy init --output $test_deployment_spec --config CERC_TEST_PARAM_1=PASSED
$TEST_TARGET_SO --stack test deploy init --output $test_deployment_spec --config CERC_TEST_PARAM_1=PASSED,CERC_TEST_PARAM_3=FAST
# Check the file now exists
if [ ! -f "$test_deployment_spec" ]; then
echo "deploy init test: spec file not present"
@@ -141,6 +141,13 @@ else
echo "deployment compose config test: FAILED"
exit 1
fi
# Check the config variable CERC_TEST_PARAM_3 was passed correctly
if [[ "$log_output_3" == *"Test-param-3: FAST"* ]]; then
echo "deployment config test: passed"
else
echo "deployment config test: FAILED"
exit 1
fi
# Check that the ConfigMap is mounted and contains the expected content.
log_output_4=$( $TEST_TARGET_SO deployment --dir $test_deployment_dir logs )