mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-01-05 07:27:21 +00:00
Merge pull request #28955 from dims/roadmap-extend-all
Automatic merge from submit-queue Extend all to more resources Added more things from the list here: https://github.com/kubernetes/kubernetes/blob/master/pkg/kubectl/cmd/cmd.go#L159 Note, did not add events as it did not seem useful to me. Since this is just a list of messages generated by the system. Related to a suggestion in issue #22337
This commit is contained in:
@@ -236,12 +236,53 @@ func makeInterfacesFor(versionList []unversioned.GroupVersion) func(version unve
|
||||
}
|
||||
}
|
||||
|
||||
func DiscoveryRESTMapper(clients *ClientCache, delegate meta.RESTMapper) kubectl.ShortcutExpander {
|
||||
defaultMapper := kubectl.NewShortcutExpander(delegate)
|
||||
if clients == nil {
|
||||
return defaultMapper
|
||||
}
|
||||
|
||||
client, err := clients.ClientForVersion(&unversioned.GroupVersion{Version: "v1"})
|
||||
if err != nil {
|
||||
return defaultMapper
|
||||
}
|
||||
|
||||
// Check if we have access to server resources
|
||||
apiResources, err := client.Discovery().ServerResources()
|
||||
if err != nil {
|
||||
return defaultMapper
|
||||
}
|
||||
|
||||
availableResources := []unversioned.GroupVersionResource{}
|
||||
for groupVersionString, resourceList := range apiResources {
|
||||
currVersion, err := unversioned.ParseGroupVersion(groupVersionString)
|
||||
if err != nil {
|
||||
return defaultMapper
|
||||
}
|
||||
|
||||
for _, resource := range resourceList.APIResources {
|
||||
availableResources = append(availableResources, currVersion.WithResource(resource.Name))
|
||||
}
|
||||
}
|
||||
|
||||
availableAll := []unversioned.GroupResource{}
|
||||
for _, requestedResource := range defaultMapper.All {
|
||||
for _, availableResource := range availableResources {
|
||||
if requestedResource.Group == availableResource.Group &&
|
||||
requestedResource.Resource == availableResource.Resource {
|
||||
availableAll = append(availableAll, requestedResource)
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return kubectl.ShortcutExpander{All: availableAll, RESTMapper: delegate}
|
||||
}
|
||||
|
||||
// NewFactory creates a factory with the default Kubernetes resources defined
|
||||
// if optionalClientConfig is nil, then flags will be bound to a new clientcmd.ClientConfig.
|
||||
// if optionalClientConfig is not nil, then this factory will make use of it.
|
||||
func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
|
||||
mapper := kubectl.ShortcutExpander{RESTMapper: registered.RESTMapper()}
|
||||
|
||||
flags := pflag.NewFlagSet("", pflag.ContinueOnError)
|
||||
flags.SetNormalizeFunc(utilflag.WarnWordSepNormalizeFunc) // Warn for "_" flags
|
||||
|
||||
@@ -251,6 +292,7 @@ func NewFactory(optionalClientConfig clientcmd.ClientConfig) *Factory {
|
||||
}
|
||||
|
||||
clients := NewClientCache(clientConfig)
|
||||
mapper := DiscoveryRESTMapper(clients, registered.RESTMapper())
|
||||
|
||||
return &Factory{
|
||||
clients: clients,
|
||||
|
||||
Reference in New Issue
Block a user