Skip to content

Conversation

@njegosrailic
Copy link
Contributor

This PR adds support for Gateway API (HTTPRoute) resources to the blockscout-stack Helm chart, allowing users to use Gateway API as an alternative to or alongside traditional Kubernetes Ingress resources.

Closes #106

Changes

  • Added gateway configuration sections to values.yaml for blockscout, frontend, stats, and user-ops-indexer components
  • Created HTTPRoute templates: blockscout-httproute.yaml, frontend-httproute.yaml, stats-httproute.yaml, user-ops-indexer-httproute.yaml
  • Support for Gateway API v1beta1 (and v1 for Kubernetes 1.27+)
  • Maps existing Ingress path configurations to HTTPRoute path matches
  • Backward compatible - existing Ingress configurations continue to work unchanged
  • Ingress and Gateway API can be enabled simultaneously

Usage Example

blockscout:
  gateway:
    enabled: true
    gatewayRef:
      name: my-gateway
      namespace: default
    hostnames:
      - blockscout.example.com

Documentation

  • Updated CHANGELOG.md with version 4.4.0 entry

Testing

I have tested this by exposing both the frontend and backend, and everything works as expected. Example:

apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
  annotations:
    meta.helm.sh/release-name: blockscout
    meta.helm.sh/release-namespace: chain-alpha
  creationTimestamp: "2025-12-24T09:22:52Z"
  generation: 1
  labels:
    app.kubernetes.io/instance: blockscout
    app.kubernetes.io/managed-by: Helm
    app.kubernetes.io/name: blockscout-stack
    app.kubernetes.io/version: 9.3.0
    helm.sh/chart: blockscout-stack-4.4.0
  name: blockscout-blockscout-httproute
  namespace: chain-alpha
  resourceVersion: "309600872"
  uid: 79fe4e41-77ca-48d4-8b61-d0bf261c296c
spec:
  hostnames:
  - blockscout.example.com
  parentRefs:
  - group: gateway.networking.k8s.io
    kind: Gateway
    name: internal
    namespace: default
  rules:
  - backendRefs:
    - group: ""
      kind: Service
      name: blockscout-blockscout-svc
      port: 80
      weight: 1
    matches:
    - path:
        type: PathPrefix
        value: /
status:
  parents:
  - conditions:
    - lastTransitionTime: "2025-12-24T09:22:52Z"
      message: Route is accepted
      observedGeneration: 1
      reason: Accepted
      status: "True"
      type: Accepted
    - lastTransitionTime: "2025-12-24T09:22:52Z"
      message: Resolved all the Object references for the Route
      observedGeneration: 1
      reason: ResolvedRefs
      status: "True"
      type: ResolvedRefs
    controllerName: gateway.envoyproxy.io/gatewayclass-controller
    parentRef:
      group: gateway.networking.k8s.io
      kind: Gateway
      name: internal
      namespace: default

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Feature Request: Add Gateway API (HTTPRoute) Support to blockscout-stack Helm chart

1 participant