return domains of internal apps
This commit is contained in:
parent
a2019a32d0
commit
fd28d5b774
3 changed files with 27 additions and 4 deletions
|
@ -33,14 +33,22 @@ class App(db.Model):
|
|||
if self.external:
|
||||
return self.url
|
||||
|
||||
# TODO: Get URL from Kubernetes
|
||||
return "unknown"
|
||||
# Get domain name from configmap
|
||||
ks_config_map = k8s.get_kubernetes_config_map_data(
|
||||
f"stackspin-{self.slug}-kustomization-variables",
|
||||
"flux-system")
|
||||
domain_key = f"{self.slug}_domain"
|
||||
if ks_config_map is None or domain_key not in ks_config_map.keys():
|
||||
return None
|
||||
|
||||
return ks_config_map[domain_key]
|
||||
|
||||
|
||||
def get_status(self):
|
||||
"""Returns a string that describes the app state in the cluster"""
|
||||
|
||||
if self.external:
|
||||
return("External app")
|
||||
return "External app"
|
||||
|
||||
|
||||
# TODO: Get some kind of caching for those values, as this is called
|
||||
|
|
|
@ -108,7 +108,7 @@ def list_app():
|
|||
apps = App.query.all()
|
||||
|
||||
for obj in apps:
|
||||
print(f"App name: {obj.name} \t Slug: {obj.slug}")
|
||||
print(f"App name: {obj.name}\tSlug: {obj.slug},\tURL: {obj.get_url()}\tStatus: {obj.get_status()}")
|
||||
|
||||
|
||||
@app_cli.command(
|
||||
|
|
|
@ -85,6 +85,21 @@ def get_kubernetes_secret_data(secret_name, namespace):
|
|||
return None
|
||||
return secret
|
||||
|
||||
def get_kubernetes_config_map_data(config_map_name, namespace):
|
||||
"""
|
||||
Returns the contents of a kubernetes config map.
|
||||
|
||||
Returns None if the config map does not exist.
|
||||
"""
|
||||
api_instance = client.CoreV1Api()
|
||||
try:
|
||||
config_map = api_instance.read_namespaced_config_map(config_map_name, namespace).data
|
||||
except ApiException as ex:
|
||||
# 404 is expected when the optional secret does not exist.
|
||||
if ex.status != 404:
|
||||
raise ex
|
||||
return None
|
||||
return config_map
|
||||
|
||||
def store_kubernetes_secret(secret_dict, namespace, update=False):
|
||||
"""Stores either a new secret in the cluster, or updates an existing one."""
|
||||
|
|
Loading…
Reference in a new issue