This package defines an Helm chart for kubernetes based opencloud services deployment. It can be used to fully deploy opencloud in a development/lighweight kubernetes deployment, for quick testing or to ease opencloud dependencies (dex, mongo, mongo-express, ...) deployment. Kind (https://kind.sigs.k8s.io/) is used here as a lightweight kubernetes deployment. Obviously, any kubenetes compliant environment is a legitimate target. # Requirements - go - docker - docker buildx - make - Rajouter dans le bashrc > export KUBECONFIG=$HOME/.kube/config # Locally built microservices deployment procedure ## Install OC-K8S ``` git clone https://cloud.o-forge.io/plm/oc-k8s.git sudo cp oc-k8s.sh /usr/bin/oc-k8s sudo chmod +x /usr/bin/oc-k8s ``` # Generate values (optionnal) Go on ./cmd or `cp ./cmd/oc-k8s /usr/local/bin` Use command : `oc-k8s create values -r [release] -n [namespace] -c [env_file (optionnal)]` or `./oc-k8s create values -r [release] -n [namespace] -c [env_file (optionnal)]` Map in a env file, any Variable you wish to override and give the path. ## Resume for a first start ### Do Forget on first run on Terminal sudo sysctl fs.inotify.max_user_watches=524288 sudo sysctl fs.inotify.max_user_instances=512 ### RUN Look after `oc-k8s help` for details on oc-k8s command. Use command : `oc-k8s start -n [namespace] -r [release] -f [folder] -b [branch] -t [target] -p [port] -P [portTLS] -build [true|false]` or `./oc-k8s start -n [namespace] -r [release] -f [folder] -b [branch] -t [target] -p [port] -P [portTLS] -build [true|false]` ### COMMAND LOOKUP ``` Main commands: oc-k8s install - Install opencloud dependancies [arch] [version] start - Start opencloud k8s stop - Stop opencloud k8s Usage: oc-k8s install -a [arch] -v [version] arch - Arch of OS (required) kind_version - version of kind (required) oc-k8s start -n [namespace] -r [release] -f [folder] -b [branch] -t [target] -p [port] -P [portTLS] -build [true|false] folder - Helm config folder (required, default: .) release - environnement selected (default: dev) namespace - namespace selected (default: dev) branch - Git branch to build (default: main) target - make target (default: all) build - build mode (default: true) oc-k8s stop -n [namespace] -r [release] -f [folder] folder - Helm config folder (required, default: .) release - environnement selected (default: dev) namespace - namespace selected (default: dev) Cluster commands: oc-k8s cluster [options] create - Create a new kind cluster delete - Delete the kind cluster help - Show this help message Usage: oc-k8s create cluster -f [env_folder] -r [release] env_folder - Helm config folder (default: .) release - Release values name (default: dev) oc-k8s delete cluster -f [env_folder] -r [release] env_folder - Helm config folder (default: .) release - Release values name (default: dev) oc-k8s help cluster Service commands: oc-k8s services create - Build all opencloud services help - Show this help message Usage: oc-k8s create services -f [env_folder] -r [release] -b [branch] -t [target] -build [true|false] env_folder - Helm config folder (required, default: .) release - Release values name (required, default: dev) branch - Git branch to build (default: main) target - make target (default: all) build - build mode (default: true) oc-k8s help services Helm commands: oc-k8s helm install - Install Helm create - Install a helm release for the given environment (default: dev) delete - Uninstall a helm release for the given environment (default: dev) help - Show this help message Usage: oc-k8s install helm oc-k8s create helm -n [namespace] -r [release] -f [folder] folder - Helm config folder (required, default: .) release - environnement selected (default: dev) namespace - namespace selected (default: dev) oc-k8s upgrade helm -n [namespace] -r [release] -f [folder] folder - Helm config folder (required, default: .) release - environnement selected (default: dev) namespace - namespace selected (default: dev) oc-k8s delete helm -n [namespace] -r [release] -f [folder] folder - Helm config folder (required, default: .) release - environnement selected (default: dev) namespace - namespace selected (default: dev) oc-k8sh help helm Values commands: oc-k8s values create - Create a new values release yaml help - Show this help message Usage: oc-k8s create values -r [release] -f [env_folder] -c [env_file] release - Release values name (required) env_folder - Helm config folder (optionnal, default: .) env_file - env to map (optionnal) oc-k8s help values K3S commands: oc-k8s k3s install - Install k3s create - Create a new cluster help - Show this help message Usage: oc-k8s install k3s oc-k8s create k3s oc-k8s help values Kind commands: oc-k8s kind install - Install kind help - Show this help message Usage: oc-k8s install kind -a [arch] -v [version] arch - Arch of OS (required, default: amd64) kind_version - version of kind (optionnal) oc-k8s help values DB commands: oc-k8s db [options] create - Add datas in db replace - Replace datas in db delete - Delete datas in db help - Show this help message Usage: oc-k8s create db --d [db_name] -r [release] -n [namespace] -f [folder] folder - Datas folder files path (required) release - Release values name (default: dev) namespace - Namespace values name (default: dev) db_name - db name (default: opencloud) folder - Helm config folder (required, default: .) oc-k8s upgrade db -d [db_name] -r [release] -n [namespace] -f [folder] folder - Datas folder files path (required) release - Release values name (default: dev) namespace - Namespace values name (default: dev) db_name - db name (default: opencloud) oc-k8s delete db -d [db_name] -r [release] -n [namespace] -f [folder] release - Release values name (default: dev) namespace - Namespace values name (default: dev) db_name - db name (default: opencloud) folder - Helm config folder (required, default: .) oc-k8s help db ``` ## Hostname settings Edit your /etc/hosts file, and add following line: ``` 127.0.0.1 beta.opencloud.com ``` ## Done Everything should be operational now, go to http://beta.opencloud.com and enjoy the ride # First steps Go to http://beta.opencloud.com/users Log in using default user/password combo ldapadmin/ldapadmin Create a new user, or change the default one Go to http://beta.opencloud.com Log in using your fresh credentials Do stuff You can go to http://beta.opencloud.com/mongoexpress ... for mongo express web client access (default login/password is test/testme) You can go to http://localhost/dashboard/ ... for access to Traefik reverse proxy front-end