Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
124 changes: 124 additions & 0 deletions go/api/config/crd/bases/kagent.dev_agents.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3415,6 +3415,68 @@ spec:
description: Cmd overrides the container entrypoint (the container's
command).
type: string
deploymentStrategy:
description: |-
DeploymentStrategy overrides the agent Deployment update strategy.
Useful for agents mounting ReadWriteOnce volumes, which require the
Recreate strategy to avoid multi-attach errors during rollouts.
When unset, defaults to RollingUpdate with maxUnavailable 0 and maxSurge 1.
When set with type RollingUpdate (or with type omitted), any unset
rollingUpdate fields default the same way: maxUnavailable to 0 and
maxSurge to 1. Recreate is passed through as-is.
properties:
rollingUpdate:
description: |-
Rolling update config params. Present only if DeploymentStrategyType =
RollingUpdate.
properties:
maxSurge:
anyOf:
- type: integer
- type: string
description: |-
The maximum number of pods that can be scheduled above the desired number of
pods.
Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
This can not be 0 if MaxUnavailable is 0.
Absolute number is calculated from percentage by rounding up.
Defaults to 25%.
Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when
the rolling update starts, such that the total number of old and new pods do not exceed
130% of desired pods. Once old pods have been killed,
new ReplicaSet can be scaled up further, ensuring that total number of pods running
at any time during the update is at most 130% of desired pods.
x-kubernetes-int-or-string: true
maxUnavailable:
anyOf:
- type: integer
- type: string
description: |-
The maximum number of pods that can be unavailable during the update.
Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
Absolute number is calculated from percentage by rounding down.
This can not be 0 if MaxSurge is 0.
Defaults to 25%.
Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods
immediately when the rolling update starts. Once new pods are ready, old ReplicaSet
can be scaled down further, followed by scaling up the new ReplicaSet, ensuring
that the total number of pods available at all times during the update is at
least 70% of desired pods.
x-kubernetes-int-or-string: true
type: object
type:
description: Type of deployment. Can be "Recreate" or
"RollingUpdate". Default is RollingUpdate.
type: string
type: object
x-kubernetes-validations:
- message: strategy type must be RollingUpdate or Recreate
rule: '!has(self.type) || self.type in [''RollingUpdate'',
''Recreate'']'
- message: rollingUpdate may not be specified when strategy
type is Recreate
rule: '!(has(self.type) && self.type == ''Recreate'' &&
has(self.rollingUpdate))'
env:
description: Env are additional environment variables set
on the agent container.
Expand Down Expand Up @@ -8760,6 +8822,68 @@ spec:
description: Annotations are additional annotations added
to the agent pods.
type: object
deploymentStrategy:
description: |-
DeploymentStrategy overrides the agent Deployment update strategy.
Useful for agents mounting ReadWriteOnce volumes, which require the
Recreate strategy to avoid multi-attach errors during rollouts.
When unset, defaults to RollingUpdate with maxUnavailable 0 and maxSurge 1.
When set with type RollingUpdate (or with type omitted), any unset
rollingUpdate fields default the same way: maxUnavailable to 0 and
maxSurge to 1. Recreate is passed through as-is.
properties:
rollingUpdate:
description: |-
Rolling update config params. Present only if DeploymentStrategyType =
RollingUpdate.
properties:
maxSurge:
anyOf:
- type: integer
- type: string
description: |-
The maximum number of pods that can be scheduled above the desired number of
pods.
Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
This can not be 0 if MaxUnavailable is 0.
Absolute number is calculated from percentage by rounding up.
Defaults to 25%.
Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when
the rolling update starts, such that the total number of old and new pods do not exceed
130% of desired pods. Once old pods have been killed,
new ReplicaSet can be scaled up further, ensuring that total number of pods running
at any time during the update is at most 130% of desired pods.
x-kubernetes-int-or-string: true
maxUnavailable:
anyOf:
- type: integer
- type: string
description: |-
The maximum number of pods that can be unavailable during the update.
Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
Absolute number is calculated from percentage by rounding down.
This can not be 0 if MaxSurge is 0.
Defaults to 25%.
Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods
immediately when the rolling update starts. Once new pods are ready, old ReplicaSet
can be scaled down further, followed by scaling up the new ReplicaSet, ensuring
that the total number of pods available at all times during the update is at
least 70% of desired pods.
x-kubernetes-int-or-string: true
type: object
type:
description: Type of deployment. Can be "Recreate" or
"RollingUpdate". Default is RollingUpdate.
type: string
type: object
x-kubernetes-validations:
- message: strategy type must be RollingUpdate or Recreate
rule: '!has(self.type) || self.type in [''RollingUpdate'',
''Recreate'']'
- message: rollingUpdate may not be specified when strategy
type is Recreate
rule: '!(has(self.type) && self.type == ''Recreate'' &&
has(self.rollingUpdate))'
env:
description: Env are additional environment variables set
on the agent container.
Expand Down
128 changes: 128 additions & 0 deletions go/api/config/crd/bases/kagent.dev_sandboxagents.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -1072,6 +1072,68 @@ spec:
description: Cmd overrides the container entrypoint (the container's
command).
type: string
deploymentStrategy:
description: |-
DeploymentStrategy overrides the agent Deployment update strategy.
Useful for agents mounting ReadWriteOnce volumes, which require the
Recreate strategy to avoid multi-attach errors during rollouts.
When unset, defaults to RollingUpdate with maxUnavailable 0 and maxSurge 1.
When set with type RollingUpdate (or with type omitted), any unset
rollingUpdate fields default the same way: maxUnavailable to 0 and
maxSurge to 1. Recreate is passed through as-is.
properties:
rollingUpdate:
description: |-
Rolling update config params. Present only if DeploymentStrategyType =
RollingUpdate.
properties:
maxSurge:
anyOf:
- type: integer
- type: string
description: |-
The maximum number of pods that can be scheduled above the desired number of
pods.
Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
This can not be 0 if MaxUnavailable is 0.
Absolute number is calculated from percentage by rounding up.
Defaults to 25%.
Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when
the rolling update starts, such that the total number of old and new pods do not exceed
130% of desired pods. Once old pods have been killed,
new ReplicaSet can be scaled up further, ensuring that total number of pods running
at any time during the update is at most 130% of desired pods.
x-kubernetes-int-or-string: true
maxUnavailable:
anyOf:
- type: integer
- type: string
description: |-
The maximum number of pods that can be unavailable during the update.
Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
Absolute number is calculated from percentage by rounding down.
This can not be 0 if MaxSurge is 0.
Defaults to 25%.
Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods
immediately when the rolling update starts. Once new pods are ready, old ReplicaSet
can be scaled down further, followed by scaling up the new ReplicaSet, ensuring
that the total number of pods available at all times during the update is at
least 70% of desired pods.
x-kubernetes-int-or-string: true
type: object
type:
description: Type of deployment. Can be "Recreate" or
"RollingUpdate". Default is RollingUpdate.
type: string
type: object
x-kubernetes-validations:
- message: strategy type must be RollingUpdate or Recreate
rule: '!has(self.type) || self.type in [''RollingUpdate'',
''Recreate'']'
- message: rollingUpdate may not be specified when strategy
type is Recreate
rule: '!(has(self.type) && self.type == ''Recreate'' &&
has(self.rollingUpdate))'
env:
description: Env are additional environment variables set
on the agent container.
Expand Down Expand Up @@ -6417,6 +6479,68 @@ spec:
description: Annotations are additional annotations added
to the agent pods.
type: object
deploymentStrategy:
description: |-
DeploymentStrategy overrides the agent Deployment update strategy.
Useful for agents mounting ReadWriteOnce volumes, which require the
Recreate strategy to avoid multi-attach errors during rollouts.
When unset, defaults to RollingUpdate with maxUnavailable 0 and maxSurge 1.
When set with type RollingUpdate (or with type omitted), any unset
rollingUpdate fields default the same way: maxUnavailable to 0 and
maxSurge to 1. Recreate is passed through as-is.
properties:
rollingUpdate:
description: |-
Rolling update config params. Present only if DeploymentStrategyType =
RollingUpdate.
properties:
maxSurge:
anyOf:
- type: integer
- type: string
description: |-
The maximum number of pods that can be scheduled above the desired number of
pods.
Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
This can not be 0 if MaxUnavailable is 0.
Absolute number is calculated from percentage by rounding up.
Defaults to 25%.
Example: when this is set to 30%, the new ReplicaSet can be scaled up immediately when
the rolling update starts, such that the total number of old and new pods do not exceed
130% of desired pods. Once old pods have been killed,
new ReplicaSet can be scaled up further, ensuring that total number of pods running
at any time during the update is at most 130% of desired pods.
x-kubernetes-int-or-string: true
maxUnavailable:
anyOf:
- type: integer
- type: string
description: |-
The maximum number of pods that can be unavailable during the update.
Value can be an absolute number (ex: 5) or a percentage of desired pods (ex: 10%).
Absolute number is calculated from percentage by rounding down.
This can not be 0 if MaxSurge is 0.
Defaults to 25%.
Example: when this is set to 30%, the old ReplicaSet can be scaled down to 70% of desired pods
immediately when the rolling update starts. Once new pods are ready, old ReplicaSet
can be scaled down further, followed by scaling up the new ReplicaSet, ensuring
that the total number of pods available at all times during the update is at
least 70% of desired pods.
x-kubernetes-int-or-string: true
type: object
type:
description: Type of deployment. Can be "Recreate" or
"RollingUpdate". Default is RollingUpdate.
type: string
type: object
x-kubernetes-validations:
- message: strategy type must be RollingUpdate or Recreate
rule: '!has(self.type) || self.type in [''RollingUpdate'',
''Recreate'']'
- message: rollingUpdate may not be specified when strategy
type is Recreate
rule: '!(has(self.type) && self.type == ''Recreate'' &&
has(self.rollingUpdate))'
env:
description: Env are additional environment variables set
on the agent container.
Expand Down Expand Up @@ -11369,6 +11493,10 @@ spec:
x-kubernetes-validations:
- message: spec.skills is not supported for sandbox agents
rule: '!has(self.skills)'
- message: deploymentStrategy is not supported for sandbox agents
rule: '!(has(self.declarative) && has(self.declarative.deployment) &&
has(self.declarative.deployment.deploymentStrategy)) && !(has(self.byo)
&& has(self.byo.deployment) && has(self.byo.deployment.deploymentStrategy))'
- message: type must be specified
rule: has(self.type)
- message: type must be either Declarative or BYO
Expand Down
Loading