openshift / openshift/origin

Namespace allocators should probably be moved to an external controller

Open
#14,731 2 comments 0 reactions 1 assignee View on GitHub

@pweil- is already working on this.

Since Jun 18, 2017.

area/security kind/feature lifecycle/frozen lifecycle/stale priority/P2
Dominant language
Go
Stars
8.7k
Forks
4.8k
Avg merge
4d 10h
Merged PRs (30d)
53

Description

The namespace UID allocators depend on direct access to etcd (for their allocation map) and aren't structured like a classic controller.

While allocation should happen on creation (i.e. making it like an initializer), it should also happen if the user clears the annotation, so I don't think this really has to be an initializer to be successful (although I worry that we possibly might want to fail closed, if RunAsRange doesn't).

To move to a controller, we need an API resource that can handle opaque bit ranges, and we need to think about how this would be exposed securely. I.e. a global cluster scoped allocation resource sucks because you might want controllers to be able to use it. ConfigMaps suck because you'd generate a brazillian writes and because they're not binary so we'd have to base64 encode them. TPR don't work because we don't have protobuf storage for them.

Upstream we need to refactor Service allocation controller to be an initializer (although it's an open question whether doing that makes services less available, because you can't have a service until it gets allocated, but if the controller itself depends on services, etc) and it also needs a range resource.

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.