Skip to content
This repository was archived by the owner on Sep 9, 2026. It is now read-only.

NO-ISSUE: Remove gRPC probe hook - #314

Closed
jhernand wants to merge 1 commit into
osac-project:mainfrom
jhernand:update_fulfillment_service_and_remove_grpc_probe_hook
Closed

jhernand wants to merge 1 commit into
osac-project:mainfrom
jhernand:update_fulfillment_service_and_remove_grpc_probe_hook

Conversation

@jhernand

@jhernand jhernand commented Jun 23, 2026

Copy link
Copy Markdown
Contributor

Summary

Removes the patch-grpc-probes post-install/post-upgrade Helm hook,
which is no longer needed since the fulfillment-service upstream charts
now include increased gRPC probe timeouts directly.

Reference: osac-project/fulfillment-service#743

Test plan

  • Verify kustomize-build-all.sh passes
  • Verify helm template renders without the removed hook
  • Deploy to a dev cluster and confirm gRPC server probes use the increased timeouts without a post-install patch job

Summary by CodeRabbit

Release Notes

  • Chores
    • Removed automatic gRPC probe configuration adjustments that were previously applied during installation and upgrades.

@openshift-ci
openshift-ci Bot requested review from larsks and rgolangh June 23, 2026 14:17
@openshift-ci

openshift-ci Bot commented Jun 23, 2026

Copy link
Copy Markdown

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: jhernand

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@coderabbitai

coderabbitai Bot commented Jun 23, 2026

Copy link
Copy Markdown

Review Change Stack

Walkthrough

This change removes the Helm hook job that previously ran after install and upgrade to patch the fulfillment-grpc-server deployment’s gRPC readiness and liveness probe timeout and failure threshold settings.

Changes

Cohort / File(s) Summary
gRPC probe hook removal
charts/osac/templates/hooks/patch-grpc-probes.yaml
Deletes the Kubernetes Job hook that used oc patch to modify probe settings for deploy/fulfillment-grpc-server in the release namespace.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

Suggested reviewers

  • larsks
  • tzumainn

Poem

A hook took bow and left the stage,
No patching script, no post-upgrade.
The chart now travels light and free,
With one less job in Helm’s decree.
🌤️ YAML sighed: “Less work for me.”


Caution

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

  • Ignore

❌ Failed checks (1 error)

