Artifactory version: 4.15.0 or Latest
Summary (optional info, but can help anyone understand my case better):
- Build+Test pipeline generates artifacts in the form of jar/war/zip/tar/rpms etc.
- Once these artifacts are generated and stored in Artifactory with their usual build/test related properties(i.e. build time, build url, build tool used, test pass status, test coverage percentage etc. associated with a given artifact), I want to cherry pick these artifacts to create multiple sub-system level releases as each sub-system has different artifacts from different pipelines (services/apps/projects).
- Sub-system level releases just tells, go pick a given jar/war/zip/rpm etc for a given version of a project (making sure some testing is done, some artifact properties pass/match a defined selection criteria) and basically the end result of sub-system release is a deployment-manifest file at that sub-system level.
- Some sub-system releases contain common artifacts (shareable coming from various projects) and some contain artifacts which are created specific for a target deployment environment (of a sub-system or higher level system release).
- Deployment and Testing is done at each sub-system level and once they pass some set of tests, performance benchmarks, etc, all deployment+testing related properties at a given deploy+test environment level (for that sub-system release) are applied to all the artifacts which were included i.e. which made that sub-system release.
Now, a System level release contains many sub-system level releases i.e. they refer many sub-system level releases or sub-system level manifest files (JSON format for any common/end system specific sub-system). I know, fun times.
Finally, deployment and testing is performed at System level and all artifacts from any sub-system release level artifacts (either common / environment specific) and any other "global artifacts" (which together makes a complete System level release) are tagged with these properties.
The idea behind applying/having properties at all (service/app level - build+test, sub-system and system release level) applied to "the project level artifacts (jar/war/rpms/zip/tar/etc)" in any pipeline/automation-deploy/test step, is that: A user can easily query Artifactory anytime by passing a set of properties to get the artifacts (rpms/zip/tar/etc..) for any service/app/sub-system/system level, which were used for deploying/testing it.
--
I working on a solution for releasing various pipelines dependent/based on artifact properties (Artifactory) and wondering if there are any recommendations or limitations on applying "N no. of properties" to an artifact or types of values used?
Are there any performance impacts if the number of properties attached to an artifact in Artifactory crosses a certain number?
OR
Type of property values (key=value pairs) that I'm planning to use are in the form of:
prop1="value1" or numberValue
prop2=[value1, value2]
prop3={..JSON blob ..}
Just trying to see if anyone have experienced any issues with such limitations if any. I checked Artifactory website and other blogs, but couldn't find anything about the limitations on number of properties or type of values associated with a property and how they can impact Artifactory performance while querying or using Artifactory properties.