App Mesh doesn't inject Envoy proxy to pod

451 Views Asked by At

I'm integrating app mesh to microservices on EKS. I have deployed the microservices and app mesh controller and labelled my workload namespace with the sidecar injector webhook, but the app mesh controller throws a reconcile error.

I have been working on this for a while, and I haven't figured why I get the error. I will appreciate help from anyone who has implemented this successfully.

Errors I'm getting.

"level":"error","ts":1633349081.3646858,"logger":"controller-runtime.controller","msg":"Reconciler error","controller":"virtualnode","request":"myapp/oidctokenconverter","error":"failed to resolve virtualServiceRef: unable to fetch virtualService: myapp/identity-oidctokenconverter: VirtualService.appmesh.k8s.aws \"oidctokenconverter\" not found","errorVerbose":"VirtualService.appmesh.k8s.aws \"oidctokenconverter\" not found\nunable to fetch virtualService
{{- if .Values.global.appMesh.enabled -}}
apiVersion: appmesh.k8s.aws/v1beta2
kind: VirtualNode
metadata:
  name: {{ template "myapp.fullname" . }}
  namespace: myapp
  labels:
{{ include "myapp.match-labels" . | indent 4 }}
{{ include "myapp.pod-extra-labels" . | indent 4 }}
spec:
  awsName: {{ template "myapp.fullname" . }}
  meshName: myapp-mesh
  podSelector:
    matchLabels:
      app: {{ template "myapp.name" . }}
      release: {{ .Release.Name }}
  listeners:
  - portMapping:
      port: 8080
      protocol: http
  backends:
  - virtualService:
      virtualServiceRef: 
        name: {{ template "myapp.fullname" . }}
        namespace: myapp
  serviceDiscovery:
    dns:
      hostname: {{ template "myapp.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local
{{- end }}
{{- if .Values.global.appMesh.enabled -}}
apiVersion: appmesh.k8s.aws/v1beta2
kind: VirtualService
metadata:
  name: {{ template "myapp.fullname" . }}
  namespace: myapp
  labels:
{{ include "myapp.match-labels" . | indent 4 }}
{{ include "myapp.pod-extra-labels" . | indent 4 }}
spec:
  meshName: myapp-mesh
  awsName: {{ template "myapp.fullname" . }}.{{ .Release.Namespace }}.svc.cluster.local
  provider:
    virtualNode:
      virtualNodeRef:
        name: {{ template "myapp.fullname" . }}
{{- end }}
0

There are 0 best solutions below