-
Notifications
You must be signed in to change notification settings - Fork 5
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
Updates to the application description file format #1
Conversation
An alternative approach for the sources was suggested to group the sources by "helm" and "docker". sources:
helm:
- name: digitron-orchestrator
type: helm.v3
properties:
repository: oci://northstarida.azurecr.io/charts/northstarida-digitron-orchestrator
revision: 1.0.9
wait: true
- name: database-services
type: helm.v3
properties:
repository: oci://quay.io/charts/realtime-database-services
revision: 2.3.7
wait: true
docker:
- name: digitron-orchestrator-docker
type: docker-compose
properties:
packageLocation: https://northsitarida.com/digitron/docker/digitron-orchestrator.tar.gz
keyLocation: https://northsitarida.com/digitron/docker/public-key.asc |
87016ac
to
99f76ee
Compare
@phil-abb, would you mind updating the commits to include a |
3480ff3
to
45c36e1
Compare
@stormc I enabled gpg signing - I think it's right but please let me know if it's not done correctly. |
6eed3ad
to
a748f80
Compare
Small change proposal to the "sources" section: Currently, helm and docker have "properties" key:
As the content under "properties" is specific for helm and docker, I suggest to remove the "properties" key and put the contents directly under the respective parent elements. |
From a developer's perspective having it split out like this makes more sense because the "name", "type" and "properties" are common so you can use a common model for that part. It also provides a bit more organization/clarity in my mind. What do others think? |
As you specified it: "Properties for sources using Helm" and "Properties for sources using docker-compose", developers will anyways have to define two classes to model the properties. Hence you might as well include those contents in the upper section... |
Here is an example of how you can serialize/deserialize the sources with C# without having to create special objects for docker-compose and yaml.
example-input.yaml
|
We agreed to change "kubernetes" to "cluster" and "moby" to "stand-alone" @arne-broering I'll make these updates on my branch. |
@Haishi2016 I've also been discussing some changes to this with @arne-broering. I've started with some initial changes in this PR. The full proposal is here since the PR is for only the first set of changes. Maybe we can sync up on these items because I think we have similar thoughts on a lot of these based on your proposal. |
It's unclear to me the relationship between properties and configurations. It seems a configuration refers to a property. If they are linked, what's the point of separating them out? I think "properties" already represent something that are "configurable"? |
I don't feel minimumResourceRequirements makes sense at this level. Resource requirements are mostly associated at pod level on K8s, and when user declares their Helm chart they can express resource requirements in pod specs. It's hard/impossible to reinforce this minimumResourceRequirements at application definition level as an app may contain multiple charts and each chart may contain multiple pods. I think in general we should define "just enough" for interoperability goals instead of trying to surface too much details. |
The proposed changes to the properties/parameters section aren't part of this PR. I responded on the other issue here |
A couple of other comments:
|
The proposed changes to the minimumResourceRequirements section aren't part of this PR. We talked about this on Wednesday and decided to defer this section a bit and try to align it more closely to what we have in the device description document. We can discuss it more when we get back to it. The idea for this section is to make it easier for the WOS to provide details about the application's minimum requirements in the application catalog (or marketplace when we get to that point). I think it makes sense for the WOS to be able to pair this information up with information in the device description document and observability data to be able to help a customer determine which device the application would be capable of running on if the WOS vendor chooses to implement the functionality. As far as I'm aware it is one of the Margo requirements to make this possible if the WOS vendor chooses to do it (I could be wrong on this though). I don't like the idea of forcing the WOS vendor to interrogate YAML files, docker-compose files, and whatever else comes next to try to deduce this information. It will be very difficult, if not impossible unless we are very prescriptive about how this information is defined in those files. For example, I can think of three different ways this information could be defined in a helm chart. 1. The helm chart defines deployments or pod resources directly and specifies the resource requirements directly on those. 2. The helm chart uses templates and defines these resource requirements somewhere in one of the values.yaml files. 3. The application uses CRDs to create the deployment or pod and it uses its own way of defining these resource requirements that the CRD uses. |
system-design/app-interoperability/application-package-definition.md
Outdated
Show resolved
Hide resolved
I'm ok with this. @arne-broering, @ajcraig what do you think? |
Good point. We should standardize this across our entire specification. @Haishi2016 @arne-broering @ajcraig Do any of you have recommendations/preferences for what we should use? |
system-design/app-interoperability/application-package-definition.md
Outdated
Show resolved
Hide resolved
I thought we were already using camelCase convention, kind of aligning with kubernetes. |
I think both your points (@phil-abb and @Haishi2016) are valid. What about bringing the mimimumResourceRequirements under each "component" (aka "source")? So, specifying these required resources per referenced Helm chart of docker compose? |
@Haishi2016, @arne-broering, @ajcraig - I moved these discussions to this issue since this PR isn't adding the resource requirements section. |
Updates to use "components" instead. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@phil-abb we should shortly discuss the identified naming inconsistencies as pointed out in my comments.
system-design/app-interoperability/application-package-definition.md
Outdated
Show resolved
Hide resolved
system-design/app-interoperability/application-package-definition.md
Outdated
Show resolved
Hide resolved
system-design/app-interoperability/application-package-definition.md
Outdated
Show resolved
Hide resolved
system-design/app-interoperability/application-package-definition.md
Outdated
Show resolved
Hide resolved
system-design/app-interoperability/application-package-definition.md
Outdated
Show resolved
Hide resolved
system-design/app-interoperability/application-package-definition.md
Outdated
Show resolved
Hide resolved
system-design/app-interoperability/application-package-definition.md
Outdated
Show resolved
Hide resolved
Signed-off-by: Philip Presson <philip.presson@us.abb.com>
…he platform name based on discussion. Signed-off-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Philip Presson <philip.presson@us.abb.com>
…e PR Signed-off-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Philip Presson <philip.presson@us.abb.com>
Signed-off-by: Philip Presson <philip.presson@us.abb.com>
f5fa489
to
b5b72b9
Compare
sources
with atype
instead of having specifichelm-chart
anddocker-compose
sectionswait
property, iftrue
, instructs the device to wait for that helm chart to be installed before continuing to the next chartfalse
This PR is for the first set of the proposed changes. You can see the full proposal here
UPDATE: The proposed changes for how parameters/properties are handled is now under this issue