Name: sg-core-2-build Namespace: service-telemetry Priority: 0 Service Account: builder Node: crc/192.168.126.11 Start Time: Tue, 24 Feb 2026 00:24:44 +0000 Labels: openshift.io/build.name=sg-core-2 Annotations: k8s.ovn.org/pod-networks: {"default":{"ip_addresses":["10.217.0.74/23"],"mac_address":"0a:58:0a:d9:00:4a","gateway_ips":["10.217.0.1"],"routes":[{"dest":"10.217.0.0... k8s.v1.cni.cncf.io/network-status: [{ "name": "ovn-kubernetes", "interface": "eth0", "ips": [ "10.217.0.74" ], "mac": "0a:58:0a:d9:00:4a", "default": true, "dns": {} }] openshift.io/build.name: sg-core-2 openshift.io/scc: privileged security.openshift.io/validated-scc-subject-type: user Status: Succeeded IP: 10.217.0.74 IPs: IP: 10.217.0.74 Controlled By: Build/sg-core-2 Init Containers: git-clone: Container ID: cri-o://b0647f1b61f9ed634b6a046d2a70ef762a8a75bcb9cefb4271e74c93cb474f69 Image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c2a80d6dd943dbbb5c0bc63f4aa17d55e44dbde22a3ea4e6a41a32930dc4ac77 Image ID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c2a80d6dd943dbbb5c0bc63f4aa17d55e44dbde22a3ea4e6a41a32930dc4ac77 Port: Host Port: SeccompProfile: RuntimeDefault Args: openshift-git-clone --v=0 State: Terminated Reason: Completed Exit Code: 0 Started: Tue, 24 Feb 2026 00:24:45 +0000 Finished: Tue, 24 Feb 2026 00:24:45 +0000 Ready: True Restart Count: 0 Environment: BUILD: {"kind":"Build","apiVersion":"build.openshift.io/v1","metadata":{"name":"sg-core-2","namespace":"service-telemetry","uid":"d299689c-983f-41f7-b826-534d9fa05c88","resourceVersion":"44828","generation":1,"creationTimestamp":"2026-02-24T00:24:44Z","labels":{"build":"sg-core","buildconfig":"sg-core","openshift.io/build-config.name":"sg-core","openshift.io/build.start-policy":"Serial"},"annotations":{"openshift.io/build-config.name":"sg-core","openshift.io/build.number":"2"},"ownerReferences":[{"apiVersion":"build.openshift.io/v1","kind":"BuildConfig","name":"sg-core","uid":"23be9a80-b763-419e-8c57-674912384572","controller":true}],"managedFields":[{"manager":"openshift-apiserver","operation":"Update","apiVersion":"build.openshift.io/v1","time":"2026-02-24T00:24:44Z","fieldsType":"FieldsV1","fieldsV1":{"f:metadata":{"f:annotations":{".":{},"f:openshift.io/build-config.name":{},"f:openshift.io/build.number":{}},"f:labels":{".":{},"f:build":{},"f:buildconfig":{},"f:openshift.io/build-config.name":{},"f:openshift.io/build.start-policy":{}},"f:ownerReferences":{".":{},"k:{\"uid\":\"23be9a80-b763-419e-8c57-674912384572\"}":{}}},"f:spec":{"f:output":{"f:to":{}},"f:revision":{".":{},"f:git":{".":{},"f:author":{".":{},"f:email":{},"f:name":{}},"f:commit":{},"f:committer":{".":{},"f:email":{},"f:name":{}},"f:message":{}},"f:type":{}},"f:serviceAccount":{},"f:source":{"f:binary":{},"f:dockerfile":{},"f:type":{}},"f:strategy":{"f:dockerStrategy":{".":{},"f:from":{}},"f:type":{}}},"f:status":{"f:conditions":{".":{},"k:{\"type\":\"New\"}":{".":{},"f:lastTransitionTime":{},"f:lastUpdateTime":{},"f:status":{},"f:type":{}}},"f:config":{},"f:phase":{}}}}]},"spec":{"serviceAccount":"builder","source":{"type":"Binary","binary":{},"dockerfile":"# --- build smart gateway ---\nFROM registry.access.redhat.com/ubi9:latest AS builder\nENV GOPATH=/go\nENV D=/go/src/github.com/infrawatch/sg-core\n\nWORKDIR $D\nCOPY . $D/\n\n# dependencies for qpid-proton-c\nCOPY build/repos/opstools.repo /etc/yum.repos.d/CentOS-OpsTools.repo\n\nRUN dnf install golang git qpid-proton-c-devel -y --setopt=tsflags=nodocs\nRUN go install golang.org/dl/go1.24.11@latest \u0026\u0026 /go/bin/go1.24.11 download \u0026\u0026 PRODUCTION_BUILD=false CONTAINER_BUILD=true GOCMD=/go/bin/go1.24.11 ./build.sh\n\n# --- end build, create smart gateway layer ---\nFROM registry.access.redhat.com/ubi9-minimal:latest\n\nLABEL io.k8s.display-name=\"Smart Gateway\" \\\n io.k8s.description=\"A component of the Service Telemetry Framework on the server side that ingests data from AMQP 1.x and provides a metrics scrape endpoint for Prometheus, and forwards events to ElasticSearch\" \\\n maintainer=\"Leif Madsen \u003cleif+smartgatewayoperator@redhat.com\u003e\"\n\nCOPY --from=builder /tmp/sg-core /\nCOPY --from=builder /tmp/plugins/*.so /usr/lib64/sg-core/\n\nENTRYPOINT [\"/sg-core\"]\n"},"revision":{"type":"Git","git":{"commit":"3b4e5c4a427d60f8907be80e3503e7f4d4864669","author":{"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com"},"committer":{"name":"GitHub","email":"noreply@github.com"},"message":"STF 1.5.7 release ops (#162)\n\n* Pin Ceilometer to stable/2024.2 (#154)\n\nEven though we are pinning to the stable/2024.2\nwhen cloning Devstack, we are pulling Ceilometer\nrequirements from the master branch and this is\ngenerating dependencies conflict.\n\nExplicitily set stable/2024.2 branch when cloning\nCeilometer to fix this.\n\nCloses-Bug: OSPRH-19908\n\n* Bump gopkg.in/yaml.v3 from 3.0.0 to 3.0.1 (#153)\n\n---\nupdated-dependencies:\n- dependency-name: gopkg.in/yaml.v3\n dependency-version: 3.0.1\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Victoria Martinez de la Cruz \u003cvictoria@redhat.com\u003e\n\n* Protect the expiryProc list with a mutex (#155)\n\nThe container/list data structure used in expiry.go is not safe for concurrent use.\nSee https://github.com/golang/go/issues/25105\n\nSerialize the access to the shared list to avoid having check() on empty lists.\n\nCloses-Bug: OSPRH-18979\n\n* Fix long message handling with dynamic buffer growth (#158)\n\nThe socket transport plugin used a fixed 64KB buffer size\nwhich caused messages surpassing that size to be truncated\n\nFor UDP/Unix datagram sockets, this resulted in parsing errors\nlike \"unexpected end of input\"\n\nThis change allows the buffer to grow (up to a limit depending on the\nprotocol) to accommodate larger messages.\n\n* Create helper functions for TCP connection handling\n\n* Add helper sendUDPSocketMessage\n\n* Update TestUnixSocketTransport large message test\n\nThis test verifies the dynamic buffer growth by sending\nthree messages\n\nIn each iteration the buffer grows from the initial size\nof 65535 bytes to 3 times the initial size.\n\nAlso verifies the content of the received message\n\nCloses: OSPRH-23826\n\n* Update to golang 1.24.11 (#159)\n\n* Fix non-constant format string in call\n\nGo 1.24.11 has stricter checking for format strings\nin printf-style functions to prevent format string\nvulnerabilities.\n\n* Bump golangci-lint version to 1.64.2\n\n* Replace exportloopref for copyloopvar\n\nThe linter 'exportloopref' is deprecated (since v1.60.2)\n\n* Update coveralls-badge workflow to be non-blocking (#160)\n\nAdded \"continue-on-error: true\" to prevent badge failures from blocking PRs.\n\nExplicitly defined pull-requests: write permissions for GITHUB_TOKEN.\n\nAdded try-catch safety logic and async/await to the script.\n\n* Improve test coverage for expiry.go (#164)\n\nAdd tests for check() edge cases, run() function, and concurrent access.\n\nCo-authored-by: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n* Improve test coverage for prometheus application plugin (#166)\n\nAdd tests for New, Config, PromCollector methods, metricExpiry,\ncollectorExpiry, ReceiveMetric, UpdateMetrics, Describe, and Collect.\nOmit logging and HTTP server tests.\n\n* Fix golangci-lint empty-block error in prometheus tests\n\nReplace empty for-range loop with explicit assignment to satisfy revive linter.\n\n* Add timestamp verification assertions to prometheus collector tests\n\nEnhance test coverage by adding assertions that verify the presence or\nabsence of timestamps in collected metrics. The \"collect with timestamp\"\ntest now verifies that metrics include the expected timestamp value,\nwhile the \"collect with zero timestamp\" test confirms that metrics with\nzero timestamps are sent without timestamp metadata.\n\nAlso fixes default port assertion and cleans up empty-block lint issue.\n\n* Fix golangci-lint empty-block error in channel drain loop\n\nReplace empty for-range loop with explicit variable usage to resolve\nthe revive empty-block linting error.\n\nCo-authored-by: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n* Improve test coverage for socket transport plugin (#165)\n\nAdd tests for Config, New, Listen, init errors, dump messages, and TCP parsing edge cases.\n\n* Fix golangci-lint errors in socket transport tests\n\n- Check error returns from binary.Write calls\n- Reduce file permissions from 0644 to 0600\n\nCo-Authored-By: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n* Add comprehensive test coverage for parser libraries (#168)\n\nCeilometer:\n- ParseInputJSON with various message formats\n- ParseInputMsgPack for msgpack parsing\n- sanitize function with escaped quotes and payload formatting\n- Error handling for invalid JSON and malformed data\n- Edge cases: empty payloads, multiple metrics, user metadata\n\nCollectd:\n- ParseInputByte for all metric variations\n- Multi-dimensional metrics with multiple values\n- Optional fields (plugin_instance, type_instance)\n- Error handling for invalid JSON and non-array data\n- Edge cases: empty arrays, zero values, negative values, large values\n- Real-world virt plugin data formats\n\n* Add comprehensive test coverage for sensu parser library\n\nCreate test file for sensubility-metrics sensu parser library with\ncomplete coverage of all validation and error building functions.\n\nCo-Authored-By: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n* Add test coverage for manager package (#167)\n\nCreate manager_test.go test cases covering setter functions, plugin initialization error paths, and edge cases.\n\nCo-authored-by: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e"}},"strategy":{"type":"Docker","dockerStrategy":{"from":{"kind":"DockerImage","name":"registry.access.redhat.com/ubi9-minimal@sha256:2bd144364d2cb06b08953ce5764cdbf236bbcd63cea214583c4ed011b4685453"},"pullSecret":{"name":"builder-dockercfg-28rxw"}}},"output":{"to":{"kind":"DockerImage","name":"image-registry.openshift-image-registry.svc:5000/service-telemetry/sg-core:latest"},"pushSecret":{"name":"builder-dockercfg-28rxw"}},"resources":{},"postCommit":{},"nodeSelector":null},"status":{"phase":"New","outputDockerImageReference":"image-registry.openshift-image-registry.svc:5000/service-telemetry/sg-core:latest","config":{"kind":"BuildConfig","namespace":"service-telemetry","name":"sg-core"},"output":{},"conditions":[{"type":"New","status":"True","lastUpdateTime":"2026-02-24T00:24:44Z","lastTransitionTime":"2026-02-24T00:24:44Z"}]}} LANG: C.utf8 BUILD_REGISTRIES_CONF_PATH: /var/run/configs/openshift.io/build-system/registries.conf BUILD_REGISTRIES_DIR_PATH: /var/run/configs/openshift.io/build-system/registries.d BUILD_SIGNATURE_POLICY_PATH: /var/run/configs/openshift.io/build-system/policy.json BUILD_STORAGE_CONF_PATH: /var/run/configs/openshift.io/build-system/storage.conf BUILD_BLOBCACHE_DIR: /var/cache/blobs Mounts: /tmp/build from buildworkdir (rw) /var/cache/blobs from build-blob-cache (rw) /var/run/configs/openshift.io/build-system from build-system-configs (ro) /var/run/configs/openshift.io/certs from build-ca-bundles (rw) /var/run/configs/openshift.io/pki from build-proxy-ca-bundles (rw) /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-2tq67 (ro) manage-dockerfile: Container ID: cri-o://41fada879d0f1336f54f7192c32707654c4c15094c07fe422fd970d9f58196a7 Image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c2a80d6dd943dbbb5c0bc63f4aa17d55e44dbde22a3ea4e6a41a32930dc4ac77 Image ID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c2a80d6dd943dbbb5c0bc63f4aa17d55e44dbde22a3ea4e6a41a32930dc4ac77 Port: Host Port: SeccompProfile: RuntimeDefault Args: openshift-manage-dockerfile --v=0 State: Terminated Reason: Completed Exit Code: 0 Started: Tue, 24 Feb 2026 00:24:47 +0000 Finished: Tue, 24 Feb 2026 00:24:47 +0000 Ready: True Restart Count: 0 Environment: BUILD: {"kind":"Build","apiVersion":"build.openshift.io/v1","metadata":{"name":"sg-core-2","namespace":"service-telemetry","uid":"d299689c-983f-41f7-b826-534d9fa05c88","resourceVersion":"44828","generation":1,"creationTimestamp":"2026-02-24T00:24:44Z","labels":{"build":"sg-core","buildconfig":"sg-core","openshift.io/build-config.name":"sg-core","openshift.io/build.start-policy":"Serial"},"annotations":{"openshift.io/build-config.name":"sg-core","openshift.io/build.number":"2"},"ownerReferences":[{"apiVersion":"build.openshift.io/v1","kind":"BuildConfig","name":"sg-core","uid":"23be9a80-b763-419e-8c57-674912384572","controller":true}],"managedFields":[{"manager":"openshift-apiserver","operation":"Update","apiVersion":"build.openshift.io/v1","time":"2026-02-24T00:24:44Z","fieldsType":"FieldsV1","fieldsV1":{"f:metadata":{"f:annotations":{".":{},"f:openshift.io/build-config.name":{},"f:openshift.io/build.number":{}},"f:labels":{".":{},"f:build":{},"f:buildconfig":{},"f:openshift.io/build-config.name":{},"f:openshift.io/build.start-policy":{}},"f:ownerReferences":{".":{},"k:{\"uid\":\"23be9a80-b763-419e-8c57-674912384572\"}":{}}},"f:spec":{"f:output":{"f:to":{}},"f:revision":{".":{},"f:git":{".":{},"f:author":{".":{},"f:email":{},"f:name":{}},"f:commit":{},"f:committer":{".":{},"f:email":{},"f:name":{}},"f:message":{}},"f:type":{}},"f:serviceAccount":{},"f:source":{"f:binary":{},"f:dockerfile":{},"f:type":{}},"f:strategy":{"f:dockerStrategy":{".":{},"f:from":{}},"f:type":{}}},"f:status":{"f:conditions":{".":{},"k:{\"type\":\"New\"}":{".":{},"f:lastTransitionTime":{},"f:lastUpdateTime":{},"f:status":{},"f:type":{}}},"f:config":{},"f:phase":{}}}}]},"spec":{"serviceAccount":"builder","source":{"type":"Binary","binary":{},"dockerfile":"# --- build smart gateway ---\nFROM registry.access.redhat.com/ubi9:latest AS builder\nENV GOPATH=/go\nENV D=/go/src/github.com/infrawatch/sg-core\n\nWORKDIR $D\nCOPY . $D/\n\n# dependencies for qpid-proton-c\nCOPY build/repos/opstools.repo /etc/yum.repos.d/CentOS-OpsTools.repo\n\nRUN dnf install golang git qpid-proton-c-devel -y --setopt=tsflags=nodocs\nRUN go install golang.org/dl/go1.24.11@latest \u0026\u0026 /go/bin/go1.24.11 download \u0026\u0026 PRODUCTION_BUILD=false CONTAINER_BUILD=true GOCMD=/go/bin/go1.24.11 ./build.sh\n\n# --- end build, create smart gateway layer ---\nFROM registry.access.redhat.com/ubi9-minimal:latest\n\nLABEL io.k8s.display-name=\"Smart Gateway\" \\\n io.k8s.description=\"A component of the Service Telemetry Framework on the server side that ingests data from AMQP 1.x and provides a metrics scrape endpoint for Prometheus, and forwards events to ElasticSearch\" \\\n maintainer=\"Leif Madsen \u003cleif+smartgatewayoperator@redhat.com\u003e\"\n\nCOPY --from=builder /tmp/sg-core /\nCOPY --from=builder /tmp/plugins/*.so /usr/lib64/sg-core/\n\nENTRYPOINT [\"/sg-core\"]\n"},"revision":{"type":"Git","git":{"commit":"3b4e5c4a427d60f8907be80e3503e7f4d4864669","author":{"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com"},"committer":{"name":"GitHub","email":"noreply@github.com"},"message":"STF 1.5.7 release ops (#162)\n\n* Pin Ceilometer to stable/2024.2 (#154)\n\nEven though we are pinning to the stable/2024.2\nwhen cloning Devstack, we are pulling Ceilometer\nrequirements from the master branch and this is\ngenerating dependencies conflict.\n\nExplicitily set stable/2024.2 branch when cloning\nCeilometer to fix this.\n\nCloses-Bug: OSPRH-19908\n\n* Bump gopkg.in/yaml.v3 from 3.0.0 to 3.0.1 (#153)\n\n---\nupdated-dependencies:\n- dependency-name: gopkg.in/yaml.v3\n dependency-version: 3.0.1\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Victoria Martinez de la Cruz \u003cvictoria@redhat.com\u003e\n\n* Protect the expiryProc list with a mutex (#155)\n\nThe container/list data structure used in expiry.go is not safe for concurrent use.\nSee https://github.com/golang/go/issues/25105\n\nSerialize the access to the shared list to avoid having check() on empty lists.\n\nCloses-Bug: OSPRH-18979\n\n* Fix long message handling with dynamic buffer growth (#158)\n\nThe socket transport plugin used a fixed 64KB buffer size\nwhich caused messages surpassing that size to be truncated\n\nFor UDP/Unix datagram sockets, this resulted in parsing errors\nlike \"unexpected end of input\"\n\nThis change allows the buffer to grow (up to a limit depending on the\nprotocol) to accommodate larger messages.\n\n* Create helper functions for TCP connection handling\n\n* Add helper sendUDPSocketMessage\n\n* Update TestUnixSocketTransport large message test\n\nThis test verifies the dynamic buffer growth by sending\nthree messages\n\nIn each iteration the buffer grows from the initial size\nof 65535 bytes to 3 times the initial size.\n\nAlso verifies the content of the received message\n\nCloses: OSPRH-23826\n\n* Update to golang 1.24.11 (#159)\n\n* Fix non-constant format string in call\n\nGo 1.24.11 has stricter checking for format strings\nin printf-style functions to prevent format string\nvulnerabilities.\n\n* Bump golangci-lint version to 1.64.2\n\n* Replace exportloopref for copyloopvar\n\nThe linter 'exportloopref' is deprecated (since v1.60.2)\n\n* Update coveralls-badge workflow to be non-blocking (#160)\n\nAdded \"continue-on-error: true\" to prevent badge failures from blocking PRs.\n\nExplicitly defined pull-requests: write permissions for GITHUB_TOKEN.\n\nAdded try-catch safety logic and async/await to the script.\n\n* Improve test coverage for expiry.go (#164)\n\nAdd tests for check() edge cases, run() function, and concurrent access.\n\nCo-authored-by: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n* Improve test coverage for prometheus application plugin (#166)\n\nAdd tests for New, Config, PromCollector methods, metricExpiry,\ncollectorExpiry, ReceiveMetric, UpdateMetrics, Describe, and Collect.\nOmit logging and HTTP server tests.\n\n* Fix golangci-lint empty-block error in prometheus tests\n\nReplace empty for-range loop with explicit assignment to satisfy revive linter.\n\n* Add timestamp verification assertions to prometheus collector tests\n\nEnhance test coverage by adding assertions that verify the presence or\nabsence of timestamps in collected metrics. The \"collect with timestamp\"\ntest now verifies that metrics include the expected timestamp value,\nwhile the \"collect with zero timestamp\" test confirms that metrics with\nzero timestamps are sent without timestamp metadata.\n\nAlso fixes default port assertion and cleans up empty-block lint issue.\n\n* Fix golangci-lint empty-block error in channel drain loop\n\nReplace empty for-range loop with explicit variable usage to resolve\nthe revive empty-block linting error.\n\nCo-authored-by: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n* Improve test coverage for socket transport plugin (#165)\n\nAdd tests for Config, New, Listen, init errors, dump messages, and TCP parsing edge cases.\n\n* Fix golangci-lint errors in socket transport tests\n\n- Check error returns from binary.Write calls\n- Reduce file permissions from 0644 to 0600\n\nCo-Authored-By: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n* Add comprehensive test coverage for parser libraries (#168)\n\nCeilometer:\n- ParseInputJSON with various message formats\n- ParseInputMsgPack for msgpack parsing\n- sanitize function with escaped quotes and payload formatting\n- Error handling for invalid JSON and malformed data\n- Edge cases: empty payloads, multiple metrics, user metadata\n\nCollectd:\n- ParseInputByte for all metric variations\n- Multi-dimensional metrics with multiple values\n- Optional fields (plugin_instance, type_instance)\n- Error handling for invalid JSON and non-array data\n- Edge cases: empty arrays, zero values, negative values, large values\n- Real-world virt plugin data formats\n\n* Add comprehensive test coverage for sensu parser library\n\nCreate test file for sensubility-metrics sensu parser library with\ncomplete coverage of all validation and error building functions.\n\nCo-Authored-By: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n* Add test coverage for manager package (#167)\n\nCreate manager_test.go test cases covering setter functions, plugin initialization error paths, and edge cases.\n\nCo-authored-by: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e"}},"strategy":{"type":"Docker","dockerStrategy":{"from":{"kind":"DockerImage","name":"registry.access.redhat.com/ubi9-minimal@sha256:2bd144364d2cb06b08953ce5764cdbf236bbcd63cea214583c4ed011b4685453"},"pullSecret":{"name":"builder-dockercfg-28rxw"}}},"output":{"to":{"kind":"DockerImage","name":"image-registry.openshift-image-registry.svc:5000/service-telemetry/sg-core:latest"},"pushSecret":{"name":"builder-dockercfg-28rxw"}},"resources":{},"postCommit":{},"nodeSelector":null},"status":{"phase":"New","outputDockerImageReference":"image-registry.openshift-image-registry.svc:5000/service-telemetry/sg-core:latest","config":{"kind":"BuildConfig","namespace":"service-telemetry","name":"sg-core"},"output":{},"conditions":[{"type":"New","status":"True","lastUpdateTime":"2026-02-24T00:24:44Z","lastTransitionTime":"2026-02-24T00:24:44Z"}]}} LANG: C.utf8 BUILD_REGISTRIES_CONF_PATH: /var/run/configs/openshift.io/build-system/registries.conf BUILD_REGISTRIES_DIR_PATH: /var/run/configs/openshift.io/build-system/registries.d BUILD_SIGNATURE_POLICY_PATH: /var/run/configs/openshift.io/build-system/policy.json BUILD_STORAGE_CONF_PATH: /var/run/configs/openshift.io/build-system/storage.conf BUILD_BLOBCACHE_DIR: /var/cache/blobs Mounts: /tmp/build from buildworkdir (rw) /var/cache/blobs from build-blob-cache (rw) /var/run/configs/openshift.io/build-system from build-system-configs (ro) /var/run/configs/openshift.io/certs from build-ca-bundles (rw) /var/run/configs/openshift.io/pki from build-proxy-ca-bundles (rw) /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-2tq67 (ro) Containers: docker-build: Container ID: cri-o://b6462b59ee575c62ee31e91cade89fbe2ee9de1bc3372cb6fde79dfbc4590ac9 Image: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c2a80d6dd943dbbb5c0bc63f4aa17d55e44dbde22a3ea4e6a41a32930dc4ac77 Image ID: quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c2a80d6dd943dbbb5c0bc63f4aa17d55e44dbde22a3ea4e6a41a32930dc4ac77 Port: Host Port: SeccompProfile: Unconfined Args: openshift-docker-build --v=0 State: Terminated Reason: Completed Exit Code: 0 Started: Tue, 24 Feb 2026 00:24:48 +0000 Finished: Tue, 24 Feb 2026 00:28:05 +0000 Ready: False Restart Count: 0 Environment: BUILD: {"kind":"Build","apiVersion":"build.openshift.io/v1","metadata":{"name":"sg-core-2","namespace":"service-telemetry","uid":"d299689c-983f-41f7-b826-534d9fa05c88","resourceVersion":"44828","generation":1,"creationTimestamp":"2026-02-24T00:24:44Z","labels":{"build":"sg-core","buildconfig":"sg-core","openshift.io/build-config.name":"sg-core","openshift.io/build.start-policy":"Serial"},"annotations":{"openshift.io/build-config.name":"sg-core","openshift.io/build.number":"2"},"ownerReferences":[{"apiVersion":"build.openshift.io/v1","kind":"BuildConfig","name":"sg-core","uid":"23be9a80-b763-419e-8c57-674912384572","controller":true}],"managedFields":[{"manager":"openshift-apiserver","operation":"Update","apiVersion":"build.openshift.io/v1","time":"2026-02-24T00:24:44Z","fieldsType":"FieldsV1","fieldsV1":{"f:metadata":{"f:annotations":{".":{},"f:openshift.io/build-config.name":{},"f:openshift.io/build.number":{}},"f:labels":{".":{},"f:build":{},"f:buildconfig":{},"f:openshift.io/build-config.name":{},"f:openshift.io/build.start-policy":{}},"f:ownerReferences":{".":{},"k:{\"uid\":\"23be9a80-b763-419e-8c57-674912384572\"}":{}}},"f:spec":{"f:output":{"f:to":{}},"f:revision":{".":{},"f:git":{".":{},"f:author":{".":{},"f:email":{},"f:name":{}},"f:commit":{},"f:committer":{".":{},"f:email":{},"f:name":{}},"f:message":{}},"f:type":{}},"f:serviceAccount":{},"f:source":{"f:binary":{},"f:dockerfile":{},"f:type":{}},"f:strategy":{"f:dockerStrategy":{".":{},"f:from":{}},"f:type":{}}},"f:status":{"f:conditions":{".":{},"k:{\"type\":\"New\"}":{".":{},"f:lastTransitionTime":{},"f:lastUpdateTime":{},"f:status":{},"f:type":{}}},"f:config":{},"f:phase":{}}}}]},"spec":{"serviceAccount":"builder","source":{"type":"Binary","binary":{},"dockerfile":"# --- build smart gateway ---\nFROM registry.access.redhat.com/ubi9:latest AS builder\nENV GOPATH=/go\nENV D=/go/src/github.com/infrawatch/sg-core\n\nWORKDIR $D\nCOPY . $D/\n\n# dependencies for qpid-proton-c\nCOPY build/repos/opstools.repo /etc/yum.repos.d/CentOS-OpsTools.repo\n\nRUN dnf install golang git qpid-proton-c-devel -y --setopt=tsflags=nodocs\nRUN go install golang.org/dl/go1.24.11@latest \u0026\u0026 /go/bin/go1.24.11 download \u0026\u0026 PRODUCTION_BUILD=false CONTAINER_BUILD=true GOCMD=/go/bin/go1.24.11 ./build.sh\n\n# --- end build, create smart gateway layer ---\nFROM registry.access.redhat.com/ubi9-minimal:latest\n\nLABEL io.k8s.display-name=\"Smart Gateway\" \\\n io.k8s.description=\"A component of the Service Telemetry Framework on the server side that ingests data from AMQP 1.x and provides a metrics scrape endpoint for Prometheus, and forwards events to ElasticSearch\" \\\n maintainer=\"Leif Madsen \u003cleif+smartgatewayoperator@redhat.com\u003e\"\n\nCOPY --from=builder /tmp/sg-core /\nCOPY --from=builder /tmp/plugins/*.so /usr/lib64/sg-core/\n\nENTRYPOINT [\"/sg-core\"]\n"},"revision":{"type":"Git","git":{"commit":"3b4e5c4a427d60f8907be80e3503e7f4d4864669","author":{"name":"Victoria Martinez de la Cruz","email":"victoria@redhat.com"},"committer":{"name":"GitHub","email":"noreply@github.com"},"message":"STF 1.5.7 release ops (#162)\n\n* Pin Ceilometer to stable/2024.2 (#154)\n\nEven though we are pinning to the stable/2024.2\nwhen cloning Devstack, we are pulling Ceilometer\nrequirements from the master branch and this is\ngenerating dependencies conflict.\n\nExplicitily set stable/2024.2 branch when cloning\nCeilometer to fix this.\n\nCloses-Bug: OSPRH-19908\n\n* Bump gopkg.in/yaml.v3 from 3.0.0 to 3.0.1 (#153)\n\n---\nupdated-dependencies:\n- dependency-name: gopkg.in/yaml.v3\n dependency-version: 3.0.1\n dependency-type: direct:production\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Victoria Martinez de la Cruz \u003cvictoria@redhat.com\u003e\n\n* Protect the expiryProc list with a mutex (#155)\n\nThe container/list data structure used in expiry.go is not safe for concurrent use.\nSee https://github.com/golang/go/issues/25105\n\nSerialize the access to the shared list to avoid having check() on empty lists.\n\nCloses-Bug: OSPRH-18979\n\n* Fix long message handling with dynamic buffer growth (#158)\n\nThe socket transport plugin used a fixed 64KB buffer size\nwhich caused messages surpassing that size to be truncated\n\nFor UDP/Unix datagram sockets, this resulted in parsing errors\nlike \"unexpected end of input\"\n\nThis change allows the buffer to grow (up to a limit depending on the\nprotocol) to accommodate larger messages.\n\n* Create helper functions for TCP connection handling\n\n* Add helper sendUDPSocketMessage\n\n* Update TestUnixSocketTransport large message test\n\nThis test verifies the dynamic buffer growth by sending\nthree messages\n\nIn each iteration the buffer grows from the initial size\nof 65535 bytes to 3 times the initial size.\n\nAlso verifies the content of the received message\n\nCloses: OSPRH-23826\n\n* Update to golang 1.24.11 (#159)\n\n* Fix non-constant format string in call\n\nGo 1.24.11 has stricter checking for format strings\nin printf-style functions to prevent format string\nvulnerabilities.\n\n* Bump golangci-lint version to 1.64.2\n\n* Replace exportloopref for copyloopvar\n\nThe linter 'exportloopref' is deprecated (since v1.60.2)\n\n* Update coveralls-badge workflow to be non-blocking (#160)\n\nAdded \"continue-on-error: true\" to prevent badge failures from blocking PRs.\n\nExplicitly defined pull-requests: write permissions for GITHUB_TOKEN.\n\nAdded try-catch safety logic and async/await to the script.\n\n* Improve test coverage for expiry.go (#164)\n\nAdd tests for check() edge cases, run() function, and concurrent access.\n\nCo-authored-by: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n* Improve test coverage for prometheus application plugin (#166)\n\nAdd tests for New, Config, PromCollector methods, metricExpiry,\ncollectorExpiry, ReceiveMetric, UpdateMetrics, Describe, and Collect.\nOmit logging and HTTP server tests.\n\n* Fix golangci-lint empty-block error in prometheus tests\n\nReplace empty for-range loop with explicit assignment to satisfy revive linter.\n\n* Add timestamp verification assertions to prometheus collector tests\n\nEnhance test coverage by adding assertions that verify the presence or\nabsence of timestamps in collected metrics. The \"collect with timestamp\"\ntest now verifies that metrics include the expected timestamp value,\nwhile the \"collect with zero timestamp\" test confirms that metrics with\nzero timestamps are sent without timestamp metadata.\n\nAlso fixes default port assertion and cleans up empty-block lint issue.\n\n* Fix golangci-lint empty-block error in channel drain loop\n\nReplace empty for-range loop with explicit variable usage to resolve\nthe revive empty-block linting error.\n\nCo-authored-by: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n* Improve test coverage for socket transport plugin (#165)\n\nAdd tests for Config, New, Listen, init errors, dump messages, and TCP parsing edge cases.\n\n* Fix golangci-lint errors in socket transport tests\n\n- Check error returns from binary.Write calls\n- Reduce file permissions from 0644 to 0600\n\nCo-Authored-By: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n* Add comprehensive test coverage for parser libraries (#168)\n\nCeilometer:\n- ParseInputJSON with various message formats\n- ParseInputMsgPack for msgpack parsing\n- sanitize function with escaped quotes and payload formatting\n- Error handling for invalid JSON and malformed data\n- Edge cases: empty payloads, multiple metrics, user metadata\n\nCollectd:\n- ParseInputByte for all metric variations\n- Multi-dimensional metrics with multiple values\n- Optional fields (plugin_instance, type_instance)\n- Error handling for invalid JSON and non-array data\n- Edge cases: empty arrays, zero values, negative values, large values\n- Real-world virt plugin data formats\n\n* Add comprehensive test coverage for sensu parser library\n\nCreate test file for sensubility-metrics sensu parser library with\ncomplete coverage of all validation and error building functions.\n\nCo-Authored-By: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n* Add test coverage for manager package (#167)\n\nCreate manager_test.go test cases covering setter functions, plugin initialization error paths, and edge cases.\n\nCo-authored-by: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e\n\n---------\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e\nCo-authored-by: Claude Sonnet 4.5 \u003cnoreply@anthropic.com\u003e"}},"strategy":{"type":"Docker","dockerStrategy":{"from":{"kind":"DockerImage","name":"registry.access.redhat.com/ubi9-minimal@sha256:2bd144364d2cb06b08953ce5764cdbf236bbcd63cea214583c4ed011b4685453"},"pullSecret":{"name":"builder-dockercfg-28rxw"}}},"output":{"to":{"kind":"DockerImage","name":"image-registry.openshift-image-registry.svc:5000/service-telemetry/sg-core:latest"},"pushSecret":{"name":"builder-dockercfg-28rxw"}},"resources":{},"postCommit":{},"nodeSelector":null},"status":{"phase":"New","outputDockerImageReference":"image-registry.openshift-image-registry.svc:5000/service-telemetry/sg-core:latest","config":{"kind":"BuildConfig","namespace":"service-telemetry","name":"sg-core"},"output":{},"conditions":[{"type":"New","status":"True","lastUpdateTime":"2026-02-24T00:24:44Z","lastTransitionTime":"2026-02-24T00:24:44Z"}]}} LANG: C.utf8 PUSH_DOCKERCFG_PATH: /var/run/secrets/openshift.io/push PULL_DOCKERCFG_PATH: /var/run/secrets/openshift.io/pull BUILD_REGISTRIES_CONF_PATH: /var/run/configs/openshift.io/build-system/registries.conf BUILD_REGISTRIES_DIR_PATH: /var/run/configs/openshift.io/build-system/registries.d BUILD_SIGNATURE_POLICY_PATH: /var/run/configs/openshift.io/build-system/policy.json BUILD_STORAGE_CONF_PATH: /var/run/configs/openshift.io/build-system/storage.conf BUILD_BLOBCACHE_DIR: /var/cache/blobs Mounts: /tmp/build from buildworkdir (rw) /var/cache/blobs from build-blob-cache (rw) /var/lib/containers from container-storage-root (rw) /var/lib/containers/cache from buildcachedir (rw) /var/lib/kubelet/config.json from node-pullsecrets (ro) /var/run/configs/openshift.io/build-system from build-system-configs (ro) /var/run/configs/openshift.io/certs from build-ca-bundles (rw) /var/run/configs/openshift.io/pki from build-proxy-ca-bundles (rw) /var/run/containers from container-storage-run (rw) /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-2tq67 (ro) /var/run/secrets/openshift.io/pull from builder-dockercfg-28rxw-pull (ro) /var/run/secrets/openshift.io/push from builder-dockercfg-28rxw-push (ro) Conditions: Type Status PodReadyToStartContainers False Initialized True Ready False ContainersReady False PodScheduled True Volumes: buildcachedir: Type: HostPath (bare host directory volume) Path: /var/lib/containers/cache HostPathType: buildworkdir: Type: EmptyDir (a temporary directory that shares a pod's lifetime) Medium: SizeLimit: node-pullsecrets: Type: HostPath (bare host directory volume) Path: /var/lib/kubelet/config.json HostPathType: File builder-dockercfg-28rxw-push: Type: Secret (a volume populated by a Secret) SecretName: builder-dockercfg-28rxw Optional: false builder-dockercfg-28rxw-pull: Type: Secret (a volume populated by a Secret) SecretName: builder-dockercfg-28rxw Optional: false build-system-configs: Type: ConfigMap (a volume populated by a ConfigMap) Name: sg-core-2-sys-config Optional: false build-ca-bundles: Type: ConfigMap (a volume populated by a ConfigMap) Name: sg-core-2-ca Optional: false build-proxy-ca-bundles: Type: ConfigMap (a volume populated by a ConfigMap) Name: sg-core-2-global-ca Optional: false container-storage-root: Type: EmptyDir (a temporary directory that shares a pod's lifetime) Medium: SizeLimit: container-storage-run: Type: EmptyDir (a temporary directory that shares a pod's lifetime) Medium: SizeLimit: build-blob-cache: Type: EmptyDir (a temporary directory that shares a pod's lifetime) Medium: SizeLimit: kube-api-access-2tq67: Type: Projected (a volume that contains injected data from multiple sources) TokenExpirationSeconds: 3607 ConfigMapName: kube-root-ca.crt Optional: false DownwardAPI: true ConfigMapName: openshift-service-ca.crt Optional: false QoS Class: BestEffort Node-Selectors: kubernetes.io/os=linux Tolerations: node.kubernetes.io/not-ready:NoExecute op=Exists for 300s node.kubernetes.io/unreachable:NoExecute op=Exists for 300s Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 9m28s default-scheduler Successfully assigned service-telemetry/sg-core-2-build to crc Normal AddedInterface 9m27s multus Add eth0 [10.217.0.74/23] from ovn-kubernetes Normal Pulled 9m27s kubelet Container image "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c2a80d6dd943dbbb5c0bc63f4aa17d55e44dbde22a3ea4e6a41a32930dc4ac77" already present on machine Normal Created 9m27s kubelet Created container: git-clone Normal Started 9m27s kubelet Started container git-clone Normal Pulled 9m26s kubelet Container image "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c2a80d6dd943dbbb5c0bc63f4aa17d55e44dbde22a3ea4e6a41a32930dc4ac77" already present on machine Normal Created 9m25s kubelet Created container: manage-dockerfile Normal Started 9m25s kubelet Started container manage-dockerfile Normal Pulled 9m25s kubelet Container image "quay.io/openshift-release-dev/ocp-v4.0-art-dev@sha256:c2a80d6dd943dbbb5c0bc63f4aa17d55e44dbde22a3ea4e6a41a32930dc4ac77" already present on machine Normal Created 9m24s kubelet Created container: docker-build Normal Started 9m24s kubelet Started container docker-build