mirror of https://github.com/k3s-io/k3s
Merge pull request #66965 from deads2k/kubectl-08-internalfactoryclient
Automatic merge from submit-queue (batch tested with PRs 61389, 66817, 66903, 66675, 66965). If you want to cherry-pick this change to another branch, please follow the instructions <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/cherry-picks.md">here</a>. remove internal client factory method remove final uses of the internal client factory method. https://github.com/kubernetes/kubernetes/pull/66933 does the rolling updater, so this just snips it off and prevents anyone else from ever relying on it. @kubernetes/sig-cli-maintainers /assign @soltysh ```release-note NONE ```pull/8/head
commit
8a5e9ecf8f
|
@ -57,10 +57,8 @@ go_library(
|
|||
],
|
||||
deps = [
|
||||
"//pkg/api/legacyscheme:go_default_library",
|
||||
"//pkg/apis/certificates:go_default_library",
|
||||
"//pkg/apis/core:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset/typed/core/internalversion:go_default_library",
|
||||
"//pkg/kubectl:go_default_library",
|
||||
"//pkg/kubectl/apply/parse:go_default_library",
|
||||
"//pkg/kubectl/apply/strategy:go_default_library",
|
||||
|
@ -94,6 +92,7 @@ go_library(
|
|||
"//pkg/util/taints:go_default_library",
|
||||
"//pkg/version:go_default_library",
|
||||
"//staging/src/k8s.io/api/autoscaling/v1:go_default_library",
|
||||
"//staging/src/k8s.io/api/certificates/v1beta1:go_default_library",
|
||||
"//staging/src/k8s.io/api/core/v1:go_default_library",
|
||||
"//staging/src/k8s.io/api/policy/v1beta1:go_default_library",
|
||||
"//staging/src/k8s.io/apimachinery/pkg/api/errors:go_default_library",
|
||||
|
|
|
@ -20,12 +20,13 @@ import (
|
|||
"fmt"
|
||||
"io"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
certificatesv1beta1 "k8s.io/api/certificates/v1beta1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||
"k8s.io/kubernetes/pkg/apis/certificates"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
|
||||
|
@ -33,8 +34,6 @@ import (
|
|||
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
|
||||
"k8s.io/kubernetes/pkg/kubectl/scheme"
|
||||
"k8s.io/kubernetes/pkg/kubectl/util/i18n"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
)
|
||||
|
||||
func NewCmdCertificate(f cmdutil.Factory, ioStreams genericclioptions.IOStreams) *cobra.Command {
|
||||
|
@ -63,7 +62,7 @@ type CertificateOptions struct {
|
|||
csrNames []string
|
||||
outputStyle string
|
||||
|
||||
clientSet internalclientset.Interface
|
||||
clientSet kubernetes.Interface
|
||||
builder *resource.Builder
|
||||
|
||||
genericclioptions.IOStreams
|
||||
|
@ -83,7 +82,7 @@ func (o *CertificateOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, arg
|
|||
}
|
||||
|
||||
o.builder = f.NewBuilder()
|
||||
o.clientSet, err = f.ClientSet()
|
||||
o.clientSet, err = f.KubernetesClientSet()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -135,18 +134,18 @@ func NewCmdCertificateApprove(f cmdutil.Factory, ioStreams genericclioptions.IOS
|
|||
}
|
||||
|
||||
func (o *CertificateOptions) RunCertificateApprove(force bool) error {
|
||||
return o.modifyCertificateCondition(o.builder, o.clientSet, force, func(csr *certificates.CertificateSigningRequest) (*certificates.CertificateSigningRequest, bool) {
|
||||
return o.modifyCertificateCondition(o.builder, o.clientSet, force, func(csr *certificatesv1beta1.CertificateSigningRequest) (*certificatesv1beta1.CertificateSigningRequest, bool) {
|
||||
var alreadyApproved bool
|
||||
for _, c := range csr.Status.Conditions {
|
||||
if c.Type == certificates.CertificateApproved {
|
||||
if c.Type == certificatesv1beta1.CertificateApproved {
|
||||
alreadyApproved = true
|
||||
}
|
||||
}
|
||||
if alreadyApproved {
|
||||
return csr, true
|
||||
}
|
||||
csr.Status.Conditions = append(csr.Status.Conditions, certificates.CertificateSigningRequestCondition{
|
||||
Type: certificates.CertificateApproved,
|
||||
csr.Status.Conditions = append(csr.Status.Conditions, certificatesv1beta1.CertificateSigningRequestCondition{
|
||||
Type: certificatesv1beta1.CertificateApproved,
|
||||
Reason: "KubectlApprove",
|
||||
Message: "This CSR was approved by kubectl certificate approve.",
|
||||
LastUpdateTime: metav1.Now(),
|
||||
|
@ -187,18 +186,18 @@ func NewCmdCertificateDeny(f cmdutil.Factory, ioStreams genericclioptions.IOStre
|
|||
}
|
||||
|
||||
func (o *CertificateOptions) RunCertificateDeny(force bool) error {
|
||||
return o.modifyCertificateCondition(o.builder, o.clientSet, force, func(csr *certificates.CertificateSigningRequest) (*certificates.CertificateSigningRequest, bool) {
|
||||
return o.modifyCertificateCondition(o.builder, o.clientSet, force, func(csr *certificatesv1beta1.CertificateSigningRequest) (*certificatesv1beta1.CertificateSigningRequest, bool) {
|
||||
var alreadyDenied bool
|
||||
for _, c := range csr.Status.Conditions {
|
||||
if c.Type == certificates.CertificateDenied {
|
||||
if c.Type == certificatesv1beta1.CertificateDenied {
|
||||
alreadyDenied = true
|
||||
}
|
||||
}
|
||||
if alreadyDenied {
|
||||
return csr, true
|
||||
}
|
||||
csr.Status.Conditions = append(csr.Status.Conditions, certificates.CertificateSigningRequestCondition{
|
||||
Type: certificates.CertificateDenied,
|
||||
csr.Status.Conditions = append(csr.Status.Conditions, certificatesv1beta1.CertificateSigningRequestCondition{
|
||||
Type: certificatesv1beta1.CertificateDenied,
|
||||
Reason: "KubectlDeny",
|
||||
Message: "This CSR was denied by kubectl certificate deny.",
|
||||
LastUpdateTime: metav1.Now(),
|
||||
|
@ -207,10 +206,10 @@ func (o *CertificateOptions) RunCertificateDeny(force bool) error {
|
|||
})
|
||||
}
|
||||
|
||||
func (options *CertificateOptions) modifyCertificateCondition(builder *resource.Builder, clientSet internalclientset.Interface, force bool, modify func(csr *certificates.CertificateSigningRequest) (*certificates.CertificateSigningRequest, bool)) error {
|
||||
func (options *CertificateOptions) modifyCertificateCondition(builder *resource.Builder, clientSet kubernetes.Interface, force bool, modify func(csr *certificatesv1beta1.CertificateSigningRequest) (*certificatesv1beta1.CertificateSigningRequest, bool)) error {
|
||||
var found int
|
||||
r := builder.
|
||||
WithScheme(legacyscheme.Scheme).
|
||||
WithScheme(scheme.Scheme, scheme.Scheme.PrioritizedVersionsAllGroups()...).
|
||||
ContinueOnError().
|
||||
FilenameParam(false, &options.FilenameOptions).
|
||||
ResourceNames("certificatesigningrequest", options.csrNames...).
|
||||
|
@ -223,7 +222,7 @@ func (options *CertificateOptions) modifyCertificateCondition(builder *resource.
|
|||
return err
|
||||
}
|
||||
for i := 0; ; i++ {
|
||||
csr := info.Object.(*certificates.CertificateSigningRequest)
|
||||
csr := info.Object.(*certificatesv1beta1.CertificateSigningRequest)
|
||||
csr, hasCondition := modify(csr)
|
||||
if !hasCondition || force {
|
||||
csr, err = clientSet.Certificates().
|
||||
|
|
|
@ -28,14 +28,13 @@ import (
|
|||
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"k8s.io/api/core/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/client-go/kubernetes/scheme"
|
||||
corev1client "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||
restclient "k8s.io/client-go/rest"
|
||||
"k8s.io/client-go/tools/portforward"
|
||||
"k8s.io/client-go/transport/spdy"
|
||||
api "k8s.io/kubernetes/pkg/apis/core"
|
||||
coreclient "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/core/internalversion"
|
||||
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
|
||||
|
@ -50,7 +49,7 @@ type PortForwardOptions struct {
|
|||
PodName string
|
||||
RESTClient *restclient.RESTClient
|
||||
Config *restclient.Config
|
||||
PodClient coreclient.PodsGetter
|
||||
PodClient corev1client.PodsGetter
|
||||
Ports []string
|
||||
PortForwarder portForwarder
|
||||
StopChannel chan struct{}
|
||||
|
@ -143,7 +142,7 @@ func (f *defaultPortForwarder) ForwardPorts(method string, url *url.URL, opts Po
|
|||
// It rewrites ports as needed if the Service port declares targetPort.
|
||||
// It returns an error when a named targetPort can't find a match in the pod, or the Service did not declare
|
||||
// the port.
|
||||
func translateServicePortToTargetPort(ports []string, svc v1.Service, pod v1.Pod) ([]string, error) {
|
||||
func translateServicePortToTargetPort(ports []string, svc corev1.Service, pod corev1.Pod) ([]string, error) {
|
||||
var translated []string
|
||||
for _, port := range ports {
|
||||
// port is in the form of [LOCAL PORT]:REMOTE PORT
|
||||
|
@ -210,7 +209,7 @@ func (o *PortForwardOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, arg
|
|||
|
||||
// handle service port mapping to target port if needed
|
||||
switch t := obj.(type) {
|
||||
case *v1.Service:
|
||||
case *corev1.Service:
|
||||
o.Ports, err = translateServicePortToTargetPort(args[1:], *t, *forwardablePod)
|
||||
if err != nil {
|
||||
return err
|
||||
|
@ -219,12 +218,12 @@ func (o *PortForwardOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, arg
|
|||
o.Ports = args[1:]
|
||||
}
|
||||
|
||||
clientset, err := f.ClientSet()
|
||||
clientset, err := f.KubernetesClientSet()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
o.PodClient = clientset.Core()
|
||||
o.PodClient = clientset.CoreV1()
|
||||
|
||||
o.Config, err = f.ToRESTConfig()
|
||||
if err != nil {
|
||||
|
@ -263,7 +262,7 @@ func (o PortForwardOptions) RunPortForward() error {
|
|||
return err
|
||||
}
|
||||
|
||||
if pod.Status.Phase != api.PodRunning {
|
||||
if pod.Status.Phase != corev1.PodRunning {
|
||||
return fmt.Errorf("unable to forward port because pod is not running. Current status=%v", pod.Status.Phase)
|
||||
}
|
||||
|
||||
|
|
|
@ -219,7 +219,11 @@ func (o *RollingUpdateOptions) Complete(f cmdutil.Factory, cmd *cobra.Command, a
|
|||
return err
|
||||
}
|
||||
|
||||
o.ClientSet, err = f.ClientSet()
|
||||
clientConfig, err := f.ToRESTConfig()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
o.ClientSet, err = internalclientset.NewForConfig(clientConfig)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
|
|
@ -33,9 +33,8 @@ import (
|
|||
"k8s.io/apimachinery/pkg/watch"
|
||||
"k8s.io/client-go/dynamic"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
coreclientv1 "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||
corev1client "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||
api "k8s.io/kubernetes/pkg/apis/core"
|
||||
"k8s.io/kubernetes/pkg/kubectl"
|
||||
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||
|
@ -274,7 +273,7 @@ func (o *RunOptions) Run(f cmdutil.Factory, cmd *cobra.Command, args []string) e
|
|||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if restartPolicy != api.RestartPolicyAlways && replicas != 1 {
|
||||
if restartPolicy != corev1.RestartPolicyAlways && replicas != 1 {
|
||||
return cmdutil.UsageErrorf(cmd, "--restart=%s requires that --replicas=1, found %d", restartPolicy, replicas)
|
||||
}
|
||||
|
||||
|
@ -291,7 +290,7 @@ func (o *RunOptions) Run(f cmdutil.Factory, cmd *cobra.Command, args []string) e
|
|||
return err
|
||||
}
|
||||
|
||||
clientset, err := f.ClientSet()
|
||||
clientset, err := f.KubernetesClientSet()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
@ -302,11 +301,11 @@ func (o *RunOptions) Run(f cmdutil.Factory, cmd *cobra.Command, args []string) e
|
|||
}
|
||||
if len(generatorName) == 0 {
|
||||
switch restartPolicy {
|
||||
case api.RestartPolicyAlways:
|
||||
case corev1.RestartPolicyAlways:
|
||||
generatorName = cmdutil.DeploymentAppsV1Beta1GeneratorName
|
||||
case api.RestartPolicyOnFailure:
|
||||
case corev1.RestartPolicyOnFailure:
|
||||
generatorName = cmdutil.JobV1GeneratorName
|
||||
case api.RestartPolicyNever:
|
||||
case corev1.RestartPolicyNever:
|
||||
generatorName = cmdutil.RunPodV1GeneratorName
|
||||
}
|
||||
|
||||
|
@ -397,7 +396,7 @@ func (o *RunOptions) Run(f cmdutil.Factory, cmd *cobra.Command, args []string) e
|
|||
|
||||
var pod *corev1.Pod
|
||||
leaveStdinOpen := o.LeaveStdinOpen
|
||||
waitForExitCode := !leaveStdinOpen && restartPolicy == api.RestartPolicyNever
|
||||
waitForExitCode := !leaveStdinOpen && restartPolicy == corev1.RestartPolicyNever
|
||||
if waitForExitCode {
|
||||
pod, err = waitForPod(clientset.CoreV1(), attachablePod.Namespace, attachablePod.Name, kubectl.PodCompleted)
|
||||
if err != nil {
|
||||
|
@ -468,7 +467,7 @@ func (o *RunOptions) removeCreatedObjects(f cmdutil.Factory, createdObjects []*R
|
|||
}
|
||||
|
||||
// waitForPod watches the given pod until the exitCondition is true
|
||||
func waitForPod(podClient coreclientv1.PodsGetter, ns, name string, exitCondition watch.ConditionFunc) (*corev1.Pod, error) {
|
||||
func waitForPod(podClient corev1client.PodsGetter, ns, name string, exitCondition watch.ConditionFunc) (*corev1.Pod, error) {
|
||||
w, err := podClient.Pods(ns).Watch(metav1.SingleObject(metav1.ObjectMeta{Name: name}))
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
@ -488,13 +487,13 @@ func waitForPod(podClient coreclientv1.PodsGetter, ns, name string, exitConditio
|
|||
|
||||
// Fix generic not found error.
|
||||
if err != nil && errors.IsNotFound(err) {
|
||||
err = errors.NewNotFound(api.Resource("pods"), name)
|
||||
err = errors.NewNotFound(corev1.Resource("pods"), name)
|
||||
}
|
||||
|
||||
return result, err
|
||||
}
|
||||
|
||||
func handleAttachPod(f cmdutil.Factory, podClient coreclientv1.PodsGetter, ns, name string, opts *AttachOptions) error {
|
||||
func handleAttachPod(f cmdutil.Factory, podClient corev1client.PodsGetter, ns, name string, opts *AttachOptions) error {
|
||||
pod, err := waitForPod(podClient, ns, name, kubectl.PodRunningAndReady)
|
||||
if err != nil && err != kubectl.ErrPodCompleted {
|
||||
return err
|
||||
|
@ -539,30 +538,30 @@ func logOpts(restClientGetter genericclioptions.RESTClientGetter, pod *corev1.Po
|
|||
return nil
|
||||
}
|
||||
|
||||
func getRestartPolicy(cmd *cobra.Command, interactive bool) (api.RestartPolicy, error) {
|
||||
func getRestartPolicy(cmd *cobra.Command, interactive bool) (corev1.RestartPolicy, error) {
|
||||
restart := cmdutil.GetFlagString(cmd, "restart")
|
||||
if len(restart) == 0 {
|
||||
if interactive {
|
||||
return api.RestartPolicyOnFailure, nil
|
||||
return corev1.RestartPolicyOnFailure, nil
|
||||
} else {
|
||||
return api.RestartPolicyAlways, nil
|
||||
return corev1.RestartPolicyAlways, nil
|
||||
}
|
||||
}
|
||||
switch api.RestartPolicy(restart) {
|
||||
case api.RestartPolicyAlways:
|
||||
return api.RestartPolicyAlways, nil
|
||||
case api.RestartPolicyOnFailure:
|
||||
return api.RestartPolicyOnFailure, nil
|
||||
case api.RestartPolicyNever:
|
||||
return api.RestartPolicyNever, nil
|
||||
switch corev1.RestartPolicy(restart) {
|
||||
case corev1.RestartPolicyAlways:
|
||||
return corev1.RestartPolicyAlways, nil
|
||||
case corev1.RestartPolicyOnFailure:
|
||||
return corev1.RestartPolicyOnFailure, nil
|
||||
case corev1.RestartPolicyNever:
|
||||
return corev1.RestartPolicyNever, nil
|
||||
}
|
||||
return "", cmdutil.UsageErrorf(cmd, "invalid restart policy: %s", restart)
|
||||
}
|
||||
|
||||
func verifyImagePullPolicy(cmd *cobra.Command) error {
|
||||
pullPolicy := cmdutil.GetFlagString(cmd, "image-pull-policy")
|
||||
switch api.PullPolicy(pullPolicy) {
|
||||
case api.PullAlways, api.PullIfNotPresent, api.PullNever:
|
||||
switch corev1.PullPolicy(pullPolicy) {
|
||||
case corev1.PullAlways, corev1.PullIfNotPresent, corev1.PullNever:
|
||||
return nil
|
||||
case "":
|
||||
return nil
|
||||
|
|
|
@ -29,6 +29,7 @@ import (
|
|||
"github.com/spf13/cobra"
|
||||
|
||||
"k8s.io/api/core/v1"
|
||||
corev1 "k8s.io/api/core/v1"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
|
@ -54,35 +55,35 @@ func TestGetRestartPolicy(t *testing.T) {
|
|||
tests := []struct {
|
||||
input string
|
||||
interactive bool
|
||||
expected api.RestartPolicy
|
||||
expected corev1.RestartPolicy
|
||||
expectErr bool
|
||||
}{
|
||||
{
|
||||
input: "",
|
||||
expected: api.RestartPolicyAlways,
|
||||
expected: corev1.RestartPolicyAlways,
|
||||
},
|
||||
{
|
||||
input: "",
|
||||
interactive: true,
|
||||
expected: api.RestartPolicyOnFailure,
|
||||
expected: corev1.RestartPolicyOnFailure,
|
||||
},
|
||||
{
|
||||
input: string(api.RestartPolicyAlways),
|
||||
input: string(corev1.RestartPolicyAlways),
|
||||
interactive: true,
|
||||
expected: api.RestartPolicyAlways,
|
||||
expected: corev1.RestartPolicyAlways,
|
||||
},
|
||||
{
|
||||
input: string(api.RestartPolicyNever),
|
||||
input: string(corev1.RestartPolicyNever),
|
||||
interactive: true,
|
||||
expected: api.RestartPolicyNever,
|
||||
expected: corev1.RestartPolicyNever,
|
||||
},
|
||||
{
|
||||
input: string(api.RestartPolicyAlways),
|
||||
expected: api.RestartPolicyAlways,
|
||||
input: string(corev1.RestartPolicyAlways),
|
||||
expected: corev1.RestartPolicyAlways,
|
||||
},
|
||||
{
|
||||
input: string(api.RestartPolicyNever),
|
||||
expected: api.RestartPolicyNever,
|
||||
input: string(corev1.RestartPolicyNever),
|
||||
expected: corev1.RestartPolicyNever,
|
||||
},
|
||||
{
|
||||
input: "foo",
|
||||
|
@ -234,7 +235,6 @@ func TestRunArgsFollowDashRules(t *testing.T) {
|
|||
}
|
||||
|
||||
func TestGenerateService(t *testing.T) {
|
||||
|
||||
tests := []struct {
|
||||
port string
|
||||
args []string
|
||||
|
|
|
@ -10,7 +10,6 @@ go_library(
|
|||
visibility = ["//build/visible_to:pkg_kubectl_cmd_testing_CONSUMERS"],
|
||||
deps = [
|
||||
"//pkg/api/legacyscheme:go_default_library",
|
||||
"//pkg/client/clientset_generated/internalclientset:go_default_library",
|
||||
"//pkg/kubectl:go_default_library",
|
||||
"//pkg/kubectl/cmd/util:go_default_library",
|
||||
"//pkg/kubectl/cmd/util/openapi:go_default_library",
|
||||
|
|
|
@ -42,7 +42,6 @@ import (
|
|||
"k8s.io/client-go/tools/clientcmd"
|
||||
clientcmdapi "k8s.io/client-go/tools/clientcmd/api"
|
||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||
"k8s.io/kubernetes/pkg/kubectl"
|
||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
|
||||
|
@ -366,26 +365,6 @@ func (f *TestFactory) KubernetesClientSet() (*kubernetes.Clientset, error) {
|
|||
return clientset, nil
|
||||
}
|
||||
|
||||
func (f *TestFactory) ClientSet() (internalclientset.Interface, error) {
|
||||
// Swap the HTTP client out of the REST client with the fake
|
||||
// version.
|
||||
fakeClient := f.Client.(*fake.RESTClient)
|
||||
clientset := internalclientset.NewForConfigOrDie(f.ClientConfigVal)
|
||||
clientset.Core().RESTClient().(*restclient.RESTClient).Client = fakeClient.Client
|
||||
clientset.Authentication().RESTClient().(*restclient.RESTClient).Client = fakeClient.Client
|
||||
clientset.Authorization().RESTClient().(*restclient.RESTClient).Client = fakeClient.Client
|
||||
clientset.Autoscaling().RESTClient().(*restclient.RESTClient).Client = fakeClient.Client
|
||||
clientset.Batch().RESTClient().(*restclient.RESTClient).Client = fakeClient.Client
|
||||
clientset.Certificates().RESTClient().(*restclient.RESTClient).Client = fakeClient.Client
|
||||
clientset.Extensions().RESTClient().(*restclient.RESTClient).Client = fakeClient.Client
|
||||
clientset.Rbac().RESTClient().(*restclient.RESTClient).Client = fakeClient.Client
|
||||
clientset.Storage().RESTClient().(*restclient.RESTClient).Client = fakeClient.Client
|
||||
clientset.Apps().RESTClient().(*restclient.RESTClient).Client = fakeClient.Client
|
||||
clientset.Policy().RESTClient().(*restclient.RESTClient).Client = fakeClient.Client
|
||||
clientset.DiscoveryClient.RESTClient().(*restclient.RESTClient).Client = fakeClient.Client
|
||||
return clientset, nil
|
||||
}
|
||||
|
||||
func (f *TestFactory) DynamicClient() (dynamic.Interface, error) {
|
||||
if f.FakeDynamicClient != nil {
|
||||
return f.FakeDynamicClient, nil
|
||||
|
|
|
@ -25,7 +25,7 @@ import (
|
|||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/client-go/discovery"
|
||||
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||
corev1client "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
|
||||
|
@ -40,7 +40,7 @@ import (
|
|||
type TopNodeOptions struct {
|
||||
ResourceName string
|
||||
Selector string
|
||||
NodeClient corev1.CoreV1Interface
|
||||
NodeClient corev1client.CoreV1Interface
|
||||
HeapsterOptions HeapsterTopOptions
|
||||
Client *metricsutil.HeapsterMetricsClient
|
||||
Printer *metricsutil.TopCmdPrinter
|
||||
|
|
|
@ -25,7 +25,7 @@ import (
|
|||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/client-go/discovery"
|
||||
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||
corev1client "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||
"k8s.io/kubernetes/pkg/kubectl/cmd/templates"
|
||||
cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util"
|
||||
"k8s.io/kubernetes/pkg/kubectl/metricsutil"
|
||||
|
@ -45,7 +45,7 @@ type TopPodOptions struct {
|
|||
Selector string
|
||||
AllNamespaces bool
|
||||
PrintContainers bool
|
||||
PodClient corev1.PodsGetter
|
||||
PodClient corev1client.PodsGetter
|
||||
HeapsterOptions HeapsterTopOptions
|
||||
Client *metricsutil.HeapsterMetricsClient
|
||||
Printer *metricsutil.TopCmdPrinter
|
||||
|
|
|
@ -21,7 +21,6 @@ import (
|
|||
"k8s.io/client-go/dynamic"
|
||||
"k8s.io/client-go/kubernetes"
|
||||
restclient "k8s.io/client-go/rest"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
|
||||
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
|
||||
"k8s.io/kubernetes/pkg/kubectl/genericclioptions/resource"
|
||||
|
@ -41,9 +40,6 @@ import (
|
|||
type Factory interface {
|
||||
genericclioptions.RESTClientGetter
|
||||
|
||||
// ClientSet gives you back an internal, generated clientset
|
||||
ClientSet() (internalclientset.Interface, error)
|
||||
|
||||
// DynamicClient returns a dynamic client ready for use
|
||||
DynamicClient() (dynamic.Interface, error)
|
||||
|
||||
|
|
|
@ -31,7 +31,6 @@ import (
|
|||
"k8s.io/client-go/tools/clientcmd"
|
||||
"k8s.io/kubernetes/pkg/api/legacyscheme"
|
||||
api "k8s.io/kubernetes/pkg/apis/core"
|
||||
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
|
||||
"k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi"
|
||||
openapivalidation "k8s.io/kubernetes/pkg/kubectl/cmd/util/openapi/validation"
|
||||
"k8s.io/kubernetes/pkg/kubectl/genericclioptions"
|
||||
|
@ -87,14 +86,6 @@ func (f *factoryImpl) KubernetesClientSet() (*kubernetes.Clientset, error) {
|
|||
return kubernetes.NewForConfig(clientConfig)
|
||||
}
|
||||
|
||||
func (f *factoryImpl) ClientSet() (internalclientset.Interface, error) {
|
||||
clientConfig, err := f.ToRESTConfig()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return internalclientset.NewForConfig(clientConfig)
|
||||
}
|
||||
|
||||
func (f *factoryImpl) DynamicClient() (dynamic.Interface, error) {
|
||||
clientConfig, err := f.ToRESTConfig()
|
||||
if err != nil {
|
||||
|
|
|
@ -24,7 +24,7 @@ import (
|
|||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/labels"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
corev1 "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||
corev1client "k8s.io/client-go/kubernetes/typed/core/v1"
|
||||
"k8s.io/kubernetes/pkg/apis/core/validation"
|
||||
metricsapi "k8s.io/metrics/pkg/apis/metrics"
|
||||
metricsv1alpha1api "k8s.io/metrics/pkg/apis/metrics/v1alpha1"
|
||||
|
@ -47,14 +47,14 @@ var (
|
|||
)
|
||||
|
||||
type HeapsterMetricsClient struct {
|
||||
SVCClient corev1.ServicesGetter
|
||||
SVCClient corev1client.ServicesGetter
|
||||
HeapsterNamespace string
|
||||
HeapsterScheme string
|
||||
HeapsterService string
|
||||
HeapsterPort string
|
||||
}
|
||||
|
||||
func NewHeapsterMetricsClient(svcClient corev1.ServicesGetter, namespace, scheme, service, port string) *HeapsterMetricsClient {
|
||||
func NewHeapsterMetricsClient(svcClient corev1client.ServicesGetter, namespace, scheme, service, port string) *HeapsterMetricsClient {
|
||||
return &HeapsterMetricsClient{
|
||||
SVCClient: svcClient,
|
||||
HeapsterNamespace: namespace,
|
||||
|
@ -64,10 +64,6 @@ func NewHeapsterMetricsClient(svcClient corev1.ServicesGetter, namespace, scheme
|
|||
}
|
||||
}
|
||||
|
||||
func DefaultHeapsterMetricsClient(svcClient corev1.ServicesGetter) *HeapsterMetricsClient {
|
||||
return NewHeapsterMetricsClient(svcClient, DefaultHeapsterNamespace, DefaultHeapsterScheme, DefaultHeapsterService, DefaultHeapsterPort)
|
||||
}
|
||||
|
||||
func podMetricsUrl(namespace string, name string) (string, error) {
|
||||
if namespace == metav1.NamespaceAll {
|
||||
return fmt.Sprintf("%s/pods", metricsRoot), nil
|
||||
|
|
Loading…
Reference in New Issue