{"version":3,"sources":["webpack:///./src/pages/docs/installation/kubernetes.mdx"],"names":["_frontmatter","layoutProps","MDXLayout","DefaultLayout","MDXContent","components","props","mdxType","parentName","isMDXComponent"],"mappings":"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","file":"component---src-pages-docs-installation-kubernetes-mdx-e4dddc4245e48ee2c400.js","sourcesContent":["import * as React from 'react'\n  /* @jsx mdx */\nimport { mdx } from '@mdx-js/react';\n/* @jsxRuntime classic */\n\n/* @jsx mdx */\n\nimport DefaultLayout from \"/Users/srinify/Documents/superset/docs/node_modules/gatsby-theme-docz/src/base/Layout.js\";\nexport const _frontmatter = {};\nconst layoutProps = {\n  _frontmatter\n};\nconst MDXLayout = DefaultLayout;\nexport default function MDXContent({\n  components,\n  ...props\n}) {\n  return <MDXLayout {...layoutProps} {...props} components={components} mdxType=\"MDXLayout\">\n\n\n    <h2 {...{\n      \"id\": \"running-on-kubernetes\"\n    }}>{`Running on Kubernetes`}</h2>\n    <p>{`Running on Kubernetes is supported with the provided `}<a parentName=\"p\" {...{\n        \"href\": \"helm.sh/\"\n      }}>{`Helm`}</a>{` chart included in the Github repository under `}<a parentName=\"p\" {...{\n        \"href\": \"https://github.com/apache/superset/tree/master/helm/superset\"\n      }}>{`helm/superset`}</a>{`.`}</p>\n    <h3 {...{\n      \"id\": \"prerequisites\"\n    }}>{`Prerequisites`}</h3>\n    <ul>\n      <li parentName=\"ul\">{`A Kubernetes cluster`}</li>\n      <li parentName=\"ul\">{`Helm installed`}</li>\n    </ul>\n    <h3 {...{\n      \"id\": \"running\"\n    }}>{`Running`}</h3>\n    <ol>\n      <li parentName=\"ol\">{`Configure your setting overrides`}</li>\n    </ol>\n    <p>{`Just like any typical Helm chart, you'll need to craft a `}<inlineCode parentName=\"p\">{`values.yaml`}</inlineCode>{` file that would define/override any of the values exposed into the default `}<a parentName=\"p\" {...{\n        \"href\": \"https://github.com/apache/superset/tree/master/helm/superset/values.yaml\"\n      }}>{`values.yaml`}</a>{`, or from any of the dependent charts it depends on:`}</p>\n    <ul>\n      <li parentName=\"ul\"><a parentName=\"li\" {...{\n          \"href\": \"https://artifacthub.io/packages/helm/bitnami/redis\"\n        }}>{`bitnami/redis`}</a></li>\n      <li parentName=\"ul\"><a parentName=\"li\" {...{\n          \"href\": \"https://artifacthub.io/packages/helm/bitnami/postgresql\"\n        }}>{`bitnami/postgresql`}</a></li>\n    </ul>\n    <p>{`More info down below on some important overrides you might need.`}</p>\n    <ol>\n      <li parentName=\"ol\">{`Install and run`}</li>\n    </ol>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-sh\"\n      }}>{`# From the root of the repository\nhelm upgrade --install --values my-values.yaml my-superset helm/superset\n`}</code></pre>\n    <p>{`You should see various pods popping up, such as:`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-sh\"\n      }}>{`kubectl get pods\nNAME                                    READY   STATUS      RESTARTS   AGE\nsuperset-celerybeat-7cdcc9575f-k6xmc    1/1     Running     0          119s\nsuperset-f5c9c667-dw9lp                 1/1     Running     0          4m7s\nsuperset-f5c9c667-fk8bk                 1/1     Running     0          4m11s\nsuperset-init-db-zlm9z                  0/1     Completed   0          111s\nsuperset-postgresql-0                   1/1     Running     0          6d20h\nsuperset-redis-master-0                 1/1     Running     0          6d20h\nsuperset-worker-75b48bbcc-jmmjr         1/1     Running     0          4m8s\nsuperset-worker-75b48bbcc-qrq49         1/1     Running     0          4m12s\n`}</code></pre>\n    <p>{`The exact list will depend on some of your specific configuration overrides but you should generally expect:`}</p>\n    <ul>\n      <li parentName=\"ul\">{`N `}<inlineCode parentName=\"li\">{`superset-xxxx-yyyy`}</inlineCode>{` and `}<inlineCode parentName=\"li\">{`superset-worker-xxxx-yyyy`}</inlineCode>{` pods (depending on your `}<inlineCode parentName=\"li\">{`replicaCount`}</inlineCode>{` value)`}</li>\n      <li parentName=\"ul\">{`1 `}<inlineCode parentName=\"li\">{`superset-postgresql-0`}</inlineCode>{` depending on your postgres settings`}</li>\n      <li parentName=\"ul\">{`1 `}<inlineCode parentName=\"li\">{`superset-redis-master-0`}</inlineCode>{` depending on your redis settings`}</li>\n      <li parentName=\"ul\">{`1 `}<inlineCode parentName=\"li\">{`superset-celerybeat-xxxx-yyyy`}</inlineCode>{` pod if you have `}<inlineCode parentName=\"li\">{`supersetCeleryBeat.enabled = true`}</inlineCode>{` in your values overrides`}</li>\n    </ul>\n    <ol>\n      <li parentName=\"ol\">{`Access it`}</li>\n    </ol>\n    <p>{`The chart will publish appropriate services to expose the Superset UI internally within your k8s cluster. To access it externally you will have to either:`}</p>\n    <ul>\n      <li parentName=\"ul\">{`Configure the Service as a `}<inlineCode parentName=\"li\">{`LoadBalancer`}</inlineCode>{` or `}<inlineCode parentName=\"li\">{`NodePort`}</inlineCode></li>\n      <li parentName=\"ul\">{`Set up an `}<inlineCode parentName=\"li\">{`Ingress`}</inlineCode>{` for it - the chart includes a definition, but will need to be tuned to your needs (hostname, tls, annotations etc...)`}</li>\n      <li parentName=\"ul\">{`Run `}<inlineCode parentName=\"li\">{`kubectl port-forward superset-xxxx-yyyy :8088`}</inlineCode>{` to directly tunnel one pod's port into your localhost`}</li>\n    </ul>\n    <p>{`Depending how you configured external access, the URL will vary. Once you've identified the appropriate URL you can log in with:`}</p>\n    <ul>\n      <li parentName=\"ul\">{`user: `}<inlineCode parentName=\"li\">{`admin`}</inlineCode></li>\n      <li parentName=\"ul\">{`password: `}<inlineCode parentName=\"li\">{`admin`}</inlineCode></li>\n    </ul>\n    <h3 {...{\n      \"id\": \"important-settings\"\n    }}>{`Important settings`}</h3>\n    <h4 {...{\n      \"id\": \"security-settings\"\n    }}>{`Security settings`}</h4>\n    <p>{`Default security settings and passwords are included but you `}<strong parentName=\"p\">{`SHOULD`}</strong>{` override those with your own, in particular:`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-yaml\"\n      }}>{`postgresql:\n  postgresqlPassword: superset\n`}</code></pre>\n    <h4 {...{\n      \"id\": \"dependencies\"\n    }}>{`Dependencies`}</h4>\n    <p>{`You can specify pip packages to be installed before startup, e.g. to install extra database drivers:`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-yaml\"\n      }}>{`additionalRequirements:\n  - psycopg2\n  - redis\n  - elasticsearch-dbapi\n  - pymssql\n  - gsheetsdb\n  # Force verstion to work around https://github.com/betodealmeida/gsheets-db-api/issues/15\n  - moz-sql-parser==4.9.21002\n  # For OAuth\n  - Authlib\n  # For webdriver / reports\n  - gevent\n`}</code></pre>\n    <p><strong parentName=\"p\">{`WARNING`}</strong>{`: The list will replace the default one from the default `}<inlineCode parentName=\"p\">{`values.yaml`}</inlineCode>{` entirely, not `}<em parentName=\"p\">{`add`}</em>{` to it...`}</p>\n    <h4 {...{\n      \"id\": \"superset_configpy\"\n    }}>{`superset_config.py`}</h4>\n    <p>{`The default `}<inlineCode parentName=\"p\">{`superset_config.py`}</inlineCode>{` is fairly minimal and you will very likely need to extend it. This is done by specifying one or more key/value entries in `}<inlineCode parentName=\"p\">{`configOverrides`}</inlineCode>{`, e.g.:`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-yaml\"\n      }}>{`configOverrides:\n  my_override: |\n    # This will make sure the redirect_uri is properly computed, even with SSL offloading\n    ENABLE_PROXY_FIX = True\n    FEATURE_FLAGS = {\n        \"DYNAMIC_PLUGINS\": True\n    }\n`}</code></pre>\n    <p>{`Those will be evaluated as Helm templates and therefore will be able to reference other `}<inlineCode parentName=\"p\">{`values.yaml`}</inlineCode>{` variables e.g. `}<inlineCode parentName=\"p\">{`{{ .Values.ingress.hosts[0] }}`}</inlineCode>{` will resolve to your ingress external domain.`}</p>\n    <p>{`The entire `}<inlineCode parentName=\"p\">{`superset_config.py`}</inlineCode>{` will be installed as a secret, so it is safe to pass sensitive parameters directly... however it might be more readable to use secret env variables for that.`}</p>\n    <p>{`Full python files can be provided by running `}<inlineCode parentName=\"p\">{`helm upgrade --install --values my-values.yaml --set-file configOverrides.oauth=set_oauth.py`}</inlineCode></p>\n    <h4 {...{\n      \"id\": \"environment-variables\"\n    }}>{`Environment Variables`}</h4>\n    <p>{`Those can be passed as key/values either with `}<inlineCode parentName=\"p\">{`extraEnv`}</inlineCode>{` or `}<inlineCode parentName=\"p\">{`extraSecretEnv`}</inlineCode>{` if they're sensitive. They can then be referenced from `}<inlineCode parentName=\"p\">{`superset_config.py`}</inlineCode>{` using e.g. `}<inlineCode parentName=\"p\">{`os.environ.get(\"VAR\")`}</inlineCode>{`.`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-yaml\"\n      }}>{`extraEnv:\n  SMTP_HOST: smtp.gmail.com\n  SMTP_USER: user@gmail.com\n  SMTP_PORT: \"587\"\n  SMTP_MAIL_FROM: user@gmail.com\n\nextraSecretEnv:\n  SMTP_PASSWORD: xxxx\n\nconfigOverrides:\n  smtp: |\n    import ast\n    SMTP_HOST = os.getenv(\"SMTP_HOST\",\"localhost\")\n    SMTP_STARTTLS = ast.literal_eval(os.getenv(\"SMTP_STARTTLS\", \"True\"))\n    SMTP_SSL = ast.literal_eval(os.getenv(\"SMTP_SSL\", \"False\"))\n    SMTP_USER = os.getenv(\"SMTP_USER\",\"superset\")\n    SMTP_PORT = os.getenv(\"SMTP_PORT\",25)\n    SMTP_PASSWORD = os.getenv(\"SMTP_PASSWORD\",\"superset\")\n`}</code></pre>\n    <h4 {...{\n      \"id\": \"system-packages\"\n    }}>{`System packages`}</h4>\n    <p>{`If new system packages are required, they can be installed before application startup by overriding the container's `}<inlineCode parentName=\"p\">{`command`}</inlineCode>{`, e.g.:`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-yaml\"\n      }}>{`supersetWorker:\n  command:\n    - /bin/sh\n    - -c\n    - |\n      apt update\n      apt install -y somepackage\n      apt autoremove -yqq --purge\n      apt clean\n\n      # Run celery worker\n      . {{ .Values.configMountPath }}/superset_bootstrap.sh; celery --app=superset.tasks.celery_app:app worker\n`}</code></pre>\n    <h4 {...{\n      \"id\": \"data-sources\"\n    }}>{`Data sources`}</h4>\n    <p>{`Data source definitions can be automatically declared by providing key/value yaml definitions in `}<inlineCode parentName=\"p\">{`extraConfigs`}</inlineCode>{`:`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-yaml\"\n      }}>{`extraConfigs:\n  datasources-init.yaml: |\n    databases:\n    - allow_csv_upload: true\n      allow_ctas: true\n      allow_cvas: true\n      database_name: example-db\n      extra: \"{\\\\r\\\\n    \\\\\"metadata_params\\\\\": {},\\\\r\\\\n    \\\\\"engine_params\\\\\": {},\\\\r\\\\n    \\\\\"\\\\\n        metadata_cache_timeout\\\\\": {},\\\\r\\\\n    \\\\\"schemas_allowed_for_csv_upload\\\\\": []\\\\r\\\\n\\\\\n        }\"\n      sqlalchemy_uri: example://example-db.local\n      tables: []\n`}</code></pre>\n    <p>{`Those will also be mounted as secrets and can include sensitive parameters.`}</p>\n    <h3 {...{\n      \"id\": \"configuration-examples\"\n    }}>{`Configuration Examples`}</h3>\n    <h4 {...{\n      \"id\": \"setting-up-oauth\"\n    }}>{`Setting up OAuth`}</h4>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-yaml\"\n      }}>{`extraEnv:\n  AUTH_DOMAIN: example.com\n\nextraSecretEnv:\n  GOOGLE_KEY: xxxxxxxxxxxx-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx.apps.googleusercontent.com\n  GOOGLE_SECRET: xxxxxxxxxxxxxxxxxxxxxxxx\n\nconfigOverrides:\n  enable_oauth: |\n    # This will make sure the redirect_uri is properly computed, even with SSL offloading\n    ENABLE_PROXY_FIX = True\n\n    from flask_appbuilder.security.manager import (AUTH_OAUTH, AUTH_DB)\n    AUTH_TYPE = AUTH_OAUTH\n    OAUTH_PROVIDERS = [\n        {\n            \"name\": \"google\",\n            \"icon\": \"fa-google\",\n            \"token_key\": \"access_token\",\n            \"remote_app\": {\n                \"client_id\": os.getenv(\"GOOGLE_KEY\"),\n                \"client_secret\": os.getenv(\"GOOGLE_SECRET\"),\n                \"api_base_url\": \"https://www.googleapis.com/oauth2/v2/\",\n                \"client_kwargs\": {\"scope\": \"email profile\"},\n                \"request_token_url\": None,\n                \"access_token_url\": \"https://accounts.google.com/o/oauth2/token\",\n                \"authorize_url\": \"https://accounts.google.com/o/oauth2/auth\",\n                \"authorize_params\": {\"hd\": os.getenv(\"AUTH_DOMAIN\", \"\")}\n            },\n        }\n    ]\n\n    # Map Authlib roles to superset roles\n    AUTH_ROLE_ADMIN = 'Admin'\n    AUTH_ROLE_PUBLIC = 'Public'\n\n    # Will allow user self registration, allowing to create Flask users from Authorized User\n    AUTH_USER_REGISTRATION = True\n\n    # The default user self registration role\n    AUTH_USER_REGISTRATION_ROLE = \"Admin\"\n`}</code></pre>\n    <h4 {...{\n      \"id\": \"enable-alerts-and-reports\"\n    }}>{`Enable Alerts and Reports`}</h4>\n    <p>{`For this, as per the `}<a parentName=\"p\" {...{\n        \"href\": \"/docs/installation/email-reports\"\n      }}>{`Alerts and Reports doc`}</a>{`, you will need to:`}</p>\n    <h5 {...{\n      \"id\": \"install-a-supported-webdriver-in-the-celery-worker\"\n    }}>{`Install a supported webdriver in the Celery worker`}</h5>\n    <p>{`This is done either by using a custom image that has the webdriver pre-installed, or installing at startup time by overriding the `}<inlineCode parentName=\"p\">{`command`}</inlineCode>{`. Here's a working example for `}<inlineCode parentName=\"p\">{`chromedriver`}</inlineCode>{`:`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-yaml\"\n      }}>{`supersetWorker:\n  command:\n    - /bin/sh\n    - -c\n    - |\n      # Install chrome webdriver\n      # See https://github.com/apache/superset/blob/4fa3b6c7185629b87c27fc2c0e5435d458f7b73d/docs/src/pages/docs/installation/email_reports.mdx\n      apt update\n      wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb\n      apt install -y --no-install-recommends ./google-chrome-stable_current_amd64.deb\n      wget https://chromedriver.storage.googleapis.com/88.0.4324.96/chromedriver_linux64.zip\n      unzip chromedriver_linux64.zip\n      chmod +x chromedriver\n      mv chromedriver /usr/bin\n      apt autoremove -yqq --purge\n      apt clean\n      rm -f google-chrome-stable_current_amd64.deb chromedriver_linux64.zip\n\n      # Run\n      . {{ .Values.configMountPath }}/superset_bootstrap.sh; celery --app=superset.tasks.celery_app:app worker\n`}</code></pre>\n    <h5 {...{\n      \"id\": \"run-the-celery-beat\"\n    }}>{`Run the Celery beat`}</h5>\n    <p>{`This pod will trigger the scheduled tasks configured in the alerts and reports UI section:`}</p>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-yaml\"\n      }}>{`supersetCeleryBeat:\n  enabled: true\n`}</code></pre>\n    <h5 {...{\n      \"id\": \"configure-the-appropriate-celery-jobs-and-smtpslack-settings\"\n    }}>{`Configure the appropriate Celery jobs and SMTP/Slack settings`}</h5>\n    <pre><code parentName=\"pre\" {...{\n        \"className\": \"language-yaml\"\n      }}>{`extraEnv:\n  SMTP_HOST: smtp.gmail.com\n  SMTP_USER: user@gmail.com\n  SMTP_PORT: \"587\"\n  SMTP_MAIL_FROM: user@gmail.com\n\nextraSecretEnv:\n  SLACK_API_TOKEN: xoxb-xxxx-yyyy\n  SMTP_PASSWORD: xxxx-yyyy\n\nconfigOverrides:\n  feature_flags: |\n    import ast\n\n    FEATURE_FLAGS = {\n        \"ALERT_REPORTS\": True\n    }\n\n    SMTP_HOST = os.getenv(\"SMTP_HOST\",\"localhost\")\n    SMTP_STARTTLS = ast.literal_eval(os.getenv(\"SMTP_STARTTLS\", \"True\"))\n    SMTP_SSL = ast.literal_eval(os.getenv(\"SMTP_SSL\", \"False\"))\n    SMTP_USER = os.getenv(\"SMTP_USER\",\"superset\")\n    SMTP_PORT = os.getenv(\"SMTP_PORT\",25)\n    SMTP_PASSWORD = os.getenv(\"SMTP_PASSWORD\",\"superset\")\n    SMTP_MAIL_FROM = os.getenv(\"SMTP_MAIL_FROM\",\"superset@superset.com\")\n\n    SLACK_API_TOKEN = os.getenv(\"SLACK_API_TOKEN\",None)\n  celery_conf: |\n    from celery.schedules import crontab\n\n    class CeleryConfig(object):\n      BROKER_URL = f\"redis://{env('REDIS_HOST')}:{env('REDIS_PORT')}/0\"\n      CELERY_IMPORTS = ('superset.sql_lab', )\n      CELERY_RESULT_BACKEND = f\"redis://{env('REDIS_HOST')}:{env('REDIS_PORT')}/0\"\n      CELERY_ANNOTATIONS = {'tasks.add': {'rate_limit': '10/s'}}\n      CELERY_IMPORTS = ('superset.sql_lab', \"superset.tasks\", \"superset.tasks.thumbnails\", )\n      CELERY_ANNOTATIONS = {\n          'sql_lab.get_sql_results': {\n              'rate_limit': '100/s',\n          },\n          'email_reports.send': {\n              'rate_limit': '1/s',\n              'time_limit': 600,\n              'soft_time_limit': 600,\n              'ignore_result': True,\n          },\n      }\n      CELERYBEAT_SCHEDULE = {\n          'reports.scheduler': {\n              'task': 'reports.scheduler',\n              'schedule': crontab(minute='*', hour='*'),\n          },\n          'reports.prune_log': {\n              'task': 'reports.prune_log',\n              'schedule': crontab(minute=0, hour=0),\n          },\n          'cache-warmup-hourly': {\n              'task': 'cache-warmup',\n              'schedule': crontab(minute='*/30', hour='*'),\n              'kwargs': {\n                  'strategy_name': 'top_n_dashboards',\n                  'top_n': 10,\n                  'since': '7 days ago',\n              },\n          }\n      }\n\n    CELERY_CONFIG = CeleryConfig\n  reports: |\n    EMAIL_PAGE_RENDER_WAIT = 60\n    WEBDRIVER_BASEURL = \"http://{{ template \"superset.fullname\" . }}:{{ .Values.service.port }}/\"\n    WEBDRIVER_BASEURL_USER_FRIENDLY = \"https://www.example.com/\"\n    WEBDRIVER_TYPE= \"chrome\"\n    WEBDRIVER_OPTION_ARGS = [\n        \"--force-device-scale-factor=2.0\",\n        \"--high-dpi-support=2.0\",\n        \"--headless\",\n        \"--disable-gpu\",\n        \"--disable-dev-shm-usage\",\n        # This is required because our process runs as root (in order to install pip packages)\n        \"--no-sandbox\",\n        \"--disable-setuid-sandbox\",\n        \"--disable-extensions\",\n    ]\n`}</code></pre>\n\n    </MDXLayout>;\n}\n;\nMDXContent.isMDXComponent = true;\n      "],"sourceRoot":""}