diff --git a/cmd/kubeadm/app/api/defaults.go b/cmd/kubeadm/app/apis/kubeadm/defaults.go similarity index 100% rename from cmd/kubeadm/app/api/defaults.go rename to cmd/kubeadm/app/apis/kubeadm/defaults.go diff --git a/cmd/kubeadm/app/api/validation.go b/cmd/kubeadm/app/apis/kubeadm/docs.go similarity index 73% rename from cmd/kubeadm/app/api/validation.go rename to cmd/kubeadm/app/apis/kubeadm/docs.go index 98cb5b4b46e..49371d8870c 100644 --- a/cmd/kubeadm/app/api/validation.go +++ b/cmd/kubeadm/app/apis/kubeadm/docs.go @@ -14,12 +14,8 @@ See the License for the specific language governing permissions and limitations under the License. */ -package api +// +k8s:deepcopy-gen=package,register +// +k8s:conversion-gen=k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm -func ValidateMasterConfiguration(o *MasterConfiguration) error { - return nil -} - -func ValidateNodeConfiguration(o *MasterConfiguration) error { - return nil -} +// +groupName=kubeadm.k8s.io +package api // import "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" diff --git a/cmd/kubeadm/app/api/env.go b/cmd/kubeadm/app/apis/kubeadm/env.go similarity index 100% rename from cmd/kubeadm/app/api/env.go rename to cmd/kubeadm/app/apis/kubeadm/env.go diff --git a/cmd/kubeadm/app/apis/kubeadm/register.go b/cmd/kubeadm/app/apis/kubeadm/register.go new file mode 100644 index 00000000000..7ac27c5eddf --- /dev/null +++ b/cmd/kubeadm/app/apis/kubeadm/register.go @@ -0,0 +1,56 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package api + +import ( + "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/kubernetes/pkg/runtime" +) + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = SchemeBuilder.AddToScheme +) + +// GroupName is the group name use in this package +const GroupName = "kubeadm" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: runtime.APIVersionInternal} + +// Kind takes an unqualified kind and returns a Group qualified GroupKind +func Kind(kind string) unversioned.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) unversioned.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &MasterConfiguration{}, + &NodeConfiguration{}, + &ClusterInfo{}, + ) + return nil +} + +func (obj *MasterConfiguration) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *NodeConfiguration) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *ClusterInfo) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } diff --git a/cmd/kubeadm/app/api/types.go b/cmd/kubeadm/app/apis/kubeadm/types.go similarity index 100% rename from cmd/kubeadm/app/api/types.go rename to cmd/kubeadm/app/apis/kubeadm/types.go diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/docs.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/docs.go new file mode 100644 index 00000000000..7a7588a7a0a --- /dev/null +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/docs.go @@ -0,0 +1,21 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +// +k8s:deepcopy-gen=package,register +// +k8s:conversion-gen=k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm + +// +groupName=kubeadm.k8s.io +package v1alpha1 // import "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1alpha1" diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/register.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/register.go new file mode 100644 index 00000000000..25aab8ec14c --- /dev/null +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/register.go @@ -0,0 +1,56 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1alpha1 + +import ( + "k8s.io/kubernetes/pkg/api/unversioned" + "k8s.io/kubernetes/pkg/runtime" +) + +var ( + SchemeBuilder = runtime.NewSchemeBuilder(addKnownTypes) + AddToScheme = SchemeBuilder.AddToScheme +) + +// GroupName is the group name use in this package +const GroupName = "kubeadm" + +// SchemeGroupVersion is group version used to register these objects +var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1alpha1"} + +// Kind takes an unqualified kind and returns a Group qualified GroupKind +func Kind(kind string) unversioned.GroupKind { + return SchemeGroupVersion.WithKind(kind).GroupKind() +} + +// Resource takes an unqualified resource and returns a Group qualified GroupResource +func Resource(resource string) unversioned.GroupResource { + return SchemeGroupVersion.WithResource(resource).GroupResource() +} + +func addKnownTypes(scheme *runtime.Scheme) error { + scheme.AddKnownTypes(SchemeGroupVersion, + &MasterConfiguration{}, + &NodeConfiguration{}, + &ClusterInfo{}, + ) + return nil +} + +func (obj *MasterConfiguration) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *NodeConfiguration) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } +func (obj *ClusterInfo) GetObjectKind() unversioned.ObjectKind { return &obj.TypeMeta } diff --git a/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go new file mode 100644 index 00000000000..218681fe27a --- /dev/null +++ b/cmd/kubeadm/app/apis/kubeadm/v1alpha1/types.go @@ -0,0 +1,68 @@ +/* +Copyright 2016 The Kubernetes Authors. + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. +*/ + +package v1alpha1 + +import "k8s.io/kubernetes/pkg/api/unversioned" + +type MasterConfiguration struct { + unversioned.TypeMeta + + Secrets Secrets `json:"secrets"` + API API `json:"api"` + Networking Networking `json:"networking"` + KubernetesVersion string `json:"kubernetesVersion"` + CloudProvider string `json:"cloudProvider"` +} + +type API struct { + AdvertiseAddresses []string `json:"advertiseAddresses"` + ExternalDNSNames []string `json:"externalDNSNames"` +} + +type Networking struct { + ServiceSubnet string `json:"serviceSubnet"` + PodSubnet string `json:"podSubnet"` + DNSDomain string `json:"dnsDomain"` +} + +type Etcd struct { + Endpoints []string `json:"endpoints"` + CAFile string `json:"caFile"` + CertFile string `json:"certFile"` + KeyFile string `json:"keyFile"` +} + +type Secrets struct { + GivenToken string `json:"givenToken"` // dot-separated `.` set by the user + TokenID string `json:"tokenID"` // optional on master side, will be generated if not specified + Token []byte `json:"token"` // optional on master side, will be generated if not specified + BearerToken string `json:"bearerToken"` // set based on Token +} + +type NodeConfiguration struct { + unversioned.TypeMeta + + MasterAddresses []string `json:"masterAddresses"` +} + +// ClusterInfo TODO add description +type ClusterInfo struct { + unversioned.TypeMeta + // TODO(phase1+) this may become simply `api.Config` + CertificateAuthorities []string `json:"certificateAuthorities"` + Endpoints []string `json:"endpoints"` +} diff --git a/cmd/kubeadm/app/cmd/init.go b/cmd/kubeadm/app/cmd/init.go index 357405d9561..17ff9f1b90b 100644 --- a/cmd/kubeadm/app/cmd/init.go +++ b/cmd/kubeadm/app/cmd/init.go @@ -23,7 +23,7 @@ import ( "github.com/renstrom/dedent" "github.com/spf13/cobra" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/api" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubemaster "k8s.io/kubernetes/cmd/kubeadm/app/master" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" "k8s.io/kubernetes/pkg/cloudprovider" diff --git a/cmd/kubeadm/app/cmd/join.go b/cmd/kubeadm/app/cmd/join.go index 517e14c8e32..fbf3fed3949 100644 --- a/cmd/kubeadm/app/cmd/join.go +++ b/cmd/kubeadm/app/cmd/join.go @@ -23,7 +23,7 @@ import ( "github.com/renstrom/dedent" "github.com/spf13/cobra" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/api" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubenode "k8s.io/kubernetes/cmd/kubeadm/app/node" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" diff --git a/cmd/kubeadm/app/images/images.go b/cmd/kubeadm/app/images/images.go index 1cc81c2ced4..4ff5dbfe406 100644 --- a/cmd/kubeadm/app/images/images.go +++ b/cmd/kubeadm/app/images/images.go @@ -20,7 +20,7 @@ import ( "fmt" "runtime" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/api" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" ) const ( diff --git a/cmd/kubeadm/app/master/addons.go b/cmd/kubeadm/app/master/addons.go index 2e2da2c179c..9d84b99c61f 100644 --- a/cmd/kubeadm/app/master/addons.go +++ b/cmd/kubeadm/app/master/addons.go @@ -22,7 +22,7 @@ import ( "path" "runtime" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/api" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" "k8s.io/kubernetes/cmd/kubeadm/app/images" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api/resource" diff --git a/cmd/kubeadm/app/master/discovery.go b/cmd/kubeadm/app/master/discovery.go index b17040df72a..2eab1799ace 100644 --- a/cmd/kubeadm/app/master/discovery.go +++ b/cmd/kubeadm/app/master/discovery.go @@ -22,7 +22,7 @@ import ( "fmt" "time" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/api" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" "k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/apis/extensions" clientset "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset" diff --git a/cmd/kubeadm/app/master/manifests.go b/cmd/kubeadm/app/master/manifests.go index 91640af9b49..9f1b2532b28 100644 --- a/cmd/kubeadm/app/master/manifests.go +++ b/cmd/kubeadm/app/master/manifests.go @@ -24,7 +24,7 @@ import ( "path" "strings" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/api" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" "k8s.io/kubernetes/cmd/kubeadm/app/images" "k8s.io/kubernetes/pkg/api/resource" "k8s.io/kubernetes/pkg/api/unversioned" diff --git a/cmd/kubeadm/app/master/pki.go b/cmd/kubeadm/app/master/pki.go index 155cf2ef00a..485fc93fa71 100644 --- a/cmd/kubeadm/app/master/pki.go +++ b/cmd/kubeadm/app/master/pki.go @@ -23,7 +23,7 @@ import ( "net" "path" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/api" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" ipallocator "k8s.io/kubernetes/pkg/registry/core/service/ipallocator" certutil "k8s.io/kubernetes/pkg/util/cert" ) diff --git a/cmd/kubeadm/app/master/tokens.go b/cmd/kubeadm/app/master/tokens.go index 8b001c08891..8dde7c8adf6 100644 --- a/cmd/kubeadm/app/master/tokens.go +++ b/cmd/kubeadm/app/master/tokens.go @@ -22,7 +22,7 @@ import ( "os" "path" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/api" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" cmdutil "k8s.io/kubernetes/pkg/kubectl/cmd/util" "k8s.io/kubernetes/pkg/util/uuid" diff --git a/cmd/kubeadm/app/node/csr.go b/cmd/kubeadm/app/node/csr.go index 0d8027c48ab..4e8805babd4 100644 --- a/cmd/kubeadm/app/node/csr.go +++ b/cmd/kubeadm/app/node/csr.go @@ -20,7 +20,7 @@ import ( "fmt" "os" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/api" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" kubeadmutil "k8s.io/kubernetes/cmd/kubeadm/app/util" "k8s.io/kubernetes/pkg/apis/certificates" unversionedcertificates "k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/typed/certificates/unversioned" diff --git a/cmd/kubeadm/app/node/discovery.go b/cmd/kubeadm/app/node/discovery.go index ea51a1a4abc..7fdb2e10e62 100644 --- a/cmd/kubeadm/app/node/discovery.go +++ b/cmd/kubeadm/app/node/discovery.go @@ -24,7 +24,7 @@ import ( "net/http" jose "github.com/square/go-jose" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/api" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" ) diff --git a/cmd/kubeadm/app/util/kubeconfig.go b/cmd/kubeadm/app/util/kubeconfig.go index bf40c686967..6209ea76e4b 100644 --- a/cmd/kubeadm/app/util/kubeconfig.go +++ b/cmd/kubeadm/app/util/kubeconfig.go @@ -22,7 +22,7 @@ import ( "path" // TODO: "k8s.io/client-go/client/tools/clientcmd/api" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/api" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" "k8s.io/kubernetes/pkg/client/unversioned/clientcmd" clientcmdapi "k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api" ) diff --git a/cmd/kubeadm/app/util/tokens.go b/cmd/kubeadm/app/util/tokens.go index 5f8f9fa4c30..3be338470cd 100644 --- a/cmd/kubeadm/app/util/tokens.go +++ b/cmd/kubeadm/app/util/tokens.go @@ -22,7 +22,7 @@ import ( "fmt" "strings" - kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/api" + kubeadmapi "k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm" ) const (