Skip to content

Commit 43ec968

Browse files
Adddressing review comments
Signed-off-by: Vishesh Tanksale <vtanksale@nvidia.com>
1 parent b384bc3 commit 43ec968

File tree

9 files changed

+34
-101
lines changed

9 files changed

+34
-101
lines changed

api/apps/v1alpha1/nimcache_types.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,7 @@ type NIMCacheSpec struct {
4848
GroupID *int64 `json:"groupID,omitempty"`
4949
// CertConfig is the name of the ConfigMap containing the custom certificates.
5050
// for secure communication.
51+
//
5152
// Deprecated: use `Proxy` instead to configure custom certificates for using proxy.
5253
// +optional
5354
CertConfig *CertConfig `json:"certConfig,omitempty"`

api/apps/v1alpha1/nimservice_types.go

Lines changed: 25 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -275,17 +275,6 @@ func (n *NIMService) GetStandardEnv() []corev1.EnvVar {
275275
Name: "NIM_CACHE_PATH",
276276
Value: utils.DefaultModelStorePath,
277277
},
278-
{
279-
Name: "NGC_API_KEY",
280-
ValueFrom: &corev1.EnvVarSource{
281-
SecretKeyRef: &corev1.SecretKeySelector{
282-
LocalObjectReference: corev1.LocalObjectReference{
283-
Name: n.Spec.AuthSecret,
284-
},
285-
Key: "NGC_API_KEY",
286-
},
287-
},
288-
},
289278
{
290279
Name: "OUTLINES_CACHE_DIR",
291280
Value: "/tmp/outlines",
@@ -362,6 +351,11 @@ func (n *NIMService) getLWSCommonEnv() []corev1.EnvVar {
362351
return env
363352
}
364353

354+
// GetLWSLeaderEnvFrom returns the env from sources for the leader worker set.
355+
func (n *NIMService) GetLWSCommonEnvFrom() []corev1.EnvFromSource {
356+
return n.GetEnvFrom()
357+
}
358+
365359
func (n *NIMService) GetLWSLeaderEnv() []corev1.EnvVar {
366360
env := n.getLWSCommonEnv()
367361

@@ -566,6 +560,23 @@ func (n *NIMService) GetEnv() []corev1.EnvVar {
566560
return envVarList
567561
}
568562

563+
// GetEnvFrom returns merged slice of standard and user specified env from sources.
564+
func (n *NIMService) GetEnvFrom() []corev1.EnvFromSource {
565+
if n.Spec.AuthSecret != "" {
566+
return []corev1.EnvFromSource{
567+
{
568+
SecretRef: &corev1.SecretEnvSource{
569+
LocalObjectReference: corev1.LocalObjectReference{
570+
Name: n.Spec.AuthSecret,
571+
},
572+
},
573+
},
574+
}
575+
}
576+
// no secrets to source the env variables
577+
return []corev1.EnvFromSource{}
578+
}
579+
569580
// GetImage returns container image for the NIMService.
570581
func (n *NIMService) GetImage() string {
571582
return fmt.Sprintf("%s:%s", n.Spec.Image.Repository, n.Spec.Image.Tag)
@@ -1047,6 +1058,7 @@ func (n *NIMService) GetDeploymentParams() *rendertypes.DeploymentParams {
10471058
// Set container spec
10481059
params.ContainerName = n.GetContainerName()
10491060
params.Env = n.GetEnv()
1061+
params.EnvFrom = n.GetEnvFrom()
10501062
params.Args = n.GetArgs()
10511063
params.Command = n.GetCommand()
10521064
params.Resources = n.GetResources()
@@ -1118,6 +1130,8 @@ func (n *NIMService) GetLWSParams() *rendertypes.LeaderWorkerSetParams {
11181130
params.Command = n.GetCommand()
11191131
params.LeaderEnvs = n.GetLWSLeaderEnv()
11201132
params.WorkerEnvs = n.GetLWSWorkerEnv()
1133+
params.LeaderEnvFrom = n.GetLWSCommonEnvFrom()
1134+
params.WorkerEnvFrom = n.GetLWSCommonEnvFrom()
11211135
params.UserID = n.GetUserID()
11221136
params.GroupID = n.GetGroupID()
11231137
params.Image = n.GetImage()

config/crd/bases/apps.nvidia.com_nimcaches.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,7 @@ spec:
5454
description: |-
5555
CertConfig is the name of the ConfigMap containing the custom certificates.
5656
for secure communication.
57+
5758
Deprecated: use `Proxy` instead to configure custom certificates for using proxy.
5859
properties:
5960
mountPath:

internal/controller/platform/standalone/nimservice.go

Lines changed: 0 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -462,26 +462,6 @@ func (r *NIMServiceReconciler) reconcileNIMService(ctx context.Context, nimServi
462462
Value: utils.DefaultModelStorePath,
463463
}}, deploymentParams.Env)
464464
}
465-
// If NIMCache is not provided, and the model is from Hugging Face, add the HF_TOKEN to the environment variables
466-
if nimService.GetNIMCacheName() == "" {
467-
env := utils.FindEnvByValue(deploymentParams.Env, "NIM_MODEL_NAME")
468-
if env != nil {
469-
if strings.HasPrefix(env.Value, "hf://") {
470-
deploymentParams.Env = utils.RemoveEnvVar(deploymentParams.Env, "NGC_API_KEY")
471-
envVars, err := k8sutil.GetSecretEnvVars(r.GetClient(), ctx, nimService.GetNamespace(), nimService.Spec.AuthSecret)
472-
if err != nil {
473-
return ctrl.Result{}, err
474-
}
475-
env = utils.FindEnvByValue(envVars, "HF_TOKEN")
476-
if env != nil {
477-
deploymentParams.Env = utils.MergeEnvVars(envVars, deploymentParams.Env)
478-
} else {
479-
return ctrl.Result{}, fmt.Errorf("HF_TOKEN not found in secret %s", env.Value)
480-
}
481-
482-
}
483-
}
484-
}
485465
// Setup volume mounts with model store
486466
deploymentParams.Volumes = nimService.GetVolumes(*modelPVC)
487467
deploymentParams.VolumeMounts = nimService.GetVolumeMounts(*modelPVC)

internal/controller/platform/standalone/nimservice_test.go

Lines changed: 0 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1107,17 +1107,6 @@ var _ = Describe("NIMServiceReconciler for a standalone platform", func() {
11071107
Name: "NIM_CACHE_PATH",
11081108
Value: "/model-store",
11091109
},
1110-
{
1111-
Name: "NGC_API_KEY",
1112-
ValueFrom: &corev1.EnvVarSource{
1113-
SecretKeyRef: &corev1.SecretKeySelector{
1114-
LocalObjectReference: corev1.LocalObjectReference{
1115-
Name: "",
1116-
},
1117-
Key: "NGC_API_KEY",
1118-
},
1119-
},
1120-
},
11211110
{
11221111
Name: "OUTLINES_CACHE_DIR",
11231112
Value: "/tmp/outlines",
@@ -1209,17 +1198,6 @@ var _ = Describe("NIMServiceReconciler for a standalone platform", func() {
12091198
Name: "NIM_CACHE_PATH",
12101199
Value: "/model-store",
12111200
},
1212-
{
1213-
Name: "NGC_API_KEY",
1214-
ValueFrom: &corev1.EnvVarSource{
1215-
SecretKeyRef: &corev1.SecretKeySelector{
1216-
LocalObjectReference: corev1.LocalObjectReference{
1217-
Name: "",
1218-
},
1219-
Key: "NGC_API_KEY",
1220-
},
1221-
},
1222-
},
12231201
{
12241202
Name: "OUTLINES_CACHE_DIR",
12251203
Value: "/tmp/outlines",

internal/k8sutil/k8sutil.go

Lines changed: 0 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -412,32 +412,3 @@ func ControllerOwnsIfCRDExists(discoveryClient discovery.DiscoveryInterface,
412412
},
413413
)
414414
}
415-
416-
func GetSecretEnvVars(cli client.Client, ctx context.Context, namespace, secretName string) ([]corev1.EnvVar, error) {
417-
secret := &corev1.Secret{}
418-
err := cli.Get(ctx, client.ObjectKey{
419-
Namespace: namespace,
420-
Name: secretName,
421-
}, secret)
422-
if err != nil {
423-
return nil, fmt.Errorf("failed to get secret %s: %w", secretName, err)
424-
}
425-
426-
// Convert the secret data into EnvVars
427-
envVars := []corev1.EnvVar{}
428-
for key := range secret.Data {
429-
envVars = append(envVars, corev1.EnvVar{
430-
Name: key,
431-
ValueFrom: &corev1.EnvVarSource{
432-
SecretKeyRef: &corev1.SecretKeySelector{
433-
LocalObjectReference: corev1.LocalObjectReference{
434-
Name: secretName,
435-
},
436-
Key: key,
437-
},
438-
},
439-
})
440-
}
441-
442-
return envVars, nil
443-
}

internal/render/types/types.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,7 @@ type DeploymentParams struct {
7171
Volumes []corev1.Volume
7272
VolumeMounts []corev1.VolumeMount
7373
Env []corev1.EnvVar
74+
EnvFrom []corev1.EnvFromSource
7475
Resources *corev1.ResourceRequirements
7576
NodeSelector map[string]string
7677
Tolerations []corev1.Toleration
@@ -112,6 +113,8 @@ type LeaderWorkerSetParams struct {
112113
LeaderVolumeMounts []corev1.VolumeMount
113114
WorkerEnvs []corev1.EnvVar
114115
LeaderEnvs []corev1.EnvVar
116+
WorkerEnvFrom []corev1.EnvFromSource
117+
LeaderEnvFrom []corev1.EnvFromSource
115118
Resources *corev1.ResourceRequirements
116119
NodeSelector map[string]string
117120
Tolerations []corev1.Toleration

internal/utils/utils.go

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -494,22 +494,3 @@ func IsVersionGreaterThanOrEqual(version string, minVersion string) bool {
494494
}
495495
return cv.AtLeast(mv)
496496
}
497-
498-
func RemoveEnvVar(envs []corev1.EnvVar, name string) []corev1.EnvVar {
499-
result := make([]corev1.EnvVar, 0, len(envs))
500-
for _, e := range envs {
501-
if e.Name != name {
502-
result = append(result, e)
503-
}
504-
}
505-
return result
506-
}
507-
508-
func FindEnvByValue(envs []corev1.EnvVar, key string) *corev1.EnvVar {
509-
for i := range envs {
510-
if envs[i].Name == key {
511-
return &envs[i]
512-
}
513-
}
514-
return nil
515-
}

manifests/deployment.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,10 @@ spec:
9898
{{- if .Env }}
9999
{{- .Env | yaml | nindent 10 }}
100100
{{- end }}
101+
envFrom:
102+
{{- if .EnvFrom }}
103+
{{- .EnvFrom | yaml | nindent 10 }}
104+
{{- end }}
101105
{{- with .Resources }}
102106
resources:
103107
{{ . | yaml | nindent 10 }}

0 commit comments

Comments
 (0)