Skip to content

Commit

Permalink
Proposal: build iot system configuration isolation on nodepool(openyu…
Browse files Browse the repository at this point in the history
  • Loading branch information
WoShiZhangmingyu authored Aug 27, 2024
1 parent 6a88490 commit fab05b6
Showing 1 changed file with 6 additions and 4 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ This proposal aims to provide multiple PlatformAdmin deployments within the same

## Motivation

Suppose now you need to expand several nodepools with the same configuration, the current plan is to create several new Platformadmins with the same configuration.Obviously, Obviously, the operability and reusability of this solution is poor.
Suppose now you need to expand several nodepools with the same configuration, the current plan is to create several new Platformadmins with the same configuration.Obviously, the operability and reusability of this solution is poor.
One potential enhancement involves modifying the mapping between Platformadmin and nodepools to a one-to-many relationship, that is, changing the poolName in PlatformadminSpec to pools to correspond to multiple nodepools.
In this proposal, users can deploy multiple node pools with the same configuration by creating a single PlatformAdmin.

Expand All @@ -46,6 +46,8 @@ In this proposal, users can deploy multiple node pools with the same configurati

### Implementation Details

PlatformAdmin has evolved from the previous version of the EdgeX CRD and serves as an abstraction for the edge device management platform. Users simply input the platform settings, the name of the NodePool to be deployed, the version to be deployed, and so on, to deploy a complete edge device management platform within the node pool.

The platformadmin-controller, integrated within yurt-manager, is responsible for parsing the PlatformAdmin CR into the corresponding configmap, service, and yurtappset, thereby realizing the deployment of the edge device management platform.

Users have the capability to customize a PlatformAdminFramework that is initialized with a standard configuration, followed by the creation of a PlatformAdmin. After this step, the platformadmin-controller will automatically initiate the reconciliation process to handle services and YurtAppSets.
Expand Down Expand Up @@ -94,14 +96,14 @@ spec:
EOF
~~~
#### Modify PlatformAdminSpec
Also change PoolName to pools:
Also change PoolName to NodePools:
~~~
type PlatformAdminSpec struct {
Version string `json:"version,omitempty"`
ImageRegistry string `json:"imageRegistry,omitempty"`
Pools []string `json:"pools,omitempty"`
NodePools []string `json:"nodepools,omitempty"`
ServiceType corev1.ServiceType `json:"serviceType,omitempty"`
// +optional
Expand All @@ -116,7 +118,7 @@ type PlatformAdminSpec struct {
Enhance the Reconcile logic of the platformadminController to accommodate multiple nodepools, thereby enabling more refined resource management and scheduling.
for example:
~~~
for _, nodePool := range platformAdmin.Spec.Pools {
for _, nodePool := range platformAdmin.Spec.NodePools {
pool := appsv1alpha1.Pool{
Name: nodePool,
Replicas: pointer.Int32(1),
Expand Down

0 comments on commit fab05b6

Please sign in to comment.