Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

How tutor will support deploy openedx on Cloud Service? #206

Closed
WeJie opened this issue Apr 26, 2019 · 4 comments

Comments

Projects
None yet
2 participants
@WeJie
Copy link
Contributor

commented Apr 26, 2019

I have been working on deploy openedx on Aliyun Kubernetes Service by using tutor this week. Though as a novice with Kubernetes, I and my colleague make it work eventually. Thanks for your great job @regisb ! But there still some question remained, and I am really appreciated for some suggestions.

  1. What is the appropriate way to let tutor support deploy openedx on the Cloud Service?
    I have added a new command line tutor aliyun just like tutor k8s. The main difference between them is tutor aliyun use different tempaltes(volumes.yml to be more specific). So I am not sure, should I keep it like that for now or put it as a subcommand of tutor k8s, liketutor k8s aliyun, as the code of these two are almost the same.

  2. Do you have some idea to make tutor k8s support deploy different open edx instance with different namespace?
    I have tried it by adding NAMESPACE to config.yml and {{ NAMESPACE }} to namespace.yml template. what do you think?

@regisb

This comment has been minimized.

Copy link
Owner

commented Apr 27, 2019

Hi @WeJie! This issue is related to #126. To answer your question, I need to detail a little what are my plans for k8s integration with Tutor.

One of the goals of the k8s command is to make it compatible with all cloud providers: Aliyun, AWS, GCP, IBM, etc. From my understanding, the only major difference is how these providers handle volumes. So I would like to avoid having a separate tutor aliyun/aws/gcp/ibm command for each provider; instead, the type and configuration of volumes will be configurable parameters. I plan on switching from a pure kubectl approach to helm-based commands (http://helm.sh/). Provider-specifiic properties will be defined by Helm configuration values. Every platform will be heavily configurable. One of the consequences is that the k8s install is probably not going to be a 1-click install, for most people. Kubernetes deployment is for advanced platforms, so users don't necessarily expect to have a working platform in just one click, and they are probably ready to run a few (simple) commands to configure the platform.

As for namespaces: I initially relied on namespaces to separate the Open edX platform from the rest of the k8s cluster. But when I made that decision, I was very much unaware of what the best practices are for k8s deployment. I recently learned that having multiple namespaces is not necessarily a good idea: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/#when-to-use-multiple-namespaces Instead, we should rely on good object labels: https://kubernetes.io/docs/concepts/overview/working-with-objects/common-labels/.
So in the future tutor k8s implementation (which I'm currently working on), the namespace will be configurable, too, but by default all platforms will probably run in the same namespace.

@regisb

This comment has been minimized.

Copy link
Owner

commented Apr 27, 2019

Since this is not really an issue, do you mind closing this and moving the conversation to https://discuss.overhang.io/?

@WeJie

This comment has been minimized.

Copy link
Contributor Author

commented Apr 27, 2019

Thank you very much for the reply. It's really a great help. And I am looking forward to see your great job of edX k8s deployment on different cloud provider.

@WeJie

This comment has been minimized.

Copy link
Contributor Author

commented Apr 27, 2019

This conversation have moved to overhang, so close this issue now.

@WeJie WeJie closed this Apr 27, 2019

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.