Skip to content

Conversation

@dmishra-aero
Copy link

@dmishra-aero dmishra-aero commented Dec 22, 2025

  1. Added a mechanism to build up a single node cluster with SC Mode
  2. Added a custom action to build up a single-node EE cluster setup especially for SC set up
  3. Added a mechanism to build up a multiNode cluster with SC Mode
  4. Added support for prompting user to provides modes in workflow UI
  5. Created a re-usable merge coverage workflow generating merged coverage report across all job happened within a workflow
  6. Created a secret in repo containing base64 encoded content of feature.conf file used by Multi node set-up jobs
  7. Skipped a failing test case for now which is tracked here -> CLIENT-4009
  8. Added a custom config file that has SC enabled
  9. For probing the coverage report for specific or overall files , user can either download the coverage-html folder from the uploaded artifact and can do following things
    • open theindex.htmlfile to see the uncovered lines

Note :

  • reugn/github-action-aerospike@v1 is unusable for single-node EE cluster setup because of bugs.

@dmishra-aero dmishra-aero force-pushed the CLIENT-3898-go-cov-pipeline branch from c74cc84 to 198fbd9 Compare December 22, 2025 09:28
Copy link
Collaborator

@khaf khaf left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There are some issues in the workflow and test infra which should be addressed.

docker run --rm --network host aerospike/aerospike-tools "$@"
}

while true; do
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This will hang indefinitely if the server does not start for some reason.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Some kind of timeout mechanism should be implemented here, maybe for 30s or other acceptable duration.

Copy link
Author

@dmishra-aero dmishra-aero Dec 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess git step have some default timeout if such thing happen ,
but it make sense to have our own timeout, we can configure at git step level which would be more cleaner

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would recommend timeout with exponential and multiplied delay on every iteration. Cap at certain number of intervals. I would make timeout and number of intervals configurable via actions vars.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

run: |
echo "Go version: ${{ steps.get-go-version.outputs.go-version }}"
echo 'Matrix output:'
echo '${{ steps.create-server-matrix.outputs.matrix }}' | jq .
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

here as well.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

uses: ./.github/workflows/merge-coverage.yml
with:
artifact_pattern: cover_*
threshold: 65
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same here.

with:
name: coverage-html
path: coverage-reports
if-no-files-found: error No newline at end of file
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And here.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

serverCommand := types.Ternary(
serverVersion.IsGreaterOrEqual(version.ServerVersion_8_1),
"release",
serverVersion.IsGreaterOrEqual(version.ServerVersion_8_1),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No such key available as of v8.1.0.1. Should be reverted.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

PR has already been created here -#584

@@ -0,0 +1,68 @@
# Aerospike database configuration file
Copy link
Collaborator

@mirzakaracic mirzakaracic Dec 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To enable sc mode all you have to do is aerolab conf sc. In fact anything you need to change with the conf you should be able to do with aerolab conf....

❯ al conf
Usage:
aerolab [OPTIONS] conf [command]

Global Options:
--beep cause the terminal to beep on exit; if specificied multiple times, will be once on success and >1 on failure
--beepf like beep, but does not trigger beep on success, only failures

Available commands:
generate Generate or modify Aerospike configuration files
sc Configure the cluster to use strong-consistency, with roster and optional RF changes
fix-mesh Fix mesh configuration in the cluster
rackid Change/add rack-id to namespaces in the existing cluster nodes
namespace-memory Adjust memory for a namespace using total percentages
adjust Adjust running Aerospike configuration parameters
help Print help

Unless aerolab conf... does not allow you to set an option I would not create configurations file.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tried creating a cluster using Aerolab and then running the aerolab conf sc command, but it didn’t work. Although the configuration appears to be updated when inspecting the node, the cluster does not actually operate in SC mode, and the test cases fail. However, when I create the cluster by providing a custom configuration upfront, the cluster operates correctly in SC mode, and all the test cases pass. Even with aerolab if you use aerolab cluster create -v 8.1.0.1 -n aero-sc -o /.github/config/aerospike-sc.conf then this works but we need to pass config file upfront

Copy link
Author

@dmishra-aero dmishra-aero Dec 23, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Additionally, the configuration requires the flag strong-consistency-allow-expunge true without it, some test cases particularly delete operation fail with the error Operation not allowed this time. This setting, when enabled after cluster creation, does not take effect as expected. It only works correctly when supplied upfront as part of config file during cluster creation.

 default_json: |
            {
              "stable": { "version": "8.1.0.1" },
              "release": { "version": "8.1.0.1_2" }
        }

Also if we use aerolab to download above version during single node deployment, the release one will fail as they are docker tags..but not present in https://download.aerospike.com/artifacts/aerospike-server-enterprise/ which aerolab uses to fetch the artifact from

jobs:
make-matrix:
runs-on: ubuntu-latest
runs-on: ubuntu-latest
Copy link
Collaborator

@mirzakaracic mirzakaracic Dec 22, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would not use lates version of anything. Things start breaking for the moment new disto is out. I would pin to a version. Also make this configurable via vars. Take a look at this line

https://github.com/aerospike/aerospike-client-java/blob/47fb080784a7a6205d9c92b0a6f98f4e041d23a4/.github/workflows/promote.yaml#L35

I would make sure to fix this in all the workflows you have added/updated.

Copy link
Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done

@dmishra-aero dmishra-aero force-pushed the CLIENT-3898-go-cov-pipeline branch 7 times, most recently from 39beca3 to acc89c2 Compare December 23, 2025 15:25
@dmishra-aero dmishra-aero force-pushed the CLIENT-3898-go-cov-pipeline branch 9 times, most recently from dfd3a87 to 41034c4 Compare December 24, 2025 17:42
@dmishra-aero dmishra-aero force-pushed the CLIENT-3898-go-cov-pipeline branch from 41034c4 to 98b649d Compare December 24, 2025 18:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants