Skip to content

Commit

Permalink
Merge pull request #33334 from caesarxuchao/copy-auth-plugin
Browse files Browse the repository at this point in the history
Automatic merge from submit-queue

Copy auth plugin to client-go repo

client-go doesn't copy the [auth plugin](https://github.com/kubernetes/kubernetes/blob/master/plugin/pkg/client/auth/plugins.go). This causes user cannot access cluster run by GKE. User will see error "No Auth Provider found for name gcp".

This PR fixes this issue. It's marked as WIP because I'll need to rebase after #32906 gets merged. Also, the fix needs to be cherry-picked into 1.4 branch to update client-go/1.4.
  • Loading branch information
Kubernetes Submit Queue committed Sep 27, 2016
2 parents 69fd1e0 + a397e30 commit 1e7fa1f
Show file tree
Hide file tree
Showing 278 changed files with 33,590 additions and 4,126 deletions.
Expand Up @@ -64,6 +64,8 @@ func (g *genClientset) Imports(c *generator.Context) (imports []string) {
}
imports = append(imports, "github.com/golang/glog")
imports = append(imports, "k8s.io/kubernetes/pkg/util/flowcontrol")
// import solely to initialize client auth plugins.
imports = append(imports, "_ \"k8s.io/kubernetes/plugin/pkg/client/auth\"")
return
}

Expand Down
Expand Up @@ -22,6 +22,7 @@ import (
restclient "k8s.io/kubernetes/pkg/client/restclient"
discovery "k8s.io/kubernetes/pkg/client/typed/discovery"
"k8s.io/kubernetes/pkg/util/flowcontrol"
_ "k8s.io/kubernetes/plugin/pkg/client/auth"
)

type Interface interface {
Expand Down
Expand Up @@ -24,6 +24,7 @@ import (
restclient "k8s.io/kubernetes/pkg/client/restclient"
discovery "k8s.io/kubernetes/pkg/client/typed/discovery"
"k8s.io/kubernetes/pkg/util/flowcontrol"
_ "k8s.io/kubernetes/plugin/pkg/client/auth"
)

type Interface interface {
Expand Down
Expand Up @@ -24,6 +24,7 @@ import (
restclient "k8s.io/kubernetes/pkg/client/restclient"
discovery "k8s.io/kubernetes/pkg/client/typed/discovery"
"k8s.io/kubernetes/pkg/util/flowcontrol"
_ "k8s.io/kubernetes/plugin/pkg/client/auth"
)

type Interface interface {
Expand Down
Expand Up @@ -32,6 +32,7 @@ import (
restclient "k8s.io/kubernetes/pkg/client/restclient"
discovery "k8s.io/kubernetes/pkg/client/typed/discovery"
"k8s.io/kubernetes/pkg/util/flowcontrol"
_ "k8s.io/kubernetes/plugin/pkg/client/auth"
)

type Interface interface {
Expand Down
1 change: 1 addition & 0 deletions pkg/client/clientset_generated/release_1_5/clientset.go
Expand Up @@ -32,6 +32,7 @@ import (
restclient "k8s.io/kubernetes/pkg/client/restclient"
discovery "k8s.io/kubernetes/pkg/client/typed/discovery"
"k8s.io/kubernetes/pkg/util/flowcontrol"
_ "k8s.io/kubernetes/plugin/pkg/client/auth"
)

type Interface interface {
Expand Down
Expand Up @@ -22,11 +22,15 @@ import (

_ "k8s.io/kubernetes/pkg/api/install"
"k8s.io/kubernetes/pkg/apimachinery/registered"
_ "k8s.io/kubernetes/pkg/apis/apps/install"
_ "k8s.io/kubernetes/pkg/apis/authentication/install"
_ "k8s.io/kubernetes/pkg/apis/authorization/install"
_ "k8s.io/kubernetes/pkg/apis/autoscaling/install"
_ "k8s.io/kubernetes/pkg/apis/batch/install"
_ "k8s.io/kubernetes/pkg/apis/certificates/install"
_ "k8s.io/kubernetes/pkg/apis/extensions/install"
_ "k8s.io/kubernetes/pkg/apis/policy/install"
_ "k8s.io/kubernetes/pkg/apis/rbac/install"
_ "k8s.io/kubernetes/pkg/apis/storage/install"
)

Expand Down
14 changes: 0 additions & 14 deletions plugin/pkg/client/auth/gcp/gcp.go
Expand Up @@ -24,18 +24,13 @@ import (
"golang.org/x/net/context"
"golang.org/x/oauth2"
"golang.org/x/oauth2/google"

clientreporestclient "k8s.io/client-go/1.5/rest"
"k8s.io/kubernetes/pkg/client/restclient"
)

func init() {
if err := restclient.RegisterAuthProviderPlugin("gcp", newGCPAuthProvider); err != nil {
glog.Fatalf("Failed to register gcp auth plugin: %v", err)
}
if err := clientreporestclient.RegisterAuthProviderPlugin("gcp", newGCPAuthProviderForClientRepo); err != nil {
glog.Fatalf("Failed to register gcp auth plugin: %v", err)
}
}

type gcpAuthProvider struct {
Expand All @@ -51,15 +46,6 @@ func newGCPAuthProvider(_ string, gcpConfig map[string]string, persister restcli
return &gcpAuthProvider{ts, persister}, nil
}

// newGCPAuthProviderForClientRepo is the same as newGCPAuthProvider, but is programmed against client-go's interface
func newGCPAuthProviderForClientRepo(_ string, gcpConfig map[string]string, persister clientreporestclient.AuthProviderConfigPersister) (clientreporestclient.AuthProvider, error) {
ts, err := newCachedTokenSource(gcpConfig["access-token"], gcpConfig["expiry"], persister)
if err != nil {
return nil, err
}
return &gcpAuthProvider{ts, persister}, nil
}

func (g *gcpAuthProvider) WrapTransport(rt http.RoundTripper) http.RoundTripper {
return &oauth2.Transport{
Source: g.tokenSource,
Expand Down
2 changes: 1 addition & 1 deletion plugin/pkg/client/auth/plugins.go
Expand Up @@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/

package plugins
package auth

import (
// Initialize all known client auth plugins.
Expand Down
109 changes: 109 additions & 0 deletions staging/src/k8s.io/client-go/1.5/Godeps/Godeps.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

0 comments on commit 1e7fa1f

Please sign in to comment.