Giter Site home page Giter Site logo

kuberlogic / kuberlogic Goto Github PK

View Code? Open in Web Editor NEW
226.0 9.0 23.0 7.75 MB

KuberLogic turns a containerized application into a functional SaaS offering, with integrated billing, monitoring, and customer management.

Home Page: https://kuberlogic.com

License: Apache License 2.0

Dockerfile 0.15% Makefile 2.29% Go 97.18% Shell 0.38%
kubernetes golang kuberlogic deployments docker docker-compose multi-instance multi-tenancy multi-tenant payments saas saas-application saas-boilerplate saas-product subscription single-tenant

kuberlogic's Introduction

KuberLogic

Development build codecov

logo


KuberLogic is an open-source solution that helps to deliver any single-tenant application (one stack per customer) to multiple users as-a-cloud service. KuberLogic allows software vendors to accelerate their journey to Software-as-a-Service (SaaS) with minimal modifications to the application.

Installation

Follow Installing KuberLogic to set up your environment and install KuberLogic.

Features

  • Application instance (Tenant) orchestration (list/provision/delete/edit)
  • Scheduled and Instant backups with Verero
  • Custom domain (subdomain) support
  • SSL support
  • Integration with billing providers via webhooks
  • Application (Tenant) isolation
  • Application instance updates
  • RESTful API and CLI for service management
  • Integration with Sentry for errors and exceptions tracking

Coming soon

You can check our Roadmap here


Why use KuberLogic?

The ultimate goal of KuberLogic is to provide an easily accessible service to turn any containerized application into a cloud-native SaaS solution.

KuberLogic:

  • Provides a straightforward and reliable way to deploy and manage application instances (Tenants) while achieving maximum resource utilization and standardization;
  • Simplify migration to multi-tenancy using industry-standard containers & K8s and allows rapid migration to SaaS with minimal application modification;
  • Gives independence and frees from vendor lock, as KuberLogic is open source and based on Kubernetes to provide a consistent platform anywhere

Requirements

Kubernetes cluster 1.20-1.23

Documentation

Please refer to the official docs at kuberlogic.com

Getting involved

Feel free to open an issue if you need any help.

You can see the roadmap/announcements and leave your feedback here.

You can also reach out to us at [email protected] or join our Slack community

License

CloudLinux Software Inc 2019-2022 All Rights Reserved

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

kuberlogic's People

Contributors

andheroe avatar avoidme avatar clrkrompets avatar sgevorgyancl avatar telepenin avatar turmyshevd avatar ynnt avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

kuberlogic's Issues

Is kuberlogic compatible on AWS EKS?

Hello,

I was wondering if KuberLogic is compatible with AWS EKS v1.20? I ran the installer and received an error that states that the cluster is not compatible.

[cloudshell-user@ip-10-0-13-184 ~]$ ./kuberlogic-installer-linux-amd64 install all -c kuberlogic-installer.yaml
INFO[2021-10-15 15:55:40] version 1.0.1, build time: 11-10-21T13:37:50+0000, sha1ver: 40471e1c406fca3b0cbcdee2307a48c22d3b785c 
INFO[2021-10-15 15:55:40] Reading config from kuberlogic-installer.yaml 
DEBU[2021-10-15 15:55:40] Using default value for kubeconfigPath: /home/cloudshell-user/.kube/config 
DEBU[2021-10-15 15:55:40] Config is &{DebugLogs:0xc0007ec780 KubeconfigPath:0x366f140 Namespace:0xc0001acc90 Endpoints:{API:kl.staging.gexcp.com UI:kl.staging.gexcp.com MonitoringConsole:mckl.staging.gexcp.com} Registry:{Server: Username: Password:} Auth:{AdminPassword: DemoUserPassword:<nil>}} 
DEBU[2021-10-15 15:55:40] initializing clientset with kubeconfig /home/cloudshell-user/.kube/config 
DEBU[2021-10-15 15:55:40] Initialized kuberlogic installer: &{Log:0xc0003835e0 ClientSet:0xc0006f4160 HelmActionConfig:0xc00007f700 ReleaseNamespace:kuberlogic Registry:{Server: Username: Password:} Endpoints:{API:kl.staging.gexcp.com UI:kl.staging.gexcp.com MonitoringConsole:mckl.staging.gexcp.com} Auth:{AdminPassword: DemoUserPassword:}} 
DEBU[2021-10-15 15:55:40] entering install phase with args: [all]      
INFO[2021-10-15 15:55:40] Checking Kubernetes cluster version          
ERRO[2021-10-15 15:55:41] Kubernetes version v1.20.7-eks-d88609 found  
FATA[2021-10-15 15:55:41] Failure: pre-install checks are failed: error checking Kubernetes version: cluster version incompatible 

Installation problems

When running kuberlogic install i get the following error:

Waiting for Kuberlogic to be ready...
error: timed out waiting for the condition on deployments/kls-controller-manager

I am running minikube. This is a fresh environment with plenty of resources.

Tls installation cert/key flags failure on a first run

If you specify path to tls cert/key in kuberlogic install command - it will fail, because kuberlogic trying to cache certs in ~/.config/kuberlogic/cache/config/certificates/ directory, which doesn't exists.
I did installation step-by-step from getting-started guide

For example:

➜  kuberlogic install --non-interactive --tls_crt ca.pem --tls_key ca-key.pem --docker_compose docker-compose.yml                                          
Preparing KuberLogic configs...Error: failed to cache tls.crt: open /home/username/.config/kuberlogic/cache/config/certificates/tls.crt: no such file or directory       
➜  ls -l ~/.config/kuberlogic/cache/config/                                                                                                      
total 0                                                                                                                                                               
drwxr-xr-x 1 username username 80 Sep  1 12:36 manager                                                                                                                      

First look on this project

Thank you for developing this great tools!
I see potentials for kuberlogic to manage saas application and it could be a game changer.
After some trial, I have few questions on it

  • I can apply kuberlogic install command to install kuberlogic in my cluster properly, but it will be even better if there is a way to install kuberlogic declaratively, like via kustomize. One way I think about is to add some detailed documentation on the usage of make deploy or kustomize build config/default | kubectl apply -f -.
  • 2 LoadBalancer services are created after installation: api-server and chargebee-integration. It would be some concern to expose 2 more LoadBalancer. I would prefer to expose there under ingress
  • May I opt out chargebee from the default installation? It will be even better if there is a thing like billing provider interface(via a new CRD? idk), so that we can implement our own billing provider
  • For pod workloads, I see hostaliases was set to 127.0.0.1, so that containers can call other containers with localhost. But in my experience, the docker-compose workload will call other containers by service names under same compose network. I feel a little bit weird when I first time use it.
  • About node selector, it will be great if I can add node affinity/selector on app creation, so that I can choose which node to provision specific apps
  • For application pause, application would become pending if I set paused: true in kuberlogicservice.spec, but I can't find equivalent operation in restapi or cli. May I know if it is a proper way to stop a running application?

This project looks really great! Although I am not a expert on golang or k8s operator, I will be glad if I am able to make more contributions on it!

Exactly what I've been looking for!

Thanks for this project. I have a single tenant app that needs to be Kuberlogic-ified. I tried to follow what Mattermost did to saasify their single-tenant app and it was quite complicated.

The app is: https://www.getlago.com/ Actually, it's billing app like Chargebee and Stripe billing. I've talked to them about making this Saas and they're ok with it as long as I share the code I use to build it. We're all good. I also have access to SaasRocks in case that's required for any front-end stuff. My Saas will be called: billstreams.com Cheers, Dave

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.