From bce629a80c6a4759421abdd2aef19fe60ba2b8ce Mon Sep 17 00:00:00 2001 From: lijianguo Date: Thu, 17 Jul 2025 11:39:43 +0800 Subject: [PATCH] feat(limitplan): add volume --- ...itplan_container_volume_mounts_and_more.py | 23 +++++++++++++++++++ rootfs/api/models/app.py | 2 ++ rootfs/api/models/limit.py | 2 ++ 3 files changed, 27 insertions(+) create mode 100644 rootfs/api/migrations/0024_limitplan_container_volume_mounts_and_more.py diff --git a/rootfs/api/migrations/0024_limitplan_container_volume_mounts_and_more.py b/rootfs/api/migrations/0024_limitplan_container_volume_mounts_and_more.py new file mode 100644 index 000000000..d6e8058e2 --- /dev/null +++ b/rootfs/api/migrations/0024_limitplan_container_volume_mounts_and_more.py @@ -0,0 +1,23 @@ +# Generated by Django 4.2.22 on 2025-07-17 06:43 + +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('api', '0023_migration_k8s_alter_volume_type'), + ] + + operations = [ + migrations.AddField( + model_name='limitplan', + name='container_volume_mounts', + field=models.JSONField(default=list), + ), + migrations.AddField( + model_name='limitplan', + name='pod_volumes', + field=models.JSONField(default=list), + ), + ] diff --git a/rootfs/api/models/app.py b/rootfs/api/models/app.py index 194cb6df0..643c604ab 100644 --- a/rootfs/api/models/app.py +++ b/rootfs/api/models/app.py @@ -1220,6 +1220,8 @@ def _gather_app_settings(self, release, app_settings, ptype, replicas, volumes=N healthcheck = config.healthcheck.get(ptype, {}) volumes, volume_mounts = self._get_volumes_and_mounts(ptype, volumes) + volumes.extend(limit_plan.pod_volumes) + volume_mounts.extend(limit_plan.container_volume_mounts) return { 'tags': config.tags.get(ptype, {}), 'envs': envs, diff --git a/rootfs/api/models/limit.py b/rootfs/api/models/limit.py index 14119d5ac..616c29268 100644 --- a/rootfs/api/models/limit.py +++ b/rootfs/api/models/limit.py @@ -117,7 +117,9 @@ class LimitPlan(AuditedModel): node_selector = models.JSONField(default=dict) runtime_class_name = models.CharField(max_length=63, default="") pod_security_context = models.JSONField(default=dict) + pod_volumes = models.JSONField(default=list) container_security_context = models.JSONField(default=dict) + container_volume_mounts = models.JSONField(default=list) class Meta: get_latest_by = 'created'