kubevela / velaux

The KubeVela User Experience (UX) Platform
Apache License 2.0
138 stars 111 forks source link

Support environment-based application deployment #85

Closed hongchaodeng closed 3 years ago

hongchaodeng commented 3 years ago

As part of the UX improvement roadmap, we got some user feedback to support the following scenarios:

To support the above scenarios, we will add the following concepts:

With the above concepts, the user story goes as:

Applicaton deployment workflow:

Env -> Controller -> (Secrets + Definitions)
AppTemplate -> velacp -> Application -> Controller

Notes:

wonderflow commented 3 years ago

Good design!

And a env could have more than one clusters, maybe we can use more extensible way like:

clusters:
  - name: prod-cluster # the cluster to deploy to
Ghostbaby commented 3 years ago

Maybe we can add a new resource like ApplicationBasic?

hongchaodeng commented 3 years ago

@Ghostbaby

Not sure what you meant. Could you clarify?

Ghostbaby commented 3 years ago
base: # the base template
  components:
    - name: backend
      settings:
        cmd:
          - /bin/myservice
      traits:
        - name: logging
          properties:
            rotate: 1d

@hongchaodeng In the up YAML file, some component configurations can be very complicated, maybe we should add a resource to define that basic component, this resource name could like ApplicationBasic.

hongchaodeng commented 3 years ago

@Ghostbaby I see. The above AppTemplate object is not a CR though. It will be taken as input and shown in UI. Your suggestion is still very helpful that we could probably separate the base and the patches in two Cards.