<p>If you are managing ingress service such as in the following example, instead of updating the ingress file below, is there a means of adding an additional host/service such as echo3.example.com with out needing to apply an updated version of the original file?</p>

<pre><code>apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: echo-ingress
spec:
  rules:
  - host: echo1.example.com
    http:
      paths:
      - backend:
          serviceName: echo1
          servicePort: 80
  - host: echo2.example.com
    http:
      paths:
      - backend:
          serviceName: echo2
          servicePort: 80

</code></pre>

<pre><code># NEW HOST/SERVICE

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: echo-ingress
spec:
  rules:
  - host: echo3.example.com ### &lt;= `echo3` addeded
    http:
      paths:
      - backend:
          serviceName: echo3
          servicePort: 80
</code></pre>

<p>Is there a way of applying this new host without needing to extend the old file?</p>

denski
<p>If you apply the two files, the second one will overwrite the first one as they have the same name. So, you would need to edit the original every time you add a new rule.</p>

<p>One possible solution to avoid this problem would be to use <a href="https://github.com/heptio/contour/blob/master/docs/ingressroute.md" rel="nofollow noreferrer">Contour</a>. In that case you could keep each <code>IngressRoute</code> in a separate resource and avoid conflicts like that.</p>

<p>In your case, you would have something like:</p>

<pre><code># ingressroute-echo1.yaml
apiVersion: contour.heptio.com/v1beta1
kind: IngressRoute
metadata:
  name: echo-ingress-1
spec:
  virtualhost:
    fqdn: echo1.example.com
  routes:
    - match: /
      services:
        - name: echo1
          port: 80

# ingressroute-echo2.yaml
apiVersion: contour.heptio.com/v1beta1
kind: IngressRoute
metadata:
  name: echo-ingress-2
spec:
  virtualhost:
    fqdn: echo2.example.com
  routes:
    - match: /
      services:
        - name: echo2
          port: 80

# ingressroute-echo3.yaml
apiVersion: contour.heptio.com/v1beta1
kind: IngressRoute
metadata:
  name: echo-ingress-3
spec:
  virtualhost:
    fqdn: echo3.example.com
  routes:
    - match: /
      services:
        - name: echo3
          port: 80
</code></pre>
