インストールガイド - On Premise

Install Guide of CloudForet on On Premise

Preparation

Helm

  • Register helm chart of CloudForet
$ helm repo add cloudforet https://cloudforet-io.github.io/charts
$ helm repo list
$ helm repo update cloudforet

or

  • Download helm chart directly using wget to your workspace
$ wget https://github.com/cloudforet-io/charts/releases/download/spaceone-1.10.5/spaceone-1.10.5.tgz
$ tar xzf spaceone-1.10.5.tgz
$ mv spaceone /move/to/your/workspace
$ wget https://github.com/cloudforet-io/charts/releases/download/spaceone-initializer-1.2.21/spaceone-initializer-1.2.21.tgz
$ tar xzf spaceone-initializer-1.2.21.tgz
$ mv spaceone-initializer /move/to/your/workspace
$ wget https://github.com/cloudforet-io/charts/releases/download/docs-2.1.6/docs-2.1.6.tgz
$ tar xzf docs-2.1.6.tgz
$ mv docs /move/to/your/workspace

Pre-install

  • Create a ConfigMap for global configuration
    • See the example files here.
$ kubectl create -f shared.yaml
  • Create a Secret for your private image registry using shell
$ vim create_registry_type_secret.sh
---
KUBECTL='kubectl'
SECRET_NAME='<secret_name>'
USERNAME='<user_name>'
PASSWORD='<password>'
REGISTRY_ADDRESS='<registry_address>'

$KUBECTL create secret docker-registry $SECRET_NAME \
    --docker-server=$REGISTRY_ADDRESS \
    --docker-username=$USERNAME \
    --docker-password=$PASSWORD \
    --docker-email=user@example.com
$ sh create_registry_type_secret.sh

Install cloudforet with helm chart

NOTE: If you downloaded helm chart directly using wget, replace cloudforet/{chart} to workspace/{chart} in the guide below.

1. Install cloudforet

  • See the example files here.
$ helm install cloudforet -f values.yaml -f frontend.yaml -f database.yaml cloudforet/spaceone

2. Create cloudforet domains

  • See the example files here.

NOTE: After running the command, Make sure that the initializer-spaceone pod status is completed

$ helm install domain -f domain.yaml cloudforet/spaceone-initializer

3. Get system token

  • Check log of initializer-spaceone pod and copy system_token
$ kubectl get pod
NAME                                 READY   STATUS      RESTARTS        AGE
(omit)
initialize-spaceone-****-****      0/1     Completed   0               4h52m
(omit)
$ kubectl logs initializer-****-****

---
(omit)
TASK [Print Admin API Key] *********************************************************************************************
"<system_token>"

FINISHED [ ok=62, skipped=0 ] ******************************************************************************************

FINISH SPACEONE INITIALIZE
  • Replace <replace_token> to <system_token> in values.yaml

example)

notification:
    enabled: true
    replicas: 1
    image:
      name: harbor.dev.spaceone.dev/spaceone-hbr/notification
      version: 1.10.4

(omit)

    application_scheduler:
+       TOKEN: <replace_token> -> "******"

4. Upgrade cloudforet

$ helm upgrade cloudforet -f values.yaml -f frontend.yaml -f database.yaml cloudforet/spaceone

Additional installation

install docs

  • See the example files here.
$ helm install docs -f docs.yaml cloudforet/docs

install spacectl

  • See the example files here.
$ helm install spacectl -f docs.yaml cloudforet/spacectl

install ingress

  • (option) Generate a TLS secret for HTTPS Connection
$ kubectl create secret tls web-ssl --key web_ssl.pem --cert web_ssl.csr
$ kubectl create secret tls api-ssl --key api_ssl.pem --cert api_ssl.csr
  • Create ingress
    • See the example files here.
$ kubectl apply -f assets-ingress.yaml
$ kubectl apply -f console-ingress.yaml
$ kubectl apply -f docs-ingress.yaml
$ kubectl apply -f grpc-ingress.yaml
$ kubectl apply -f rest-ingress.yaml