Esempio n. 1
0
def initialize():
    install_crds()
    datapusher_envvars = {'PORT': '8000'}
    router_name = 'datapushers'
    if not routers_manager.get(router_name, required=False):
        routers_manager.create(router_name,
                               routers_manager.get_traefik_router_spec())
    create(
        'datapusher-1',
        'registry.gitlab.com/viderum/docker-datapusher:cloud-datapusher-1-v9',
        datapusher_envvars, router_name)
    create(
        'datapusher-de',
        'registry.gitlab.com/viderum/docker-datapusher:cloud-de-git-943fc3e0',
        datapusher_envvars, router_name)
    create(
        'datapusher-giga',
        'registry.gitlab.com/viderum/docker-datapusher:cloud-giga-git-2b05b22d',
        datapusher_envvars, router_name)
    create(
        'datapusher-increased-max-length',
        'registry.gitlab.com/viderum/docker-datapusher:cloud-increased-max-length-git-84e86116',
        datapusher_envvars, router_name)
    update('datapusher-1')
    update('datapusher-de')
    update('datapusher-giga')
    update('datapusher-increased-max-length')
    routers_manager.update(router_name)
Esempio n. 2
0
    def test_get(self, list, traefik_manager, _init_router, get):
        get.return_value = {
            'metadata': {
                'annotations': 'annotations'
            },
            'spec': {
                'type': 'test'
            }
        }
        _init_router.return_value = 'router', {
            'update': True
        }, 'traefik', {}, {}, {
            'manager': traefik_manager
        }
        list.return_value = [{'spec': {'type': 'CkanCloudRouter'}}]
        traefik_manager.get.return_value = {'type': 'CkanCloudRouter'}

        expected_result = {
            'name': 'datapusher',
            'annotations': 'annotations',
            'routes': [{
                'type': 'CkanCloudRouter'
            }],
            'type': 'traefik',
            'deployment': {
                'type': 'CkanCloudRouter'
            },
            'ready': False,
            'dns': {
                'type': 'CkanCloudRouter'
            },
            'spec': {
                'ready': True,
                'type': 'test'
            }
        }
        self.assertEqual(manager.get('datapusher'), expected_result)

        expected_result = {
            'name': 'datapusher',
            'dns': {
                'type': 'CkanCloudRouter'
            }
        }
        self.assertEqual(manager.get('datapusher', only_dns=True),
                         expected_result)
Esempio n. 3
0
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)
Esempio n. 4
0
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)
Esempio n. 5
0
 def get(router_name, dns):
     print(
         yaml.dump(routers_manager.get(router_name, only_dns=dns),
                   default_flow_style=False))