Skip to content

Kubectl Isolation Work Sharding

Mengqi Yu edited this page Jun 13, 2017 · 29 revisions

Please help break bad dependencies for kubectl.

Background: see odd-kubectl-deps and kubectl isolation proposal

To get the list of current dependencies, run the following command:

go list -f '{{ join .Deps "\n"}}' k8s.io/kubernetes/cmd/kubectl | \
  grep k8s.io/kubernetes | \
  grep -v kubectl | \
  grep -v vendor

Put your name in the who when you start work. For destination, use one of these options (we're working on defining them):

  • kubectl, i.e. some directory with kubectl in its path, that nobody but kubectl depends on. Eventually moves to new repo.
  • client-go, i.e. under staging - code already intended to be vendored.
  • apimachinery, i.e. under staging - code already intended to be vendored.
  • TBD MAYBE new k8s util repo (stuff k8s needs but depends on no other k8s repo)
  • TBD MAYBE new basic utility repo (stuff missing from Go) - need to make new repo

General libraries

library who PR destination notes
pkg/api/helper monopole #46139 done
pkg/api/validation monopole #46317 awaiting approval
pkg/capabilities
pkg/features
pkg/fieldpath
pkg/generated
pkg/printers
pkg/printers/internalversion
pkg/util
pkg/util/crlf
pkg/util/exec
pkg/util/hash
pkg/util/i18n
pkg/util/interrupt
pkg/util/labels
pkg/util/logs
pkg/util/metrics
pkg/util/mount
pkg/util/net/sets
pkg/util/node
pkg/util/parsers
pkg/util/slice
pkg/util/taints
pkg/util/term
pkg/version pwittrock committed locally
pkg/version/prometheus

Client libraries

library who PR destination notes
pkg/client/leaderelection/resourcelock
pkg/client/metrics
pkg/client/metrics/prometheus
pkg/client/retry mengqiy #47011 awaiting review
pkg/client/unversioned

Kubernetes API type utilities

library who PR destination notes
pkg/controller Function: GetControllerOf - test ByLogging, ActivePods
pkg/controller/daemon Function: DecodeHistory
pkg/controller/deployment/util Function:GetAllReplicaSets, Revision Annotation: RollbackRevisionNotFound,RollbackTemplateUnchanged,RollbackDone
pkg/credentialprovider Struct: DockerConfigEntry
pkg/kubelet/types Annotation: ConfigMirrorAnnotationKey

Kubernetes API types and utilities

library who PR destination notes
pkg/api
pkg/api/events
pkg/api/helper
pkg/api/helper/qos
pkg/api/install
pkg/api/pod
pkg/api/ref
pkg/api/resource
pkg/api/service
pkg/api/util
pkg/api/v1
pkg/api/v1/helper
pkg/api/v1/helper/qos
pkg/api/v1/pod
pkg/api/v1/ref
pkg/api/validation
pkg/apis/admissionregistration
pkg/apis/admissionregistration/install
pkg/apis/admissionregistration/v1alpha1
pkg/apis/apps
pkg/apis/apps/install
pkg/apis/apps/v1beta1
pkg/apis/authentication
pkg/apis/authentication/install
pkg/apis/authentication/v1
pkg/apis/authentication/v1beta1
pkg/apis/authorization
pkg/apis/authorization/install
pkg/apis/authorization/v1
pkg/apis/authorization/v1beta1
pkg/apis/autoscaling
pkg/apis/autoscaling/install
pkg/apis/autoscaling/v1
pkg/apis/autoscaling/v2alpha1
pkg/apis/batch
pkg/apis/batch/install
pkg/apis/batch/v1
pkg/apis/batch/v2alpha1
pkg/apis/certificates
pkg/apis/certificates/install
pkg/apis/certificates/v1beta1
pkg/apis/componentconfig
pkg/apis/componentconfig/install
pkg/apis/componentconfig/v1alpha1
pkg/apis/extensions
pkg/apis/extensions/install
pkg/apis/extensions/v1beta1
pkg/apis/networking
pkg/apis/networking/install
pkg/apis/networking/v1
pkg/apis/policy
pkg/apis/policy/install
pkg/apis/policy/v1beta1
pkg/apis/rbac
pkg/apis/rbac/install
pkg/apis/rbac/v1alpha1
pkg/apis/rbac/v1beta1
pkg/apis/settings
pkg/apis/settings/install
pkg/apis/settings/v1alpha1
pkg/apis/storage
pkg/apis/storage/install
pkg/apis/storage/util
pkg/apis/storage/v1
pkg/apis/storage/v1beta1
pkg/client/listers/apps/v1beta1
pkg/client/listers/core/v1
pkg/client/listers/extensions/v1beta1

Kubeadm

library who PR destination notes
cmd/kubeadm/app/apis/kubeadm
federation/apis/federation
federation/apis/federation/install
federation/apis/federation/v1beta1

Federation libraries

library who PR destination notes
federation/apis/federation
federation/apis/federation/install
federation/apis/federation/v1beta1

Federation generated

library who PR destination notes
federation/client/clientset_generated/federation_internalclientset
federation/client/clientset_generated/federation_internalclientset/scheme
federation/client/clientset_generated/federation_internalclientset/typed/autoscaling/internalversion
federation/client/clientset_generated/federation_internalclientset/typed/batch/internalversion
federation/client/clientset_generated/federation_internalclientset/typed/core/internalversion
federation/client/clientset_generated/federation_internalclientset/typed/extensions/internalversion
federation/client/clientset_generated/federation_internalclientset/typed/federation/internalversion

Kubernetes API generated clients

library who PR destination notes
pkg/client/clientset_generated/clientset
pkg/client/clientset_generated/clientset/scheme
pkg/client/clientset_generated/clientset/typed/admissionregistration/v1alpha1
pkg/client/clientset_generated/clientset/typed/apps/v1beta1
pkg/client/clientset_generated/clientset/typed/authentication/v1
pkg/client/clientset_generated/clientset/typed/authentication/v1beta1
pkg/client/clientset_generated/clientset/typed/authorization/v1
pkg/client/clientset_generated/clientset/typed/authorization/v1beta1
pkg/client/clientset_generated/clientset/typed/autoscaling/v1
pkg/client/clientset_generated/clientset/typed/autoscaling/v2alpha1
pkg/client/clientset_generated/clientset/typed/batch/v1
pkg/client/clientset_generated/clientset/typed/batch/v2alpha1
pkg/client/clientset_generated/clientset/typed/certificates/v1beta1
pkg/client/clientset_generated/clientset/typed/core/v1
pkg/client/clientset_generated/clientset/typed/extensions/v1beta1
pkg/client/clientset_generated/clientset/typed/networking/v1
pkg/client/clientset_generated/clientset/typed/policy/v1beta1
pkg/client/clientset_generated/clientset/typed/rbac/v1alpha1
pkg/client/clientset_generated/clientset/typed/rbac/v1beta1
pkg/client/clientset_generated/clientset/typed/settings/v1alpha1
pkg/client/clientset_generated/clientset/typed/storage/v1
pkg/client/clientset_generated/clientset/typed/storage/v1beta1
pkg/client/clientset_generated/internalclientset
pkg/client/clientset_generated/internalclientset/scheme
pkg/client/clientset_generated/internalclientset/typed/admissionregistration/internalversion
pkg/client/clientset_generated/internalclientset/typed/apps/internalversion
pkg/client/clientset_generated/internalclientset/typed/authentication/internalversion
pkg/client/clientset_generated/internalclientset/typed/authorization/internalversion
pkg/client/clientset_generated/internalclientset/typed/autoscaling/internalversion
pkg/client/clientset_generated/internalclientset/typed/batch/internalversion
pkg/client/clientset_generated/internalclientset/typed/certificates/internalversion
pkg/client/clientset_generated/internalclientset/typed/core/internalversion
pkg/client/clientset_generated/internalclientset/typed/extensions/internalversion
pkg/client/clientset_generated/internalclientset/typed/networking/internalversion
pkg/client/clientset_generated/internalclientset/typed/policy/internalversion
pkg/client/clientset_generated/internalclientset/typed/rbac/internalversion
pkg/client/clientset_generated/internalclientset/typed/settings/internalversion
pkg/client/clientset_generated/internalclientset/typed/storage/internalversion
pkg/client/informers/informers_generated/externalversions/apps/v1beta1
pkg/client/informers/informers_generated/externalversions/core/v1
pkg/client/informers/informers_generated/externalversions/extensions/v1beta1
pkg/client/informers/informers_generated/externalversions/internalinterfaces