Skip to content

Commit bfd33c6

Browse files
committed
wip
1 parent cd4c40c commit bfd33c6

8 files changed

Lines changed: 56 additions & 9 deletions

File tree

changes/10300.feature.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Add `admin_update_deployment_policy` GQL mutation

docs/manager/graphql-reference/supergraph.graphql

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7718,6 +7718,9 @@ type Mutation
77187718
"""Added in 25.16.0"""
77197719
addModelRevision(input: AddRevisionInput!): AddRevisionPayload! @join__field(graph: STRAWBERRY)
77207720

7721+
"""Added in 26.4.0"""
7722+
adminUpdateDeploymentPolicy(input: UpdateDeploymentPolicyInput!): UpdateDeploymentPolicyPayload! @join__field(graph: STRAWBERRY)
7723+
77217724
"""Create a new notification channel (admin only)"""
77227725
adminCreateNotificationChannel(input: CreateNotificationChannelInput!): CreateNotificationChannelPayload! @join__field(graph: STRAWBERRY)
77237726

@@ -12942,6 +12945,27 @@ type UpdateDeploymentPayload
1294212945
deployment: ModelDeployment!
1294312946
}
1294412947

12948+
"""
12949+
Added in 26.3.0. Input for updating a deployment policy. Internally upserts the policy.
12950+
"""
12951+
input UpdateDeploymentPolicyInput
12952+
@join__type(graph: STRAWBERRY)
12953+
{
12954+
deploymentId: ID!
12955+
strategy: DeploymentStrategyType!
12956+
rollbackOnFailure: Boolean! = false
12957+
rollingUpdate: RollingUpdateConfigInput = null
12958+
blueGreen: BlueGreenConfigInput = null
12959+
}
12960+
12961+
"""Added in 26.3.0. Result of updating a deployment policy."""
12962+
type UpdateDeploymentPolicyPayload
12963+
@join__type(graph: STRAWBERRY)
12964+
{
12965+
deploymentPolicy: DeploymentPolicy!
12966+
created: Boolean!
12967+
}
12968+
1294512969
"""Added in 25.14.0"""
1294612970
input UpdateHuggingFaceRegistryInput
1294712971
@join__type(graph: STRAWBERRY)

docs/manager/graphql-reference/v2-schema.graphql

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4074,6 +4074,9 @@ type Mutation {
40744074
"""Added in 25.16.0"""
40754075
addModelRevision(input: AddRevisionInput!): AddRevisionPayload!
40764076

4077+
"""Added in 26.4.0"""
4078+
adminUpdateDeploymentPolicy(input: UpdateDeploymentPolicyInput!): UpdateDeploymentPolicyPayload!
4079+
40774080
"""Create a new notification channel (admin only)"""
40784081
adminCreateNotificationChannel(input: CreateNotificationChannelInput!): CreateNotificationChannelPayload!
40794082

@@ -7885,6 +7888,23 @@ type UpdateDeploymentPayload {
78857888
deployment: ModelDeployment!
78867889
}
78877890

7891+
"""
7892+
Added in 26.3.0. Input for updating a deployment policy. Internally upserts the policy.
7893+
"""
7894+
input UpdateDeploymentPolicyInput {
7895+
deploymentId: ID!
7896+
strategy: DeploymentStrategyType!
7897+
rollbackOnFailure: Boolean! = false
7898+
rollingUpdate: RollingUpdateConfigInput = null
7899+
blueGreen: BlueGreenConfigInput = null
7900+
}
7901+
7902+
"""Added in 26.3.0. Result of updating a deployment policy."""
7903+
type UpdateDeploymentPolicyPayload {
7904+
deploymentPolicy: DeploymentPolicy!
7905+
created: Boolean!
7906+
}
7907+
78887908
"""Added in 25.14.0"""
78897909
input UpdateHuggingFaceRegistryInput {
78907910
id: ID!

src/ai/backend/manager/api/gql/deployment/__init__.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
# Revision
1717
activate_deployment_revision,
1818
add_model_revision,
19+
# Policy
20+
admin_update_deployment_policy,
1921
# Access Token
2022
create_access_token,
2123
# Auto Scaling
@@ -40,8 +42,6 @@
4042
routes,
4143
sync_replicas,
4244
update_auto_scaling_rule,
43-
# Policy
44-
update_deployment_policy,
4545
update_model_deployment,
4646
update_route_traffic_status,
4747
)
@@ -275,7 +275,7 @@
275275
"sync_replicas",
276276
"update_model_deployment",
277277
# Resolvers - Policy
278-
"update_deployment_policy",
278+
"admin_update_deployment_policy",
279279
# Resolvers - Replica
280280
"replica",
281281
"replica_status_changed",

src/ai/backend/manager/api/gql/deployment/resolver/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
update_model_deployment,
2323
)
2424
from .policy import (
25-
update_deployment_policy,
25+
admin_update_deployment_policy,
2626
)
2727
from .replica import (
2828
replica,

src/ai/backend/manager/api/gql/deployment/resolver/policy.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,17 +13,19 @@
1313
UpdateDeploymentPolicyPayloadGQL,
1414
)
1515
from ai.backend.manager.api.gql.types import StrawberryGQLContext
16+
from ai.backend.manager.api.gql.utils import check_admin_only
1617
from ai.backend.manager.services.deployment.actions.deployment_policy.upsert_deployment_policy import (
1718
UpsertDeploymentPolicyAction,
1819
)
1920

