diff --git a/apps/agentstack-server/src/agentstack_server/configuration.py b/apps/agentstack-server/src/agentstack_server/configuration.py index 3be60f3b2..6434b1901 100644 --- a/apps/agentstack-server/src/agentstack_server/configuration.py +++ b/apps/agentstack-server/src/agentstack_server/configuration.py @@ -231,6 +231,7 @@ class DockerConfigJson(BaseModel): class ManagedProviderConfiguration(BaseModel): + disable_downscaling: bool = False manifest_template_dir: Path | None = None self_registration_use_local_network: bool = Field( default=False, diff --git a/apps/agentstack-server/src/agentstack_server/jobs/crons/provider.py b/apps/agentstack-server/src/agentstack_server/jobs/crons/provider.py index cd603c0f7..0e85f645a 100644 --- a/apps/agentstack-server/src/agentstack_server/jobs/crons/provider.py +++ b/apps/agentstack-server/src/agentstack_server/jobs/crons/provider.py @@ -31,7 +31,9 @@ @blueprint.periodic(cron="*/1 * * * *") @blueprint.task(queueing_lock="scale_down_providers", queue=str(Queues.CRON_PROVIDER)) @inject -async def scale_down_providers(timestamp: int, service: ProviderService): +async def scale_down_providers(timestamp: int, service: ProviderService, configuration: Configuration): + if configuration.provider.disable_downscaling: + return await service.scale_down_providers() diff --git a/helm/templates/deployment.yaml b/helm/templates/deployment.yaml index f6c5b6cf5..3d9e5b031 100644 --- a/helm/templates/deployment.yaml +++ b/helm/templates/deployment.yaml @@ -273,8 +273,8 @@ spec: - name: AUTH__DISABLE_AUTH value: "true" {{- end }} - {{- if .Values.features.selfRegistration }} - - name: PROVIDER__AUTO_REMOVE_ENABLED + {{- if .Values.disableProviderDownscaling }} + - name: PROVIDER__DISABLE_DOWNSCALING value: "true" {{- end }} - name: GENERATE_CONVERSATION_TITLE__ENABLED diff --git a/helm/values.yaml b/helm/values.yaml index db0bd0cab..ff6e8bee0 100644 --- a/helm/values.yaml +++ b/helm/values.yaml @@ -83,6 +83,8 @@ providers: [] unmanagedProviders: [] # DEPRECATED: use providers instead variables: {} # DEPRECATED: use server API to manage variables instead +disableProviderDownscaling: false + # External registries in the format: [name: githubURL] # for example # github: "https://github.com/i-am-bee/agentstack@v0.2.14#path=agent-registry.yaml"