8.3.2.157. v4.9.3ΒΆ

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