|
| 1 | +# HTTPRoute Support Added to Helm Charts |
| 2 | + |
| 3 | +## Summary |
| 4 | + |
| 5 | +All Helm charts in the `helm-charts` repository that contain Kubernetes Ingress resources have been extended to also provide optional HTTPRoute resources for the Gateway API. |
| 6 | + |
| 7 | +## Charts Updated |
| 8 | + |
| 9 | +The following 18 charts now support HTTPRoute (Gateway API) in addition to Ingress: |
| 10 | + |
| 11 | +1. **o-neko** - Added httproute.yaml template and values |
| 12 | +2. **o-neko-catnip** - Added httproute.yaml template and values |
| 13 | +3. **sophora-admin-dashboard** - Added httproute.yaml template and values |
| 14 | +4. **sophora-ai** - Added httproute.yaml template and values |
| 15 | +5. **sophora-contentapi** - Added httproute.yaml template and values |
| 16 | +6. **sophora-image-access-service** - Added httproute.yaml template and values (with support for multiple routes) |
| 17 | +7. **sophora-image-ai** - Added httproute.yaml template and values |
| 18 | +8. **sophora-importer** - HTTPRoute support already existed (no changes needed) |
| 19 | +9. **sophora-indexing-service** - Added httproute.yaml template and values |
| 20 | +10. **sophora-linkchecker** - Added httproute.yaml template and values |
| 21 | +11. **sophora-media-finder** - Added httproute.yaml template and values |
| 22 | +12. **sophora-metadata-supplier** - Added httproute.yaml template and values |
| 23 | +13. **sophora-schema-docs** - Added httproute.yaml template and values |
| 24 | +14. **sophora-seo-check** - Added httproute.yaml template and values |
| 25 | +15. **sophora-server** - Added httproute.yaml template and values |
| 26 | +16. **sophora-ugc** - Added httproute.yaml template and values |
| 27 | +17. **sophora-webclient** - Added httproute.yaml template and values |
| 28 | +18. **sophora-youtube-connector** - Added httproute.yaml template and values |
| 29 | + |
| 30 | +## Implementation Details |
| 31 | + |
| 32 | +### HTTPRoute Templates |
| 33 | + |
| 34 | +Each chart now includes a `templates/httproute.yaml` file that: |
| 35 | +- Is conditionally created based on `httproute.enabled` value |
| 36 | +- Uses the Gateway API v1 specification |
| 37 | +- Supports parentRefs for Gateway attachment |
| 38 | +- Supports hostname filtering |
| 39 | +- Supports path matching (PathPrefix, Exact, or RegularExpression) |
| 40 | +- Includes the same labels and annotations pattern as Ingress resources |
| 41 | +- Routes traffic to the same backend service as the Ingress |
| 42 | + |
| 43 | +### Values.yaml Configuration |
| 44 | + |
| 45 | +Each chart's `values.yaml` file now includes an `httproute` section with the following configuration options: |
| 46 | + |
| 47 | +```yaml |
| 48 | +httproute: |
| 49 | + enabled: false # Whether to create HTTPRoute (disabled by default) |
| 50 | + parentRefs: [] # Gateway references |
| 51 | + hostnames: [] # Hostnames for routing |
| 52 | + pathMatchType: PathPrefix # Path match type (PathPrefix, Exact, RegularExpression) |
| 53 | + pathValue: / # Path value for matching |
| 54 | + annotations: {} # Additional annotations |
| 55 | +``` |
| 56 | +
|
| 57 | +### Special Cases |
| 58 | +
|
| 59 | +1. **sophora-image-access-service**: Supports multiple HTTPRoutes via `extraHTTPRoute` array, similar to its `extraIngress` support. |
| 60 | + |
| 61 | +2. **sophora-importer**: Already had HTTPRoute support with a more advanced configuration including custom rules and filters. |
| 62 | + |
| 63 | +3. **sophora-server**: Uses the server's HTTP port from `sophora.server.ports.http` configuration. |
| 64 | + |
| 65 | +## Usage Example |
| 66 | + |
| 67 | +To enable HTTPRoute for a chart deployment: |
| 68 | + |
| 69 | +```yaml |
| 70 | +httproute: |
| 71 | + enabled: true |
| 72 | + parentRefs: |
| 73 | + - name: my-gateway |
| 74 | + namespace: gateway-system |
| 75 | + hostnames: |
| 76 | + - "myapp.example.com" |
| 77 | + pathMatchType: PathPrefix |
| 78 | + pathValue: / |
| 79 | + annotations: |
| 80 | + custom.annotation: "value" |
| 81 | +``` |
| 82 | + |
| 83 | +## Migration Path |
| 84 | + |
| 85 | +Users can: |
| 86 | +1. Continue using Ingress resources (default behavior) |
| 87 | +2. Enable HTTPRoute alongside Ingress for testing |
| 88 | +3. Migrate to HTTPRoute exclusively by disabling Ingress and enabling HTTPRoute |
| 89 | + |
| 90 | +All changes are backward compatible - existing deployments will continue to work without modification. |
| 91 | + |
| 92 | +## Gateway API Compatibility |
| 93 | + |
| 94 | +The HTTPRoute resources use the `gateway.networking.k8s.io/v1` API version, which is the stable Gateway API specification. |
0 commit comments