Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -852,6 +852,291 @@
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87536-deploymentConfig env vars are applied to operator deployment and available in pod",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87537-deploymentConfig env vars override existing bundle env vars with same name",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87539-[Skipped:Disconnected]deploymentConfig envFrom sources are appended to operator deployment without duplicates",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87541-[Skipped:Disconnected]deploymentConfig volumes are appended to operator deployment",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87542-[Skipped:Disconnected]deploymentConfig volumeMounts are appended to all operator containers",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87543-[Skipped:Disconnected]deploymentConfig tolerations are appended to operator deployment without duplicates",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87544-[Skipped:Disconnected]deploymentConfig resources completely replace existing resource requirements",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87545-[Skipped:Disconnected]deploymentConfig nodeSelector completely replaces existing node selector",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87546-[Skipped:Disconnected]deploymentConfig nodeAffinity overrides existing nodeAffinity",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87547-[Skipped:Disconnected]deploymentConfig podAffinity overrides existing podAffinity",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87548-[Skipped:Disconnected]deploymentConfig podAntiAffinity overrides existing podAntiAffinity",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87549-[Skipped:Disconnected]deploymentConfig annotations are merged with existing taking precedence",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87550-[Skipped:Disconnected]deploymentConfig with resources and nodeSelector both work correctly",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87551-[Skipped:Disconnected]deploymentConfig with env tolerations and resources all work correctly",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87552-[Skipped:Disconnected]deploymentConfig works correctly when combined with watchNamespace configuration",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87553-[Skipped:Disconnected]adding deploymentConfig multiple fields to existing ClusterExtension works correctly",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87554-[Skipped:Disconnected]modifying deploymentConfig multiple fields in existing ClusterExtension works correctly",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87555-[Skipped:Disconnected]removing entire deploymentConfig from ClusterExtension reverts all settings to bundle defaults",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] OLMv1 ClusterExtension DeploymentConfig PolarionID:87556-[Skipped:Disconnected]removing partial fields from deploymentConfig reverts those fields to bundle defaults while keeping others",
"labels": {
"Extended": {},
"NonHyperShiftHOST": {}
},
"resources": {
"isolation": {}
},
"source": "openshift:payload:olmv1",
"lifecycle": "blocking",
"environmentSelector": {
"exclude": "topology==\"External\""
}
},
{
"name": "[sig-olmv1][Jira:OLM] clusterextension watchNamespace configuration PolarionID:85510-watchNamespace configuration with AllNamespaces InstallMode",
"labels": {
Expand Down
4 changes: 4 additions & 0 deletions openshift/tests-extension/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -241,3 +241,7 @@ verify-metadata: update-metadata
echo "ERROR: Metadata is out of date. Please run 'make build-update' and commit the result."; \
exit 1; \
fi

.PHONY: verify-images-json #HELP Verify that 'images' command outputs valid JSON
verify-images-json:
@./hack/verify-images-json.sh $(TOOLS_BIN_DIR)/olmv1-tests-ext
74 changes: 74 additions & 0 deletions openshift/tests-extension/hack/verify-images-json.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
#!/usr/bin/env bash

# verify-images-json.sh
#
# Verifies that the 'images' subcommand outputs valid JSON without log pollution.
#
# Usage:
# ./hack/verify-images-json.sh [path-to-binary]
#
# Example:
# ./hack/verify-images-json.sh ./bin/olmv1-tests-ext

set -euo pipefail

SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_ROOT="$(cd "${SCRIPT_DIR}/.." && pwd)"

# Default binary path
BINARY="${1:-${PROJECT_ROOT}/bin/olmv1-tests-ext}"

echo "Verifying olmv1-tests-ext images output is valid JSON..."

# Check if binary exists
if [[ ! -f "${BINARY}" ]]; then
echo -e "ERROR: Binary not found at: ${BINARY}"
echo "Please run 'make build' first."
exit 1
fi

# Run the images command and capture all output (stdout + stderr)
output=$("${BINARY}" images 2>&1)

# Create temporary directory for Go validation program
tmpdir=$(mktemp -d)
trap 'rm -rf "${tmpdir}"' EXIT

# Write Go validation program to temporary file
cat > "${tmpdir}/validate.go" <<'GO_CODE'
package main

import (
"encoding/json"
"io"
"os"
)

func main() {
data, err := io.ReadAll(os.Stdin)
if err != nil {
os.Exit(1)
}

if !json.Valid(data) {
os.Exit(1)
}
}
GO_CODE

# Validate JSON using Go's json.Valid function
# This matches exactly what binary.go:548 does (json.Unmarshal)
if ! echo "${output}" | go run "${tmpdir}/validate.go" 2>/dev/null; then
echo -e "ERROR: 'olmv1-tests-ext images' output is not valid JSON!"
echo "This usually means log statements are polluting the JSON output."
echo ""
echo "Output was:"
echo "----------------------------------------"
echo "${output}"
echo "----------------------------------------"
echo ""
exit 1
fi

echo -e "olmv1-tests-ext images output is valid JSON"
exit 0
Loading