commit d6a94e6b4adc575f657184b988db74ddd5bf6256
Author: Greg Althaus <galthaus@austin.rr.com>
Date: Mon Apr 18 12:14:27 2022 -0500
build: update to cli 493
M go.mod
M go.sum
commit 8ea28701754065c5474a63fba87c9d0bc1187b3d
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Tue Apr 5 12:15:23 2022 -0500
test(cli): Stop running provision unit tests for now.
The test strategy needs to be reworked to make the unit tests in
gitlab.com/rackn/provision track the right version of dr-provision to
use, and they also need to remove some tests that tie things too
closely to implementation details around how the server presents
things.
Until that work is done, skip the client tests.
M .gitlab-ci.yml
M tools/test.sh
commit 74bb41f1ed09a1a61361c8eec5874d58ed130d98
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Fri Apr 1 09:37:23 2022 -0500
Bump test timeouts
M tools/multitest.sh
M tools/test.sh
commit 7325a15cc12d4a0a46d19274c1659a4a842a29a8
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Mon Mar 21 09:32:30 2022 -0500
feat(upgrade): Implement rolling upgrades for consensus clusters.
Two-phase dr-provision upgrades in consensus clusters should now
function correctly. The APIs in question are:
POST /api/v3/system/upgrade/stage to stage an upgrade. The body of the
POST is a dr-provision upgrade zip appropriate to the architecture.
When the API call returns wuth success, the upgrade package will be
staged and ready to go on all cluster members.
DELETE /api/v3/system/upgrade/stage to unstage an upgrade. This will
also stop any in-progress per-node upgrades.
POST /api/v3/system/upgrade/run to start a staged upgrade. This
will have each node in the cluster swap out the running binaries
with the staged ones and restart. Work on the next node in the cluster
will not start until the current node has come back up and is fully
synchronized with the leader. The leader will be the last node to be
upgraded to minimize cluster downtime. The API call will return after
starting the process in the background.
GET /api/v3/system/upgrade/status to get the status of an in-progress
upgrade.
M .gitignore
M .gitlab-ci.yml
M backend/dataTracker.go
M backend/upgrade.go
M clitest/test-data/output/TestAuth/info.get/stdout.expect
M clitest/test-data/output/TestInfoCli/info.get/stdout.expect
M clitest/test-data/output/TestStagedUpgradeBits/system.upgrade.status.2/stdout.expect
M clitest/test-data/output/TestUserCli/users.token.rocketskates.scope.all.ttl.330.action.list.specific.asdgag/stdout.expect
M clitest/test-data/output/TestUserCli/users.token.rocketskates/stdout.expect
M cmds/license/license.go
M consensus/serverAPI.go
M frontend/consensus.go
M frontend/frontend.go
M frontend/system.go
M mgr-multiversion-tests/common_test.go
A rolling_upgrade_tests/rolling_upgrade_test.go
M server/args.go
A test/runningServer.go
M tools/test_prereqs.sh
A utils/copyFile.go
M version.go
commit 1bcaff922a47e3417e8cd2f05c6819a604a9c4b1
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Thu Mar 10 15:55:58 2022 -0600
fix(package): package.sh no longer needs to build drpcli.
build.sh handles building drpcli and placing it into the approproiate
bin directory.
While we are at it, make package.sh and publish.sh be flexible in what
they handle the same way build.sh does.
M tools/package.sh
M tools/publish.sh
commit 33bd571637c0d927cdbdf2009867c7e2b0847c22
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Thu Mar 10 12:04:02 2022 -0600
fix(tests): uname -o is not supported on darwin/amd64.
No idea how I missed it. Fix a bug I introducec in build.sh while I am at it.
M clitest/tasks_test.go
A clitest/test-data/output/TestTaskMeta/contents.upload.ec9bc6828b1a839a1a81b598a2c2b209/stdout.expect
M tools/build.sh
M tools/test.sh
commit 8c5c02d85fe267975e6f3c7415390ac3f75e5fad
Author: Greg Althaus <galthaus@austin.rr.com>
Date: Wed Mar 9 16:14:52 2022 -0600
fix: update gitignore and a typo in test.sh
M .gitignore
M tools/test.sh
commit c561c20235e8e2759784c2873d0d5447b869e326
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Tue Mar 8 13:42:19 2022 -0600
build(arm64): Add darwin/arm64 as a build target.
This adds support for building, running and testing on MacOS systems running
on Apple silicon and (potentially) other arm64 variants. It mostly consists
of building the appropriate binaries and fixing up the unit tests to remove
some assumptions that only work on Linux without intervention along with
vreious references to amd64 that do not always apply.
M clitest/test-data/output/TestAuth/info.get/stdout.expect
M clitest/test-data/output/TestAuth/machines.list.611601b3efac342fd10027372140fe8c/stdout.expect
M clitest/test-data/output/TestAuth/machines.list.e8e0775e692adbcb8acdf3799178655c/stdout.expect
M clitest/test-data/output/TestFilesCli/files.list.2/stdout.expect
M clitest/test-data/output/TestFilesCli/files.list.3/stdout.expect
M clitest/test-data/output/TestFilesCli/files.list/stdout.expect
M clitest/test-data/output/TestInfoCli/info.get/stdout.expect
M clitest/test-data/output/TestLoadIncrementer/system.ha.dump/stdout.expect
M clitest/test-data/output/TestLoadIncrementer/system.ha.enroll.https/127.0.0.1.10001.rocketskates.r0cketsk8ts.ConsensusAddr.127.0.0.1.10010/stdout.expect
M clitest/test-data/output/TestLoadIncrementer/system.ha.enroll.https/127.0.0.1.10200.rocketskates.r0cketsk8ts.ConsensusAddr.127.0.0.1.10210/stdout.expect
M clitest/test-data/output/TestLoadIncrementer/system.ha.enroll.https/127.0.0.1.10300.rocketskates.r0cketsk8ts.ConsensusAddr.127.0.0.1.10310.Observer.true/stdout.expect
M clitest/test-data/output/TestMultiArch/files.static.amd64/amd64/kernel/stdout.expect
M clitest/test-data/output/TestMultiArch/files.static.arm64/arm64/kernel/stdout.expect
M clitest/test-data/output/TestMultiArch/files.static.default.ipxe/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/install.10/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/install.6/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/install.7/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/install.8/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/install.9/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/lines.10/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/lines.6/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/lines.8/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/url.10/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/url.6/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/url.7/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/url.8/stdout.expect
M clitest/test-data/output/TestRepos/machines/c9196b77-deef-4c8e-8130-299b3e3d9a10/url.9/stdout.expect
M clitest/test-data/output/TestTheLast/system.ha.dump/stdout.expect
M clitest/test-data/output/TestUserCli/users.token.rocketskates.scope.all.ttl.330.action.list.specific.asdgag/stdout.expect
M clitest/test-data/output/TestUserCli/users.token.rocketskates/stdout.expect
A clitest/test-data/output/TestWorkflowContextSwitching/tasks.destroy.aLLdone/stdout.expect
M consensus/raft.go
M consensus/serverAPI.go
M embedded/assets.go
M embedded/assets_test.go
M failover_test/consensus_failover_test.go
M failover_test/ssa_replication_test.go
M go.mod
M go.sum
M manager-tests/test-data/output/TestManagerFunctions/client2.59b4313b3b0696cc4a926358806b1846/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/client2.machines.update.Name.sub2-cl1-mac2.91062baa8a58365809d0460f5bcb2a45/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.b7cc7794eba2d87989d607a504ccca9f/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.2/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.3/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.4/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.5/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.6/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.list.e5b1e4bcad9ef0a7b91360e3033c60b9.7/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.show.client1.3/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.show.client2.2/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.show.client2.3/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.update.client1.a6226a367eab44beb37739efb7e41b80/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.update.client2.b98f1845f8b4f63f1034c3997f7c4e74/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.update.sub2-client1.a9bb494991ddce8520400f7e34807b3e/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.endpoints.update.sub2-client2.b2f1f538f7b35e73dfef03b231f9b9e6/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/manager1.machines.update.Name.sub2-cl1-mac3.082b6fe83446c34c91075694be613b32/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/sub2-client1.2c4d1659be0ade2bb08e5d189280b820/stdout.expect
M manager-tests/test-data/output/TestManagerFunctions/sub2-client1.machines.update.Name.sub2-cl1-mac1.d756dd207e240a4b52dda67004f025e1/stdout.expect
M mgr-multiversion-tests/common_test.go
A provision.rb
M test/server.go
M tools/build.sh
M tools/build_cli.sh
A tools/simple_version.sh
commit e2c112855cd35acff1b2c59f5679c5b9abfdaabd
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Tue Mar 8 15:33:33 2022 -0600
build(drpcli): Add drpcli to bin/$GOOS/$GOARCH in tools/build.sh
We are aldready building an appropriate version of drpcli as part of
the server workflow. May as well copy it over to the appropriate bin
directory as part of the process to make local use easier.
M tools/build.sh
commit 3cfc8b483a1a65f1fcc8d42e6dc7b5e9a2971966
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Wed Mar 9 15:24:01 2022 -0600
Fix busted tracing on startup
D clitest/test-data/output/TestWorkflowContextSwitching/tasks.destroy.aLLdone/stderr.expect
M server/args.go
commit 85f4965650cd5fc5b89fb61a6032283d4efda120
Author: Victor Lowther <victor.lowther@gmail.com>
Date: Wed Mar 9 09:10:11 2022 -0600
fix(deadlock): Cert rotation can deadlock on follower startup.
On startup of a cluster, there is a chance that a follower can deadlock if it
attempts to open a connection to another cluster member at the same time that
the raft state machine is updating the shared root certificates.
Fix the deadlock by making the stored list of per-cluster root certs an
atomic value instead of guarding it with a mutex.
M consensus/raft.go
M consensus/raftFSM.go
M consensus/serverAPI.go
End of Note