Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
OpenDAS
dynamo
Commits
0756702a
Unverified
Commit
0756702a
authored
Apr 29, 2025
by
julienmancuso
Committed by
GitHub
Apr 29, 2025
Browse files
feat: label component CR for planner (#901)
parent
d2635a7e
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
52 additions
and
0 deletions
+52
-0
deploy/dynamo/operator/internal/consts/consts.go
deploy/dynamo/operator/internal/consts/consts.go
+1
-0
deploy/dynamo/operator/internal/dynamo/graph.go
deploy/dynamo/operator/internal/dynamo/graph.go
+8
-0
deploy/dynamo/operator/internal/dynamo/graph_test.go
deploy/dynamo/operator/internal/dynamo/graph_test.go
+43
-0
No files found.
deploy/dynamo/operator/internal/consts/consts.go
View file @
0756702a
...
@@ -42,6 +42,7 @@ const (
...
@@ -42,6 +42,7 @@ const (
KubeLabelDynamoSelector
=
"nvidia.com/selector"
KubeLabelDynamoSelector
=
"nvidia.com/selector"
KubeLabelDynamoComponent
=
"nvidia.com/dynamo-component"
KubeLabelDynamoComponent
=
"nvidia.com/dynamo-component"
KubeLabelDynamoNamespace
=
"nvidia.com/dynamo-namespace"
KubeLabelDynamoDeploymentTargetType
=
"nvidia.com/dynamo-deployment-target-type"
KubeLabelDynamoDeploymentTargetType
=
"nvidia.com/dynamo-deployment-target-type"
KubeLabelDynamoComponentType
=
"nvidia.com/dynamo-component-type"
KubeLabelDynamoComponentType
=
"nvidia.com/dynamo-component-type"
...
...
deploy/dynamo/operator/internal/dynamo/graph.go
View file @
0756702a
...
@@ -31,6 +31,7 @@ import (
...
@@ -31,6 +31,7 @@ import (
"github.com/ai-dynamo/dynamo/deploy/dynamo/operator/api/dynamo/schemas"
"github.com/ai-dynamo/dynamo/deploy/dynamo/operator/api/dynamo/schemas"
"github.com/ai-dynamo/dynamo/deploy/dynamo/operator/api/v1alpha1"
"github.com/ai-dynamo/dynamo/deploy/dynamo/operator/api/v1alpha1"
commonconfig
"github.com/ai-dynamo/dynamo/deploy/dynamo/operator/internal/config"
commonconfig
"github.com/ai-dynamo/dynamo/deploy/dynamo/operator/internal/config"
commonconsts
"github.com/ai-dynamo/dynamo/deploy/dynamo/operator/internal/consts"
"github.com/huandu/xstrings"
"github.com/huandu/xstrings"
corev1
"k8s.io/api/core/v1"
corev1
"k8s.io/api/core/v1"
k8serrors
"k8s.io/apimachinery/pkg/api/errors"
k8serrors
"k8s.io/apimachinery/pkg/api/errors"
...
@@ -234,6 +235,12 @@ func GenerateDynamoComponentsDeployments(ctx context.Context, parentDynamoGraphD
...
@@ -234,6 +235,12 @@ func GenerateDynamoComponentsDeployments(ctx context.Context, parentDynamoGraphD
deployment
.
Spec
.
DynamoTag
=
config
.
DynamoTag
deployment
.
Spec
.
DynamoTag
=
config
.
DynamoTag
deployment
.
Spec
.
DynamoComponent
=
parentDynamoGraphDeployment
.
Spec
.
DynamoGraph
deployment
.
Spec
.
DynamoComponent
=
parentDynamoGraphDeployment
.
Spec
.
DynamoGraph
deployment
.
Spec
.
ServiceName
=
service
.
Name
deployment
.
Spec
.
ServiceName
=
service
.
Name
labels
:=
make
(
map
[
string
]
string
)
// add the labels in the spec in order to label all sub-resources
deployment
.
Spec
.
Labels
=
labels
// and add the labels to the deployment itself
deployment
.
Labels
=
labels
labels
[
commonconsts
.
KubeLabelDynamoComponent
]
=
service
.
Name
if
service
.
Config
.
Dynamo
!=
nil
&&
service
.
Config
.
Dynamo
.
Enabled
{
if
service
.
Config
.
Dynamo
!=
nil
&&
service
.
Config
.
Dynamo
.
Enabled
{
dynamoNamespace
:=
service
.
Config
.
Dynamo
.
Namespace
dynamoNamespace
:=
service
.
Config
.
Dynamo
.
Namespace
if
dynamoNamespace
==
""
{
if
dynamoNamespace
==
""
{
...
@@ -242,6 +249,7 @@ func GenerateDynamoComponentsDeployments(ctx context.Context, parentDynamoGraphD
...
@@ -242,6 +249,7 @@ func GenerateDynamoComponentsDeployments(ctx context.Context, parentDynamoGraphD
}
}
deployment
.
Spec
.
DynamoNamespace
=
&
dynamoNamespace
deployment
.
Spec
.
DynamoNamespace
=
&
dynamoNamespace
dynamoServices
[
service
.
Name
]
=
fmt
.
Sprintf
(
"%s/%s"
,
service
.
Config
.
Dynamo
.
Name
,
dynamoNamespace
)
dynamoServices
[
service
.
Name
]
=
fmt
.
Sprintf
(
"%s/%s"
,
service
.
Config
.
Dynamo
.
Name
,
dynamoNamespace
)
labels
[
commonconsts
.
KubeLabelDynamoNamespace
]
=
dynamoNamespace
}
else
{
}
else
{
// dynamo is not enabled
// dynamo is not enabled
if
config
.
EntryService
==
service
.
Name
{
if
config
.
EntryService
==
service
.
Name
{
...
...
deploy/dynamo/operator/internal/dynamo/graph_test.go
View file @
0756702a
...
@@ -23,6 +23,7 @@ import (
...
@@ -23,6 +23,7 @@ import (
compounaiCommon
"github.com/ai-dynamo/dynamo/deploy/dynamo/operator/api/dynamo/common"
compounaiCommon
"github.com/ai-dynamo/dynamo/deploy/dynamo/operator/api/dynamo/common"
"github.com/ai-dynamo/dynamo/deploy/dynamo/operator/api/v1alpha1"
"github.com/ai-dynamo/dynamo/deploy/dynamo/operator/api/v1alpha1"
commonconsts
"github.com/ai-dynamo/dynamo/deploy/dynamo/operator/internal/consts"
"github.com/onsi/gomega"
"github.com/onsi/gomega"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
metav1
"k8s.io/apimachinery/pkg/apis/meta/v1"
)
)
...
@@ -93,6 +94,10 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
...
@@ -93,6 +94,10 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
ObjectMeta
:
metav1
.
ObjectMeta
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"test-dynamographdeployment-service1"
,
Name
:
"test-dynamographdeployment-service1"
,
Namespace
:
"default"
,
Namespace
:
"default"
,
Labels
:
map
[
string
]
string
{
commonconsts
.
KubeLabelDynamoComponent
:
"service1"
,
commonconsts
.
KubeLabelDynamoNamespace
:
"default"
,
},
},
},
Spec
:
v1alpha1
.
DynamoComponentDeploymentSpec
{
Spec
:
v1alpha1
.
DynamoComponentDeploymentSpec
{
DynamoComponent
:
"dynamocomponent:ac4e234"
,
DynamoComponent
:
"dynamocomponent:ac4e234"
,
...
@@ -125,6 +130,10 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
...
@@ -125,6 +130,10 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
DeploymentSelectorValue
:
"service2"
,
DeploymentSelectorValue
:
"service2"
,
},
},
},
},
Labels
:
map
[
string
]
string
{
commonconsts
.
KubeLabelDynamoComponent
:
"service1"
,
commonconsts
.
KubeLabelDynamoNamespace
:
"default"
,
},
},
},
},
},
},
},
...
@@ -132,6 +141,9 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
...
@@ -132,6 +141,9 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
ObjectMeta
:
metav1
.
ObjectMeta
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"test-dynamographdeployment-service2"
,
Name
:
"test-dynamographdeployment-service2"
,
Namespace
:
"default"
,
Namespace
:
"default"
,
Labels
:
map
[
string
]
string
{
commonconsts
.
KubeLabelDynamoComponent
:
"service2"
,
},
},
},
Spec
:
v1alpha1
.
DynamoComponentDeploymentSpec
{
Spec
:
v1alpha1
.
DynamoComponentDeploymentSpec
{
DynamoComponent
:
"dynamocomponent:ac4e234"
,
DynamoComponent
:
"dynamocomponent:ac4e234"
,
...
@@ -141,6 +153,9 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
...
@@ -141,6 +153,9 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
Autoscaling
:
&
v1alpha1
.
Autoscaling
{
Autoscaling
:
&
v1alpha1
.
Autoscaling
{
Enabled
:
false
,
Enabled
:
false
,
},
},
Labels
:
map
[
string
]
string
{
commonconsts
.
KubeLabelDynamoComponent
:
"service2"
,
},
},
},
},
},
},
},
...
@@ -202,6 +217,9 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
...
@@ -202,6 +217,9 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
ObjectMeta
:
metav1
.
ObjectMeta
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"test-dynamographdeployment-service1"
,
Name
:
"test-dynamographdeployment-service1"
,
Namespace
:
"default"
,
Namespace
:
"default"
,
Labels
:
map
[
string
]
string
{
commonconsts
.
KubeLabelDynamoComponent
:
"service1"
,
},
},
},
Spec
:
v1alpha1
.
DynamoComponentDeploymentSpec
{
Spec
:
v1alpha1
.
DynamoComponentDeploymentSpec
{
DynamoComponent
:
"dynamocomponent:ac4e234"
,
DynamoComponent
:
"dynamocomponent:ac4e234"
,
...
@@ -237,6 +255,9 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
...
@@ -237,6 +255,9 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
Enabled
:
true
,
Enabled
:
true
,
Host
:
"test-dynamographdeployment"
,
Host
:
"test-dynamographdeployment"
,
},
},
Labels
:
map
[
string
]
string
{
commonconsts
.
KubeLabelDynamoComponent
:
"service1"
,
},
},
},
},
},
},
},
...
@@ -244,6 +265,10 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
...
@@ -244,6 +265,10 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
ObjectMeta
:
metav1
.
ObjectMeta
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"test-dynamographdeployment-service2"
,
Name
:
"test-dynamographdeployment-service2"
,
Namespace
:
"default"
,
Namespace
:
"default"
,
Labels
:
map
[
string
]
string
{
commonconsts
.
KubeLabelDynamoComponent
:
"service2"
,
commonconsts
.
KubeLabelDynamoNamespace
:
"default"
,
},
},
},
Spec
:
v1alpha1
.
DynamoComponentDeploymentSpec
{
Spec
:
v1alpha1
.
DynamoComponentDeploymentSpec
{
DynamoComponent
:
"dynamocomponent:ac4e234"
,
DynamoComponent
:
"dynamocomponent:ac4e234"
,
...
@@ -254,6 +279,10 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
...
@@ -254,6 +279,10 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
Autoscaling
:
&
v1alpha1
.
Autoscaling
{
Autoscaling
:
&
v1alpha1
.
Autoscaling
{
Enabled
:
false
,
Enabled
:
false
,
},
},
Labels
:
map
[
string
]
string
{
commonconsts
.
KubeLabelDynamoComponent
:
"service2"
,
commonconsts
.
KubeLabelDynamoNamespace
:
"default"
,
},
},
},
},
},
},
},
...
@@ -311,6 +340,9 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
...
@@ -311,6 +340,9 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
ObjectMeta
:
metav1
.
ObjectMeta
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"test-dynamographdeployment-service1"
,
Name
:
"test-dynamographdeployment-service1"
,
Namespace
:
"default"
,
Namespace
:
"default"
,
Labels
:
map
[
string
]
string
{
commonconsts
.
KubeLabelDynamoComponent
:
"service1"
,
},
},
},
Spec
:
v1alpha1
.
DynamoComponentDeploymentSpec
{
Spec
:
v1alpha1
.
DynamoComponentDeploymentSpec
{
DynamoComponent
:
"dynamocomponent:ac4e234"
,
DynamoComponent
:
"dynamocomponent:ac4e234"
,
...
@@ -343,6 +375,9 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
...
@@ -343,6 +375,9 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
},
},
},
},
Ingress
:
v1alpha1
.
IngressSpec
{},
Ingress
:
v1alpha1
.
IngressSpec
{},
Labels
:
map
[
string
]
string
{
commonconsts
.
KubeLabelDynamoComponent
:
"service1"
,
},
},
},
},
},
},
},
...
@@ -350,6 +385,10 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
...
@@ -350,6 +385,10 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
ObjectMeta
:
metav1
.
ObjectMeta
{
ObjectMeta
:
metav1
.
ObjectMeta
{
Name
:
"test-dynamographdeployment-service2"
,
Name
:
"test-dynamographdeployment-service2"
,
Namespace
:
"default"
,
Namespace
:
"default"
,
Labels
:
map
[
string
]
string
{
commonconsts
.
KubeLabelDynamoComponent
:
"service2"
,
commonconsts
.
KubeLabelDynamoNamespace
:
"dynamo-test-dynamographdeployment"
,
},
},
},
Spec
:
v1alpha1
.
DynamoComponentDeploymentSpec
{
Spec
:
v1alpha1
.
DynamoComponentDeploymentSpec
{
DynamoComponent
:
"dynamocomponent:ac4e234"
,
DynamoComponent
:
"dynamocomponent:ac4e234"
,
...
@@ -360,6 +399,10 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
...
@@ -360,6 +399,10 @@ func TestGenerateDynamoComponentsDeployments(t *testing.T) {
Enabled
:
false
,
Enabled
:
false
,
},
},
DynamoNamespace
:
&
[]
string
{
"dynamo-test-dynamographdeployment"
}[
0
],
DynamoNamespace
:
&
[]
string
{
"dynamo-test-dynamographdeployment"
}[
0
],
Labels
:
map
[
string
]
string
{
commonconsts
.
KubeLabelDynamoComponent
:
"service2"
,
commonconsts
.
KubeLabelDynamoNamespace
:
"dynamo-test-dynamographdeployment"
,
},
},
},
},
},
},
},
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment