Kubernetes
This guide explains how to install and run Kyso using Kubernetes

Prerequisites

  • A Docker-enabled system with proper Docker access
  • A Kubernetes-enabled system with proper Kubernetes access
  • A LoadBalancer and a DNS properly configured
  • Access to Kyso's private docker image hub
  • Internet access
Internet access is only needed during the installation process if Kyso is hosted where it can access Amazon S3 buckets locally

Install Kyso with scripts

Kyso provides a set of Kubernetes deployment files ready to be deployed in a Kubernetes cluster, and a script that deploys them properly. These scripts will be provided by Kyso to their enterprise customers.
Open the deployment scripts' folder, which will have the following structure
.
└── kyso-k8s-scripts/
├── deployments/
│ ├── kyso-db.deployment.yml
│ ├── kyso-backend.deployment.yml
│ └── kyso-frontend.deployment.yml
├── config/
│ └── environment.configmap.yml
├── deploy.sh
└── undeploy.sh
Before applying the deployment scripts, open config/environment.configmap.yml and change the desired properties, specially the default passwords
apiVersion: v1
kind: ConfigMap
metadata:
name: kyso-environment-configmap
data:
mongo-init.js: |
db = new Mongo().getDB("kyso");
db.createUser(
{
user: 'kysodb',
pwd: 'kysodb',
roles: [{ role: 'readWrite', db: 'kyso' }],
},
);
mongo-env:
MONGO_INITDB_ROOT_USERNAME: kadmin
MONGO_INITDB_ROOT_PASSWORD: ksecret
kyso-backend-env:
DATABASE_URI: mongodb://kysodb:[email protected]/kyso?retryWrites=true&w=majority
NODE_ENV: production
SELF_URL: http://kyso-backend-service:3000
KYSO_FILES_CLOUDFRONT_URL: http://url-to-cloudfront
AWS_REGION: your-bucket-s3-region
AWS_S3_BUCKET: your-bucket-s3-name
S3_BUCKET: your-bucket-s3-name
AWS_ACCESS_KEY_ID: your-aws-access-key
AWS_SECRET_ACCESS_KEY: your-aws-access-key-secret
AUTH_GITHUB_CLIENT_ID: your-github-client-id
AUTH_GITHUB_CLIENT_SECRET: your-github-client-secret
AUTH_GOOGLE_CLIENT_ID: your-google-client-id
AUTH_GOOGLE_CLIENT_SECRET: your-google-client-secret
kyso-frontend-env:
NODE_ENV: production
API_URL: http://kyso-backend-service:3000
NEXT_PUBLIC_API_URL: http://kyso-frontend-service:3000
Execute the deployment script, passing the target namespace as parameter
sh deploy.sh --namespace ${NAMESPACE}

Test the installation

Kyso deployment in Kubernetes exposes automatically the following URLs:
  • https://kyso.yourdomain for the frontend
  • https://kyso.yourdomain/api for the backend
So, for example, if your domain is "amazing-company.com", the URLs related to Kyso should be https://kyso.amazing-company.com and https://kyso.amazing-company.com/api
By default, Kyso only works over HTTPS, that means that every single HTTP request is redirected to HTTPS. To change this redirection configuration open kyso-backend.deployment.yml and kyso-frontend.deployment.yml and change the configuration accordingly
In order to check that the backend is up and running, just open https://kyso.amazing-company.com/api/redoc in your browser
Backend API Documentation
To check that the frontend is up and running, just open https://kyso.amazing-company.com in your browser
Frontend login page