profile
viewpoint
Carolyn Van Slyck carolynvs @Azure Chicago, IL carolynvanslyck.com Professional Yak Shaver

carolynvs/az-cli 5

unofficial helper binary for uploading to azure storage

carolynvs/assign-myself 1

GitHub app that lets contributors assign themselves to issues

carolynvs/bamboo-gitversion 1

GitVersion for Bamboo

carolynvs/2016-talks 0

Slides and Links to slides for 2016 talks

carolynvs/2016.writespeakcode.com 0

2016 Conference Website

carolynvs/2017-talks 0

Slides and links for 2017 talks

carolynvs/2019-talks 0

Slides and links for 2019 talks

carolynvs/aad-pod-identity 0

Assign Azure Active Directory Identities to kubernetes applications.

carolynvs/acs-engine 0

Azure Container Service Engine - provision and deploy container orchestrators on Azure: Kubernetes, DC/OS, and Docker Swarm.

pull request commentgetporter/porter

Split up PORTER_HOME

OK! Once #1345 is merged tomorrow, you can rebase/merge the main branch to get the changes. I have also made 3 small changes that got your pull request to pass the integration tests. Copy those changes into your branch and we should be all set.

sestegra

comment created time in 4 hours

push eventgetporter/porter

Vaughn Dice

commit sha cc537a7e58ca18dd5326e1789689362d9aede38c

