Skip to content
This repository has been archived by the owner on Jun 28, 2023. It is now read-only.

Default namespace for packages should be upstream expected namespaces #607

Closed
jorgemoralespou opened this issue May 25, 2021 · 7 comments · Fixed by #2316
Closed

Default namespace for packages should be upstream expected namespaces #607

jorgemoralespou opened this issue May 25, 2021 · 7 comments · Fixed by #2316
Labels
good-first-issue Good for newcomers help-wanted Looking for contributors to help kind/enhancement An enhancement to an existing capability kind/feature A request for a new feature owner/packages Work executed by a package's maintainer
Milestone

Comments

@jorgemoralespou
Copy link
Contributor

Feature Request

Make default namespaces for packages that bundle content that is supposed to be installed in a specific namespace to be the expected upstream/default namespace.

A user of TCE packages with knowledge on the technology will by default expect it to be installed in the same destination as if they consume the upstream package. We do still need to support moving into an alternate namespace, as some used might want to concentrate all/some packages into fewer namespaces as they are considered infrastructure components and hence reducing visibility problems for end users.

Why would someone want fewer namespaces for infrastructure components? Mostly because k8s does not provide proper RBAC around the namespaces a user can see, so it's all or none. If there's lots of namespaces in the cluster, users that have only RBAC in a few of them will still see the whole list. This is really cumbersome in UIs and namespace selector experiences.

@jorgemoralespou jorgemoralespou added triage/needs-triage Needs triage by TCE maintainers kind/feature A request for a new feature labels May 25, 2021
@seemiller
Copy link
Contributor

We've already run into one case where a package didn't work as expected because it wasn't in its default namespaces. The Harbor packages uses cert-manager and it was not able to generate certs because cert-manager was in the tanzu-certificates namespace and not the expected cert-manager namespace.

@jpmcb
Copy link
Contributor

jpmcb commented May 26, 2021

If we do this, we should also consider making a recommendation to package authors that have no default upstream namespace, like prometheus. Since prometheus doesn't provide any kind of upstream manifest, I believe the observability team sets it themselves. So it may be worth recommending some kind of namespacing convention in a design doc like:

  • if package has a default, expected namespace, use that namespace
  • if package has no default namespace, create one with naming convention tce-x

@jorgemoralespou
Copy link
Contributor Author

We've already run into one case where a package didn't work as expected because it wasn't in its default namespaces.

To me, this surfaces a design problem in harbor. It shouldn't need to know the namespace, and if was critical, it should be configurable.

@jpmcb
Copy link
Contributor

jpmcb commented May 28, 2021

Also ref #642

I agree with @jorgemoralespou. I think this is a problem where harbor expects cert-manager to be deployed in a way that is technically configurable. Cert-manager is typically deployed via helm and supports being deployed into different namespaces. So, in a helm install, who does harbor expect to only reference the cert-manager namespace?

@jessehu
Copy link
Contributor

jessehu commented Jun 2, 2021

@jpmcb harbor package doesn't care the cert-manager namespace.

@joshrosso joshrosso added kind/enhancement An enhancement to an existing capability owner/packages Work executed by a package's maintainer help-wanted Looking for contributors to help good-first-issue Good for newcomers and removed triage/needs-triage Needs triage by TCE maintainers kind/feature A request for a new feature labels Sep 12, 2021
@joshrosso joshrosso added this to the icebox milestone Sep 12, 2021
@jorgemoralespou
Copy link
Contributor Author

HIghlighting that cert-manager being in tanzu-certificates namespace by default is weird. I would love this package to be in cert-manager namespace which is where people expects it.

@joshrosso joshrosso added the kind/feature A request for a new feature label Oct 12, 2021
@seemiller
Copy link
Contributor

If I recall correctly, this issue was spurred by the cert-manager package having a different namespace (tanzu-certificates) than the default upstream value (cert-manager). I've the latest cert-manager packages (1.3.3, 1.4.4 and 1.5.3) all have cert-manager as the default namespace.

It feels like we just need a documentation update to recommend the default or a tce- tagged namespace. I'll see about doing that for this issue.

stmcginnis pushed a commit that referenced this issue Nov 1, 2021
Signed-off-by: Nicholas Seemiller <nseemiller@vmware.com>
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
good-first-issue Good for newcomers help-wanted Looking for contributors to help kind/enhancement An enhancement to an existing capability kind/feature A request for a new feature owner/packages Work executed by a package's maintainer
Projects
None yet
Development

Successfully merging a pull request may close this issue.

5 participants