f235512d57
- Adding yapf diff to pep8 target - Adding yapf tox target to do actual format ** The rest of this PS contains formatted code only, no other changes Change-Id: Idfef60f53565add2d0cf65bb8e5b91072cf0aded
96 lines
2.7 KiB
Python
96 lines
2.7 KiB
Python
# Copyright 2017 The Armada Authors.
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
from urllib.parse import urlparse
|
|
|
|
import click
|
|
from oslo_config import cfg
|
|
from oslo_log import log
|
|
|
|
from armada.cli.apply import apply_create
|
|
from armada.cli.delete import delete_charts
|
|
from armada.cli.rollback import rollback_charts
|
|
from armada.cli.test import test_charts
|
|
from armada.cli.tiller import tiller_service
|
|
from armada.cli.validate import validate_manifest
|
|
from armada.common.client import ArmadaClient
|
|
from armada.common.session import ArmadaSession
|
|
|
|
CONF = cfg.CONF
|
|
|
|
|
|
@click.group()
|
|
@click.option('--debug', help="Enable debug logging", is_flag=True)
|
|
@click.option(
|
|
'--api/--no-api',
|
|
help="Execute service endpoints. (requires url option)",
|
|
default=False)
|
|
@click.option(
|
|
'--url', help="Armada Service Endpoint", envvar='HOST', default=None)
|
|
@click.option(
|
|
'--token', help="Keystone Service Token", envvar='TOKEN', default=None)
|
|
@click.pass_context
|
|
def main(ctx, debug, api, url, token):
|
|
"""
|
|
Multi Helm Chart Deployment Manager
|
|
|
|
Common actions from this point include:
|
|
|
|
\b
|
|
$ armada apply
|
|
$ armada delete
|
|
$ armada rollback
|
|
$ armada test
|
|
$ armada tiller
|
|
$ armada validate
|
|
|
|
Environment:
|
|
|
|
\b
|
|
$TOKEN set auth token
|
|
$HOST set armada service host endpoint
|
|
|
|
This tool will communicate with deployed Tiller in your Kubernetes cluster.
|
|
"""
|
|
|
|
if not ctx.obj:
|
|
ctx.obj = {}
|
|
|
|
if api:
|
|
if not url or not token:
|
|
raise click.ClickException(
|
|
'When api option is enable user needs to pass url')
|
|
else:
|
|
ctx.obj['api'] = api
|
|
parsed_url = urlparse(url)
|
|
ctx.obj['CLIENT'] = ArmadaClient(
|
|
ArmadaSession(
|
|
host=parsed_url.netloc,
|
|
scheme=parsed_url.scheme,
|
|
token=token))
|
|
|
|
if debug:
|
|
CONF.debug = debug
|
|
|
|
log.set_defaults(default_log_levels=CONF.default_log_levels)
|
|
log.setup(CONF, 'armada')
|
|
|
|
|
|
main.add_command(apply_create)
|
|
main.add_command(delete_charts)
|
|
main.add_command(rollback_charts)
|
|
main.add_command(test_charts)
|
|
main.add_command(tiller_service)
|
|
main.add_command(validate_manifest)
|