Skip to content

Commit 942665b

Browse files
committed
feat: Added support for support_parallel_deploys and requires_product_versions on carvel tiles
ai-assisted=yes JIRA-ID: TNZ-123572 Authored-by: Ramkumar Vengadakrishnan <ramkumar.vengadakrishnan@broadcom.com>
1 parent b65d2d5 commit 942665b

5 files changed

Lines changed: 52 additions & 30 deletions

File tree

internal/carvel/baker.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -659,6 +659,8 @@ func (b *baker) generateBaseYaml() error {
659659
meta.Rank = b.metadata.Rank
660660
meta.Serial = b.metadata.Serial
661661
meta.CompatibleKubernetesDistributions = b.metadata.CompatibleKubernetesDistributions
662+
meta.SupportsParallelDeploys = b.metadata.SupportsParallelDeploys
663+
meta.RequiresProductVersions = b.metadata.RequiresProductVersions
662664
meta.FormTypes = b.metadata.FormTypes
663665
meta.PropertyBlueprints = b.metadata.PropertyBlueprints
664666
meta.Variables = b.metadata.Variables

internal/carvel/baker_test.go

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -413,6 +413,11 @@ consumes:
413413
Expect(outMeta.CompatibleKubernetesDistributions[0].Name).To(Equal("k0s"))
414414
Expect(outMeta.CompatibleKubernetesDistributions[0].Version).To(Equal(">0.0.0"))
415415
Expect(outMeta.RequiresKubernetes).To(BeTrue())
416+
Expect(outMeta.SupportsParallelDeploys).To(BeTrue())
417+
Expect(outMeta.RequiresProductVersions).To(HaveLen(1))
418+
Expect(outMeta.RequiresProductVersions[0].Name).To(Equal("some-other-product"))
419+
Expect(outMeta.RequiresProductVersions[0].Version).To(Equal(">=1.0.0"))
420+
Expect(outMeta.RequiresProductVersions[0].Optional).To(BeTrue())
416421
})
417422
It("creates empty instance_group and jobs directories", func() {
418423
Expect(filepath.Join(outputPath, "instance_groups")).To(BeADirectory())

internal/carvel/models/metadata.go

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,19 @@ package models
33
import "github.com/pivotal-cf/kiln/pkg/proofing"
44

55
type Metadata struct {
6-
Name string `yaml:"name"`
7-
ProductVersion string `yaml:"product_version"`
8-
IconImage string `yaml:"icon_image"`
9-
Label string `yaml:"label"`
10-
MetadataVersion string `yaml:"metadata_version"`
11-
MinimumVersionForUpgrade string `yaml:"minimum_version_for_upgrade"`
12-
Rank int `yaml:"rank"`
13-
Serial bool `yaml:"serial"`
14-
PropertyBlueprints []string `yaml:"property_blueprints"`
15-
FormTypes []string `yaml:"form_types"`
16-
Variables []proofing.Variable `yaml:"variables"`
17-
PackageInstalls []string `yaml:"package_installs"`
18-
CompatibleKubernetesDistributions []ProductVersion `yaml:"compatible_kubernetes_distributions,omitempty"`
6+
Name string `yaml:"name"`
7+
ProductVersion string `yaml:"product_version"`
8+
IconImage string `yaml:"icon_image"`
9+
Label string `yaml:"label"`
10+
MetadataVersion string `yaml:"metadata_version"`
11+
MinimumVersionForUpgrade string `yaml:"minimum_version_for_upgrade"`
12+
Rank int `yaml:"rank"`
13+
Serial bool `yaml:"serial"`
14+
PropertyBlueprints []string `yaml:"property_blueprints"`
15+
FormTypes []string `yaml:"form_types"`
16+
Variables []proofing.Variable `yaml:"variables"`
17+
PackageInstalls []string `yaml:"package_installs"`
18+
CompatibleKubernetesDistributions []ProductVersion `yaml:"compatible_kubernetes_distributions,omitempty"`
19+
SupportsParallelDeploys bool `yaml:"supports_parallel_deploys,omitempty"`
20+
RequiresProductVersions []RequiredProductVersion `yaml:"requires_product_versions,omitempty"`
1921
}

internal/carvel/models/metadata_out.go

Lines changed: 25 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -3,23 +3,25 @@ package models
33
import "github.com/pivotal-cf/kiln/pkg/proofing"
44

55
type MetadataOut struct {
6-
Name string `yaml:"name"`
7-
ProductVersion string `yaml:"product_version"`
8-
IconImage string `yaml:"icon_image"`
9-
Label string `yaml:"label"`
10-
MetadataVersion string `yaml:"metadata_version"`
11-
MinimumVersionForUpgrade string `yaml:"minimum_version_for_upgrade"`
12-
Rank int `yaml:"rank"`
13-
Serial bool `yaml:"serial"`
14-
PropertyBlueprints []string `yaml:"property_blueprints"`
15-
FormTypes []string `yaml:"form_types"`
16-
Variables []proofing.Variable `yaml:"variables"`
17-
InstanceGroups []string `yaml:"job_types"`
18-
StemcellCriteria StemcellCriteria `yaml:"stemcell_criteria"`
19-
Releases []string `yaml:"releases"`
20-
RuntimeConfigs []string `yaml:"runtime_configs"`
21-
RequiresKubernetes bool `yaml:"requires_kubernetes"`
22-
CompatibleKubernetesDistributions []ProductVersion `yaml:"compatible_kubernetes_distributions"`
6+
Name string `yaml:"name"`
7+
ProductVersion string `yaml:"product_version"`
8+
IconImage string `yaml:"icon_image"`
9+
Label string `yaml:"label"`
10+
MetadataVersion string `yaml:"metadata_version"`
11+
MinimumVersionForUpgrade string `yaml:"minimum_version_for_upgrade"`
12+
Rank int `yaml:"rank"`
13+
Serial bool `yaml:"serial"`
14+
PropertyBlueprints []string `yaml:"property_blueprints"`
15+
FormTypes []string `yaml:"form_types"`
16+
Variables []proofing.Variable `yaml:"variables"`
17+
InstanceGroups []string `yaml:"job_types"`
18+
StemcellCriteria StemcellCriteria `yaml:"stemcell_criteria"`
19+
Releases []string `yaml:"releases"`
20+
RuntimeConfigs []string `yaml:"runtime_configs"`
21+
RequiresKubernetes bool `yaml:"requires_kubernetes"`
22+
CompatibleKubernetesDistributions []ProductVersion `yaml:"compatible_kubernetes_distributions"`
23+
SupportsParallelDeploys bool `yaml:"supports_parallel_deploys,omitempty"`
24+
RequiresProductVersions []RequiredProductVersion `yaml:"requires_product_versions,omitempty"`
2325
}
2426

2527
type StemcellCriteria struct {
@@ -31,3 +33,9 @@ type ProductVersion struct {
3133
Name string `yaml:"name"`
3234
Version string `yaml:"version"`
3335
}
36+
37+
type RequiredProductVersion struct {
38+
Name string `yaml:"name"`
39+
Version string `yaml:"version"`
40+
Optional bool `yaml:"optional,omitempty"`
41+
}

internal/carvel/testdata/sample-tile/base.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,3 +23,8 @@ package_installs:
2323
compatible_kubernetes_distributions:
2424
- name: k0s
2525
version: '>0.0.0'
26+
supports_parallel_deploys: true
27+
requires_product_versions:
28+
- name: some-other-product
29+
version: '>=1.0.0'
30+
optional: true

0 commit comments

Comments
 (0)