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'
}
REPLICA_SET_MATCH_LABELS =
{
  'release' => OPERATOR_RELEASE_NAME,
  'app' => 'kubedb'
}

Instance Method Summary collapse

Instance Method Details

#setupObject



37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
# File 'lib/kuby/kube-db/plugin.rb', line 37

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

  Kuby.logger.info('Fetching KubeDB 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