Merge pull request #125 from sbidoul/configurable-delete

Configurable delete
This commit is contained in:
Stéphane Bidoul 2025-09-13 15:11:38 +02:00 committed by GitHub
commit afa10b592a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 9 additions and 4 deletions

View file

@ -182,7 +182,7 @@ class Controller:
f"but the corresponding deployment {build_name} is gone. " f"but the corresponding deployment {build_name} is gone. "
f"Deleting all build resources." f"Deleting all build resources."
) )
await k8s.delete_resources(build_name) await k8s.delete_deployment_resources(build_name)
continue continue
if job_kind == "initialize": if job_kind == "initialize":
if job.status.active: if job.status.active:

View file

@ -243,13 +243,13 @@ async def deploy(kubefiles_path: Path | None, deployment_vars: DeploymentVars) -
) )
async def delete_resources(build_name: str) -> None: async def delete_deployment_resources(build_name: str) -> None:
await _kubectl( await _kubectl(
[ [
"-n", "-n",
settings.build_namespace, settings.build_namespace,
"delete", "delete",
"all", settings.deployment_resource_types,
"-l", "-l",
f"runboat/build={build_name}", f"runboat/build={build_name}",
"--wait=false", "--wait=false",

View file

@ -319,7 +319,7 @@ class Build(BaseModel):
async def on_cleanup_succeeded(self) -> None: async def on_cleanup_succeeded(self) -> None:
_logger.info(f"Cleanup job succeeded for {self}, deleting resources.") _logger.info(f"Cleanup job succeeded for {self}, deleting resources.")
await k8s.delete_resources(self.name) await k8s.delete_deployment_resources(self.name)
_logger.debug("Removing finalizer for %s.", self) _logger.debug("Removing finalizer for %s.", self)
await self._patch(remove_finalizers=True, not_found_ok=True) await self._patch(remove_finalizers=True, not_found_ok=True)

View file

@ -84,6 +84,11 @@ class Settings(BaseSettings):
additional_footer_html: str = "" additional_footer_html: str = ""
# Disable posting of statuses to GitHub commits # Disable posting of statuses to GitHub commits
disable_commit_statuses: bool = False disable_commit_statuses: bool = False
# Resources generated by the kubefiles templates in 'deployment' mode. These
# are used when undeploying a build to delete all resources.
deployment_resource_types: str = (
"deployment,service,ingress,configmap,secret,pvc,job"
)
def get_build_settings(self, repo: str, target_branch: str) -> list[BuildSettings]: def get_build_settings(self, repo: str, target_branch: str) -> list[BuildSettings]:
for repo_settings in self.repos: for repo_settings in self.repos: