# SPDX-FileCopyrightText: Copyright (c) 2025 NVIDIA CORPORATION & AFFILIATES. All rights reserved. # SPDX-License-Identifier: Apache-2.0 # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Values.model.shortName }}-epp namespace: {{ .Release.Namespace }} labels: app: {{ .Values.model.shortName }}-epp spec: replicas: 1 selector: matchLabels: app: {{ .Values.model.shortName }}-epp template: metadata: labels: app: {{ .Values.model.shortName }}-epp spec: # Conservatively, this timeout should mirror the longest grace period of the pods within the pool terminationGracePeriodSeconds: 130 {{- if .Values.imagePullSecrets }} imagePullSecrets: {{- range .Values.imagePullSecrets }} - name: {{ . | quote }} {{- end }} {{- end }} containers: - name: epp image: {{ if .Values.eppAware.enabled }}{{ default .Values.extension.image .Values.eppAware.eppImage }}{{ else }}{{ .Values.extension.image }}{{ end }} imagePullPolicy: {{ .Values.epp.imagePullPolicy | default "IfNotPresent" }} args: {{- if .Values.epp.argsOverride }} {{- toYaml .Values.epp.argsOverride | nindent 8 }} {{- else }} - -poolName - "{{ .Values.model.shortName }}-pool" - -poolNamespace - "{{ .Release.Namespace }}" - -v - "4" - --zap-encoder - "json" - -grpcPort - "9002" - -grpcHealthPort - "9003" - -configFile - "/etc/epp/epp-config-dynamo.yaml" {{- end }} {{- if .Values.eppAware.enabled }} volumeMounts: - name: epp-config mountPath: /etc/epp readOnly: true {{- end }} env: {{- range .Values.epp.extraEnv }} - name: {{ .name }} value: {{ .value | quote }} {{- end }} ports: - containerPort: 9002 - containerPort: 9003 - name: metrics containerPort: 9090 livenessProbe: grpc: port: 9003 service: inference-extension initialDelaySeconds: 5 periodSeconds: 10 readinessProbe: grpc: port: 9003 service: inference-extension initialDelaySeconds: 5 periodSeconds: 10 {{- if .Values.eppAware.enabled }} - name: {{ .Values.eppAware.sidecar.name }} image: {{ .Values.eppAware.sidecar.image }} imagePullPolicy: {{ .Values.eppAware.sidecar.imagePullPolicy | default "IfNotPresent" }} command: {{- toYaml .Values.eppAware.sidecar.command | nindent 8 }} args: {{- toYaml .Values.eppAware.sidecar.args | nindent 8 }} env: {{- range .Values.eppAware.sidecar.env }} {{- if .valueFromDynamoNamespace }} - name: {{ .name }} value: "{{ $.Values.dynamoNamespace }}" {{- else }} - name: {{ .name }} value: {{ .value | quote }} {{- end }} {{- end }} ports: {{- toYaml .Values.eppAware.sidecar.ports | nindent 8 }} resources: {{- toYaml .Values.eppAware.sidecar.resources | nindent 10 }} {{- end }} {{- if .Values.eppAware.enabled }} volumes: - name: epp-config configMap: name: {{ include "dynamo-gaie.fullname" . }}-epp-config items: - key: epp-config-dynamo.yaml path: epp-config-dynamo.yaml {{- end }}