Advanced Installation

This is only for users that have basic understanding on cloud infrastructure and Kubernetes.
If you are not experienced with cloud configuration, please check our installation guide instead.

Prerequisites#

Please follow our installation guide to install Argo Workflow and Cert Manager instead. If you are not planning to support SSL certificates, please omit the installation for Cert Manager.

Install KintoHub#

Run the following steps depending on the setup you want.
Each one of the following steps are "incremental", you must run all the steps prior to the setup you chose (i.e. which means you cannot skip the commands in the middle).

For example, you cannot run Enable Public Access to Deployed Services and Expose the Dashboard publicly without running Enable HTTPS support to Deployed Services.

Minimum Configuration#

This will install KintoHub with minimum settings, which is on a local cluster with no inbound internet connection.

export KINTO_ARGS="--set minio.resources.requests.memory=null \
--set minio.makeBucketJob.resources.requests.memory=null \
--set builder.env.IMAGE_REGISTRY_HOST={registry_host} \
--set builder.workflow.docker.registry={docker_registry_fqdn} \
--set builder.workflow.docker.email={docker_registry_email} \
--set builder.workflow.docker.username={docker_registry_account_username} \
--set builder.workflow.docker.password={docker_registry_account_password} \
--set common.domainName={your_domain}"

Variables#

VariableDescription
builder.env.IMAGE_REGISTRY_HOSTThe registry host for pushing/pulling the container images.
builder.workflow.docker.registryThe FQDN for your docker registry. Check here for more information. (For dockerhub please use https://index.docker.io/v1/ instead.
builder.workflow.docker.emailYour Docker email.
builder.workflow.docker.usernameYour Docker username.
builder.workflow.docker.passwordYour Docker password.
common.domainNameYour domain name used for dashboard, core and the services you are gonna deployed.

Enable Public Access to Deployed Services#

Adding the following arguments will expose the web services deployed publicly.

export KINTO_ARGS="${KINTO_ARGS} \
--set nginx-ingress-controller.service.type=LoadBalancer"

Enable HTTPS support to Deployed Services#

Adding the following arguments will allow KintoHub setup SSL automatically, in which guard all the services deployed with HTTPS.

export KINTO_ARGS="${KINTO_ARGS} \
--set common.ssl.enabled=true \
--set common.ssl.issuer.email={ssl_provider_email} \
--set common.ssl.issuer.solver.cloudflare.email={cloudflare_email} \
--set common.ssl.issuer.solver.cloudflare.cloudflareApiToken={cloudflare_api_token}"

Variables#

VariableDescription
common.ssl.issuer.emailYour email for the SSL certificates generated.
common.ssl.issuer.solver.cloudflare.emailThe email of your cloudflare account.
common.ssl.issuer.solver.cloudflare.cloudflareApiTokenYou cloudflare API token.

Expose the Dashboard publicly#

Adding the following arguments will expose the dashboard to public. This action may considered as an insecure action, take your own risk when doing so.

export KINTO_ARGS="${KINTO_ARGS} \
--set core.ingress.enabled=true \
--set core.secretKey={your_kinto_secret} \
--set dashboard.ingress.enabled=true"
VariableDescription
core.secretKeyAuthentication key used to protect kinto core and kinto dashboard.

Install KintoHub#

After arguments are set, run the following commands to install KintoHub.

kubectl create ns kintohub
helm repo add kintohub https://kintoproj.github.io/kinto-helm
helm upgrade --install kinto \
$(echo ${KINTO_ARGS}) \
--namespace kintohub kintohub/kinto