mirror of
https://github.com/dredx/prole.git
synced 2026-09-23 12:03:59 +00:00
- Introduced `get_endpoint_ip` utility to fetch Garage ILB IPs across k3s, k3d, and k8s modes. - Updated initialization to deploy Garage on the DB cluster when using split GKE clusters. - Enhanced logic to persist resolved Garage ILB endpoints for GitLab object storage configurations. - Added Redis master resolution and removed placeholder Garage endpoints during deployment. - Updated post-init scripts to include Redis initialization alongside Kong and backup scripts.
102 lines
2.5 KiB
Python
102 lines
2.5 KiB
Python
"""Garage object-store ops — thin dispatcher.
|
|
|
|
Routes to the mode-specific implementation:
|
|
k3d → k3d_garage_store (local storage, no Synology)
|
|
k3s → k3s_garage_store (Synology iSCSI, static PVs)
|
|
k8s → k8s_garage_store (GCP pd-standard StorageClass)
|
|
|
|
All public function signatures are unchanged.
|
|
"""
|
|
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
from types import ModuleType
|
|
|
|
from ._services_common import _LogFn, _detect_mode
|
|
|
|
|
|
def _module(mode: str | None, env: dict | None) -> ModuleType:
|
|
m = _detect_mode(mode, env)
|
|
if m == "k3d":
|
|
from . import k3d_garage_store
|
|
return k3d_garage_store
|
|
if m == "k8s":
|
|
from . import k8s_garage_store
|
|
return k8s_garage_store
|
|
from . import k3s_garage_store
|
|
return k3s_garage_store
|
|
|
|
|
|
def initialize(
|
|
*,
|
|
namespace: str | None = None,
|
|
env: dict | None = None,
|
|
project_root: str | Path = ".",
|
|
log: _LogFn | None = None,
|
|
mode: str | None = None,
|
|
) -> None:
|
|
_module(mode, env).initialize(
|
|
namespace=namespace, env=env, project_root=project_root, log=log, mode=mode
|
|
)
|
|
|
|
|
|
def start(
|
|
*,
|
|
namespace: str | None = None,
|
|
env: dict | None = None,
|
|
project_root: str | Path = ".",
|
|
log: _LogFn | None = None,
|
|
mode: str | None = None,
|
|
) -> None:
|
|
_module(mode, env).start(
|
|
namespace=namespace, env=env, project_root=project_root, log=log, mode=mode
|
|
)
|
|
|
|
|
|
def update(
|
|
*,
|
|
namespace: str | None = None,
|
|
env: dict | None = None,
|
|
project_root: str | Path = ".",
|
|
log: _LogFn | None = None,
|
|
mode: str | None = None,
|
|
) -> None:
|
|
_module(mode, env).update(
|
|
namespace=namespace, env=env, project_root=project_root, log=log, mode=mode
|
|
)
|
|
|
|
|
|
def stop(
|
|
*,
|
|
namespace: str | None = None,
|
|
env: dict | None = None,
|
|
log: _LogFn | None = None,
|
|
) -> None:
|
|
_module(None, env).stop(namespace=namespace, env=env, log=log)
|
|
|
|
|
|
def restart(
|
|
*,
|
|
namespace: str | None = None,
|
|
env: dict | None = None,
|
|
log: _LogFn | None = None,
|
|
) -> None:
|
|
_module(None, env).restart(namespace=namespace, env=env, log=log)
|
|
|
|
|
|
def status(
|
|
*,
|
|
namespace: str | None = None,
|
|
env: dict | None = None,
|
|
) -> bool:
|
|
return _module(None, env).status(namespace=namespace, env=env)
|
|
|
|
|
|
def get_endpoint_ip(
|
|
*,
|
|
namespace: str | None = None,
|
|
env: dict | None = None,
|
|
log: _LogFn | None = None,
|
|
) -> str | None:
|
|
return _module(None, env).get_endpoint_ip(namespace=namespace, env=env, log=log)
|