Research
Security News
Malicious npm Package Targets Solana Developers and Hijacks Funds
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
github.com/goplugin/plugin-testing-framework/k8s-test-runner
Ensure you complete the following steps before executing tests on the staging environment:
Connect to the VPN
AWS Login with Staging Profile
Authenticate to AWS using your staging profile, specifically with the StagingEKSAdmin
role. Execute the following command:
aws sso login --profile staging
Verify Authorization
Confirm your authorization status by listing the namespaces in the staging cluster. Run kubectl get namespaces
. If you see a list of namespaces, this indicates successful access to the staging cluster.
Before running tests, you must create a Docker image containing the test binary. To do this, execute the create-test-image
command and provide the path to the test folder you wish to package. This command:
<path-to-test-folder>
go run ./cmd/main.go create-test-image --image-registry-url <staging-ecr-registry-url> --image-tag "<image-tag>" "<path-to-test-folder>"
Where image-tag
should be a descriptive name for your test, such as "mercury-load-tests".
If a Docker image containing the test binary is available in an image registry (such as staging ECR), use run
command to execute the test in K8s.
go run ./cmd/main.go run -c "<path-to-test-runner-toml-config>"
The TOML config should specify the test runner configuration as follows:
namespace = "e2e-tests"
rbac_role_name = "" # RBAC role name for the chart
image_registry_url = "" # URL to the ECR containing the test binary image, e.g., staging ECR URL
image_name = "k8s-test-runner"
image_tag = "" # The image tag to use, like "mercury-load-tests" (see readme above)
job_count = "1"
test_name = "TestMercuryLoad/all_endpoints"
test_timeout = "24h"
test_config_base64_env_name = "LOAD_TEST_BASE64_TOML_CONTENT"
test_config_file_path = "/Users/lukasz/Documents/test-configs/load-staging-testnet.toml"
resources_requests_cpu = "1000m"
resources_requests_memory = "512Mi"
resources_limits_cpu = "2000m"
resources_limits_memory = "1024Mi"
[envs]
WASP_LOG_LEVEL = "info"
TEST_LOG_LEVEL = "info"
MERCURY_TEST_LOG_LEVEL = "info"
Where:
test_name
is the name of the test to run (must be included in the test binary).test_config_env_name
is the name of the environment variable used to provide the test configuration for the test (optional).test_config_file_path
is the path to the configuration file for the test (optional).This example demonstrates the process step by step. First, it shows how to download the Kubernetes Test Runner. Next, it details the use of the Test Runner to create a test binary specifically for the Mercury "e2e_tests/staging_prod/tests/load" test package. Finally, it describes executing the test in Kubernetes using a customized test runner configuration.
- name: Download K8s Test Runner
run: |
mkdir -p k8s-test-runner
cd k8s-test-runner
curl -L -o k8s-test-runner.tar.gz https://github.com/goplugin/plugin-testing-framework/releases/download/v0.2.4/test-runner.tar.gz
tar -xzf k8s-test-runner.tar.gz
chmod +x k8s-test-runner-linux-amd64
Alternatively, you can place the k8s-test-runner package within your repository and unpack it:
- name: Unpack K8s Test Runner
run: |
cd e2e_tests
mkdir -p k8s-test-runner
tar -xzf k8s-test-runner-v0.0.1.tar.gz -C k8s-test-runner
chmod +x k8s-test-runner/k8s-test-runner-linux-amd64
Then:
- name: Build K8s Test Runner Image
if: github.event.inputs.test-type == 'load' && github.event.inputs.rebuild-test-image == 'yes'
run: |
cd e2e_tests/k8s-test-runner
./k8s-test-runner-linux-amd64 create-test-image --image-registry-url "${{ secrets.AWS_ACCOUNT_ID_STAGING }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com" --image-tag "mercury-load-test" "../staging_prod/tests/load"
- name: Run Test in K8s
run: |
cd e2e_tests/k8s-test-runner
cat << EOF > config.toml
namespace = "e2e-tests"
rbac_role_name = "" # RBAC role name for the chart
image_registry_url = "${{ secrets.AWS_ACCOUNT_ID_STAGING }}.dkr.ecr.${{ secrets.AWS_REGION }}.amazonaws.com"
image_name = "k8s-test-runner"
image_tag = "mercury-load-test"
job_count = "1"
chart_path = "./chart"
test_name = "TestMercuryLoad/all_endpoints"
test_timeout = "24h"
resources_requests_cpu = "1000m"
resources_requests_memory = "512Mi"
resources_limits_cpu = "2000m"
resources_limits_memory = "1024Mi"
test_config_base64_env_name = "LOAD_TEST_BASE64_TOML_CONTENT"
test_config_base64 = "${{ steps.conditional-env-vars.outputs.LOAD_TEST_BASE64_TOML_CONTENT }}"
[envs]
WASP_LOG_LEVEL = "info"
TEST_LOG_LEVEL = "info"
MERCURY_TEST_LOG_LEVEL = "info"
EOF
./k8s-test-runner-linux-amd64 run -c config.toml
Run ./package <version>
FAQs
Unknown package
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Security News
A malicious npm package targets Solana developers, rerouting funds in 2% of transactions to a hardcoded address.
Security News
Research
Socket researchers have discovered malicious npm packages targeting crypto developers, stealing credentials and wallet data using spyware delivered through typosquats of popular cryptographic libraries.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.