Ejemplo n.º 1
0
def __deploy_service(context, name, version, status, force):
    app = Context(context).get_app_for(name, version)
    DeployerDriver(LoggingRepository.GIT_REPO_URL,
                   Context(context).default_namespace(), context.domain,
                   Context(context).get_mongo_uri(),
                   force == 'force').deploy(app, status == 'fail')
    Context(context).set_last_deployed_app(app)
Ejemplo n.º 2
0
def before_all(context):
    mongo_uri = 'mongodb://{0}:27017/deployer'.format(os.getenv("MONGO_HOST", 'localhost'))
    Context(context).set_mongo_uri(mongo_uri)
    __build_apps(context)
    os.environ['TARGET_ENV'] = TARGET_ENV
    os.environ['REST_API_ID'] = 'y404vvoq21'
    if __is_aws_mode(context):
        context.aws_uri = "911479539546.dkr.ecr.us-east-1.amazonaws.com/"
        context.minikube = None
        __push_apps_aws(Context(context).all_apps())
        context.domain = "heed-dev.io"
    else:
        K8sDriver.add_node_label('type', 'node')
        context.minikube = subprocess.check_output('minikube ip', shell=True)[:-1]
        context.aws_uri = ''
        context.domain = "minikube"
Ejemplo n.º 3
0
def __create_namespace(context):
    namespace = __create_namespace_name().lower()
    print ("namespace:%s" % namespace)
    k8s = K8sDriver(namespace, context.minikube)
    k8s.create_namespace()
    Context(context).set_default_namespace(namespace)
    k8s.upload_config_folder('global-configs')
    k8s.upload_config('log4j.xml', 'log4j', 'log4j2.xml')
    k8s.create_secret('features/config/secret.yml', namespace)
    k8s.deploy('features/support/deployer-shell.yml')
Ejemplo n.º 4
0
def write_service_to_int_git(context, name, version, env):
    app = Context(context).get_app_for(name, version)
    MongoDriver(Context(context).get_mongo_uri()).write_deployment(
        app.sevice_name(), env, {
            'image_name': app.image_name(),
            'logging': 'none'
        })
    Context(context).set_last_deployed_app(app)
Ejemplo n.º 5
0
def should_have_ingress(context):
    service_name = context.config.userdata['lastDeployed']._service_name
    K8sDriver(Context(context).default_namespace()).has_ingress(service_name)
Ejemplo n.º 6
0
def service_updated(context, name, version):
    K8sDriver(Context(context).default_namespace()).verify_get(
        '%s/version' % url_for(Context(context).get_app_for(name, version)),
        lambda response: json.loads(response)['version'] == version)
Ejemplo n.º 7
0
def service_is_serving(context, service_name):
    K8sDriver(Context(context).default_namespace()).wait_to_serve(
        context.config.userdata['apps'][service_name])
Ejemplo n.º 8
0
def should_exist_autoscaler(context):
    service_name = context.config.userdata['lastDeployed']._service_name
    K8sDriver(
        Context(context).default_namespace()).has_autoscaler(service_name)
Ejemplo n.º 9
0
def after_scenario(context, scenario):
    for ns in Context(context).pop_namespaces_to_delete():
        K8sDriver(ns).delete_namespace()
Ejemplo n.º 10
0
def pod_running(context):
    K8sDriver(Context(context).default_namespace(), context.minikube).verify_app_is_running(
        Context(context).last_deployed_app())
Ejemplo n.º 11
0
def check_logged_in_mongo(context):
    MongoDriver(Context(context).get_mongo_uri()).verify_app_is_logged(
        Context(context).last_deployed_app())
Ejemplo n.º 12
0
def executing(context, namespace=None):
    DeployerDriver(ConfigRepository.GIT_REPO_URL,
                   Context(context).default_namespace() if namespace is None else namespace, context.domain,
                   Context(context).get_mongo_uri()).configure()
Ejemplo n.º 13
0
def verify_port_available(context):
    K8sDriver(Context(context).default_namespace()).verify_get(
        '%s/greet' % url_for(Context(context).last_deployed_app(), 5000),
        lambda output: output == "Hello Ported")
Ejemplo n.º 14
0
def promote(context, env):
    DeployerDriver(LoggingRepository.GIT_REPO_URL,
                   Context(context).default_namespace(), context.domain,
                   Context(context).get_mongo_uri()).promote(env)
Ejemplo n.º 15
0
def jobs_were_invoked_on_service(context, service, version):
    K8sDriver(Context(context).default_namespace()).verify_get(
        '%s/state' % url_for(Context(context).get_app_for(service, version)),
        lambda output: json.loads(output)['state']
    )
Ejemplo n.º 16
0
def validate_config_uploaded(context, config_folder, namespace=None):
    ns = Context(context).default_namespace() if namespace is None else namespace
    K8sDriver(ns, context.minikube).verify_all_configs_in_folder(LocalConfig(config_folder).get_path())
Ejemplo n.º 17
0
def validate_config_uploaded(context, config_name, namespace=None):
    ns = Context(context).default_namespace() if namespace is None else namespace
    K8sDriver(ns, context.minikube).verify_config_is(LocalConfig(config_name).content())
Ejemplo n.º 18
0
def rollback_current_service(context, name, version):
    DeployerDriver(LoggingRepository.GIT_REPO_URL,
                   Context(context).default_namespace(), context.domain,
                   Context(context).get_mongo_uri()).rollback(
                       Context(context).get_app_for(name,
                                                    version).service_name())
def verify_config_was_overriden(context):
    K8sDriver(Context(context).default_namespace()).verify_get(
        '%s/greeting' % url_for(Context(context).last_deployed_app()),
        lambda output: output == 'Hello overridden world')
Ejemplo n.º 20
0
def __build_apps(context):
    for b in APP_BUILDERS:
        app = b.build(__is_aws_mode(context))
        Context(context).add_app(app)
Ejemplo n.º 21
0
def clear_namespace(context, namespace):
    K8sDriver(namespace, context.minikube).delete_namespace()
    Context(context).add_namespace_to_delete(namespace)
Ejemplo n.º 22
0
def check_promoted_service_in_git(context):
    LoggingRepository().verify_app_is_logged(
        Context(context).last_deployed_app())
Ejemplo n.º 23
0
def __clean_mongo(context):
    MongoDriver(Context(context).get_mongo_uri()).clean()
Ejemplo n.º 24
0
def check_recipe_logged_ong_mongo(context):
    MongoDriver(Context(context).get_mongo_uri()).verify_recipe_is_logged_for(
        Context(context).last_deployed_app())
def upload_config(context, config_name):
    K8sDriver(Context(context).default_namespace(),
              context.minikube).upload_config_folder(config_name)