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()
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))
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()
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)