emissary 3.9.1 manifests do not work
miguelvr opened this issue · comments
Describe the bug
Manifests for 3.9.1 add an init container to the emissary-ingress
deployment that looks for emissary-apiext
in the emissary-system
namespace instead of in the emissary
namespace
To Reproduce
Install the with 3.9.1 manifests
Expected behavior
Init container should start up the pod and look for emissary-apiext
in the emissary
namespace.
The namespace should at the very least be templated with an env var, so it can be modified with kustomize
Versions (please complete the following information):
- Ambassador: 3.9.1
- Kubernetes environment: GKE
- Version 1.25
The installation namespace for the emissary-apiext
deployment should indeed be emissary-system
unless modified from the defaults in the officially published manifests, so this sounds like the correct behaviour to me. Changing the namespace of the emissary-apiext
deployment is totally fine, but you'll need to go ahead and change the init container (and possibly some other configuration depending on your setup). If deploying Emissary with kubectl
you can manually modify the installation manifest. If you're using the helm chart, then the waitForApiext
helm value can be used to point it at your emissary-apiext
installation (or disable it if you like).
I wished something like this worked (it used to):
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: my-namespace # <- THIS
resources:
- https://app.getambassador.io/yaml/emissary/3.9.1/emissary-crds.yaml
- https://app.getambassador.io/yaml/emissary/3.9.1/emissary-emissaryns.yaml
As a workaround for 3.9.x, the following emulates disabling the wait-for-apiext
init container altogether:
kustomization.yaml:
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: my-namespace
resources:
- https://app.getambassador.io/yaml/emissary/3.9.1/emissary-crds.yaml
- https://app.getambassador.io/yaml/emissary/3.9.1/emissary-emissaryns.yaml
patches:
- path: deployment-emissary-ingress.yaml
deployment-emissary-ingress.yaml:
apiVersion: apps/v1
kind: Deployment
metadata:
name: emissary-ingress
namespace: emissary
spec:
template:
spec:
initContainers: null