2021

2122
@strawberry.mutation(description="Added in 26.4.0") # type: ignore[misc]
22-
async def update_deployment_policy(
23+
async def admin_update_deployment_policy(
2324
input: UpdateDeploymentPolicyInputGQL,
2425
info: Info[StrawberryGQLContext],
2526
) -> UpdateDeploymentPolicyPayloadGQL:
2627
"""Update (upsert) a deployment policy for a deployment."""
28+
check_admin_only()
2729
deployment_uuid = UUID(str(input.deployment_id))
2830
upserter = input.to_upserter(deployment_uuid)
2931

src/ai/backend/manager/api/gql/deployment/types/policy.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ def to_spec(self) -> BlueGreenSpec:
138138

139139
@strawberry.input(
140140
name="UpdateDeploymentPolicyInput",
141-
description="Added in 26.3.0. Input for updating a deployment policy. Internally upserts the policy.",
141+
description="Added in 26.4.0. Input for updating a deployment policy. Internally upserts the policy.",
142142
)
143143
class UpdateDeploymentPolicyInputGQL:
144144
deployment_id: ID
@@ -177,7 +177,7 @@ def to_upserter(self, deployment_uuid: UUID) -> DeploymentPolicyUpserter:
177177

178178
@strawberry.type(
179179
name="UpdateDeploymentPolicyPayload",
180-
description="Added in 26.3.0. Result of updating a deployment policy.",
180+
description="Added in 26.4.0. Result of updating a deployment policy.",
181181
)
182182
class UpdateDeploymentPolicyPayloadGQL:
183183
deployment_policy: DeploymentPolicyGQL

src/ai/backend/manager/api/gql/schema.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@
5252
# Revision
5353
activate_deployment_revision,
5454
add_model_revision,
55+
admin_update_deployment_policy,
5556
# Access Token
5657
create_access_token,
5758
# Auto Scaling
@@ -76,7 +77,6 @@
7677
routes,
7778
sync_replicas,
7879
update_auto_scaling_rule,
79-
update_deployment_policy,
8080
update_model_deployment,
8181
update_route_traffic_status,
8282
)
@@ -430,7 +430,7 @@ class Mutation:
430430
delete_model_deployment = delete_model_deployment
431431
sync_replicas = sync_replicas
432432
add_model_revision = add_model_revision
433-
update_deployment_policy = update_deployment_policy
433+
admin_update_deployment_policy = admin_update_deployment_policy
434434
# Notification - Admin APIs
435435
admin_create_notification_channel = admin_create_notification_channel
436436
admin_update_notification_channel = admin_update_notification_channel

0 commit comments

Comments
 (0)