示例#1
0
def initialize(interactive=False):
    ckan_infra = CkanInfra(required=False)
    config_manager.interactive_set(
        {
            'env-id': ckan_infra.ROUTERS_ENV_ID,
            'default-root-domain': ckan_infra.ROUTERS_DEFAULT_ROOT_DOMAIN,
            #'cloudflare-email': ckan_infra.ROUTERS_DEFAULT_CLOUDFLARE_EMAIL,
            #'cloudflare-api-key': ckan_infra.ROUTERS_DEFAULT_CLOUDFLARE_AUTH_KEY
        },
        configmap_name='routers-config',
        interactive=interactive)
    routers_manager.install_crds()
示例#2
0
def initialize(interactive=False):
    config_manager.interactive_set(
        {
            'env-id':
            None,
            'default-root-domain':
            None,
            'dns-provider':
            'route53' if cluster_manager.get_provider_id() == 'aws' else None
        },
        configmap_name='routers-config',
        interactive=interactive)
    dns_provider = get_dns_provider()
    if dns_provider.lower() == 'none':
        if cluster_manager.get_provider_id() != 'minikube':
            return
    logs.info(dns_provider=dns_provider)
    if dns_provider == 'cloudflare':
        config_manager.interactive_set(
            {
                'cloudflare-email': None,
                'cloudflare-api-key': None
            },
            configmap_name='routers-config',
            interactive=interactive)
    routers_manager.install_crds()
    infra_router_name = routers_manager.get_default_infra_router_name()
    default_root_domain = config_manager.get('default-root-domain',
                                             configmap_name='routers-config',
                                             required=True)
    logs.info('Creating infra router',
              infra_router_name=infra_router_name,
              default_root_domain=default_root_domain)
    routers_manager.create(
        infra_router_name,
        routers_manager.get_traefik_router_spec(
            default_root_domain,
            config_manager.get('cloudflare-email',
                               configmap_name='routers-config',
                               required=False,
                               default=None),
            config_manager.get('cloudflare-api-key',
                               configmap_name='routers-config',
                               required=False,
                               default=None),
            dns_provider=dns_provider))
示例#3
0
def initialize(interactive=False):
    ckan_infra = CkanInfra(required=False)
    config_manager.interactive_set(
        {
            'env-id': ckan_infra.ROUTERS_ENV_ID,
            'default-root-domain': ckan_infra.ROUTERS_DEFAULT_ROOT_DOMAIN,
            'cloudflare-email': ckan_infra.ROUTERS_DEFAULT_CLOUDFLARE_EMAIL,
            'cloudflare-api-key': ckan_infra.ROUTERS_DEFAULT_CLOUDFLARE_AUTH_KEY
        },
        configmap_name='routers-config',
        interactive=interactive
    )
    routers_manager.install_crds()
    routers_manager.create(
        routers_manager.get_default_infra_router_name(),
        routers_manager.get_traefik_router_spec(
            config_manager.get('default-root-domain', configmap_name='routers-config'),
            config_manager.get('cloudflare-email', configmap_name='routers-config'),
            config_manager.get('cloudflare-api-key', configmap_name='routers-config')
        )
    )
 def test_install_crds(self, install_crds, install_crd):
     manager.install_crds()
     install_crd.assert_called_once_with('ckancloudrouters',
                                         'ckancloudrouter',
                                         'CkanCloudRouter')
     install_crds.assert_called_once()
示例#5
0
def initialize(interactive=False):
    logs.info('env-id is a single character identifier of the environment')
    logs.info('.e.g p for production, s for staging, d for development')
    logs.info("For the first cluster it's recommended to use 'p'")
    default_dns_provider = {
        'aws': 'route53',
    }.get(cluster_manager.get_provider_id(), 'cloudflare')
    if cluster_manager.get_provider_id() == 'kamatera':
        from ckan_cloud_operator.providers.cluster.kamatera.management import manager as kamatera_management_manager
        default_root_domain = kamatera_management_manager.get_management_machine_secrets('RootDomainName')
    else:
        default_root_domain = None
    config_manager.interactive_set(
        {
            'env-id': 'p',
            'default-root-domain': default_root_domain,
            'dns-provider': default_dns_provider
        },
        configmap_name='routers-config',
        interactive=interactive
    )
    dns_provider = config_manager.get(key='dns-provider', configmap_name='routers-config')
    logs.info(dns_provider=dns_provider)
    if dns_provider == 'cloudflare':
        if cluster_manager.get_provider_id() == 'kamatera':
            cloudflare_api_key = config_manager.get(
                'CloudflareApiKey',
                secret_name='cco-kamatera-management-server',
                namespace='ckan-cloud-operator',
                required=True
            )
            cloudflare_email = config_manager.get(
                'CloudflareEmail',
                secret_name='cco-kamatera-management-server',
                namespace='ckan-cloud-operator',
                required=True
            )
            config_manager.set(values={
                'cloudflare-email': cloudflare_email,
                'cloudflare-api-key': cloudflare_api_key
            }, secret_name='routers-secrets')
        else:
            config_manager.interactive_set(
                {
                    'cloudflare-email': None,
                    'cloudflare-api-key': None
                },
                secret_name='routers-secrets',
                interactive=interactive
            )
    routers_manager.install_crds()
    infra_router_name = routers_manager.get_default_infra_router_name()
    default_root_domain = config_manager.get('default-root-domain', configmap_name='routers-config', required=True)
    router_type = {
        'kamatera': 'nginx'
    }.get(cluster_manager.get_provider_id(), 'traefik')
    logs.info('Creating infra router', infra_router_name=infra_router_name, default_root_domain=default_root_domain, router_type=router_type)
    if router_type == 'traefik':
        router_spec = routers_manager.get_traefik_router_spec(
            default_root_domain,
            config_manager.get('cloudflare-email', secret_name='routers-secrets', required=False, default=None),
            config_manager.get('cloudflare-api-key', secret_name='routers-secrets', required=False, default=None),
            dns_provider=dns_provider
        )
    else:
        router_spec = routers_manager.get_nginx_router_spec(
            default_root_domain,
            config_manager.get('cloudflare-email', secret_name='routers-secrets', required=False, default=None),
            config_manager.get('cloudflare-api-key', secret_name='routers-secrets', required=False, default=None),
            dns_provider=dns_provider
        )
    routers_manager.create(infra_router_name, router_spec)