-
-
Notifications
You must be signed in to change notification settings - Fork 10.2k
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
[Proposal] apollo-operator design details #4708
Comments
Some doubts:
|
@kezhenxu94 apollo portal can manage multiple apollo env from apollo design. And also from design, every apollo env is composed of config and admin service.
|
Is it possible to customize the configuration in the CR? e.g.
|
you meaning customize metaserver address in
igress we missed, we will make up |
Sounds good to me :-) |
This issue has been automatically marked as stale because it has not had activity in the last 30 days. It will be closed in 7 days unless it is tagged "help wanted" or other activity occurs. Thank you for your contributions. |
I am very interested in this ospp project. If I want to learn about this ospp project, is it mainly based on this issue? |
very welcome and yes, we described the details of the operator design and the proposal. |
Okay, I am proficient in Docker, K8S CRD, and Helm3, but I am not very proficient in Apollo and have only used it. Let me first learn about Apollo's architecture |
Hi everyone here! I'm also interested in the program and want to work on this project under OSPP2023. I have experience with Golang, Docker, Kubernetes, etc. I will delve into Apollo and related materials in a few days. How should we get in touch? |
If you registered for OSPP2023 and apply this task on 4/29, we will start the right process to guide you to finish it. @iyear @CSWYF3634076 FYI |
What can we do about the ingress part? Two possible structs:
ingress:
annotations:
labels:
spec:
...
ingress:
enabled:
metadata: # or inline
annotations:
labels:
ingressClassName:
tls:
- hosts: []
secretName:
hosts:
- host:
path: [] I prefer the second one and it is also consistent with the helm chart. WDYT? |
This proposal follows #4696
Summary
As Cloud Native and Container Orchestration are popular, service lifecycle management has different ways under Kubernetes, it makes service deployment, upgrade and uninstall more easier than before. So for the Apollo Configuration Management System ecosystem, it is the time to change and follow up.
Motivation
So many users manage Microservices and related systems in Kubernetes, include Apollo, and the traditional system lifecycle management way is complicate in Cloud Native world, so we need to find out a better way to do lifecycle management in Kubernetes.
Proposal
An Operator extends Kubernetes to automate the management of the entire life cycle of a particular application. Operators serve as a packaging mechanism for distributing applications on Kubernetes, and they monitor, maintain, recover, and upgrade the software they deploy.
Production Design
Backend Operator
ApolloEnvironment CRD
This CRD response for LCM of Apollo AdminService and Apollo ConfigService, It also has spec to declare which database it uses, and which ApolloPortal CR it uses.
So, when the user apply this CR, the operator will deploy a ConfigService/MetaService and Adminservice and bind them together as a whole.
Besides, operator also provides embedded mysql.
Of course, we also need to detect whether the user is the first time installing or upgrading the version. As Apollo are stateless services, it mainly involves database changes, so, We need to consider the handling of different versions of SQL statements. we can create a job to modify database schemes or tables.
ApolloPortal CRD
This CRD response for LCM of Apollo Portal and the portal can be used for ApolloEnv. It also has spec to declare which database it uses. And it allows user use one ApolloPortal refs multiple ApolloEnvironment CR instances.
Apollo CRD
This CRD response for LCM a Apollo all in one demo, includes Portal, AdminService, ConfigService and database server, recommending only demonstration usage. So, we can also name it All-In-One(configservice + admin + portal + embedded mysql db) for demo:
Technology Selection
more details of this design docs can refs: https://docs.google.com/document/d/1p9OJMpLiZvkeFvTBE8GaFjyPD3RhZf1vxNbr6d_gVqo/edit#
@apolloconfig/pmc Looking forward to your comments, and if there are no objections, I will proceed to the next step of creating the github.com/apolloconfig/apollo-operator repo as our more explicit action items.
The text was updated successfully, but these errors were encountered: