centaurusinfra / fornax-serverless Goto Github PK
View Code? Open in Web Editor NEWLicense: Apache License 2.0
License: Apache License 2.0
subtask of #8
pod actor is unit which really drive a pod implementation inside node agent, each pod has one actor,
it's a statemachine which make sure a pod is created
1/ cgroup resource
2/ pull config map and mount volumes
3/ create pod fs
3/ translate pod spec into container spec, create podsandbox and create container
make sure pod resource is cleaned when pod is terminated.
including node resources and pods
subtask of #8
use stored pod/session and query containerd using cri
if pod is gone in containerd, pod is terminated, session on these pods are also terminated
if pod is still alive do container and session liveness probe
subtask of #8
subtask of #8
skeletal code as base handler for various messages
when a pod is created, pod actor will start liveness and readiness probe until pod enter ready state.
pod is standby when liveness succeeded
pid is ready when readiness succeededd
a client to setup connection, implement get message stream and put message methods
subtask of fornax core #8
subtask of fornax core
restful service to create tenant
produce source code to define significant data types:
package of fornax core etcd client, able to Create/Get/Update/Delete/List/Watch following data types:
typical use scenario
client := foo.NewEtcdClient(...)
client.CreateNamespace(namespace)
client.CreateApplication(app)
...
apps := client.ListApplications(namespace) // of specified namespace
chApps := client.Watch(nil) // of all namespaces
app<-chApps
subtask of #8
restful service of start/end app session
get/create/active/terminate pods and containers
subtask of #8
based on app scaling policy, to scale instances
Enable Quark runtime executable in GCP VM.
subtask of fornax core #8
restful service to CRUD applications
subtask of #8
implement registration process
create/modify/delete pod/session object in node agent, save state
also create actors to work on them.
there are two issues stopping automate protobuf generate in build.
1/ generating go types and grpc stub requires protoc and these two go protoc plugins.
protoc has to be installed separately using ' apt install protobuf-compiler' which I have not automate it in Makefile.
2/ there is a another argoproj/argo-rollouts#1091 (comment), actually need to modify a few k8s files code to set full package name to work around it.
tried to use 'M' go_opt when execute protoc, but not working, has to manually modify a few generated a few k8s protobuf files
to use full package name, files are listed in Makefile.
--go_opt=Mk8s.io/api/core/v1/generated.proto=k8s.io/api/core/v1 \
--go_opt=Mk8s.io/apimachinery/pkg/api/resource/generated.proto=k8s.io/apimachinery/pkg/api/resource \
--go_opt=Mk8s.io/apimachinery/pkg/apis/meta/v1/generated.proto=k8s.io/apimachinery/pkg/apis/meta/v1 \
--go_opt=Mk8s.io/apimachinery/pkg/runtime/generated.proto=k8s.io/apimachinery/pkg/runtime \
--go_opt=Mk8s.io/apimachinery/pkg/runtime/schema/generated.proto=k8s.io/apimachinery/pkg/runtime/schema \
--go_opt=Mk8s.io/apimachinery/pkg/util/intstr/generated.proto=k8s.io/apimachinery/pkg/util/intstr \
have main func to run restful services and starts grpc server interacting with node agents
node agent data including
pod, pod spec, pod status
session, session spec, session status
these complex data types should be marshalled as json or protobuf and unmarshall from it.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.