Check name Status Explanation Resolution
No-Injection-Vectors ❌ Error PR adds shell scripts with JSON patch injection vulnerabilities: unescaped variables (${value}, ${api_route_host}, ${NEW_HOST}, ${INSTALLER_NAMESPACE}) embedded in JSON patch strings for oc/kubectl... Escape variables in JSON patches using jq -n or proper JSON escaping (e.g., jq -Rs for strings); e.g., jq -n --arg v "$value" '...|.value=$v' instead of -p "[{\"value\":\"${value}\"}]"
✅ Passed checks (10 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
No-Hardcoded-Secrets ✅ Passed No hardcoded secrets found. Only admin/admin defaults in Keycloak setup scripts (allowed exception) and legitimate Kubernetes Secret references.
No-Weak-Crypto ✅ Passed PR removes patch-grpc-probes.yaml (53 lines deleted). Deleted file contained only a Kubernetes Job manifest using 'oc patch' command; no MD5, SHA1, DES, RC4, 3DES, Blowfish, ECB, custom crypto, or...
Container-Privileges ✅ Passed No privilege escalation issues found: zero instances of privileged: true, hostPID/hostNetwork/hostIPC, SYS_ADMIN, or allowPrivilegeEscalation: true in current manifests. Removed hook also lacked pr...
No-Sensitive-Data-In-Logs ✅ Passed The PR removes a Helm hook file and updates a submodule reference. No logging that exposes passwords, tokens, API keys, PII, session IDs, internal hostnames, or customer data is introduced or prese...
Ai-Attribution ✅ Passed AI tool (Cursor) usage is properly attributed with "Assisted-by: Cursor" trailer in commit; no misuse of Co-Authored-By for AI.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the two main changes: updating the fulfillment-service submodule and removing the gRPC probe hook that is no longer needed due to upstream changes.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands.

@jhernand jhernand changed the title Update fulfillment-service and remove gRPC probe hook NO-ISSUE: Update fulfillment-service and remove gRPC probe hook Jun 23, 2026
@openshift-ci-robot

Copy link
Copy Markdown

@jhernand: This pull request explicitly references no jira issue.

Details

In response to this:

Summary

  • Updates the fulfillment-service submodule to the latest main, which includes increased gRPC probe timeouts directly in the upstream charts.
  • Removes the patch-grpc-probes post-install/post-upgrade Helm hook that is no longer needed.
  • Updates the image tag in base/kustomization.yaml to match the new submodule commit.

Reference: osac-project/fulfillment-service#743

Test plan

  • Verify kustomize-build-all.sh passes
  • Verify helm template renders without the removed hook
  • Deploy to a dev cluster and confirm gRPC server probes use the increased timeouts without a post-install patch job

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

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 `@base/osac-aap`:
- Line 1: The osac-aap image tag in the kustomization configuration is out of
sync with the submodule commit pointer. Locate the osac-aap image entry with
newName set to ghcr.io/osac-project/osac-aap and update its newTag field from
sha-f130cf4 to sha-1ada6eb to match the current submodule commit. This ensures
the image tag and submodule pointer remain synchronized as required by the
coding guidelines.
🪄 Autofix (Beta)

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: osac-project/coderabbit/.coderabbit.yaml

Review profile: ASSERTIVE

Plan: Enterprise

Run ID: aeba05fb-6994-46b6-b80f-fa7ad812f93e

📥 Commits

Reviewing files that changed from the base of the PR and between 5c692e1 and ef0eb46.

📒 Files selected for processing (5)
  • base/kustomization.yaml
  • base/osac-aap
  • base/osac-fulfillment-service
  • base/osac-operator
  • charts/osac/templates/hooks/patch-grpc-probes.yaml
💤 Files with no reviewable changes (1)
  • charts/osac/templates/hooks/patch-grpc-probes.yaml

Comment thread base/osac-aap Outdated
@@ -1 +1 @@
Subproject commit f130cf4504090609a70d9896aee18cdf56e2530e
Subproject commit 1ada6eb443c45d0848a91bd81a2222cd6334081f

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🗄️ Data Integrity & Integration | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

python - <<'PY'
import re
import subprocess
import sys

commit = subprocess.check_output(
    ["git", "submodule", "status", "base/osac-aap"],
    text=True,
).split()[0].lstrip(" +-")
expected = f"sha-{commit[:7]}"

with open("base/kustomization.yaml", encoding="utf-8") as fh:
    lines = fh.read().splitlines()

in_images = False
entries = []
current = None

for lineno, line in enumerate(lines, 1):
    if re.match(r"^\s*images:\s*$", line):
        in_images = True
        continue
    if in_images and re.match(r"^\S", line) and not re.match(r"^\s*-", line):
        break
    if not in_images:
        continue

    name = re.match(r"^\s*-\s*name:\s*[\"']?([^\"']+)[\"']?\s*$", line)
    if name:
        if current:
            entries.append(current)
        current = {"name": name.group(1), "newTag": None, "lines": [f"{lineno}:{line}"]}
        continue

    if current:
        current["lines"].append(f"{lineno}:{line}")
        tag = re.match(r"^\s*newTag:\s*[\"']?([^\"']+)[\"']?\s*$", line)
        if tag:
            current["newTag"] = tag.group(1)

if current:
    entries.append(current)

matches = [entry for entry in entries if entry["name"] == "osac-aap"]
if not matches:
    print("No osac-aap image entry found in base/kustomization.yaml", file=sys.stderr)
    sys.exit(1)

for entry in matches:
    print("\n".join(entry["lines"]))
    if entry["newTag"] == expected:
        print(f"OK: osac-aap newTag matches {expected}")
        sys.exit(0)

print(
    f"Expected osac-aap newTag {expected}, found {[entry['newTag'] for entry in matches]}",
    file=sys.stderr,
)
sys.exit(2)
PY

Repository: osac-project/osac-installer

Length of output: 314


Update osac-aap image tag to match submodule commit.

The submodule pointer was moved to 1ada6eb but the image tag in base/kustomization.yaml (line 34) is still sha-f130cf4. Update it to sha-1ada6eb to maintain the submodule/image sync contract. Per the coding guidelines, "Image tags in base/kustomization.yaml must match the submodule commit SHAs... After updating a submodule pointer, update the corresponding image tag."

Current state
32:- name: osac-aap
33:  newName: ghcr.io/osac-project/osac-aap
34:  newTag: sha-f130cf4
🤖 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 `@base/osac-aap` at line 1, The osac-aap image tag in the kustomization
configuration is out of sync with the submodule commit pointer. Locate the
osac-aap image entry with newName set to ghcr.io/osac-project/osac-aap and
update its newTag field from sha-f130cf4 to sha-1ada6eb to match the current
submodule commit. This ensures the image tag and submodule pointer remain
synchronized as required by the coding guidelines.

Source: Coding guidelines

The fulfillment-service upstream Helm charts now include increased
probe timeouts (`timeoutSeconds` and `failureThreshold`) directly,
as per osac-project/fulfillment-service#743.
This makes the post-install hook that patched the gRPC server
deployment unnecessary, so remove it.

Assisted-by: Cursor
Signed-off-by: Juan Hernandez <juan.hernandez@redhat.com>
@jhernand
jhernand force-pushed the update_fulfillment_service_and_remove_grpc_probe_hook branch from ef0eb46 to 3d27703 Compare June 23, 2026 14:33
@jhernand jhernand changed the title NO-ISSUE: Update fulfillment-service and remove gRPC probe hook NO-ISSUE: Remove gRPC probe hook Jun 23, 2026
@omer-vishlitzky

Copy link
Copy Markdown
Contributor

💀 CI Triage: broken_main | Category: BOOT

Root cause: The publish-templates AAP job failed with a 403 Forbidden because Authorino enforced an unpatched AuthConfig after PR 313 removed the osac-patch-authconfig hook.

Explanation: The boot step failed during the refresh phase when the publish-templates AAP job received a 403 Forbidden from the internal API. The 403 was returned by Authorino, which denied access to the template-publisher service account. This happened because PR 313 (merged shortly before this CI run) removed the osac-patch-authconfig Helm hook, which was responsible for allowlisting the service account in the AuthConfig. Although the fulfillment-service is migrating away from Authorino, the snapshot flavor still contains it, and refresh-after-snapshot.py was still scaling it up. This broken state on the main branch was later fixed by PR 317 (which removed Authorino from the refresh script), but this CI run started before PR 317 was merged.

Evidence:

e2e-vmaas-osac-project-cluster-tool-boot:

[ERROR]: Task failed: Module failed: Status code was 403 and not [200]: HTTP Error 403: Forbidden

pod-authorino-597d875974-x7zfs-authorino.log:

{"level":"info","ts":"2026-06-23T15:36:06Z","logger":"authorino.service.auth","msg":"outgoing authorization response","request id":"372e8381-c827-40a7-84ba-83357ed79db9","authorized":false,"response":"PERMISSION_DENIED","object":{"code":7,"message":"Unauthorized"}}

pod-fulfillment-ingress-proxy-5d76744b89-gbbdn-envoy.log:

[2026-06-23T15:36:06.264Z] "GET /api/private/v1/cluster_templates HTTP/1.1" 403 - 0 40 15 14 "-" "ansible-httpget" "d8b9cc52-fac8-400f-9e7b-2ac2114f24e3" "fulfillment-internal-api:8001" "172.30.0.202:8000"

Suggestion: Rebase the PR on the latest main branch (which includes PR 317) and retrigger the tests.


Prow job | Build 2069428618945105920 | 🤖 triagent

For deeper investigation, use the /osac-debug-e2e skill with this build ID.

@omer-vishlitzky

Copy link
Copy Markdown
Contributor

/retest

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants