consul-k8s
consul-k8s copied to clipboard
Allow multiple field managers to manage services for listeners in IngressGateway CRDs
Community Note
- Please vote on this issue by adding a 👍 reaction to the original issue to help the community and maintainers prioritize this request. Searching for pre-existing feature requests helps us consolidate datapoints for identical requirements into a single place, thank you!
- Please do not leave "+1" or other comments that do not add relevant new information or questions, they generate extra noise for issue followers and do not help prioritize the request.
- If you are interested in working on this issue or have submitted a pull request, please leave a comment.
Is your feature request related to a problem? Please describe.
Consul IngressGateway has a limitation in Kubernetes where you cannot easily add services to the same ingress gateway because the services for said ingress gateway are in the same single CRD.
Feature Description
We would like to add the ability for different field managers to manage listeners and services for IngressGateway CRDs by adding the appropriate x-kubernetes-list-*
attributes to the listeners
and services
fields.
Use Case(s)
We use ArgoCD to deploy applications and when applications are deployed, we want them to be able to register themselves in the IngressGateway CRD. We are also working with ArgoCD itself to make that possible as well. We are going to link to that discussion in this feature request if needed.
Contributions
We pretty much need this patch
to be applied to the CRD:
apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
name: ingressgateways.consul.hashicorp.com
spec:
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
properties:
spec:
properties:
listeners:
items:
properties:
services:
items:
required:
- name
- namespace
x-kubernetes-list-map-keys:
- name
- namespace
x-kubernetes-list-type: map
required:
- port
- protocol
x-kubernetes-list-map-keys:
- port
- protocol
x-kubernetes-list-type: map