Unverified Commit 02a33f15 authored by julienmancuso's avatar julienmancuso Committed by GitHub
Browse files

feat: add dynamoDeployment CR finalizer (#623)

parent cb0ceb81
......@@ -18,6 +18,7 @@
package nim
import (
"context"
"testing"
compounaiCommon "github.com/ai-dynamo/dynamo/deploy/dynamo/operator/api/dynamo/common"
......@@ -94,7 +95,9 @@ func TestGenerateDynamoNIMDeployments(t *testing.T) {
Spec: v1alpha1.DynamoNimDeploymentSpec{
DynamoNim: "dynamonim--ac4e234",
DynamoTag: "dynamonim:MyService1",
DynamoNimDeploymentSharedSpec: v1alpha1.DynamoNimDeploymentSharedSpec{
ServiceName: "service1",
DynamoNamespace: &[]string{"default"}[0],
Resources: &compounaiCommon.Resources{
Requests: &compounaiCommon.ResourceItem{
CPU: "1",
......@@ -122,6 +125,7 @@ func TestGenerateDynamoNIMDeployments(t *testing.T) {
},
},
},
},
"service2": {
ObjectMeta: metav1.ObjectMeta{
Name: "test-dynamodeployment-service2",
......@@ -130,6 +134,7 @@ func TestGenerateDynamoNIMDeployments(t *testing.T) {
Spec: v1alpha1.DynamoNimDeploymentSpec{
DynamoNim: "dynamonim--ac4e234",
DynamoTag: "dynamonim:MyService1",
DynamoNimDeploymentSharedSpec: v1alpha1.DynamoNimDeploymentSharedSpec{
ServiceName: "service2",
Autoscaling: &v1alpha1.Autoscaling{
Enabled: false,
......@@ -137,6 +142,7 @@ func TestGenerateDynamoNIMDeployments(t *testing.T) {
},
},
},
},
wantErr: false,
},
{
......@@ -194,6 +200,7 @@ func TestGenerateDynamoNIMDeployments(t *testing.T) {
Spec: v1alpha1.DynamoNimDeploymentSpec{
DynamoNim: "dynamonim--ac4e234",
DynamoTag: "dynamonim:MyService2",
DynamoNimDeploymentSharedSpec: v1alpha1.DynamoNimDeploymentSharedSpec{
ServiceName: "service1",
Resources: &compounaiCommon.Resources{
Requests: &compounaiCommon.ResourceItem{
......@@ -226,6 +233,7 @@ func TestGenerateDynamoNIMDeployments(t *testing.T) {
},
},
},
},
"service2": {
ObjectMeta: metav1.ObjectMeta{
Name: "test-dynamodeployment-service2",
......@@ -234,13 +242,124 @@ func TestGenerateDynamoNIMDeployments(t *testing.T) {
Spec: v1alpha1.DynamoNimDeploymentSpec{
DynamoNim: "dynamonim--ac4e234",
DynamoTag: "dynamonim:MyService2",
DynamoNimDeploymentSharedSpec: v1alpha1.DynamoNimDeploymentSharedSpec{
ServiceName: "service2",
DynamoNamespace: &[]string{"default"}[0],
Autoscaling: &v1alpha1.Autoscaling{
Enabled: false,
},
},
},
},
},
wantErr: false,
},
{
name: "Test GenerateDynamoNIMDeployments dynamo dependency, default namespace",
args: args{
parentDynamoDeployment: &v1alpha1.DynamoDeployment{
ObjectMeta: metav1.ObjectMeta{
Name: "test-dynamodeployment",
Namespace: "default",
},
Spec: v1alpha1.DynamoDeploymentSpec{
DynamoNim: "dynamonim:ac4e234",
},
},
config: &DynamoNIMConfig{
DynamoTag: "dynamonim:MyService2",
EntryService: "service1",
Services: []ServiceConfig{
{
Name: "service1",
Dependencies: []map[string]string{{"service": "service2"}},
Config: Config{
Resources: &Resources{
CPU: "1",
Memory: "1Gi",
GPU: "0",
Custom: map[string]string{},
},
Autoscaling: &Autoscaling{
MinReplicas: 1,
MaxReplicas: 5,
},
},
},
{
Name: "service2",
Dependencies: []map[string]string{},
Config: Config{
Dynamo: &DynamoConfig{
Enabled: true,
Name: "service2",
},
},
},
},
},
},
want: map[string]*v1alpha1.DynamoNimDeployment{
"service1": {
ObjectMeta: metav1.ObjectMeta{
Name: "test-dynamodeployment-service1",
Namespace: "default",
},
Spec: v1alpha1.DynamoNimDeploymentSpec{
DynamoNim: "dynamonim--ac4e234",
DynamoTag: "dynamonim:MyService2",
DynamoNimDeploymentSharedSpec: v1alpha1.DynamoNimDeploymentSharedSpec{
ServiceName: "service1",
Resources: &compounaiCommon.Resources{
Requests: &compounaiCommon.ResourceItem{
CPU: "1",
Memory: "1Gi",
GPU: "0",
Custom: map[string]string{},
},
Limits: &compounaiCommon.ResourceItem{
CPU: "1",
Memory: "1Gi",
GPU: "0",
Custom: map[string]string{},
},
},
Autoscaling: &v1alpha1.Autoscaling{
Enabled: true,
MinReplicas: 1,
MaxReplicas: 5,
},
ExternalServices: map[string]v1alpha1.ExternalService{
"service2": {
DeploymentSelectorKey: "dynamo",
DeploymentSelectorValue: "service2/dynamo-test-dynamodeployment",
},
},
Ingress: v1alpha1.IngressSpec{
Enabled: true,
UseVirtualService: &[]bool{true}[0],
},
},
},
},
"service2": {
ObjectMeta: metav1.ObjectMeta{
Name: "test-dynamodeployment-service2",
Namespace: "default",
},
Spec: v1alpha1.DynamoNimDeploymentSpec{
DynamoNim: "dynamonim--ac4e234",
DynamoTag: "dynamonim:MyService2",
DynamoNimDeploymentSharedSpec: v1alpha1.DynamoNimDeploymentSharedSpec{
ServiceName: "service2",
Autoscaling: &v1alpha1.Autoscaling{
Enabled: false,
},
DynamoNamespace: &[]string{"dynamo-test-dynamodeployment"}[0],
},
},
},
},
wantErr: false,
},
{
......@@ -299,7 +418,7 @@ func TestGenerateDynamoNIMDeployments(t *testing.T) {
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
g := gomega.NewGomegaWithT(t)
got, err := GenerateDynamoNIMDeployments(tt.args.parentDynamoDeployment, tt.args.config)
got, err := GenerateDynamoNIMDeployments(context.Background(), tt.args.parentDynamoDeployment, tt.args.config)
if (err != nil) != tt.wantErr {
t.Errorf("GenerateDynamoNIMDeployments() error = %v, wantErr %v", err, tt.wantErr)
return
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment