def initialize(interactive=False): ckan_db_migration_manager.initialize(interactive=interactive) if config_manager.get('enable-deis-ckan', configmap_name='global-ckan-config') == 'y': ckan_infra = CkanInfra(required=False) config_manager.interactive_set( { 'deis-kubeconfig': ckan_infra.DEIS_KUBECONFIG, }, from_file=True, secret_name='ckan-migration-secrets', interactive=interactive) config_manager.interactive_set( { 'gitlab-token': ckan_infra.GITLAB_TOKEN_PASSWORD, }, secret_name='ckan-migration-secrets', interactive=interactive) config_manager.interactive_set( { 'docker-server': ckan_infra.DOCKER_REGISTRY_SERVER, 'docker-username': ckan_infra.DOCKER_REGISTRY_USERNAME, 'docker-password': ckan_infra.DOCKER_REGISTRY_PASSWORD, 'docker-email': ckan_infra.DOCKER_REGISTRY_EMAIL, }, secret_name='ckan-docker-registry', interactive=interactive) crds_manager.install_crd(INSTANCE_CRD_SINGULAR, INSTANCE_CRD_PLURAL_SUFFIX, INSTANCE_CRD_KIND_SUFFIX) crds_manager.install_crd(INSTANCE_NAME_CRD_SINGULAR, INSTANCE_NAME_CRD_PLURAL_SUFFIX, INSTANCE_NAME_CRD_KIND_SUFFIX) if config_manager.get('disable-centralized-datapushers', configmap_name='global-ckan-config', required=False) != 'yes': from ckan_cloud_operator.datapushers import initialize as datapusher_initialize datapusher_initialize() from ckan_cloud_operator.routers import manager as routers_manager router_name = get_default_instances_router_name() wildcard_ssl_domain = routers_manager.get_default_root_domain() print(f'wildcard_ssl_domain={wildcard_ssl_domain}') allow_wildcard_ssl = routers_manager.get_env_id() == 'p' router = routers_manager.get(router_name, required=False) if router: assert ((allow_wildcard_ssl and router.get( 'spec', {}).get('wildcard-ssl-domain') == wildcard_ssl_domain) or (not allow_wildcard_ssl and not router.get('spec', {})) ), f'invalid router wildcard ssl config: {router}' else: routers_manager.create( router_name, routers_manager.get_traefik_router_spec( wildcard_ssl_domain=wildcard_ssl_domain)) from .storage.manager import initialize as ckan_storage_initialize ckan_storage_initialize(interactive=interactive)
def check_cluster_url(url, verify_site_url=False, deis_instance=None): from ckan_cloud_operator.deis_ckan.ckan import DeisCkanInstanceCKAN from ckan_cloud_operator.providers.routers import manager as routers_manager env_id = routers_manager.get_env_id() root_domain = routers_manager.get_default_root_domain() assert url.startswith(f'https://cc-{env_id}-') and url.rstrip('/').endswith(root_domain), f'invalid cluster url: {url}' if verify_site_url: logs.info('checking site url in running instance...') site_url = None for line in DeisCkanInstanceCKAN(deis_instance).exec('env', check_output=True).decode().splitlines(): if line.startswith('CKAN_SITE_URL='): site_url = line.replace('CKAN_SITE_URL=', '').strip() assert site_url == url, f'mismatch between envvar and instance env: {site_url} != {url}'
def initialize(interactive=False): ckan_db_migration_manager.initialize(interactive=interactive) if config_manager.get('enable-deis-ckan', configmap_name='global-ckan-config') == 'y': ckan_infra = CkanInfra(required=False) config_manager.interactive_set( { 'deis-kubeconfig': ckan_infra.DEIS_KUBECONFIG, }, from_file=True, secret_name='ckan-migration-secrets', interactive=interactive) config_manager.interactive_set( { 'gitlab-token': ckan_infra.GITLAB_TOKEN_PASSWORD, }, secret_name='ckan-migration-secrets', interactive=interactive) config_manager.interactive_set( { 'docker-server': ckan_infra.DOCKER_REGISTRY_SERVER, 'docker-username': ckan_infra.DOCKER_REGISTRY_USERNAME, 'docker-password': ckan_infra.DOCKER_REGISTRY_PASSWORD, 'docker-email': ckan_infra.DOCKER_REGISTRY_EMAIL, }, secret_name='ckan-docker-registry', interactive=interactive) crds_manager.install_crd(INSTANCE_CRD_SINGULAR, INSTANCE_CRD_PLURAL_SUFFIX, INSTANCE_CRD_KIND_SUFFIX) crds_manager.install_crd(INSTANCE_NAME_CRD_SINGULAR, INSTANCE_NAME_CRD_PLURAL_SUFFIX, INSTANCE_NAME_CRD_KIND_SUFFIX) from ckan_cloud_operator.providers.solr.manager import zk_list_configs, zk_put_configs print('Checking CKAN Solr config in ZooKeeper') if 'ckan_default' in zk_list_configs(): print('Found ckan_default Solr config') else: print( 'No default Solr config found. Putting CKAN 2.8 config for Solr to ZooKeeper as ckan_default...' ) file_path = os.path.dirname(os.path.abspath(__file__)) root_path = Path(file_path).parent.parent configs_dir = os.path.join(root_path, 'data', 'solr') zk_put_configs(configs_dir) if config_manager.get('disable-centralized-datapushers', configmap_name='global-ckan-config', required=False) != 'yes': from ckan_cloud_operator.datapushers import initialize as datapusher_initialize datapusher_initialize() from ckan_cloud_operator.routers import manager as routers_manager router_name = get_default_instances_router_name() wildcard_ssl_domain = routers_manager.get_default_root_domain() print(f'wildcard_ssl_domain={wildcard_ssl_domain}') allow_wildcard_ssl = routers_manager.get_env_id() == 'p' router = routers_manager.get(router_name, required=False) if router: assert ((allow_wildcard_ssl and router.get( 'spec', {}).get('wildcard-ssl-domain') == wildcard_ssl_domain) or (not allow_wildcard_ssl and not router.get('spec', {})) ), f'invalid router wildcard ssl config: {router}' else: routers_manager.create( router_name, routers_manager.get_traefik_router_spec( wildcard_ssl_domain=wildcard_ssl_domain)) from .storage.manager import initialize as ckan_storage_initialize ckan_storage_initialize(interactive=interactive) from .deployment.manager import initialize as ckan_deployment_initialize ckan_deployment_initialize(interactive=interactive)