feat(*): manifest versioning updates (#1343) * feat(*): manifest versioning updates Signed-off-by: Vaughn Dice <vadice@microsoft.com> * set bundle tag on manifest when provided on publish Signed-off-by: Vaughn Dice <vadice@microsoft.com> * updates around publish Signed-off-by: Vaughn Dice <vadice@microsoft.com> * updates per review feedback Signed-off-by: Vaughn Dice <vadice@microsoft.com> * remove lingering TODO Signed-off-by: Vaughn Dice <vadice@microsoft.com>

view details

push time in 4 hours

PR merged getporter/porter

Reviewers
feat(*): manifest versioning updates

What does this change

  • Updates the following fields on the Porter manifest:
    • the tag field is deprecated (if present, a warning is printed, though its value will still currently be used)
    • the registry field is added
    • the reference field is added
    • for any/all dependencies:
      • the tag field is deprecated (if present, a warning is printed, though its value will still currently be used)
      • the reference field takes its place

See https://github.com/getporter/porter/issues/1333 for further details/context.

What issue does it fix

Closes https://github.com/getporter/porter/issues/1333

Notes for the reviewer

Checklist

  • [x] Unit Tests
  • [x] Documentation
  • [x] Schema (porter.yaml)

If this is your first pull request, please add your name to the bottom of our Contributors list. Thank you for making Porter better! 🙇‍♀️

+464 -216

2 comments

94 changed files

vdice

pr closed time in 4 hours

issue closedgetporter/porter

Manifest: Use registry and repository instead of tag

Implementation for the corresponding section of https://github.com/getporter/porter/issues/1151:

Currently, the naming and versioning fields in the Porter manifest are: name, version and tag. The last one of these has heretofore been used to capture the full name of the bundle reference, e.g. myregistry/myorg/mybuns:v0.1.0.

We intend to preserve name (as the common name of the bundle) and version (as the semantic version of the bundle) but replace tag with registry (and, optionally, reference).

  • registry: this is the OCI registry and org/subdomain for the bundle, e.g. myregistry.com/myorg. Porter will then construct the full bundle reference using this and the values for name and version, e.g. myregistry.com/myorg/mybuns:v0.1.0 from the example below.

  • reference: (OPTIONAL) this can be used to specify the full bundle reference when needed. When the bundle is published this value will be used rather than the value constructed from the name, version and registry values.

name: mybuns
version: 0.1.0
registry: myregistry.com/myorg
# Optional: can use reference to specify the exact bundle reference (correlate to deprecated `tag` field)
# reference: myregistry.com/myorg/mybuns:v0.1.0

AC

  • the tag field is removed from the Porter manifest
  • the registry and reference fields are added to the Porter manifest
  • legacy manifests using the tag field continue to be supported
  • docs updated/added

closed time in 4 hours

vdice

push eventcarolynvs/porter

Carolyn Van Slyck

commit sha e7631975dd47d192e19fd24a96d4afacab0223dc

Fix PR 1329 so tests pass * export PORTER_HOME in our Makefile so that the env var is set when we install mixins, etc. * allow tests to manually set where the porter binary is located Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

push time in 4 hours

PullRequestReviewEvent

create barnchcarolynvs/porter

branch : pr1329

created branch time in 5 hours

push eventcarolynvs/porter

Carolyn Van Slyck

commit sha 658db64dd3a47ba9fdc5468b93802b0e13177d95

Do not use T.Helper I thought T.Helper() worked differently but in effect it is hiding where the errors are coming from. Removing those calls so that when the helper function fails, you can see the correct line number and file. Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

push time in 9 hours

startedosscda/kedahttp

started time in 9 hours

push eventcarolynvs/porter

Carolyn Van Slyck

commit sha cda926379efab678813213702ae9659bc8547aec

Update cached bundles Our testdata has a mock cache based on build/testdata/bundles that has gotten out-of-sync. Rebuild the bundles and update the cache keys to reflect the new version v0.1.3 that we are now using. Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

Carolyn Van Slyck

commit sha 7d01aa5aac10752a1a27c7d4f27ef74305c1adfc

Use the mock registry provider for unit tests We were accidentally hitting live registries for our unit tests when they should have been using our test cache with pre-populated data from build/testdata/bundles. Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

Carolyn Van Slyck

commit sha b312b13cba5654d98c56798167a6eea9699c87d3

Do not use T.Helper I thought T.Helper() worked differently but in effect it is hiding where the errors are coming from. Removing those calls so that when the helper function fails, you can see the correct line number and file.

view details

push time in 9 hours

pull request commentgetporter/porter

Split up PORTER_HOME

I am fixing some problems I found in Porter that I think are contributing to the test errors. I have #1345 open and am working to clear those obstacles for this PR. Just wanted you to know that I'm working on it. Once that PR is merged, yours should need just a few tweaks to pass the tests.

sestegra

comment created time in 11 hours

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 although Porter does have extra fields that are specific to making Porter bundle name: azure-wordpress description: Install Wordpress on Azure version: 0.1.0-tag: getporter/azure-wordpress+registry: getporter+reference: getporter/azure-wordpress:v0.1.0 dockerfile: dockerfile.tmpl ```  * `name`: The name of the bundle * `description`: A description of the bundle * `version`: The version of the bundle, uses [semver](https://semver.org). Should not have a 'v' prefix.-* `tag`: The tag to use when the bundle is published to a registry. The format is `REGISTRY/IMAGE`, or optionally `REGISTRY/IMAGE:TAG` -   if you do not want the default behavior of defaulting the docker image TAG portion to the version of the bundle. The invocation-   image name will be based on this value.  For example, if the bundle `tag` is `getporter/porter-hello` and the `version` is `0.1.0`,-   then the invocation image name will be `getporter/porter-hello-installer:v0.1.0`+* `registry`: The registry to use for publishing the bundle. The format is `REGISTRY/ORG`.+    Both the final bundle reference and invocation image name will be based on this value.+    For example, if the bundle name is `porter-hello`, registry is `getporter` and the version is `0.1.0`,+    the bundle reference will be `getporter/porter-hello:v0.1.0` and the invocation image name will be `getporter/porter-hello-installer:v0.1.0`+* `reference`: OPTIONAL. The full bundle reference which takes precedence over any values set for the `registry`, `name` and `version` fields.

Yeah I think mentioning that it will automatically append the version as the TAG, maybe say that we recommend not specifying the TAG part of REGISTRY_HOST/ORG/BUNDLE:TAG and let porter fill it in?

vdice

comment created time in 11 hours

PullRequestReviewEvent

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 although Porter does have extra fields that are specific to making Porter bundle name: azure-wordpress description: Install Wordpress on Azure version: 0.1.0-tag: getporter/azure-wordpress+registry: getporter+reference: getporter/azure-wordpress:v0.1.0

Excellent! How about we continue to leave the TAG off in that case, preserving the simplified example from before?

I liked how it demonstrated your defaulting magic where the version of the bundle is appended to the tag/reference. Encouraging people to not double specify the version should be a best practice that we nudge people towards.

vdice

comment created time in 11 hours

PullRequestReviewEvent

startedcncf/podtato-head

started time in 13 hours

delete branch carolynvs/podtato-head

delete branch : cnab-airgap

delete time in 13 hours

issue openedgetporter/az-mixin

Stop using fork of azure blob storage library

We are using forks of the azure blob storage library because it didn't support tags. They have now released v0.11.0 that has what we need to work with tags. We should try it out and get off the fork.

We will need to keep the existing code that waits for the tag to be set and validate this with some manual tests against Azure.

created time in 13 hours

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 mixins: name: hello description: "An example Porter configuration" version: 0.1.0-tag: getporter/porter-hello+registry: getporter+reference: getporter/hello:v0.1.0

Why are we setting both in this test file?

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

-name: wordpress+name: porter-workshop-wordpress

Sam here maybe just call it workshop-wordpress. I think the only special bundle that gets to have the porter- prefix is porter-hello.

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 func TestReadManifest_File(t *testing.T) { }  func TestSetDefault(t *testing.T) {-	t.Run("bundle docker tag set", func(t *testing.T) {+	t.Run("bundle docker tag set on reference", func(t *testing.T) { 		m := Manifest{+			Name:      "mybun", 			Version:   "1.2.3-beta.1",-			BundleTag: "getporter/mybun:v1.2.3",+			Reference: "getporter/mybun:v1.2.3", 		} 		err := m.SetDefaults() 		require.NoError(t, err) 		assert.Equal(t, "getporter/mybun:v1.2.3", m.BundleTag) 		assert.Equal(t, "getporter/mybun-installer:v1.2.3", m.Image) 	}) -	t.Run("bundle docker tag not set", func(t *testing.T) {+	t.Run("bundle docker tag not set on reference", func(t *testing.T) { 		m := Manifest{+			Name:      "mybun", 			Version:   "1.2.3-beta.1",-			BundleTag: "getporter/mybun",+			Reference: "getporter/mybun", 		} 		err := m.SetDefaults() 		require.NoError(t, err) 		assert.Equal(t, "getporter/mybun:v1.2.3-beta.1", m.BundleTag) 		assert.Equal(t, "getporter/mybun-installer:v1.2.3-beta.1", m.Image) 	}) -	t.Run("bundle tag includes registry with port", func(t *testing.T) {+	t.Run("bundle reference includes registry with port", func(t *testing.T) { 		m := Manifest{+			Name:      "mybun", 			Version:   "0.1.0",-			BundleTag: "localhost:5000/missing-invocation-image",+			Reference: "localhost:5000/missing-invocation-image", 		} 		err := m.SetDefaults() 		require.NoError(t, err) 		assert.Equal(t, "localhost:5000/missing-invocation-image:v0.1.0", m.BundleTag) 		assert.Equal(t, "localhost:5000/missing-invocation-image-installer:v0.1.0", m.Image) 	})++	t.Run("registry provided, no reference", func(t *testing.T) {+		m := Manifest{+			Name:     "mybun",+			Version:  "1.2.3-beta.1",+			Registry: "getporter",+		}+		err := m.SetDefaults()+		require.NoError(t, err)+		assert.Equal(t, "getporter/mybun:v1.2.3-beta.1", m.BundleTag)+		assert.Equal(t, "getporter/mybun-installer:v1.2.3-beta.1", m.Image)+	})++	t.Run("registry provided with org, no reference", func(t *testing.T) {+		m := Manifest{+			Name:     "mybun",+			Version:  "1.2.3-beta.1",+			Registry: "getporter/myorg",+		}+		err := m.SetDefaults()+		require.NoError(t, err)+		assert.Equal(t, "getporter/myorg/mybun:v1.2.3-beta.1", m.BundleTag)+		assert.Equal(t, "getporter/myorg/mybun-installer:v1.2.3-beta.1", m.Image)+	})++	t.Run("registry and reference provided", func(t *testing.T) {+		m := Manifest{+			Name:      "mybun",+			Version:   "1.2.3-beta.1",+			Registry:  "myregistry/myorg",+			Reference: "getporter/org/mybun:v1.2.3",+		}+		err := m.SetDefaults()+		require.NoError(t, err)+		assert.Equal(t, "getporter/org/mybun:v1.2.3", m.BundleTag)+		assert.Equal(t, "getporter/org/mybun-installer:v1.2.3", m.Image)+	})++	t.Run("tag (deprecated) and registry provided", func(t *testing.T) {

Can you add one more test case for when tag and reference is specified?

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 name: porter-gcloud-compute

maybe call this name: gcloud-compute just to match the change you have been making to remove the extra porter- prefix on our bundles?

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 func TestDependency_Validate(t *testing.T) { 		dep       manifest.Dependency 		wantError string 	}{-		{"version in tag", manifest.Dependency{Name: "mysql", Tag: "deislabs/azure-mysql:5.7"}, ""},-		{"version ranges", manifest.Dependency{Name: "mysql", Tag: "deislabs/azure-mysql", Versions: []string{"5.7.x-6"}}, ""},-		{"missing tag", manifest.Dependency{Name: "mysql", Tag: ""}, "dependency tag is required"},-		{"version double specified", manifest.Dependency{Name: "mysql", Tag: "deislabs/azure-mysql:5.7", Versions: []string{"5.7.x-6"}}, "dependency tag can only specify REGISTRY/NAME when version ranges are specified"},+		{"tag (deprecated) supplied", manifest.Dependency{Name: "mysql", Tag: "deislabs/azure-mysql:5.7"}, ""},

I think we need one more test case for when tag and reference is specified.

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 func TestDependency_Validate(t *testing.T) { 		dep       manifest.Dependency 		wantError string 	}{-		{"version in tag", manifest.Dependency{Name: "mysql", Tag: "deislabs/azure-mysql:5.7"}, ""},-		{"version ranges", manifest.Dependency{Name: "mysql", Tag: "deislabs/azure-mysql", Versions: []string{"5.7.x-6"}}, ""},-		{"missing tag", manifest.Dependency{Name: "mysql", Tag: ""}, "dependency tag is required"},-		{"version double specified", manifest.Dependency{Name: "mysql", Tag: "deislabs/azure-mysql:5.7", Versions: []string{"5.7.x-6"}}, "dependency tag can only specify REGISTRY/NAME when version ranges are specified"},+		{"tag (deprecated) supplied", manifest.Dependency{Name: "mysql", Tag: "deislabs/azure-mysql:5.7"}, ""},+		{"version in reference", manifest.Dependency{Name: "mysql", Reference: "deislabs/azure-mysql:5.7"}, ""},+		{"version ranges", manifest.Dependency{Name: "mysql", Reference: "deislabs/azure-mysql", Versions: []string{"5.7.x-6"}}, ""},+		{"missing tag", manifest.Dependency{Name: "mysql", Reference: ""}, "dependency reference is required"},
		{"missing reference", manifest.Dependency{Name: "mysql", Reference: ""}, "dependency reference is required"},
vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 func TestLoadManifest(t *testing.T) { func TestLoadManifest_DeprecatedFields(t *testing.T) { 	cxt := context.NewTestContext(t) -	cxt.AddTestFile("testdata/porter-with-image.yaml", config.Name)+	cxt.AddTestFile("testdata/porter-with-deprecated-fields.yaml", config.Name)  	m, err := LoadManifestFrom(cxt.Context, config.Name) 	require.NoError(t, err, "expected no error") 	require.NotNil(t, m, "manifest was nil")++	require.Equal(t, "getporter/porter-hello:v0.1.0", m.BundleTag, "manifest has incorrect bundle tag")

We should be asserting off of the new field Reference, not BundleTag now. After a manifest is loaded, Reference should contain the final full reference, and bundletag shouldn't have been modified.

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 func TestReadManifest_File(t *testing.T) { }  func TestSetDefault(t *testing.T) {-	t.Run("bundle docker tag set", func(t *testing.T) {+	t.Run("bundle docker tag set on reference", func(t *testing.T) { 		m := Manifest{+			Name:      "mybun", 			Version:   "1.2.3-beta.1",-			BundleTag: "getporter/mybun:v1.2.3",+			Reference: "getporter/mybun:v1.2.3", 		} 		err := m.SetDefaults() 		require.NoError(t, err) 		assert.Equal(t, "getporter/mybun:v1.2.3", m.BundleTag) 		assert.Equal(t, "getporter/mybun-installer:v1.2.3", m.Image) 	}) -	t.Run("bundle docker tag not set", func(t *testing.T) {+	t.Run("bundle docker tag not set on reference", func(t *testing.T) { 		m := Manifest{+			Name:      "mybun", 			Version:   "1.2.3-beta.1",-			BundleTag: "getporter/mybun",+			Reference: "getporter/mybun", 		} 		err := m.SetDefaults() 		require.NoError(t, err) 		assert.Equal(t, "getporter/mybun:v1.2.3-beta.1", m.BundleTag) 		assert.Equal(t, "getporter/mybun-installer:v1.2.3-beta.1", m.Image) 	}) -	t.Run("bundle tag includes registry with port", func(t *testing.T) {+	t.Run("bundle reference includes registry with port", func(t *testing.T) { 		m := Manifest{+			Name:      "mybun", 			Version:   "0.1.0",-			BundleTag: "localhost:5000/missing-invocation-image",+			Reference: "localhost:5000/missing-invocation-image", 		} 		err := m.SetDefaults() 		require.NoError(t, err) 		assert.Equal(t, "localhost:5000/missing-invocation-image:v0.1.0", m.BundleTag) 		assert.Equal(t, "localhost:5000/missing-invocation-image-installer:v0.1.0", m.Image) 	})++	t.Run("registry provided, no reference", func(t *testing.T) {+		m := Manifest{+			Name:     "mybun",+			Version:  "1.2.3-beta.1",+			Registry: "getporter",+		}+		err := m.SetDefaults()+		require.NoError(t, err)+		assert.Equal(t, "getporter/mybun:v1.2.3-beta.1", m.BundleTag)+		assert.Equal(t, "getporter/mybun-installer:v1.2.3-beta.1", m.Image)+	})++	t.Run("registry provided with org, no reference", func(t *testing.T) {+		m := Manifest{+			Name:     "mybun",+			Version:  "1.2.3-beta.1",+			Registry: "getporter/myorg",+		}+		err := m.SetDefaults()+		require.NoError(t, err)+		assert.Equal(t, "getporter/myorg/mybun:v1.2.3-beta.1", m.BundleTag)+		assert.Equal(t, "getporter/myorg/mybun-installer:v1.2.3-beta.1", m.Image)+	})++	t.Run("registry and reference provided", func(t *testing.T) {

Based on this test case, seems like when you set both registry and reference that we ignore registry. Let's warn about that during Manifest.Validate so people aren't surprised.

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 func TestReadManifest_File(t *testing.T) { }  func TestSetDefault(t *testing.T) {-	t.Run("bundle docker tag set", func(t *testing.T) {+	t.Run("bundle docker tag set on reference", func(t *testing.T) { 		m := Manifest{+			Name:      "mybun", 			Version:   "1.2.3-beta.1",-			BundleTag: "getporter/mybun:v1.2.3",+			Reference: "getporter/mybun:v1.2.3", 		} 		err := m.SetDefaults() 		require.NoError(t, err) 		assert.Equal(t, "getporter/mybun:v1.2.3", m.BundleTag) 		assert.Equal(t, "getporter/mybun-installer:v1.2.3", m.Image) 	}) -	t.Run("bundle docker tag not set", func(t *testing.T) {+	t.Run("bundle docker tag not set on reference", func(t *testing.T) { 		m := Manifest{+			Name:      "mybun", 			Version:   "1.2.3-beta.1",-			BundleTag: "getporter/mybun",+			Reference: "getporter/mybun", 		} 		err := m.SetDefaults() 		require.NoError(t, err) 		assert.Equal(t, "getporter/mybun:v1.2.3-beta.1", m.BundleTag) 		assert.Equal(t, "getporter/mybun-installer:v1.2.3-beta.1", m.Image) 	}) -	t.Run("bundle tag includes registry with port", func(t *testing.T) {+	t.Run("bundle reference includes registry with port", func(t *testing.T) { 		m := Manifest{+			Name:      "mybun", 			Version:   "0.1.0",-			BundleTag: "localhost:5000/missing-invocation-image",+			Reference: "localhost:5000/missing-invocation-image", 		} 		err := m.SetDefaults() 		require.NoError(t, err) 		assert.Equal(t, "localhost:5000/missing-invocation-image:v0.1.0", m.BundleTag) 		assert.Equal(t, "localhost:5000/missing-invocation-image-installer:v0.1.0", m.Image) 	})++	t.Run("registry provided, no reference", func(t *testing.T) {+		m := Manifest{+			Name:     "mybun",+			Version:  "1.2.3-beta.1",+			Registry: "getporter",+		}+		err := m.SetDefaults()+		require.NoError(t, err)+		assert.Equal(t, "getporter/mybun:v1.2.3-beta.1", m.BundleTag)+		assert.Equal(t, "getporter/mybun-installer:v1.2.3-beta.1", m.Image)+	})++	t.Run("registry provided with org, no reference", func(t *testing.T) {+		m := Manifest{+			Name:     "mybun",+			Version:  "1.2.3-beta.1",+			Registry: "getporter/myorg",+		}+		err := m.SetDefaults()+		require.NoError(t, err)+		assert.Equal(t, "getporter/myorg/mybun:v1.2.3-beta.1", m.BundleTag)+		assert.Equal(t, "getporter/myorg/mybun-installer:v1.2.3-beta.1", m.Image)+	})++	t.Run("registry and reference provided", func(t *testing.T) {+		m := Manifest{+			Name:      "mybun",+			Version:   "1.2.3-beta.1",+			Registry:  "myregistry/myorg",+			Reference: "getporter/org/mybun:v1.2.3",+		}+		err := m.SetDefaults()+		require.NoError(t, err)+		assert.Equal(t, "getporter/org/mybun:v1.2.3", m.BundleTag)

Again let's update Reference and have it hold the final value, and not modify BundleTag (deprecated).

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 func UnmarshalManifest(cxt *context.Context, manifestData []byte) (*Manifest, er 			fmt.Fprintln(cxt.Out, "WARNING: The invocationImage field has been deprecated and can no longer be user-specified; ignoring.") 			delete(unmappedData, key) 		}+		// Print deprecation notice for this field+		if key == "tag" {

Is it possible to do this validation in Manifest.Validate() instead of during unmarshal?

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 func UnmarshalManifest(cxt *context.Context, manifestData []byte) (*Manifest, er  // SetDefaults updates the manifest with default values where not populated func (m *Manifest) SetDefaults() error {-	return m.SetInvocationImageFromBundleTag(m.BundleTag)+	return m.SetInvocationImageAndBundleTag("") } -// SetInvocationImageFromBundleTag sets the invocation image name on the manifest-// per the provided bundle tag, also updating the manifest BundleTag value-// if it initially lacks a Docker tag-func (m *Manifest) SetInvocationImageFromBundleTag(bundleTag string) error {-	bundleRef, err := reference.ParseNormalizedNamed(bundleTag)+// SetInvocationImageAndBundleTag sets the invocation image name and the+// bundle tag on the manifest per the provided reference or via the+// registry or repository values on the manifest.+func (m *Manifest) SetInvocationImageAndBundleTag(ref string) error {+	// Set bundle tag to repo value (combination of registry and name) by default+	// Note: the bundle version will be appended as the Docker tag below+	if ref != "" {+		m.BundleTag = ref+	} else if m.Registry != "" && m.BundleTag == "" {

This if/else tree here has two concerns mixed up that makes it a bit hard to follow.

  1. Composing reference from registry and bundle name when it's not set.
  2. Figuring out if it should use tag or reference.
  3. Validating the manifest (when everything is empty).

I'm a bit unsure what would happen if both tag and reference are set which is another validation. Maybe move all the validation into Manifest.Validate, default reference to tag when reference is empty, and then have a bit of code here that just deals with default the full reference using registry and name if needed.

I think that would make this easier to maintain and deprecate tag when the time comes.

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 func UnmarshalManifest(cxt *context.Context, manifestData []byte) (*Manifest, er  // SetDefaults updates the manifest with default values where not populated func (m *Manifest) SetDefaults() error {-	return m.SetInvocationImageFromBundleTag(m.BundleTag)+	return m.SetInvocationImageAndBundleTag("") } -// SetInvocationImageFromBundleTag sets the invocation image name on the manifest-// per the provided bundle tag, also updating the manifest BundleTag value-// if it initially lacks a Docker tag-func (m *Manifest) SetInvocationImageFromBundleTag(bundleTag string) error {-	bundleRef, err := reference.ParseNormalizedNamed(bundleTag)+// SetInvocationImageAndBundleTag sets the invocation image name and the+// bundle tag on the manifest per the provided reference or via the+// registry or repository values on the manifest.+func (m *Manifest) SetInvocationImageAndBundleTag(ref string) error {

I'm concerned that this function is updating BundleTag and using that as the working variable instead of Reference, since tag is what is deprecated. Can it be switched around to work against the Reference instead and become SetInvocationImageAndReference?

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 func (d *Dependency) Validate() error { 		return errors.New("dependency name is required") 	} -	if d.Tag == "" {-		return errors.New("dependency tag is required")+	depRef := d.Reference

What should we do if both tag and reference are set? Perhaps use reference instead and just warn about tag? i.e. only assign depRef when it's empty perhaps?

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 func TestStoreManifest(t *testing.T) { 			bundle: bundle.Bundle{ 				Custom: map[string]interface{}{ 					"sh.porter": map[string]interface{}{-						"manifest": "bmFtZTogSEVMTE9fQ1VTVE9NCnZlcnNpb246IDAuMS4wCmRlc2NyaXB0aW9uOiAiQSBidW5kbGUgd2l0aCBhIGN1c3RvbSBhY3Rpb24iCnRhZzogZ2V0cG9ydGVyL3BvcnRlci1oZWxsbzp2MC4xLjAKaW52b2NhdGlvbkltYWdlOiBnZXRwb3J0ZXIvcG9ydGVyLWhlbGxvLWluc3RhbGxlcjowLjEuMAoKY3JlZGVudGlhbHM6CiAgLSBuYW1lOiBteS1maXJzdC1jcmVkCiAgICBlbnY6IE1ZX0ZJUlNUX0NSRUQKICAtIG5hbWU6IG15LXNlY29uZC1jcmVkCiAgICBkZXNjcmlwdGlvbjogIk15IHNlY29uZCBjcmVkIgogICAgcGF0aDogL3BhdGgvdG8vbXktc2Vjb25kLWNyZWQKCmltYWdlczogCiAgIHNvbWV0aGluZzoKICAgICAgZGVzY3JpcHRpb246ICJhbiBpbWFnZSIKICAgICAgaW1hZ2VUeXBlOiAiZG9ja2VyIgogICAgICByZXBvc2l0b3J5OiAiZ2V0cG9ydGVyL2JvbyIKCnBhcmFtZXRlcnM6CiAgLSBuYW1lOiBteS1maXJzdC1wYXJhbQogICAgdHlwZTogaW50ZWdlcgogICAgZGVmYXVsdDogOQogICAgZW52OiBNWV9GSVJTVF9QQVJBTQogICAgYXBwbHlUbzoKICAgICAgLSAiaW5zdGFsbCIKICAtIG5hbWU6IG15LXNlY29uZC1wYXJhbQogICAgZGVzY3JpcHRpb246ICJNeSBzZWNvbmQgcGFyYW1ldGVyIgogICAgdHlwZTogc3RyaW5nCiAgICBkZWZhdWx0OiBzcHJpbmctbXVzaWMtZGVtbwogICAgcGF0aDogL3BhdGgvdG8vbXktc2Vjb25kLXBhcmFtCiAgICBzZW5zaXRpdmU6IHRydWUKCm91dHB1dHM6CiAgLSBuYW1lOiBteS1maXJzdC1vdXRwdXQKICAgIHR5cGU6IHN0cmluZwogICAgYXBwbHlUbzoKICAgICAgLSAiaW5zdGFsbCIKICAgICAgLSAidXBncmFkZSIKICAgIHNlbnNpdGl2ZTogdHJ1ZQogIC0gbmFtZTogbXktc2Vjb25kLW91dHB1dAogICAgZGVzY3JpcHRpb246ICJNeSBzZWNvbmQgb3V0cHV0IgogICAgdHlwZTogYm9vbGVhbgogICAgc2Vuc2l0aXZlOiBmYWxzZQogIC0gbmFtZToga3ViZWNvbmZpZwogICAgdHlwZTogZmlsZQogICAgcGF0aDogL3Jvb3QvLmt1YmUvY29uZmlnCgptaXhpbnM6CiAgLSBleGVjCgppbnN0YWxsOgogIC0gZXhlYzoKICAgICAgZGVzY3JpcHRpb246ICJJbnN0YWxsIEhlbGxvIFdvcmxkIgogICAgICBjb21tYW5kOiBiYXNoCiAgICAgIGZsYWdzOgogICAgICAgIGM6IGVjaG8gSGVsbG8gV29ybGQKCnVwZ3JhZGU6CiAgLSBleGVjOgogICAgICBkZXNjcmlwdGlvbjogIldvcmxkIDIuMCIKICAgICAgY29tbWFuZDogYmFzaAogICAgICBmbGFnczoKICAgICAgICBjOiBlY2hvIFdvcmxkIDIuMAoKem9tYmllczoKICAtIGV4ZWM6CiAgICAgIGRlc2NyaXB0aW9uOiAiVHJpZ2dlciB6b21iaWUgYXBvY2FseXBzZSIKICAgICAgY29tbWFuZDogYmFzaAogICAgICBmbGFnczoKICAgICAgICBjOiBlY2hvIG9oIG5vZXMgbXkgYnJhaW5zCgp1bmluc3RhbGw6CiAgLSBleGVjOgogICAgICBkZXNjcmlwdGlvbjogIlVuaW5zdGFsbCBIZWxsbyBXb3JsZCIKICAgICAgY29tbWFuZDogYmFzaAogICAgICBmbGFnczoKICAgICAgICBjOiBlY2hvIEdvb2RieWUgV29ybGQK",+						"manifest": "bmFtZTogbXlidW4KdmVyc2lvbjogMC4xLjAKcmVnaXN0cnk6IGV4YW1wbGUuY29tCgptaXhpbnM6CiAgLSBleGVjCgpkZXBlbmRlbmNpZXM6CiAgLSBuYW1lOiBteXNxbAogICAgcmVmZXJlbmNlOiAiZ2V0cG9ydGVyL2F6dXJlLW15c3FsOjUuNyIKICAgIHBhcmFtZXRlcnM6CiAgICAgIGRhdGFiYXNlLW5hbWU6IHdvcmRwcmVzcwoKaW5zdGFsbDoKICAtIGV4ZWM6CiAgICAgIGRlc2NyaXB0aW9uOiAiSW5zdGFsbCBIZWxsbyBXb3JsZCIKICAgICAgY29tbWFuZDogYmFzaAogICAgICBmbGFnczoKICAgICAgICBjOiBlY2hvIEhlbGxvIFdvcmxkCiAgICAgICAgCnVuaW5zdGFsbDoKICAtIGV4ZWM6CiAgICAgIGRlc2NyaXB0aW9uOiAiVW5pbnN0YWxsIEhlbGxvIFdvcmxkIgogICAgICBjb21tYW5kOiBiYXNoCiAgICAgIGZsYWdzOgogICAgICAgIGM6IGVjaG8gR29vZGJ5ZSBXb3JsZAoKY3VzdG9tOgogIGZvbzogYmFyCgpyZXF1aXJlZDoKICAtIHJlcXVpcmVkRXh0ZW5zaW9uMQogIC0gcmVxdWlyZWRFeHRlbnNpb24yOgogICAgICBjb25maWc6IHRydWUKCg==",

Wow that got a lot smaller. What manifest did you substitute in?

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 type Manifest struct { func (m *Manifest) Validate() error { 	var result error +	if m.Name == "" {

👍

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 See [dependencies](/dependencies/) for more details on how Porter handles depend ```yaml dependencies:   - name: mysql-    tag: getporter/wordpress:v0.1.0+    reference: getporter/mysql:v0.1.0

🤦‍♀️

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 name: discourse-azure version: 0.1.0 description: "A Porter bundle for Discourse"-# TODO: update the registry to your own, e.g. myregistry/porter-hello:v0.1.0-tag: getporter/discourse-azure:v0.1.0+# TODO: update the registry to your own, e.g. myregistry

This is so much easier for a new person to follow. 💯

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 although Porter does have extra fields that are specific to making Porter bundle name: azure-wordpress description: Install Wordpress on Azure version: 0.1.0-tag: getporter/azure-wordpress+registry: getporter+reference: getporter/azure-wordpress:v0.1.0 dockerfile: dockerfile.tmpl ```  * `name`: The name of the bundle * `description`: A description of the bundle * `version`: The version of the bundle, uses [semver](https://semver.org). Should not have a 'v' prefix.-* `tag`: The tag to use when the bundle is published to a registry. The format is `REGISTRY/IMAGE`, or optionally `REGISTRY/IMAGE:TAG` -   if you do not want the default behavior of defaulting the docker image TAG portion to the version of the bundle. The invocation-   image name will be based on this value.  For example, if the bundle `tag` is `getporter/porter-hello` and the `version` is `0.1.0`,-   then the invocation image name will be `getporter/porter-hello-installer:v0.1.0`+* `registry`: The registry to use for publishing the bundle. The format is `REGISTRY/ORG`.

Just sneaking in the word host to help clarify what that part of the path should be.

* `registry`: The registry to use for publishing the bundle. The format is `REGISTRY_HOST/ORG`.
vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 although Porter does have extra fields that are specific to making Porter bundle name: azure-wordpress description: Install Wordpress on Azure version: 0.1.0-tag: getporter/azure-wordpress+registry: getporter+reference: getporter/azure-wordpress:v0.1.0 dockerfile: dockerfile.tmpl ```  * `name`: The name of the bundle * `description`: A description of the bundle * `version`: The version of the bundle, uses [semver](https://semver.org). Should not have a 'v' prefix.-* `tag`: The tag to use when the bundle is published to a registry. The format is `REGISTRY/IMAGE`, or optionally `REGISTRY/IMAGE:TAG` -   if you do not want the default behavior of defaulting the docker image TAG portion to the version of the bundle. The invocation-   image name will be based on this value.  For example, if the bundle `tag` is `getporter/porter-hello` and the `version` is `0.1.0`,-   then the invocation image name will be `getporter/porter-hello-installer:v0.1.0`+* `registry`: The registry to use for publishing the bundle. The format is `REGISTRY/ORG`.+    Both the final bundle reference and invocation image name will be based on this value.+    For example, if the bundle name is `porter-hello`, registry is `getporter` and the version is `0.1.0`,+    the bundle reference will be `getporter/porter-hello:v0.1.0` and the invocation image name will be `getporter/porter-hello-installer:v0.1.0`+* `reference`: OPTIONAL. The full bundle reference which takes precedence over any values set for the `registry`, `name` and `version` fields.

If we have removed the defaulting of the version as the TAG portion of the reference ( which is how tag used to work) then people who are still using tag will have problems.

vdice

comment created time in a day

Pull request review commentgetporter/porter

feat(*): manifest versioning updates

 although Porter does have extra fields that are specific to making Porter bundle name: azure-wordpress description: Install Wordpress on Azure version: 0.1.0-tag: getporter/azure-wordpress+registry: getporter+reference: getporter/azure-wordpress:v0.1.0

For the reference does it work exactly like tag used to do? So would this work as well (what tag used to be)?

reference: getporter/azure-wordpress

vdice

comment created time in a day

PullRequestReviewEvent
PullRequestReviewEvent

pull request commentgetporter/porter

Update unit tests to use cached bundle testdata

/azp run porter

carolynvs

comment created time in a day

push eventcarolynvs/porter

Carolyn Van Slyck

commit sha 2aacb1d66072f3797a984f8c052643db335ad495

Update cached bundles Our testdata has a mock cache based on build/testdata/bundles that has gotten out-of-sync. Rebuild the bundles and update the cache keys to reflect the new version v0.1.3 that we are now using. Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

Carolyn Van Slyck

commit sha 97865615d0ff31879e01fc595c124e33e2e79f53

Use the mock registry provider for unit tests We were accidentally hitting live registries for our unit tests when they should have been using our test cache with pre-populated data from build/testdata/bundles. Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

push time in a day

push eventcarolynvs/porter

Carolyn Van Slyck

commit sha 0c97c9d93c6810ab3df6e60b13468c89a8aaaee9

Refactor when parameters flags are parsed (#1337) * fix(lifecycle.go): validate params after pulling bundle from tag Signed-off-by: Vaughn Dice <vadice@microsoft.com> * Parse parameters after bundle is loaded * ExecuteAction performs any action but uninstall since that operation is performed backwards. * Move resolution of parameters later, when we convert the options into cnab arguments, so that we have the bundle defintion available * Only validate that --param values are in the proper format, PARAM=VALUE Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com> * Use pointer for BundleActionOptions Since validate modifies the action options, we should store the pointer so that we can retain and changes made. Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com> * Make it work for dependencies Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com> Co-authored-by: Vaughn Dice <vadice@microsoft.com>

view details

Carolyn Van Slyck

commit sha 3bb33b8a5ded53f930e04163b5cedcb6a6d4b845

Update cached bundles Our testdata has a mock cache based on build/testdata/bundles that has gotten out-of-sync. Rebuild the bundles and update the cache keys to reflect the new version v0.1.3 that we are now using. Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

push time in a day

PR opened getporter/porter

Update unit tests to use cached bundle testdata

What does this change

When I was helping with #1329 I realized that some of our unit tests were hitting a live docker registry, not using the cached bundles. Also we had stale entries in the cache testdata for an older version of our test bundles.

This change updates our unit tests to use the test registry by default, updates the test bundles and their cache.

What issue does it fix

N/A

Notes for the reviewer

Checklist

  • [ ] Unit Tests
  • [ ] Documentation
  • [ ] Schema (porter.yaml)
+175 -8

0 comment

18 changed files

pr created time in a day

push eventcarolynvs/porter

Carolyn Van Slyck

commit sha 2b0ce71bcf064ca9caeab2e83458d0728fab5021

Update cached bundles Our testdata has a mock cache based on build/testdata/bundles that has gotten out-of-sync. Rebuild the bundles and update the cache keys to reflect the new version v0.1.3 that we are now using. Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

Carolyn Van Slyck

commit sha 7de213a3d59b88f289d3e4e46c319f570954a509

Use the mock registry provider for unit tests We were accidentally hitting live registries for our unit tests when they should have been using our test cache with pre-populated data from build/testdata/bundles. Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

push time in a day

create barnchcarolynvs/porter

branch : update-cached-bundles

created branch time in a day

issue openedkubernetes-sigs/minibroker

Update chart repository URL to new location

Helm is losing their old chart repository location and have had to move to a new URL. We should update our hard-coded URL for the stable repository to the new location:

OLD: https://kubernetes-charts.storage.googleapis.com/ NEW: https://charts.helm.sh/stable

Announcement here: https://helm.sh/blog/new-location-stable-incubator-charts/

created time in a day

delete branch carolynvs/porter

delete branch : pr1331

delete time in a day

push eventgetporter/porter

Carolyn Van Slyck

commit sha 0c97c9d93c6810ab3df6e60b13468c89a8aaaee9

Refactor when parameters flags are parsed (#1337) * fix(lifecycle.go): validate params after pulling bundle from tag Signed-off-by: Vaughn Dice <vadice@microsoft.com> * Parse parameters after bundle is loaded * ExecuteAction performs any action but uninstall since that operation is performed backwards. * Move resolution of parameters later, when we convert the options into cnab arguments, so that we have the bundle defintion available * Only validate that --param values are in the proper format, PARAM=VALUE Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com> * Use pointer for BundleActionOptions Since validate modifies the action options, we should store the pointer so that we can retain and changes made. Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com> * Make it work for dependencies Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com> Co-authored-by: Vaughn Dice <vadice@microsoft.com>

view details

push time in a day

PR merged getporter/porter

Reviewers
Refactor when parameters flags are parsed

What does this change

Parse parameters after bundle is loaded

  • ExecuteAction performs any action but uninstall since that operation is performed backwards.
  • Move resolution of parameters later, when we convert the options into cnab arguments, so that we have the bundle definition available
  • Only validate that --param values are in the proper format, PARAM=VALUE

What issue does it fix

Fixes #1320

Notes for the reviewer

I'd appreciate feedback on if this is an improvement or not. I was trying to have us parse parameters once, and move towards reuse with our new BundleAction interface.

Checklist

  • [x] Unit Tests
  • [ ] Documentation
  • [ ] Schema (porter.yaml)
+330 -263

4 comments

26 changed files

carolynvs

pr closed time in a day

issue closedgetporter/porter

Using file type parameters from parameterset on published bundle fails with base64 encoding issue

Describe the bug

When I have a parameter of type 'file', it is correctly available when invoking actions for the bundle in the current working directory, but if invoking the action on a published bundle (porter install --tag ...) it fails with "invalid base64 value"

To Reproduce

Steps to reproduce the behavior:

  1. Define a parameter of type 'file' and set a destination path.
  2. Create a parameterset and specify a value for the parameter
  3. Publish the bundle to a registry
  4. Run "porter install -p <name of parameterset>"
  5. See error

Expected behavior

I would expect that the file is mounted as is, just like it is if you run it from the local bundle or if you set the parameter using "--param <param_name>=<path_to_file> It seems to only happen when the parameter is in a parameterset

Porter Command and Output

$ porter publish
$ porter parameters generate temp
$ porter install --tag localhost:5000/temp:v0.1.0 -p temp
installing HELLO...
Error: invalid parameters: cannot use value: dummy: value as parameter dummy_file: invalid base64 value: dummy: value

If I base64 encode the content of the file, then it works just like when the bundle is local or if using a --param option instead of parameterset.

Version

Copy the output of porter version below porter v0.29.1 (2e0f3648)

closed time in a day

jasmdk

issue openedgetporter/helm-mixin

Update text usage of deprecated chart location to new stable repo location

Helm is losing access to its old chart location and they have replaced it with a new stable chart repo location. Our code has text usage of the old location in testdata, our readme, etc. Let's update our repository with the new location to avoid contributing to confusion over the actual location that people should use with the mixin.

Old: https://kubernetes-charts.storage.googleapis.com/ New: https://helm.sh/blog/new-location-stable-incubator-charts/

created time in 2 days

pull request commentgetporter/kubernetes-mixin

[WIP] Predefined Dynamic namespaces

@squillace We use manifests to create everything else: services, deployments, etc. Can you help me understand why we wouldn't also use a manifest to ensure the namespace exists? I am guessing that there is a slightly different desired behavior, or team permission situation that I am missing context on that makes it undesirable?

MChorfa

comment created time in 2 days

pull request commentgetporter/porter

Refactor when parameters flags are parsed

Okay, the build is working again so this is ready for review.

carolynvs

comment created time in 2 days

delete branch carolynvs/porter

delete branch : publish-err-msg

delete time in 2 days

push eventgetporter/porter

Carolyn Van Slyck

commit sha f54ffd19191c4893c8d83928dcb4371d59c2cf4a

Indicate where publish failed in error message Don't bubble-up error messages directly from cnab-to-oci, they don't provide enough context to know what just failed, e.g. Error: unexpected status: 400 Bad Request Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

Carolyn Van Slyck

commit sha df9661ad04a6ce6e2eefdcdfd3e705cca64a80c5

Merge pull request #1338 from carolynvs/publish-err-msg Indicate where publish failed in error message

view details

push time in 2 days

PR merged getporter/porter

Reviewers
Indicate where publish failed in error message

What does this change

Don't bubble-up error messages directly from cnab-to-oci, they don't provide enough context to know what just failed, e.g.

Error: unexpected status: 400 Bad Request

What issue does it fix

Troubleshooting for #1332

Notes for the reviewer

Checklist

  • [ ] Unit Tests
  • [ ] Documentation
  • [ ] Schema (porter.yaml)
+2 -2

5 comments

1 changed file

carolynvs

pr closed time in 2 days

pull request commentgetporter/porter

Indicate where publish failed in error message

There are two porter build status's reported back to GitHub and it's confusing the big green merge button. This is due to the Azure DevOps glitch from last week. I'm going to merge with my super admin powers since the build passed.

carolynvs

comment created time in 2 days

pull request commentgetporter/porter

Indicate where publish failed in error message

/azp run porter

carolynvs

comment created time in 2 days

delete branch getporter/porter

delete branch : carolynvs-patch-1

delete time in 2 days

PR closed getporter/porter

Test CI reporting status back to GitHub

Do not merge, I'll use this PR to figure out why the build is running just fine, but the final status is not being reported back to GitHub.

+2 -1

5 comments

1 changed file

carolynvs

pr closed time in 2 days

pull request commentgetporter/porter

Test CI reporting status back to GitHub

https://status.dev.azure.com/_event/210657400 has been resolved. Closing.

carolynvs

comment created time in 2 days

pull request commentgetporter/porter

Refactor when parameters flags are parsed

/azp run porter

carolynvs

comment created time in 2 days

pull request commentgetporter/kubernetes-mixin

[WIP] Predefined Dynamic namespaces

I don't believe doing the namespace creation during build using mixin configuration is the way to go here. A few things:

  • it can't be templated because porter templates don't (yet) support templating outside of actions
  • build is the wrong time to create the namespaces, they should be created during at least install and also probably upgrade and invoke, but not uninstall.
  • Perhaps namespace creation should be a manifest that users provide?
  • Or if we must, let's help people out so that it's not an explicit listing of the namespaces in the porter.yaml, which is guaranteed to get out-of-date vs the manifests.

The most straightforward solution would be for users of the mixin to include a namespace definition in the manifests directory. kubectl will then handle it just fine, creating the namespace if needed. It moves the namespace definition/creation back to the source of truth, the manifests instead of having it shared in the porter.yaml. I'd like to understand first if that is an acceptable solution. @squillace? If not what scenarios are not covered adequately by this?

Otherwise if we must create the namespaces, they should be created during the relevant actions. One thing that we could do is parse their manifests, identify namespaces used and execute the command only if they don't exist. Then in the mixin config, have a flag for controlling that behavior, off by default.

I'd really want to make sure before we implement anything further that we understand the implications of having this feature vs. the user defining the namespace manifest themselves. From a security standpoint (it requires additional privileges, people may not have access or we are relying upon undesired rbac because we created the namespace) and also from the limited configuration (you can't define annotations or labels, not sure what else is on a namespace).

MChorfa

comment created time in 2 days

delete branch carolynvs/porter-skeletor

delete branch : bump-porter

delete time in 2 days

push eventgetporter/skeletor

Carolyn Van Slyck

commit sha b1e4653b4ec2c92c83500d47ac736e474aba9246

Bump porter to v0.29.1 * Support SuppressOutput * Support SuffixArguments * Support BuildableAction interface Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

Carolyn Van Slyck

commit sha 908a2f5fd5ee470bbf776dc4174d5c0bd2c37040

Merge pull request #25 from carolynvs/bump-porter Bump porter to v0.29.1

view details

push time in 2 days

PR merged getporter/skeletor

Bump porter to v0.29.1
  • Support SuppressOutput
  • Support SuffixArguments
  • Support BuildableAction interface
+205 -57

0 comment

5 changed files

carolynvs

pr closed time in 2 days

pull request commentgetporter/porter

feat(*): manifest versioning updates

/azp run porter

vdice

comment created time in 3 days

pull request commentgetporter/porter

Test CI reporting status back to GitHub

/azp run porter

carolynvs

comment created time in 3 days

push eventgetporter/yq-mixin

Carolyn Van Slyck

commit sha 252286389f82d732e780089c99ef23ef2ae5ff7d

Document mixin Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

push time in 4 days

push eventgetporter/yq-mixin

Carolyn Van Slyck

commit sha 90d4440a0b5b504ab18bb8edfedb628f70290dea

Implement build Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

Carolyn Van Slyck

commit sha 6e20aa8687ecc2ea37d406549c9a356204d88838

Document mixin Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

push time in 4 days

push eventgetporter/yq-mixin

Carolyn Van Slyck

commit sha 98701f72cd6158452b98a50407f9e78e6aa85d62

Initial commit Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

push time in 4 days

create barnchgetporter/yq-mixin

branch : bump-porter

created branch time in 4 days

create barnchgetporter/yq-mixin

branch : main

created branch time in 4 days

created repositorygetporter/yq-mixin

Edit YAML files with this yq mixin for Porter

created time in 4 days

create barnchgetporter/skeletor

branch : bump-porter

created branch time in 4 days

PR opened getporter/skeletor

Reviewers
Bump porter to v0.29.1
  • Support SuppressOutput
  • Support SuffixArguments
  • Support BuildableAction interface
+205 -57

0 comment

5 changed files

pr created time in 4 days

push eventcarolynvs/porter-skeletor

Carolyn Van Slyck

commit sha b1e4653b4ec2c92c83500d47ac736e474aba9246

Bump porter to v0.29.1 * Support SuppressOutput * Support SuffixArguments * Support BuildableAction interface Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

push time in 4 days

create barnchcarolynvs/porter-skeletor

branch : bump-porter

created branch time in 4 days

create barnchgetporter/yq-mixin

branch : main

created branch time in 4 days

created repositorygetporter/yq-mixin

Edit YAML files with the yq mixin for Porter

created time in 4 days

create barnchcarolynvs/handbrk8s

branch : fixes

created branch time in 4 days

PR opened cncf/podtato-head

Update CNAB airgap example

This updates the airgap example to demonstrate how to include referenced images in the bundle when it is archived to a tgz, and how to update your manifests to use the new image location after the images are published on the other side of the airgap.

With helm's set command this is a bit easier to accomplish, here is an example bundle that uses helm:

https://github.com/getporter/porter/tree/main/examples/airgap

I am using yq to help modify the manifest. I think kustomize can do it as well.

+264 -85

0 comment

8 changed files

pr created time in 5 days

push eventcarolynvs/podtato-head

Carolyn Van Slyck

commit sha 77cfd7456fc794a76285688f32d3c8be41e6c030

Update CNAB airgap example This updates the airgap example to demonstrate how to include referenced images in the bundle when it is archived to a tgz, and how to update your manifests to use the new image location after the images are published on the other side of the airgap. With helm's set command this is a bit easier to accomplish, here is an example bundle that uses helm: https://github.com/getporter/porter/tree/main/examples/airgap I am using yq to help modify the manifest. I think kustomize can do it as well. Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

push time in 5 days

push eventcarolynvs/podtato-head

Carolyn Van Slyck

commit sha 9f1e469ee9897e1fcf36d3c636e00bc1dea8cb62

Update CNAB airgap example This updates the airgap example to demonstrate how to include referenced images in the bundle when it is archived to a tgz, and how to update your manifests to use the new image location after the images are published on the other side of the airgap. With helm's set command this is a bit easier to accomplish, here is an example bundle that uses helm: https://github.com/getporter/porter/tree/main/examples/airgap I am using yq to help modify the manifest. I think kustomize can do it as well. Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

push time in 5 days

push eventcarolynvs/podtato-head

Carolyn Van Slyck

commit sha 21a86b82626b7dcfb6e5fcc699d5e32036186cc6

Update CNAB airgap example This updates the airgap example to demonstrate how to include referenced images in the bundle when it is archived to a tgz, and how to update your manifests to use the new image location after the images are published on the other side of the airgap. With helm's set command this is a bit easier to accomplish, here is an example bundle that uses helm: https://github.com/getporter/porter/tree/main/examples/airgap I am using yq to help modify the manifest. I think kustomize can do it as well. Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

push time in 5 days

push eventcarolynvs/podtato-head

Carolyn Van Slyck

commit sha 268db16d9044b3008a305cf25dcde9ae999df764

Update CNAB airgap example This updates the airgap example to demonstrate how to include referenced images in the bundle when it is archived to a tgz, and how to update your manifests to use the new image location after the images are published on the other side of the airgap. With helm's set command this is a bit easier to accomplish, here is an example bundle that uses helm: https://github.com/getporter/porter/tree/main/examples/airgap I am using yq to help modify the manifest. I think kustomize can do it as well. Signed-off-by: Carolyn Van Slyck <me@carolynvanslyck.com>

view details

push time in 5 days

create barnchcarolynvs/podtato-head

branch : cnab-airgap

created branch time in 5 days

fork carolynvs/podtato-head

📨🚚 CNCF App Delivery SIG Demo

https://cncf.io/projects

fork in 5 days

issue commentgetporter/porter

Publish: Update/support tag and repository flags

Oops! Yes, thanks it should be registry. Let me fix that.

vdice

comment created time in 5 days

pull request commentgetporter/porter

Test CI reporting status back to GitHub

/azp run porter

carolynvs

comment created time in 5 days

issue commentgetporter/porter

Add the all-contributors integration

Yes! I would totally love to move to this. I was musing over it in #1167 and it sounds like people would like that.

nhcarrigan

comment created time in 5 days

pull request commentgetporter/porter

Split up PORTER_HOME

I'll look into how we can get the tests passing and get back to you.

sestegra

comment created time in 5 days

push eventgetporter/porter

nhcarrigan

commit sha 2cf54145b2aea7a0ee11330b143d6c49a75b580e

Add myself to contributors.md Signed-off-by: nhcarrigan <nhcarrigan@gmail.com>

view details

Carolyn Van Slyck

commit sha 5164b602e9528a0259c3a93f6eea4f1cf225f897

Merge pull request #1342 from nhcarrigan/docs/add-contributor Add myself to contributors.md

view details

push time in 5 days

PR merged getporter/porter

Reviewers
Add myself to contributors.md hacktoberfest-accepted

Signed-off-by: nhcarrigan nhcarrigan@gmail.com

What does this change

Give a summary of the change, and how it affects end-users. It's okay to copy/paste your commit messages.

For example if it introduces a new command or modifies a commands output, give an example of you running the command and showing real output here.

As requested, adds my name to the CONTRIBUTORS.md file. 🙂

What issue does it fix

Closes # (issue)

If there is not an existing issue, please make sure we have context on why this change is needed. See our Contributing Guide for examples of when an existing issue isn't necessary.

Notes for the reviewer

Put any questions or notes for the reviewer here.

Checklist

  • [X] Unit Tests
  • [X] Documentation
  • [X] Schema (porter.yaml)

If this is your first pull request, please add your name to the bottom of our Contributors list. Thank you for making Porter better! 🙇‍♀️

+1 -0

0 comment

1 changed file

nhcarrigan

pr closed time in 5 days

PullRequestReviewEvent

pull request commentgetporter/porter

docs: move links, add project clarification

@nhcarrigan Since we aren't using a github app to help us list all of our contributors, would you like to submit a PR to add your name to https://github.com/getporter/porter/blob/main/CONTRIBUTORS.md? Or if you are okay with it, I can add you myself.

nhcarrigan

comment created time in 5 days

issue openedgetporter/vscode-extension

extension takes over intellisense for all YAML files, not just porter.yaml

  1. Create a directory with a porter.yaml and a kubernetes manifest.
  2. Open the directory in VS Code with the Porter extension enabled.
  3. Open the kubernetes manifest first. Note that there are no red squiggles. Now close it.
  4. Open the porter.yaml. Now close it.
  5. Re-open the kubernetes manifest and note that it is being validated against the Porter extension, red squiggles galore because it is in fact not a porter.yaml.

porter.yaml

name: HELLO
version: 0.1.0
description: "An example Porter configuration"
tag: getporter/porter-hello

mixins:
  - exec

install:
  - exec:
      description: "Install Hello World"
      command: ./helpers.sh
      arguments:
        - install

upgrade:
  - exec:
      description: "World 2.0"
      command: ./helpers.sh
      arguments:
        - upgrade

uninstall:
  - exec:
      description: "Uninstall Hello World"
      command: ./helpers.sh
      arguments:
        - uninstall

manifests.yaml

apiVersion: v1
kind: Namespace
metadata:
  name: demospace

Screen Shot 2020-10-23 at 10 49 58 AM

created time in 5 days

issue openedgetporter/porter

schema should allow for mixin configuration

Describe the bug

When I declare a mixin and define configuration for it, VS Code decides that it is invalid.

Screen Shot 2020-10-23 at 10 33 43 AM

To Reproduce

  1. Create a porter.yaml
  2. Declare a mixin with configuration:
    mixins:
      - kubernetes:
          clientVersion: v1.15.5
    
  3. Open it in VS Code and note the dreaded red squiggles

Expected behavior

Ideally autocomplete for the mixin config (not supported yet). Otherwise it should at least not complain.

Version

$ porter version
porter v0.29.1 (2e0f3648)

created time in 5 days

PR opened getporter/porter

Test CI reporting status back to GitHub

Do not merge, I'll use this PR to figure out why the build is running just fine, but the final status is not being reported back to GitHub.

+2 -1

0 comment

1 changed file

pr created time in 5 days

more