mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	
		
			
				
	
	
	
		
			7.3 KiB
		
	
	
	
	
	
	
	
			
		
		
	
	
			7.3 KiB
		
	
	
	
	
	
	
	
Kubernetes CLI/Configuration Roadmap
See also issues with the following labels:
- Create services before other objects, or at least before objects that depend upon them. Namespace-relative DNS mitigates this some, but most users are still using service environment variables. #1768
 - Finish rolling update #1353
 - Friendly to auto-scaling #2863
 - Rollback (make rolling-update reversible, and complete an in-progress rolling update by taking 2 replication controller names rather than always taking a file)
 - Rollover (replace multiple replication controllers with one, such as to clean up an aborted partial rollout)
 - Write a ReplicationController generator to derive the new ReplicationController from an old one (e.g., 
--image-version=newversion, which would apply a name suffix, update a label value, and apply an image tag) - Use readiness #620
 - Perhaps factor this in a way that it can be shared with Openshift’s deployment controller
 - Rolling update service as a plugin
 - Kind-based filtering on object streams -- only operate on the kinds of objects specified. This would make directory-based kubectl operations much more useful. Users should be able to instantiate the example applications using 
kubectl create -f <example-dir> ... - Improved pretty printing of endpoints, such as in the case that there are more than a few endpoints
 - Service address/port lookup command(s)
 - List supported resources
 - Swagger lookups #3060
 - --name, --name-suffix applied during creation and updates
 - --labels and opinionated label injection: --app=foo, --tier={fe,cache,be,db}, --uservice=redis, --env={dev,test,prod}, --stage={canary,final}, --track={hourly,daily,weekly}, --release=0.4.3c2. Exact ones TBD. We could allow arbitrary values -- the keys are important. The actual label keys would be (optionally?) namespaced with kubectl.kubernetes.io/, or perhaps the user’s namespace.
 - --annotations and opinionated annotation injection: --description, --revision
 - Imperative updates. We'll want to optionally make these safe(r) by supporting preconditions based on the current value and resourceVersion.
 - annotation updates similar to label updates
 - other custom commands for common imperative updates
 - more user-friendly (but still generic) on-command-line json for patch
 - We also want to support the following flavors of more general updates:
 - whichever we don’t support: 1. safe update: update the full resource, guarded by resourceVersion precondition (and perhaps selected value-based preconditions) 1. forced update: update the full resource, blowing away the previous Spec without preconditions; delete and re-create if necessary
 - diff/dryrun: Compare new config with current Spec #6284
 - submit/apply/reconcile/ensure/merge: Merge user-provided fields with current Spec. Keep track of user-provided fields using an annotation -- see #1702. Delete all objects with deployment-specific labels.
 - --dry-run for all commands
 - Support full label selection syntax, including support for namespaces.
 - Wait on conditions #1899
 - Make kubectl scriptable: make output and exit code behavior consistent and useful for wrapping in workflows and piping back into kubectl and/or xargs (e.g., dump full URLs?, distinguish permanent and retry-able failure, identify objects that should be retried)
 - Here's an example where multiple objects on the command line and an option to dump object names only (
-q) would be useful in combination. #5906 - Easy generation of clean configuration files from existing objects (including containers -- podex) -- remove readonly fields, status
 - Export from one namespace, import into another is an important use case
 - Derive objects from other objects
 - pod clone
 - rc from pod
 - --labels-from (services from pods or rcs)
 - Kind discovery (i.e., operate on objects of all kinds) #5278
 - A fairly general-purpose way to specify fields on the command line during creation and update, not just from a config file
 - Extensible API-based generator framework (i.e. invoke generators via an API/URL rather than building them into kubectl), so that complex client libraries don’t need to be rewritten in multiple languages, and so that the abstractions are available through all interfaces: API, CLI, UI, logs, ... #5280
 - Need schema registry, and some way to invoke generator (e.g., using a container)
 - Convert run-container to API-based generator
 - Transformation framework
 - More intelligent defaulting of fields (e.g., #2643)
 - Update preconditions based on the values of arbitrary object fields.
 - Deployment manager compatibility on GCP: #3685
 - Describe multiple objects, multiple kinds of objects #5905
 - Support yaml document separator #5840
 
TODO:
- watch
 - attach #1521
 - image/registry commands
 - do any other server paths make sense? validate? generic curl functionality?
 - template parameterization
 - dynamic/runtime configuration
 
Server-side support: