Merge "plugins: Add get_releases to Armada base operator"
This commit is contained in:
commit
e11c621a84
|
@ -20,6 +20,7 @@ from airflow.utils.decorators import apply_defaults
|
||||||
|
|
||||||
import armada.common.client as client
|
import armada.common.client as client
|
||||||
import armada.common.session as session
|
import armada.common.session as session
|
||||||
|
from armada.exceptions import api_exceptions as errors
|
||||||
|
|
||||||
try:
|
try:
|
||||||
from get_k8s_pod_port_ip import get_pod_port_ip
|
from get_k8s_pod_port_ip import get_pod_port_ip
|
||||||
|
@ -89,6 +90,11 @@ class ArmadaBaseOperator(UcpBaseOperator):
|
||||||
self.svc_token
|
self.svc_token
|
||||||
)
|
)
|
||||||
|
|
||||||
|
# Retrieve Tiller Information
|
||||||
|
# TODO(@drewwalters96): This should be explicit. Refactor in
|
||||||
|
# conjunction with `get_pod_port_ip` decorator.
|
||||||
|
self.get_tiller_info(pods_ip_port={})
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def _init_armada_client(armada_svc_endpoint, svc_token):
|
def _init_armada_client(armada_svc_endpoint, svc_token):
|
||||||
|
|
||||||
|
@ -125,6 +131,19 @@ class ArmadaBaseOperator(UcpBaseOperator):
|
||||||
else:
|
else:
|
||||||
raise AirflowException("Failed to set up Armada client!")
|
raise AirflowException("Failed to set up Armada client!")
|
||||||
|
|
||||||
|
def get_releases(self):
|
||||||
|
"""Retrieve all deployed releases"""
|
||||||
|
try:
|
||||||
|
get_releases_resp = self.armada_client.get_releases(
|
||||||
|
query=self.query,
|
||||||
|
timeout=self.dc['armada.get_releases_timeout']
|
||||||
|
)
|
||||||
|
return get_releases_resp['releases']
|
||||||
|
except errors.ClientError as client_error:
|
||||||
|
# Dump logs from Armada pods
|
||||||
|
self.get_k8s_logs()
|
||||||
|
raise AirflowException(client_error)
|
||||||
|
|
||||||
@get_pod_port_ip('tiller', namespace='kube-system')
|
@get_pod_port_ip('tiller', namespace='kube-system')
|
||||||
def get_tiller_info(self, pods_ip_port={}):
|
def get_tiller_info(self, pods_ip_port={}):
|
||||||
|
|
||||||
|
|
|
@ -21,7 +21,6 @@ try:
|
||||||
except ImportError:
|
except ImportError:
|
||||||
from shipyard_airflow.plugins.armada_base_operator import \
|
from shipyard_airflow.plugins.armada_base_operator import \
|
||||||
ArmadaBaseOperator
|
ArmadaBaseOperator
|
||||||
from armada.exceptions import api_exceptions as errors
|
|
||||||
|
|
||||||
LOG = logging.getLogger(__name__)
|
LOG = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
@ -36,23 +35,9 @@ class ArmadaGetReleasesOperator(ArmadaBaseOperator):
|
||||||
"""
|
"""
|
||||||
|
|
||||||
def do_execute(self):
|
def do_execute(self):
|
||||||
|
|
||||||
# Retrieve Tiller Information
|
|
||||||
self.get_tiller_info(pods_ip_port={})
|
|
||||||
|
|
||||||
# Retrieve read timeout
|
|
||||||
timeout = self.dc['armada.get_releases_timeout']
|
|
||||||
|
|
||||||
# Retrieve Armada Releases after deployment
|
# Retrieve Armada Releases after deployment
|
||||||
LOG.info("Retrieving Helm charts releases after deployment..")
|
LOG.info("Retrieving Helm charts releases after deployment..")
|
||||||
|
armada_get_releases = self.get_releases()
|
||||||
try:
|
|
||||||
armada_get_releases = self.armada_client.get_releases(
|
|
||||||
self.query,
|
|
||||||
timeout=timeout)
|
|
||||||
|
|
||||||
except errors.ClientError as client_error:
|
|
||||||
raise AirflowException(client_error)
|
|
||||||
|
|
||||||
if armada_get_releases:
|
if armada_get_releases:
|
||||||
LOG.info("Successfully retrieved Helm charts releases")
|
LOG.info("Successfully retrieved Helm charts releases")
|
||||||
|
|
Loading…
Reference in New Issue