Skip to content

Commit

Permalink
Expect an existing reads service name for configuring the demo ingres…
Browse files Browse the repository at this point in the history
…s, instead of managing all services as part of the ingress deploy
  • Loading branch information
sjahl committed Sep 26, 2024
1 parent cf1a721 commit cd3c2e9
Showing 1 changed file with 11 additions and 35 deletions.
46 changes: 11 additions & 35 deletions deploy/deployctl/subcommands/ingress_demo.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,21 +21,6 @@
ports:
- port: 80
targetPort: 80
---
apiVersion: v1
kind: Service
metadata:
name: gnomad-reads-demo-{name}
labels:
tier: demo
spec:
type: NodePort
selector:
name: gnomad-reads
deployment: '{reads_deployment}'
ports:
- port: 80
targetPort: 80
"""

INGRESS_MANIFEST_TEMPLATE = """---
Expand All @@ -54,14 +39,14 @@
pathType: ImplementationSpecific
backend:
service:
name: gnomad-reads-demo-{name}
name: {reads_service}
port:
number: 80
- path: /reads/*
pathType: ImplementationSpecific
backend:
service:
name: gnomad-reads-demo-{name}
name: {reads_service}
port:
number: 80
- path:
Expand Down Expand Up @@ -92,41 +77,32 @@ def list_demo_ingresses() -> None:
def describe_services(name: str) -> None:
try:
browser_manifest = json.loads(kubectl(["get", "service", f"gnomad-browser-demo-{name}", "--output=json"]))
reads_manifest = json.loads(kubectl(["get", "service", f"gnomad-reads-demo-{name}", "--output=json"]))

browser_deployment = browser_manifest["spec"]["selector"]["deployment"]
reads_deployment = reads_manifest["spec"]["selector"]["deployment"]

print("active browser deployment:", browser_deployment)
print("active reads deployment:", reads_deployment)
except Exception: # pylint: disable=broad-except
print(f"Could not get services for '{name}' demo environment")


def apply_services(name: str, browser_deployment: str = None, reads_deployment: str = None) -> None:
def apply_services(name: str, browser_deployment: str = None) -> None:
if browser_deployment:
if not k8s_deployment_exists(f"gnomad-browser-{browser_deployment}"):
raise RuntimeError(f"browser deployment {browser_deployment} not found")
else:
browser_deployment = get_most_recent_k8s_deployment("component=gnomad-browser")[len("gnomad-browser-") :]

if reads_deployment:
if not k8s_deployment_exists(f"gnomad-reads-{reads_deployment}"):
raise RuntimeError(f"reads deployment {reads_deployment} not found")
else:
reads_deployment = get_most_recent_k8s_deployment("component=gnomad-reads")[len("gnomad-reads-") :]

manifest = SERVICES_MANIFEST_TEMPLATE.format(
name=name, browser_deployment=browser_deployment, reads_deployment=reads_deployment
)
manifest = SERVICES_MANIFEST_TEMPLATE.format(name=name, browser_deployment=browser_deployment)

kubectl(["apply", "-f", "-"], input=manifest)


def apply_ingress(name: str, browser_deployment: str = None, reads_deployment: str = None) -> None:
apply_services(name, browser_deployment, reads_deployment)
def apply_ingress(
name: str, browser_deployment: str = None, reads_service: str = "reads-bluegreen-active-prod"
) -> None:
apply_services(name, browser_deployment)

manifest = INGRESS_MANIFEST_TEMPLATE.format(name=name)
manifest = INGRESS_MANIFEST_TEMPLATE.format(name=name, reads_service=reads_service)

kubectl(["apply", "-f", "-"], input=manifest)

Expand Down Expand Up @@ -154,13 +130,13 @@ def main(argv: typing.List[str]) -> None:
apply_services_parser.set_defaults(action=apply_services)
apply_services_parser.add_argument("name")
apply_services_parser.add_argument("--browser-deployment")
apply_services_parser.add_argument("--reads-deployment")
apply_services_parser.add_argument("--reads-service")

apply_ingress_parser = subparsers.add_parser("apply-ingress")
apply_ingress_parser.set_defaults(action=apply_ingress)
apply_ingress_parser.add_argument("name")
apply_ingress_parser.add_argument("--browser-deployment")
apply_ingress_parser.add_argument("--reads-deployment")
apply_ingress_parser.add_argument("--reads-service")

delete_ingress_and_services_parser = subparsers.add_parser("delete")
delete_ingress_and_services_parser.set_defaults(action=delete_ingress_and_services)
Expand Down

0 comments on commit cd3c2e9

Please sign in to comment.