Class: Kuby::KubeDB::Plugin

Inherits:
Plugin
  • Object
show all
Defined in:
lib/kuby/kube-db/plugin.rb

Constant Summary collapse

NAMESPACE =
'kube-system'.freeze
REPO_NAME =
'appscode'.freeze
REPO_URL =
'https://charts.appscode.com/stable/'.freeze
OPERATOR_DEPLOYMENT_NAME =
'kubedb-operator'.freeze
OPERATOR_RELEASE_NAME =
'kubedb-operator'.freeze
CATALOG_RELEASE_NAME =
'kubedb-catalog'.freeze
OPERATOR_CHART_NAME =
'appscode/kubedb'.freeze
CATALOG_CHART_NAME =
'appscode/kubedb-catalog'.freeze
WAIT_INTERVAL =

seconds

5
WAIT_MAX =

seconds

120
OPERATOR_PARAMS =
{
  'apiserver.enableValidatingWebhook' => 'true',
  'apiserver.enableMutatingWebhook'   => 'true'
}

Instance Method Summary collapse

Instance Method Details

#setupObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
# File 'lib/kuby/kube-db/plugin.rb', line 30

def setup
  Kuby.logger.info('Setting up kubedb')

  Kuby.logger.info('Fetching Helm chart')
  helm_cli.add_repo(REPO_NAME, REPO_URL)
  helm_cli.update_repos

  Kuby.logger.info('Deploying kubedb operator')
  operator_deployed? ? upgrade_operator : install_operator

  wait_for_operator do
    Kuby.logger.info('Waiting for kubedb operator deployment')
  end

  wait_for_api_resources do
    Kuby.logger.info('Waiting for API resources to become available')
  end

  Kuby.logger.info('Deploying kubedb catalog')
  catalog_deployed? ? upgrade_catalog : install_catalog

  Kuby.logger.info('Kubedb setup finished')
end