CNTRLPLANE-4110: Migrate e2e encryption perf cases to ote - #2256
Conversation
|
Pipeline controller notification For optional jobs, comment This repository is configured in: LGTM mode |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughThe change adds a configurable encryption performance test, moves its scenario and resource helpers into the package, validates operator state and migration timing, and registers one serial suite in the external test binary. ChangesEncryption performance testing
Estimated code review effort: 3 (Moderate) | ~20 minutes Sequence Diagram(s)sequenceDiagram
participant GinkgoSuite
participant testPerfEncryption
participant KubeAPIServerOperator
participant KubernetesAPI
GinkgoSuite->>testPerfEncryption: pass resolved provider
testPerfEncryption->>KubeAPIServerOperator: retrieve operator conditions
testPerfEncryption->>KubernetesAPI: validate resources and migration timing
testPerfEncryption->>KubernetesAPI: create namespaces, Secrets, and ConfigMaps
KubernetesAPI-->>testPerfEncryption: return creation statistics
Suggested reviewers: 🚥 Pre-merge checks | ✅ 13 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (13 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
9609ee5 to
a148eab
Compare
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (1)
test/e2e-encryption-perf/encryption_perf.go (1)
67-90: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueReplace the
require.NoErrorpattern with a direct failure call.Each branch builds an error that is always non-nil, then passes it to
require.NoError. The intent is a direct failure.require.Failfstates the intent and removes the unusederrorsconstruction. Add the missing failure detail to the assertion message, as the coding guidelines require meaningful failure messages.Note that
errorStoreis accepted but never inspected. If the loader records creation errors there, reporting them would make a failed threshold much easier to diagnose.♻️ Proposed refactor
AssertDBPopulatedFunc: func(t testing.TB, errorStore map[string]int, statStore map[string]int) { secretsCount, ok := statStore[secretsStatsKey] if !ok { - err := errors.New("missing secrets count stats, can't continue the test") - require.NoError(t, err) + require.Failf(t, "missing secrets count stats", "key %q not found in statStore, errorStore: %v", secretsStatsKey, errorStore) } - if secretsCount < 25000 { - err := fmt.Errorf("expected to create at least 25000 secrets but %d were created", secretsCount) - require.NoError(t, err) - } + require.GreaterOrEqualf(t, secretsCount, 25000, + "expected to create at least 25000 secrets, errorStore: %v", errorStore) t.Logf("Created %d secrets", secretsCount) configMpasCount, ok := statStore[cmStatsKey] if !ok { - err := errors.New("missing configmaps count stats, can't continue the test") - require.NoError(t, err) + require.Failf(t, "missing configmaps count stats", "key %q not found in statStore, errorStore: %v", cmStatsKey, errorStore) } - if configMpasCount < 14000 { - err := fmt.Errorf("expected to create at least 14000 configmaps but %d were created", configMpasCount) - require.NoError(t, err) - } + require.GreaterOrEqualf(t, configMpasCount, 14000, + "expected to create at least 14000 configmaps, errorStore: %v", errorStore) t.Logf("Created %d configmaps", configMpasCount) - },Remove the
errorsimport if no other use remains.As per coding guidelines: "Assertions should include meaningful failure messages that help diagnose what went wrong."
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@test/e2e-encryption-perf/encryption_perf.go` around lines 67 - 90, Update AssertDBPopulatedFunc to replace each always-failing require.NoError call with require.Failf using meaningful failure messages that include the missing-stat or threshold details. Remove the errors import if it is no longer used, and inspect errorStore to include recorded creation errors in the failure diagnostics when available.Source: Coding guidelines
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@test/e2e-encryption-perf/encryption_perf.go`:
- Around line 98-106: Update the test setup around DBLoaderFunc to capture each
namespace generated by createNamespace, then register cleanup via AfterEach or
DeferCleanup that deletes all three namespaces after the test. Ensure cleanup
runs even when the test fails and preserves the existing resource-generation
flow.
- Around line 32-45: The configurable encryption-perf spec currently reads the
unparsed provider flag when executed through OTE, causing it to default to
AESCBC and duplicate the dedicated AESCBC spec. Update testPerfEncryption’s
provider selection in the encryption-perf registration to use an OTE-supported
input such as an environment variable, or remove the configurable spec while
preserving the explicit AESCBC and AESGCM specs.
---
Nitpick comments:
In `@test/e2e-encryption-perf/encryption_perf.go`:
- Around line 67-90: Update AssertDBPopulatedFunc to replace each always-failing
require.NoError call with require.Failf using meaningful failure messages that
include the missing-stat or threshold details. Remove the errors import if it is
no longer used, and inspect errorStore to include recorded creation errors in
the failure diagnostics when available.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 33372aa8-900f-4b3f-8f3c-64546b9a553e
📒 Files selected for processing (4)
cmd/cluster-kube-apiserver-operator-tests-ext/dependencymagnet.gocmd/cluster-kube-apiserver-operator-tests-ext/main.gotest/e2e-encryption-perf/encryption_perf.gotest/e2e-encryption-perf/encryption_perf_test.go
| DBLoaderWorkers: 3, | ||
| DBLoaderFunc: library.DBLoaderRepeat(1, true, | ||
| createNamespace, | ||
| waitUntilNamespaceActive, | ||
| library.DBLoaderRepeatParallel(5010, 50, false, createConfigMap, reportConfigMap), | ||
| library.DBLoaderRepeatParallel(9010, 50, false, createSecret, reportSecret)), | ||
| EncryptionProvider: library.EncryptionProvider{APIServerEncryption: configv1.APIServerEncryption{Type: encType}}, | ||
| }) | ||
| } |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟠 Major | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Description: Check whether library-go's TestPerfEncryption or DBLoader deletes the loaded namespace.
set -uo pipefail
LIBDIR=$(fd -t d -p 'library-go/test/library/encryption$' vendor "${GOPATH:-$HOME/go}/pkg/mod" 2>/dev/null | head -1)
echo "lib dir: ${LIBDIR:-not found}"
if [ -n "${LIBDIR:-}" ]; then
echo "=== outline ==="
ast-grep outline "$LIBDIR" --items all
echo "=== namespace deletion / cleanup ==="
rg -nP -C4 'Namespaces\(\)\.Delete|Cleanup\(|defer .*Delete' "$LIBDIR"
echo "=== TestPerfEncryption body ==="
rg -nP -A60 '^func TestPerfEncryption\(' "$LIBDIR"
fiRepository: openshift/cluster-kube-apiserver-operator
Length of output: 14922
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "=== loader implementations ==="
sed -n '1,260p' vendor/github.com/openshift/library-go/test/library/encryption/perf_helpers.go
echo "=== caller and namespace lifecycle ==="
rg -n -C8 'TestPerfEncryption|createNamespace|waitUntilNamespaceActive|DBLoaderRepeat|EncryptionProvider' test/e2e-encryption-perf --glob '*.go'
echo "=== all cleanup references for generated namespaces ==="
rg -n -C5 'createNamespaceName|Delete\(.*Namespace|Namespaces\(\)|DeferCleanup|AfterEach|Cleanup' vendor/github.com/openshift/library-go/test/library/encryption test/e2e-encryption-perf --glob '*.go'Repository: openshift/cluster-kube-apiserver-operator
Length of output: 20862
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "=== object creation bodies ==="
sed -n '100,148p' test/e2e-encryption-perf/encryption_perf.go
echo "=== deterministic loader count verifier ==="
python3 - <<'PY'
runner_workers = 3
configmap_iterations = (5010 // 50) * 50
secret_iterations = (9010 // 50) * 50
namespaces = runner_workers
configmaps = runner_workers * configmap_iterations
secrets = runner_workers * secret_iterations
assert configmap_iterations == 5000
assert secret_iterations == 9000
assert namespaces == 3
assert configmaps == 15000
assert secrets == 27000
assert configmaps + secrets == 42000
print({
"namespaces": namespaces,
"configmaps": configmaps,
"secrets": secrets,
"objects": configmaps + secrets,
})
PYRepository: openshift/cluster-kube-apiserver-operator
Length of output: 2076
Delete the generated namespaces after the test.
The test creates 3 generated namespaces containing 15,000 ConfigMaps and 27,000 Secrets. Capture each namespace and register cleanup with AfterEach or DeferCleanup.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@test/e2e-encryption-perf/encryption_perf.go` around lines 98 - 106, Update
the test setup around DBLoaderFunc to capture each namespace generated by
createNamespace, then register cleanup via AfterEach or DeferCleanup that
deletes all three namespaces after the test. Ensure cleanup runs even when the
test fails and preserves the existing resource-generation flow.
Source: Coding guidelines
|
/pipeline required |
|
Scheduling required tests: Scheduling tests matching the |
| testPerfEncryption(g.GinkgoTB(), configv1.EncryptionType(*provider)) | ||
| }) | ||
|
|
||
| g.It("TestPerfEncryptionAESCBC [Serial][Timeout:120m][Suite:encryption-perf-aescbc]", func() { |
There was a problem hiding this comment.
why do we have 3 test cases after the migration ?
i think that before the migration there was just a single test case.
There was a problem hiding this comment.
The problem is that the perf test uses a -provider flag to pick the encryption provider from makefile we pass as argument TEST_E2E_ENCRYPTION_PERF_TARGETS=$(addprefix test-e2e-encryption-perf-,$(ENCRYPTION_PROVIDERS))
from ci job but in the OTE (Ginkgo) suite there's only one g.It("TestPerfEncryption", ...) spec — so it always runs with the default (aescbc). we can't pass -args -provider=aesgcm through the OTE runner.
There was a problem hiding this comment.
ok but how many providers have we been testing in CI in the old (current) mode/approach ?
There was a problem hiding this comment.
3
- one default for single node
- AESCBC
- AESGCM
There was a problem hiding this comment.
do we have 3 separate jobs for each mode ?
There was a problem hiding this comment.
is there a mechanism in OTE to pass a "provider" flag ? thanks to that we could have a singe suite and pass different providers form the CI jobs.
There was a problem hiding this comment.
there is no mechanism but we can workaround with env var
There was a problem hiding this comment.
nice. i'm ok with that. thx.
| }) | ||
|
|
||
| extension.AddSuite(oteextension.Suite{ | ||
| Name: "openshift/cluster-kube-apiserver-operator/encryption-perf", |
There was a problem hiding this comment.
do we already have a new job defined ?
|
|
||
| var provider = flag.String("provider", "aescbc", "encryption provider used by the tests") | ||
|
|
||
| func TestPerfEncryption(tt *testing.T) { |
There was a problem hiding this comment.
could we add our "standard" comment for this function ?
a148eab to
2aa0252
Compare
|
Note GitHub couldn't provide a complete incremental comparison for this pull request, so CodeRabbit is performing a full review instead. This review may take a little longer. |
There was a problem hiding this comment.
Actionable comments posted: 2
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@test/e2e-encryption-perf/encryption_perf.go`:
- Around line 67-88: Add operation-specific messages to each require.NoError
call in AssertDBPopulatedFunc: identify missing secrets statistics, insufficient
secrets count, missing configmap statistics, and insufficient configmap count,
while preserving the existing validation behavior.
- Around line 60-62: Replace context.TODO() in GetOperatorConditionsFunc and the
related Kubernetes loader callbacks with the test context from tt.Context(),
deriving a bounded child context for each API request. Update the wait.Poll flow
to use context-aware polling so cancellation and the 30-second deadline
interrupt stalled callbacks.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 9149192e-16b1-4803-b1c2-b85f60556cc6
📒 Files selected for processing (4)
cmd/cluster-kube-apiserver-operator-tests-ext/dependencymagnet.gocmd/cluster-kube-apiserver-operator-tests-ext/main.gotest/e2e-encryption-perf/encryption_perf.gotest/e2e-encryption-perf/encryption_perf_test.go
🚧 Files skipped from review as they are similar to previous changes (2)
- cmd/cluster-kube-apiserver-operator-tests-ext/dependencymagnet.go
- cmd/cluster-kube-apiserver-operator-tests-ext/main.go
| GetOperatorConditionsFunc: func(t testing.TB) ([]operatorv1.OperatorCondition, error) { | ||
| apiServerOperator, err := operatorClient.Get(context.TODO(), "cluster", metav1.GetOptions{}) | ||
| if err != nil { |
There was a problem hiding this comment.
🩺 Stability & Availability | 🟠 Major | 🏗️ Heavy lift
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
ast-grep outline test/e2e-encryption-perf/encryption_perf.go --items all
rg -n -C 3 --type=go 'context\.TODO\(\)|context\.WithTimeout\(|wait\.Poll' test/e2e-encryption-perfRepository: openshift/cluster-kube-apiserver-operator
Length of output: 4849
🏁 Script executed:
#!/bin/bash
set -euo pipefail
sed -n '34,180p' test/e2e-encryption-perf/encryption_perf.go
printf '\n-- callers and callback signatures --\n'
rg -n -C 4 --type=go 'testPerfEncryption|createSecret|createConfigMap|createNamespace|waitUntilNamespaceActive|GetOperatorConditionsFunc|AssertFunc' .
printf '\n-- Go version and testing API context support --\n'
rg -n '^(go|toolchain) ' go.mod go.work 2>/dev/null || trueRepository: openshift/cluster-kube-apiserver-operator
Length of output: 42028
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '%s\n' '-- loader callback definitions and execution --'
sed -n '1,190p' vendor/github.com/openshift/library-go/test/library/encryption/perf_helpers.go
sed -n '1,55p' vendor/github.com/openshift/library-go/test/library/encryption/perf_scenarios.go
printf '%s\n' '-- polling implementation --'
rg -n -C 8 'func Poll\(|func PollWithContext\(' vendor/k8s.io/apimachinery/pkg/util/wait
printf '%s\n' '-- client request timeout handling --'
rg -n -C 5 'func \(.*\) Do\(|WithContext|Timeout' vendor/k8s.io/client-go/rest vendor/k8s.io/client-go/transport 2>/dev/null | head -220
printf '%s\n' '-- context.TODO occurrences in the reviewed file --'
rg -n 'context\.TODO\(\)' test/e2e-encryption-perf/encryption_perf.goRepository: openshift/cluster-kube-apiserver-operator
Length of output: 28870
🏁 Script executed:
#!/bin/bash
set -euo pipefail
printf '%s\n' '-- test client timeout configuration --'
rg -n -C 10 'func NewClientConfigForTest|Timeout:' vendor/github.com/openshift/library-go/test/library vendor | head -240
printf '%s\n' '-- REST request timeout and execution path --'
rg -n -C 6 'func \(r \*Request\) Timeout|timeout time.Duration|http\.NewRequest|Do\(ctx' vendor/k8s.io/client-go/rest/request.go vendor/k8s.io/client-go/rest/client.go
printf '%s\n' '-- bounded-context verifier --'
python3 - <<'PY'
from pathlib import Path
import re
p = Path("test/e2e-encryption-perf/encryption_perf.go")
s = p.read_text()
todo_lines = [i for i, line in enumerate(s.splitlines(), 1)
if "context.TODO()" in line]
assert todo_lines == [61, 118, 138, 155, 161], todo_lines
callbacks = {
"createSecret": r"func createSecret\(([^)]*)\)",
"createConfigMap": r"func createConfigMap\(([^)]*)\)",
"createNamespace": r"func createNamespace\(([^)]*)\)",
"waitUntilNamespaceActive": r"func waitUntilNamespaceActive\(([^)]*)\)",
}
for name, pattern in callbacks.items():
match = re.search(pattern, s)
assert match, name
assert "context.Context" not in match.group(1), (name, match.group(1))
assert "wait.Poll(10*time.Millisecond, 30*time.Second" in s
print("context.TODO lines:", todo_lines)
print("DB loader callback parameters do not include context.Context")
print("namespace polling timeout: 30s; callback request context: context.TODO()")
PYRepository: openshift/cluster-kube-apiserver-operator
Length of output: 26024
Thread bounded contexts through all Kubernetes API calls.
context.TODO() does not carry test cancellation or a request deadline. If a request stalls, wait.Poll cannot enforce its 30-second timeout because it waits for the callback to return. Pass tt.Context() through the loader callbacks, use bounded child contexts for each request, and use context-aware polling.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@test/e2e-encryption-perf/encryption_perf.go` around lines 60 - 62, Replace
context.TODO() in GetOperatorConditionsFunc and the related Kubernetes loader
callbacks with the test context from tt.Context(), deriving a bounded child
context for each API request. Update the wait.Poll flow to use context-aware
polling so cancellation and the 30-second deadline interrupt stalled callbacks.
Source: Path instructions
|
/pipeline required |
|
Scheduling required tests: Scheduling tests matching the |
|
/test e2e-gcp-operator-encryption-perf-single-node |
|
/test e2e-gcp-operator-encryption-single-node |
35a2971 to
517a68b
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@test/e2e-encryption-perf/encryption_perf.go`:
- Around line 38-39: Update the ENCRYPTION_PROVIDER handling in
TestPerfEncryption to validate the environment value before any database
population or performance-test setup begins. Accept only the aescbc and aesgcm
values defined by the Makefile, and immediately report invalid or unsupported
values instead of converting arbitrary strings with configv1.EncryptionType.
🪄 Autofix
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 6f2069af-e34c-43fb-804d-e7ad48583908
📒 Files selected for processing (3)
cmd/cluster-kube-apiserver-operator-tests-ext/main.gotest/e2e-encryption-perf/encryption_perf.gotest/e2e-encryption-perf/encryption_perf_test.go
💤 Files with no reviewable changes (1)
- cmd/cluster-kube-apiserver-operator-tests-ext/main.go
🚧 Files skipped from review as they are similar to previous changes (1)
- test/e2e-encryption-perf/encryption_perf_test.go
| if env := os.Getenv("ENCRYPTION_PROVIDER"); env != "" { | ||
| return configv1.EncryptionType(env) |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "=== EncryptionType declarations and supported values ==="
rg -n -C 4 'type EncryptionType|EncryptionType[A-Za-z]+|aescbc|aesgcm' vendor test
echo "=== Provider inputs and consumers ==="
rg -n -C 5 'ENCRYPTION_PROVIDER|resolveEncryptionProvider|\*provider|testPerfEncryption' .Repository: openshift/cluster-kube-apiserver-operator
Length of output: 50397
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo '=== test/e2e-encryption-perf/encryption_perf.go ==='
sed -n '1,130p' test/e2e-encryption-perf/encryption_perf.go
echo '=== direct resolver and consumer references ==='
rg -n -C 8 'resolveEncryptionProvider|ENCRYPTION_PROVIDER|TestEncryptionType\(' \
test/e2e-encryption-perf test Makefile .github 2>/dev/null || true
echo '=== supported provider declarations ==='
sed -n '240,272p' vendor/github.com/openshift/api/config/v1/types_apiserver.go
sed -n '40,54p' vendor/github.com/openshift/library-go/test/library/encryption/helpers.go
sed -n '80,98p' vendor/github.com/openshift/library-go/test/library/encryption/scenarios.go
echo '=== standalone resolver/consumer model ==='
python3 - <<'PY'
from enum import Enum
class EncryptionType(str, Enum):
IDENTITY = "identity"
AESCBC = "aescbc"
AESGCM = "aesgcm"
KMS = "KMS"
def resolve(env_value, flag_value="aescbc"):
# Model the changed resolver's exact conversion semantics.
return EncryptionType(env_value) if env_value != "" else EncryptionType(flag_value)
def dispatch(provider):
# Model the shown consumer's switch behavior.
if provider in {"aescbc", "aesgcm", "KMS", "identity", ""}:
return "recognized"
return "fatal: Unknown encryption type"
for value in ["", "aescbc", "aesgcm", "identity", "KMS", "bogus", "AESCBC"]:
try:
resolved = resolve(value)
print(f"{value!r} -> {resolved.value!r} -> {dispatch(resolved.value)}")
except ValueError as exc:
print(f"{value!r} -> conversion failure: {exc}")
PYRepository: openshift/cluster-kube-apiserver-operator
Length of output: 18107
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo '=== TestPerfEncryption implementation ==='
rg -n -C 12 'func TestPerfEncryption|PerfScenario|EncryptionProvider' \
vendor/github.com/openshift/library-go/test/library/encryption \
test/library/encryption
echo '=== perf provider dispatch and validation ==='
rg -n -C 10 'TestEncryptionType\(|Unknown encryption type|SupportedStaticEncryptionProviders|provider.Type' \
vendor/github.com/openshift/library-go/test/library/encryption
echo '=== exact Go conversion model ==='
python3 - <<'PY'
# A Go conversion from string to a defined string type preserves every string.
# It does not validate against declared constants.
supported = {"aescbc", "aesgcm"}
for value in ["", "aescbc", "aesgcm", "identity", "KMS", "bogus", "AESCBC"]:
resolved = value if value else "aescbc"
status = "accepted by resolver"
if resolved not in supported:
status += "; outside Makefile performance-provider allow-list"
print(f"{value!r} -> {resolved!r}: {status}")
PYRepository: openshift/cluster-kube-apiserver-operator
Length of output: 50398
Validate ENCRYPTION_PROVIDER before starting the performance test.
configv1.EncryptionType(env) performs no validation. TestPerfEncryption populates the database before it rejects an unknown provider, so a typo can create the full test load before failing.
Accept only aescbc and aesgcm, as defined by the Makefile, and report invalid configuration immediately.
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
In `@test/e2e-encryption-perf/encryption_perf.go` around lines 38 - 39, Update the
ENCRYPTION_PROVIDER handling in TestPerfEncryption to validate the environment
value before any database population or performance-test setup begins. Accept
only the aescbc and aesgcm values defined by the Makefile, and immediately
report invalid or unsupported values instead of converting arbitrary strings
with configv1.EncryptionType.
Source: Path instructions
517a68b to
16cf267
Compare
|
/pipeline required |
|
Scheduling required tests: Scheduling tests matching the |
|
/test e2e-gcp-operator-encryption-perf-aescbc-ote |
|
/test e2e-gcp-operator-encryption-perf-aesgcm-ote |
|
/test e2e-aws-encryption-kms-single-node |
|
/test e2e-gcp-operator-encryption-perf-single-node-ote |
98cd77d to
96d9b8c
Compare
|
/test e2e-gcp-operator-encryption-perf-single-node-ote |
|
/test e2e-gcp-operator-encryption-perf-single-node-ote |
2 similar comments
|
/test e2e-gcp-operator-encryption-perf-single-node-ote |
|
/test e2e-gcp-operator-encryption-perf-single-node-ote |
96d9b8c to
6def40a
Compare
|
/pipeline required |
|
Scheduling required tests: Scheduling tests matching the |
|
/retest |
|
@gangwgr: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository. I understand the commands that are listed here. |
|
/verified by ci runs |
|
@gangwgr: This PR has been marked as verified by DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
|
@gangwgr: This pull request references CNTRLPLANE-4110 which is a valid jira issue. Warning: The referenced jira issue has an invalid target version for the target branch this PR targets: expected the task to target the "5.1.0" version, but no target version was set. DetailsIn response to this:
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the openshift-eng/jira-lifecycle-plugin repository. |
| secretsStatsKey = "created secrets" | ||
| ) | ||
|
|
||
| var provider = flag.String("provider", "aescbc", "encryption provider used by the tests") |
There was a problem hiding this comment.
Who is setting this?. Currently it always falls to default?
There was a problem hiding this comment.
from ci job passing we passing openshift/release@4757f6d#diff-8606d31e2b82dbc7554da38e87426e63be952fb7293620f525234760eee4e926R189-R194
There was a problem hiding this comment.
and old ci jobs also used, from ci jobs it passed in makefile for old jobs
There was a problem hiding this comment.
|
/lgtm |
|
Tests from second stage were triggered manually. Pipeline can be controlled only manually, until HEAD changes. Use command to trigger second stage. |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: ardaguclu The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
Migrate e2e encryption perf cases to ote
Summary by CodeRabbit