Merge pull request #13146 from mikedanese/config-api

Auto commit by PR queue bot
pull/6/head
k8s-merge-robot 2015-10-31 17:01:32 -07:00
commit 4383e6f95c
23 changed files with 2515 additions and 8 deletions

View File

@ -27,6 +27,8 @@ import (
"k8s.io/kubernetes/pkg/api"
_ "k8s.io/kubernetes/pkg/api/v1"
_ "k8s.io/kubernetes/pkg/apis/componentconfig"
_ "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1"
_ "k8s.io/kubernetes/pkg/apis/extensions"
_ "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
kruntime "k8s.io/kubernetes/pkg/runtime"

View File

@ -27,6 +27,8 @@ import (
"k8s.io/kubernetes/pkg/api"
_ "k8s.io/kubernetes/pkg/api/v1"
_ "k8s.io/kubernetes/pkg/apis/componentconfig"
_ "k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1"
_ "k8s.io/kubernetes/pkg/apis/extensions"
_ "k8s.io/kubernetes/pkg/apis/extensions/v1beta1"
kruntime "k8s.io/kubernetes/pkg/runtime"

View File

@ -19,5 +19,6 @@ package main
// These imports are the API groups the kube-version-change tool will support.
import (
_ "k8s.io/kubernetes/pkg/api/install"
_ "k8s.io/kubernetes/pkg/apis/componentconfig/install"
_ "k8s.io/kubernetes/pkg/apis/extensions/install"
)

View File

@ -101,14 +101,14 @@ kube-apiserver
--service-node-port-range=: A port range to reserve for services with NodePort visibility. Example: '30000-32767'. Inclusive at both ends of the range.
--ssh-keyfile="": If non-empty, use secure SSH proxy to the nodes, using this user keyfile
--ssh-user="": If non-empty, use secure SSH proxy to the nodes, using this user name
--storage-versions="extensions/v1beta1,v1": The versions to store resources with. Different groups may be stored in different versions. Specified in the format "group1/version1,group2/version2...". This flag expects a complete list of storage versions of ALL groups registered in the server. It defaults to a list of preferred versions of all registered groups, which is derived from the KUBE_API_VERSIONS environment variable.
--storage-versions="componentconfig/v1alpha1,extensions/v1beta1,v1": The versions to store resources with. Different groups may be stored in different versions. Specified in the format "group1/version1,group2/version2...". This flag expects a complete list of storage versions of ALL groups registered in the server. It defaults to a list of preferred versions of all registered groups, which is derived from the KUBE_API_VERSIONS environment variable.
--tls-cert-file="": File containing x509 Certificate for HTTPS. (CA cert, if any, concatenated after server cert). If HTTPS serving is enabled, and --tls-cert-file and --tls-private-key-file are not provided, a self-signed certificate and key are generated for the public address and saved to /var/run/kubernetes.
--tls-private-key-file="": File containing x509 private key matching --tls-cert-file.
--token-auth-file="": If set, the file that will be used to secure the secure port of the API server via token authentication.
--watch-cache[=true]: Enable watch caching in the apiserver
```
###### Auto generated by spf13/cobra on 24-Oct-2015
###### Auto generated by spf13/cobra on 30-Oct-2015
<!-- BEGIN MUNGE: GENERATED_ANALYTICS -->

View File

@ -43,7 +43,7 @@ EOF
}
# TODO(lavalamp): get this list by listing the pkg/apis/ directory?
DEFAULT_GROUP_VERSIONS="v1 extensions/v1beta1"
DEFAULT_GROUP_VERSIONS="v1 extensions/v1beta1 componentconfig/v1alpha1"
VERSIONS=${VERSIONS:-$DEFAULT_GROUP_VERSIONS}
for ver in $VERSIONS; do
# Ensure that the version being processed is registered by setting

View File

@ -57,6 +57,6 @@ function generate_deep_copies() {
}
# v1 is in the group ""
DEFAULT_VERSIONS="/ v1 extensions/ extensions/v1beta1"
DEFAULT_VERSIONS="/ v1 extensions/ extensions/v1beta1 componentconfig/ componentconfig/v1alpha1"
VERSIONS=${VERSIONS:-$DEFAULT_VERSIONS}
generate_deep_copies "$VERSIONS"

View File

@ -315,7 +315,7 @@ for (( i=0, j=0; ; )); do
# KUBE_TEST_API sets the version of each group to be tested. KUBE_API_VERSIONS
# register the groups/versions as supported by k8s. So KUBE_API_VERSIONS
# needs to be the superset of KUBE_TEST_API.
KUBE_TEST_API="${apiVersion}" KUBE_API_VERSIONS="v1,extensions/v1beta1" ETCD_PREFIX=${etcdPrefix} runTests "$@"
KUBE_TEST_API="${apiVersion}" KUBE_API_VERSIONS="v1,extensions/v1beta1,componentconfig/v1alpha1" ETCD_PREFIX=${etcdPrefix} runTests "$@"
i=${i}+1
j=${j}+1
if [[ i -eq ${apiVersionsCount} ]] && [[ j -eq ${etcdPrefixesCount} ]]; then

View File

@ -34,10 +34,11 @@ func init() {
validAPIVersions := map[string]bool{
"v1": true,
"extensions/v1beta1": true,
"componentconfig/v1alpha1": true,
}
// The default list of supported api versions, in order of most preferred to the least.
defaultSupportedVersions := "v1,extensions/v1beta1"
defaultSupportedVersions := "v1,extensions/v1beta1,componentconfig/v1alpha1"
// Env var KUBE_API_VERSIONS is a comma separated list of API versions that should be registered in the scheme.
// The versions should be in the order of most preferred to the least.
supportedVersions := os.Getenv("KUBE_API_VERSIONS")

View File

@ -0,0 +1,33 @@
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
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 componentconfig
import (
"io/ioutil"
"k8s.io/kubernetes/pkg/runtime"
)
func DecodeFromPathInto(obj runtime.Object, c runtime.Codec, filename string) error {
b, err := ioutil.ReadFile(filename)
c = runtime.YAMLDecoder(c)
if err != nil {
return err
}
return c.DecodeInto(b, obj)
}

View File

@ -0,0 +1,70 @@
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
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.
*/
// DO NOT EDIT. THIS FILE IS AUTO-GENERATED BY $KUBEROOT/hack/update-generated-deep-copies.sh.
package componentconfig
import (
api "k8s.io/kubernetes/pkg/api"
unversioned "k8s.io/kubernetes/pkg/api/unversioned"
conversion "k8s.io/kubernetes/pkg/conversion"
)
func deepCopy_unversioned_TypeMeta(in unversioned.TypeMeta, out *unversioned.TypeMeta, c *conversion.Cloner) error {
out.Kind = in.Kind
out.APIVersion = in.APIVersion
return nil
}
func deepCopy_componentconfig_KubeProxyConfiguration(in KubeProxyConfiguration, out *KubeProxyConfiguration, c *conversion.Cloner) error {
if err := deepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err
}
out.BindAddress = in.BindAddress
out.CleanupIPTables = in.CleanupIPTables
out.HealthzBindAddress = in.HealthzBindAddress
out.HealthzPort = in.HealthzPort
out.HostnameOverride = in.HostnameOverride
out.IPTablesSyncePeriodSeconds = in.IPTablesSyncePeriodSeconds
out.KubeAPIBurst = in.KubeAPIBurst
out.KubeAPIQPS = in.KubeAPIQPS
out.KubeconfigPath = in.KubeconfigPath
out.MasqueradeAll = in.MasqueradeAll
out.Master = in.Master
if in.OOMScoreAdj != nil {
out.OOMScoreAdj = new(int)
*out.OOMScoreAdj = *in.OOMScoreAdj
} else {
out.OOMScoreAdj = nil
}
out.Mode = in.Mode
out.PortRange = in.PortRange
out.ResourceContainer = in.ResourceContainer
out.UDPTimeoutMilliseconds = in.UDPTimeoutMilliseconds
return nil
}
func init() {
err := api.Scheme.AddGeneratedDeepCopyFuncs(
deepCopy_unversioned_TypeMeta,
deepCopy_componentconfig_KubeProxyConfiguration,
)
if err != nil {
// if one of the deep copy functions is malformed, detect it immediately.
panic(err)
}
}

View File

@ -0,0 +1,92 @@
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
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 install installs the experimental API group, making it available as
// an option to all of the API encoding/decoding machinery.
package install
import (
"fmt"
"strings"
"github.com/golang/glog"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/latest"
"k8s.io/kubernetes/pkg/api/meta"
"k8s.io/kubernetes/pkg/api/registered"
apiutil "k8s.io/kubernetes/pkg/api/util"
_ "k8s.io/kubernetes/pkg/apis/componentconfig"
"k8s.io/kubernetes/pkg/apis/componentconfig/v1alpha1"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util/sets"
)
const importPrefix = "k8s.io/kubernetes/pkg/apis/componentconfig"
var accessor = meta.NewAccessor()
func init() {
groupMeta, err := latest.RegisterGroup("componentconfig")
if err != nil {
glog.V(4).Infof("%v", err)
return
}
registeredGroupVersions := registered.GroupVersionsForGroup("componentconfig")
groupVersion := registeredGroupVersions[0]
*groupMeta = latest.GroupMeta{
GroupVersion: groupVersion,
Group: apiutil.GetGroup(groupVersion),
Version: apiutil.GetVersion(groupVersion),
Codec: runtime.CodecFor(api.Scheme, groupVersion),
}
var versions []string
var groupVersions []string
for i := len(registeredGroupVersions) - 1; i >= 0; i-- {
versions = append(versions, apiutil.GetVersion(registeredGroupVersions[i]))
groupVersions = append(groupVersions, registeredGroupVersions[i])
}
groupMeta.Versions = versions
groupMeta.GroupVersions = groupVersions
groupMeta.SelfLinker = runtime.SelfLinker(accessor)
// the list of kinds that are scoped at the root of the api hierarchy
// if a kind is not enumerated here, it is assumed to have a namespace scope
rootScoped := sets.NewString()
ignoredKinds := sets.NewString()
groupMeta.RESTMapper = api.NewDefaultRESTMapper("componentconfig", groupVersions, interfacesFor, importPrefix, ignoredKinds, rootScoped)
api.RegisterRESTMapper(groupMeta.RESTMapper)
groupMeta.InterfacesFor = interfacesFor
}
// interfacesFor returns the default Codec and ResourceVersioner for a given version
// string, or an error if the version is not known.
func interfacesFor(version string) (*meta.VersionInterfaces, error) {
switch version {
case "componentconfig/v1alpha1":
return &meta.VersionInterfaces{
Codec: v1alpha1.Codec,
ObjectConvertor: api.Scheme,
MetadataAccessor: accessor,
}, nil
default:
g, _ := latest.Group("componentconfig")
return nil, fmt.Errorf("unsupported storage version: %s (valid: %s)", version, strings.Join(g.Versions, ", "))
}
}

View File

@ -0,0 +1,82 @@
/*
Copyright 2014 The Kubernetes Authors All rights reserved.
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 install
import (
"encoding/json"
"testing"
"k8s.io/kubernetes/pkg/api/latest"
"k8s.io/kubernetes/pkg/apis/componentconfig"
)
func TestCodec(t *testing.T) {
daemonSet := componentconfig.KubeProxyConfiguration{}
// We do want to use package latest rather than testapi here, because we
// want to test if the package install and package latest work as expected.
data, err := latest.GroupOrDie("componentconfig").Codec.Encode(&daemonSet)
if err != nil {
t.Fatalf("unexpected error: %v", err)
}
other := componentconfig.KubeProxyConfiguration{}
if err := json.Unmarshal(data, &other); err != nil {
t.Fatalf("unexpected error: %v", err)
}
if other.APIVersion != latest.GroupOrDie("componentconfig").GroupVersion || other.Kind != "KubeProxyConfiguration" {
t.Errorf("unexpected unmarshalled object %#v", other)
}
}
func TestInterfacesFor(t *testing.T) {
if _, err := latest.GroupOrDie("componentconfig").InterfacesFor(""); err == nil {
t.Fatalf("unexpected non-error: %v", err)
}
for i, groupVersion := range append([]string{latest.GroupOrDie("componentconfig").GroupVersion}, latest.GroupOrDie("componentconfig").GroupVersions...) {
if vi, err := latest.GroupOrDie("componentconfig").InterfacesFor(groupVersion); err != nil || vi == nil {
t.Fatalf("%d: unexpected result: %v", i, err)
}
}
}
func TestRESTMapper(t *testing.T) {
if v, k, err := latest.GroupOrDie("componentconfig").RESTMapper.VersionAndKindForResource("kubeproxyconfiguration"); err != nil || v != "componentconfig/v1alpha1" || k != "KubeProxyConfiguration" {
t.Errorf("unexpected version mapping: %s %s %v", v, k, err)
}
if m, err := latest.GroupOrDie("componentconfig").RESTMapper.RESTMapping("KubeProxyConfiguration", ""); err != nil || m.APIVersion != "componentconfig/v1alpha1" || m.Resource != "kubeproxyconfigurations" {
t.Errorf("unexpected version mapping: %#v %v", m, err)
}
for _, groupVersion := range latest.GroupOrDie("componentconfig").GroupVersions {
mapping, err := latest.GroupOrDie("componentconfig").RESTMapper.RESTMapping("KubeProxyConfiguration", groupVersion)
if err != nil {
t.Errorf("unexpected error: %v", err)
}
if mapping.Resource != "kubeproxyconfigurations" {
t.Errorf("incorrect resource name: %#v", mapping)
}
if mapping.APIVersion != groupVersion {
t.Errorf("incorrect groupVersion: %v", mapping)
}
interfaces, _ := latest.GroupOrDie("componentconfig").InterfacesFor(groupVersion)
if mapping.Codec != interfaces.Codec {
t.Errorf("unexpected codec: %#v, expected: %#v", mapping, interfaces)
}
}
}

View File

@ -0,0 +1,33 @@
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
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 componentconfig
import (
"k8s.io/kubernetes/pkg/api"
)
func init() {
addKnownTypes()
}
func addKnownTypes() {
api.Scheme.AddKnownTypes("",
&KubeProxyConfiguration{},
)
}
func (_ *KubeProxyConfiguration) IsAnAPIObject() {}

View File

@ -0,0 +1,899 @@
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
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.
*/
// ************************************************************
// DO NOT EDIT.
// THIS FILE IS AUTO-GENERATED BY codecgen.
// ************************************************************
package componentconfig
import (
"errors"
"fmt"
codec1978 "github.com/ugorji/go/codec"
pkg1_unversioned "k8s.io/kubernetes/pkg/api/unversioned"
"reflect"
"runtime"
)
const (
codecSelferC_UTF81234 = 1
codecSelferC_RAW1234 = 0
codecSelferValueTypeArray1234 = 10
codecSelferValueTypeMap1234 = 9
)
var (
codecSelferBitsize1234 = uint8(reflect.TypeOf(uint(0)).Bits())
codecSelferOnlyMapOrArrayEncodeToStructErr1234 = errors.New(`only encoded map or array can be decoded into a struct`)
)
type codecSelfer1234 struct{}
func init() {
if codec1978.GenVersion != 4 {
_, file, _, _ := runtime.Caller(0)
err := fmt.Errorf("codecgen version mismatch: current: %v, need %v. Re-generate file: %v",
4, codec1978.GenVersion, file)
panic(err)
}
if false { // reference the types, but skip this branch at build/run time
var v0 pkg1_unversioned.TypeMeta
_ = v0
}
}
func (x *KubeProxyConfiguration) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r
if x == nil {
r.EncodeNil()
} else {
yym1 := z.EncBinary()
_ = yym1
if false {
} else if z.HasExtensions() && z.EncExt(x) {
} else {
yysep2 := !z.EncBinary()
yy2arr2 := z.EncBasicHandle().StructToArray
var yyq2 [18]bool
_, _, _ = yysep2, yyq2, yy2arr2
const yyr2 bool = false
yyq2[0] = x.Kind != ""
yyq2[1] = x.APIVersion != ""
if yyr2 || yy2arr2 {
r.EncodeArrayStart(18)
} else {
var yynn2 int = 16
for _, b := range yyq2 {
if b {
yynn2++
}
}
r.EncodeMapStart(yynn2)
}
if yyr2 || yy2arr2 {
if yyq2[0] {
yym4 := z.EncBinary()
_ = yym4
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq2[0] {
r.EncodeString(codecSelferC_UTF81234, string("kind"))
yym5 := z.EncBinary()
_ = yym5
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
}
}
if yyr2 || yy2arr2 {
if yyq2[1] {
yym7 := z.EncBinary()
_ = yym7
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
}
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq2[1] {
r.EncodeString(codecSelferC_UTF81234, string("apiVersion"))
yym8 := z.EncBinary()
_ = yym8
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
}
}
}
if yyr2 || yy2arr2 {
yym10 := z.EncBinary()
_ = yym10
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.BindAddress))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("bindAddress"))
yym11 := z.EncBinary()
_ = yym11
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.BindAddress))
}
}
if yyr2 || yy2arr2 {
yym13 := z.EncBinary()
_ = yym13
if false {
} else {
r.EncodeBool(bool(x.CleanupIPTables))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("cleanupIPTables"))
yym14 := z.EncBinary()
_ = yym14
if false {
} else {
r.EncodeBool(bool(x.CleanupIPTables))
}
}
if yyr2 || yy2arr2 {
yym16 := z.EncBinary()
_ = yym16
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.HealthzBindAddress))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("healthzBindAddress"))
yym17 := z.EncBinary()
_ = yym17
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.HealthzBindAddress))
}
}
if yyr2 || yy2arr2 {
yym19 := z.EncBinary()
_ = yym19
if false {
} else {
r.EncodeInt(int64(x.HealthzPort))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("healthzPort"))
yym20 := z.EncBinary()
_ = yym20
if false {
} else {
r.EncodeInt(int64(x.HealthzPort))
}
}
if yyr2 || yy2arr2 {
yym22 := z.EncBinary()
_ = yym22
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.HostnameOverride))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("hostnameOverride"))
yym23 := z.EncBinary()
_ = yym23
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.HostnameOverride))
}
}
if yyr2 || yy2arr2 {
yym25 := z.EncBinary()
_ = yym25
if false {
} else {
r.EncodeInt(int64(x.IPTablesSyncePeriodSeconds))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("iptablesSyncPeriodSeconds"))
yym26 := z.EncBinary()
_ = yym26
if false {
} else {
r.EncodeInt(int64(x.IPTablesSyncePeriodSeconds))
}
}
if yyr2 || yy2arr2 {
yym28 := z.EncBinary()
_ = yym28
if false {
} else {
r.EncodeInt(int64(x.KubeAPIBurst))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("kubeAPIBurst"))
yym29 := z.EncBinary()
_ = yym29
if false {
} else {
r.EncodeInt(int64(x.KubeAPIBurst))
}
}
if yyr2 || yy2arr2 {
yym31 := z.EncBinary()
_ = yym31
if false {
} else {
r.EncodeInt(int64(x.KubeAPIQPS))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("kubeAPIQPS"))
yym32 := z.EncBinary()
_ = yym32
if false {
} else {
r.EncodeInt(int64(x.KubeAPIQPS))
}
}
if yyr2 || yy2arr2 {
yym34 := z.EncBinary()
_ = yym34
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.KubeconfigPath))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("kubeconfigPath"))
yym35 := z.EncBinary()
_ = yym35
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.KubeconfigPath))
}
}
if yyr2 || yy2arr2 {
yym37 := z.EncBinary()
_ = yym37
if false {
} else {
r.EncodeBool(bool(x.MasqueradeAll))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("masqueradeAll"))
yym38 := z.EncBinary()
_ = yym38
if false {
} else {
r.EncodeBool(bool(x.MasqueradeAll))
}
}
if yyr2 || yy2arr2 {
yym40 := z.EncBinary()
_ = yym40
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Master))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("master"))
yym41 := z.EncBinary()
_ = yym41
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Master))
}
}
if yyr2 || yy2arr2 {
if x.OOMScoreAdj == nil {
r.EncodeNil()
} else {
yy43 := *x.OOMScoreAdj
yym44 := z.EncBinary()
_ = yym44
if false {
} else {
r.EncodeInt(int64(yy43))
}
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("oomScoreAdj"))
if x.OOMScoreAdj == nil {
r.EncodeNil()
} else {
yy45 := *x.OOMScoreAdj
yym46 := z.EncBinary()
_ = yym46
if false {
} else {
r.EncodeInt(int64(yy45))
}
}
}
if yyr2 || yy2arr2 {
x.Mode.CodecEncodeSelf(e)
} else {
r.EncodeString(codecSelferC_UTF81234, string("mode"))
x.Mode.CodecEncodeSelf(e)
}
if yyr2 || yy2arr2 {
yym49 := z.EncBinary()
_ = yym49
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.PortRange))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("portRange"))
yym50 := z.EncBinary()
_ = yym50
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.PortRange))
}
}
if yyr2 || yy2arr2 {
yym52 := z.EncBinary()
_ = yym52
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.ResourceContainer))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("resourceContainer"))
yym53 := z.EncBinary()
_ = yym53
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.ResourceContainer))
}
}
if yyr2 || yy2arr2 {
yym55 := z.EncBinary()
_ = yym55
if false {
} else {
r.EncodeInt(int64(x.UDPTimeoutMilliseconds))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("udpTimeoutMilliseconds"))
yym56 := z.EncBinary()
_ = yym56
if false {
} else {
r.EncodeInt(int64(x.UDPTimeoutMilliseconds))
}
}
if yysep2 {
r.EncodeEnd()
}
}
}
}
func (x *KubeProxyConfiguration) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yym57 := z.DecBinary()
_ = yym57
if false {
} else if z.HasExtensions() && z.DecExt(x) {
} else {
if r.IsContainerType(codecSelferValueTypeMap1234) {
yyl58 := r.ReadMapStart()
if yyl58 == 0 {
r.ReadEnd()
} else {
x.codecDecodeSelfFromMap(yyl58, d)
}
} else if r.IsContainerType(codecSelferValueTypeArray1234) {
yyl58 := r.ReadArrayStart()
if yyl58 == 0 {
r.ReadEnd()
} else {
x.codecDecodeSelfFromArray(yyl58, d)
}
} else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
}
}
}
func (x *KubeProxyConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yys59Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys59Slc
var yyhl59 bool = l >= 0
for yyj59 := 0; ; yyj59++ {
if yyhl59 {
if yyj59 >= l {
break
}
} else {
if r.CheckBreak() {
break
}
}
yys59Slc = r.DecodeBytes(yys59Slc, true, true)
yys59 := string(yys59Slc)
switch yys59 {
case "kind":
if r.TryDecodeAsNil() {
x.Kind = ""
} else {
x.Kind = string(r.DecodeString())
}
case "apiVersion":
if r.TryDecodeAsNil() {
x.APIVersion = ""
} else {
x.APIVersion = string(r.DecodeString())
}
case "bindAddress":
if r.TryDecodeAsNil() {
x.BindAddress = ""
} else {
x.BindAddress = string(r.DecodeString())
}
case "cleanupIPTables":
if r.TryDecodeAsNil() {
x.CleanupIPTables = false
} else {
x.CleanupIPTables = bool(r.DecodeBool())
}
case "healthzBindAddress":
if r.TryDecodeAsNil() {
x.HealthzBindAddress = ""
} else {
x.HealthzBindAddress = string(r.DecodeString())
}
case "healthzPort":
if r.TryDecodeAsNil() {
x.HealthzPort = 0
} else {
x.HealthzPort = int(r.DecodeInt(codecSelferBitsize1234))
}
case "hostnameOverride":
if r.TryDecodeAsNil() {
x.HostnameOverride = ""
} else {
x.HostnameOverride = string(r.DecodeString())
}
case "iptablesSyncPeriodSeconds":
if r.TryDecodeAsNil() {
x.IPTablesSyncePeriodSeconds = 0
} else {
x.IPTablesSyncePeriodSeconds = int(r.DecodeInt(codecSelferBitsize1234))
}
case "kubeAPIBurst":
if r.TryDecodeAsNil() {
x.KubeAPIBurst = 0
} else {
x.KubeAPIBurst = int(r.DecodeInt(codecSelferBitsize1234))
}
case "kubeAPIQPS":
if r.TryDecodeAsNil() {
x.KubeAPIQPS = 0
} else {
x.KubeAPIQPS = int(r.DecodeInt(codecSelferBitsize1234))
}
case "kubeconfigPath":
if r.TryDecodeAsNil() {
x.KubeconfigPath = ""
} else {
x.KubeconfigPath = string(r.DecodeString())
}
case "masqueradeAll":
if r.TryDecodeAsNil() {
x.MasqueradeAll = false
} else {
x.MasqueradeAll = bool(r.DecodeBool())
}
case "master":
if r.TryDecodeAsNil() {
x.Master = ""
} else {
x.Master = string(r.DecodeString())
}
case "oomScoreAdj":
if r.TryDecodeAsNil() {
if x.OOMScoreAdj != nil {
x.OOMScoreAdj = nil
}
} else {
if x.OOMScoreAdj == nil {
x.OOMScoreAdj = new(int)
}
yym74 := z.DecBinary()
_ = yym74
if false {
} else {
*((*int)(x.OOMScoreAdj)) = int(r.DecodeInt(codecSelferBitsize1234))
}
}
case "mode":
if r.TryDecodeAsNil() {
x.Mode = ""
} else {
x.Mode = ProxyMode(r.DecodeString())
}
case "portRange":
if r.TryDecodeAsNil() {
x.PortRange = ""
} else {
x.PortRange = string(r.DecodeString())
}
case "resourceContainer":
if r.TryDecodeAsNil() {
x.ResourceContainer = ""
} else {
x.ResourceContainer = string(r.DecodeString())
}
case "udpTimeoutMilliseconds":
if r.TryDecodeAsNil() {
x.UDPTimeoutMilliseconds = 0
} else {
x.UDPTimeoutMilliseconds = int(r.DecodeInt(codecSelferBitsize1234))
}
default:
z.DecStructFieldNotFound(-1, yys59)
} // end switch yys59
} // end for yyj59
if !yyhl59 {
r.ReadEnd()
}
}
func (x *KubeProxyConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yyj79 int
var yyb79 bool
var yyhl79 bool = l >= 0
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.Kind = ""
} else {
x.Kind = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.APIVersion = ""
} else {
x.APIVersion = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.BindAddress = ""
} else {
x.BindAddress = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.CleanupIPTables = false
} else {
x.CleanupIPTables = bool(r.DecodeBool())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.HealthzBindAddress = ""
} else {
x.HealthzBindAddress = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.HealthzPort = 0
} else {
x.HealthzPort = int(r.DecodeInt(codecSelferBitsize1234))
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.HostnameOverride = ""
} else {
x.HostnameOverride = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.IPTablesSyncePeriodSeconds = 0
} else {
x.IPTablesSyncePeriodSeconds = int(r.DecodeInt(codecSelferBitsize1234))
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.KubeAPIBurst = 0
} else {
x.KubeAPIBurst = int(r.DecodeInt(codecSelferBitsize1234))
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.KubeAPIQPS = 0
} else {
x.KubeAPIQPS = int(r.DecodeInt(codecSelferBitsize1234))
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.KubeconfigPath = ""
} else {
x.KubeconfigPath = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.MasqueradeAll = false
} else {
x.MasqueradeAll = bool(r.DecodeBool())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.Master = ""
} else {
x.Master = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
if x.OOMScoreAdj != nil {
x.OOMScoreAdj = nil
}
} else {
if x.OOMScoreAdj == nil {
x.OOMScoreAdj = new(int)
}
yym94 := z.DecBinary()
_ = yym94
if false {
} else {
*((*int)(x.OOMScoreAdj)) = int(r.DecodeInt(codecSelferBitsize1234))
}
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.Mode = ""
} else {
x.Mode = ProxyMode(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.PortRange = ""
} else {
x.PortRange = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.ResourceContainer = ""
} else {
x.ResourceContainer = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.UDPTimeoutMilliseconds = 0
} else {
x.UDPTimeoutMilliseconds = int(r.DecodeInt(codecSelferBitsize1234))
}
for {
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
break
}
z.DecStructFieldNotFound(yyj79-1, "")
}
r.ReadEnd()
}
func (x ProxyMode) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r
yym99 := z.EncBinary()
_ = yym99
if false {
} else if z.HasExtensions() && z.EncExt(x) {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x))
}
}
func (x *ProxyMode) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yym100 := z.DecBinary()
_ = yym100
if false {
} else if z.HasExtensions() && z.DecExt(x) {
} else {
*((*string)(x)) = r.DecodeString()
}
}

View File

@ -0,0 +1,64 @@
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
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 componentconfig
import "k8s.io/kubernetes/pkg/api/unversioned"
type KubeProxyConfiguration struct {
unversioned.TypeMeta
// bindAddress is the IP address for the proxy server to serve on (set to 0.0.0.0 for all interfaces)
BindAddress string `json:"bindAddress"`
// cleanupIPTables
CleanupIPTables bool `json:"cleanupIPTables"`
// healthzBindAddress is the IP address for the health check server to serve on, defaulting to 127.0.0.1 (set to 0.0.0.0 for all interfaces)
HealthzBindAddress string `json:"healthzBindAddress"`
// healthzPort is the port to bind the health check server. Use 0 to disable.
HealthzPort int `json:"healthzPort"`
// hostnameOverride, if non-empty, will be used as the identity instead of the actual hostname.
HostnameOverride string `json:"hostnameOverride"`
// iptablesSyncPeriodSeconds is the period that iptables rules are refreshed (e.g. '5s', '1m', '2h22m'). Must be greater than 0.
IPTablesSyncePeriodSeconds int `json:"iptablesSyncPeriodSeconds"`
// kubeAPIBurst is the burst to use while talking with kubernetes apiserver
KubeAPIBurst int `json:"kubeAPIBurst"`
// kubeAPIQPS is the max QPS to use while talking with kubernetes apiserver
KubeAPIQPS int `json:"kubeAPIQPS"`
// kubeconfigPath is the path to the kubeconfig file with authorization information (the master location is set by the master flag).
KubeconfigPath string `json:"kubeconfigPath"`
// masqueradeAll tells kube-proxy to SNAT everything if using the pure iptables proxy mode.
MasqueradeAll bool `json:"masqueradeAll"`
// master is the address of the Kubernetes API server (overrides any value in kubeconfig)
Master string `json:"master"`
// oomScoreAdj is the oom-score-adj value for kube-proxy process. Values must be within the range [-1000, 1000]
OOMScoreAdj *int `json:"oomScoreAdj"`
// mode specifies which proxy mode to use.
Mode ProxyMode `json:"mode"`
// portRange is the range of host ports (beginPort-endPort, inclusive) that may be consumed in order to proxy service traffic. If unspecified (0-0) then ports will be randomly chosen.
PortRange string `json:"portRange"`
// resourceContainer is the bsolute name of the resource-only container to create and run the Kube-proxy in (Default: /kube-proxy).
ResourceContainer string `json:"resourceContainer"`
// udpTimeoutMilliseconds is how long an idle UDP connection will be kept open (e.g. '250ms', '2s'). Must be greater than 0. Only applicable for proxyMode=userspace.
UDPTimeoutMilliseconds int `json:"udpTimeoutMilliseconds"`
}
// Currently two modes of proxying are available: 'userspace' (older, stable) or 'iptables' (experimental). If blank, look at the Node object on the Kubernetes API and respect the 'net.experimental.kubernetes.io/proxy-mode' annotation if provided. Otherwise use the best-available proxy (currently userspace, but may change in future versions). If the iptables proxy is selected, regardless of how, but the system's kernel or iptables versions are insufficient, this always falls back to the userspace proxy.
type ProxyMode string
const (
ProxyModeUserspace ProxyMode = "userspace"
ProxyModeIPTables ProxyMode = "iptables"
)

View File

@ -0,0 +1,108 @@
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
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.
*/
// DO NOT EDIT. THIS FILE IS AUTO-GENERATED BY $KUBEROOT/hack/update-generated-conversions.sh
package v1alpha1
import (
reflect "reflect"
api "k8s.io/kubernetes/pkg/api"
componentconfig "k8s.io/kubernetes/pkg/apis/componentconfig"
conversion "k8s.io/kubernetes/pkg/conversion"
)
func autoconvert_componentconfig_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguration(in *componentconfig.KubeProxyConfiguration, out *KubeProxyConfiguration, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*componentconfig.KubeProxyConfiguration))(in)
}
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
return err
}
out.BindAddress = in.BindAddress
out.CleanupIPTables = in.CleanupIPTables
out.HealthzBindAddress = in.HealthzBindAddress
out.HealthzPort = in.HealthzPort
out.HostnameOverride = in.HostnameOverride
out.IPTablesSyncePeriodSeconds = in.IPTablesSyncePeriodSeconds
out.KubeAPIBurst = in.KubeAPIBurst
out.KubeAPIQPS = in.KubeAPIQPS
out.KubeconfigPath = in.KubeconfigPath
out.MasqueradeAll = in.MasqueradeAll
out.Master = in.Master
if in.OOMScoreAdj != nil {
out.OOMScoreAdj = new(int)
*out.OOMScoreAdj = *in.OOMScoreAdj
} else {
out.OOMScoreAdj = nil
}
out.Mode = ProxyMode(in.Mode)
out.PortRange = in.PortRange
out.ResourceContainer = in.ResourceContainer
out.UDPTimeoutMilliseconds = in.UDPTimeoutMilliseconds
return nil
}
func convert_componentconfig_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguration(in *componentconfig.KubeProxyConfiguration, out *KubeProxyConfiguration, s conversion.Scope) error {
return autoconvert_componentconfig_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguration(in, out, s)
}
func autoconvert_v1alpha1_KubeProxyConfiguration_To_componentconfig_KubeProxyConfiguration(in *KubeProxyConfiguration, out *componentconfig.KubeProxyConfiguration, s conversion.Scope) error {
if defaulting, found := s.DefaultingInterface(reflect.TypeOf(*in)); found {
defaulting.(func(*KubeProxyConfiguration))(in)
}
if err := s.Convert(&in.TypeMeta, &out.TypeMeta, 0); err != nil {
return err
}
out.BindAddress = in.BindAddress
out.CleanupIPTables = in.CleanupIPTables
out.HealthzBindAddress = in.HealthzBindAddress
out.HealthzPort = in.HealthzPort
out.HostnameOverride = in.HostnameOverride
out.IPTablesSyncePeriodSeconds = in.IPTablesSyncePeriodSeconds
out.KubeAPIBurst = in.KubeAPIBurst
out.KubeAPIQPS = in.KubeAPIQPS
out.KubeconfigPath = in.KubeconfigPath
out.MasqueradeAll = in.MasqueradeAll
out.Master = in.Master
if in.OOMScoreAdj != nil {
out.OOMScoreAdj = new(int)
*out.OOMScoreAdj = *in.OOMScoreAdj
} else {
out.OOMScoreAdj = nil
}
out.Mode = componentconfig.ProxyMode(in.Mode)
out.PortRange = in.PortRange
out.ResourceContainer = in.ResourceContainer
out.UDPTimeoutMilliseconds = in.UDPTimeoutMilliseconds
return nil
}
func convert_v1alpha1_KubeProxyConfiguration_To_componentconfig_KubeProxyConfiguration(in *KubeProxyConfiguration, out *componentconfig.KubeProxyConfiguration, s conversion.Scope) error {
return autoconvert_v1alpha1_KubeProxyConfiguration_To_componentconfig_KubeProxyConfiguration(in, out, s)
}
func init() {
err := api.Scheme.AddGeneratedConversionFuncs(
autoconvert_componentconfig_KubeProxyConfiguration_To_v1alpha1_KubeProxyConfiguration,
autoconvert_v1alpha1_KubeProxyConfiguration_To_componentconfig_KubeProxyConfiguration,
)
if err != nil {
// If one of the conversion functions is malformed, detect it immediately.
panic(err)
}
}

View File

@ -0,0 +1,70 @@
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
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.
*/
// DO NOT EDIT. THIS FILE IS AUTO-GENERATED BY $KUBEROOT/hack/update-generated-deep-copies.sh.
package v1alpha1
import (
api "k8s.io/kubernetes/pkg/api"
unversioned "k8s.io/kubernetes/pkg/api/unversioned"
conversion "k8s.io/kubernetes/pkg/conversion"
)
func deepCopy_unversioned_TypeMeta(in unversioned.TypeMeta, out *unversioned.TypeMeta, c *conversion.Cloner) error {
out.Kind = in.Kind
out.APIVersion = in.APIVersion
return nil
}
func deepCopy_v1alpha1_KubeProxyConfiguration(in KubeProxyConfiguration, out *KubeProxyConfiguration, c *conversion.Cloner) error {
if err := deepCopy_unversioned_TypeMeta(in.TypeMeta, &out.TypeMeta, c); err != nil {
return err
}
out.BindAddress = in.BindAddress
out.CleanupIPTables = in.CleanupIPTables
out.HealthzBindAddress = in.HealthzBindAddress
out.HealthzPort = in.HealthzPort
out.HostnameOverride = in.HostnameOverride
out.IPTablesSyncePeriodSeconds = in.IPTablesSyncePeriodSeconds
out.KubeAPIBurst = in.KubeAPIBurst
out.KubeAPIQPS = in.KubeAPIQPS
out.KubeconfigPath = in.KubeconfigPath
out.MasqueradeAll = in.MasqueradeAll
out.Master = in.Master
if in.OOMScoreAdj != nil {
out.OOMScoreAdj = new(int)
*out.OOMScoreAdj = *in.OOMScoreAdj
} else {
out.OOMScoreAdj = nil
}
out.Mode = in.Mode
out.PortRange = in.PortRange
out.ResourceContainer = in.ResourceContainer
out.UDPTimeoutMilliseconds = in.UDPTimeoutMilliseconds
return nil
}
func init() {
err := api.Scheme.AddGeneratedDeepCopyFuncs(
deepCopy_unversioned_TypeMeta,
deepCopy_v1alpha1_KubeProxyConfiguration,
)
if err != nil {
// if one of the deep copy functions is malformed, detect it immediately.
panic(err)
}
}

View File

@ -0,0 +1,48 @@
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
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"
"k8s.io/kubernetes/pkg/kubelet/qos"
)
func addDefaultingFuncs() {
api.Scheme.AddDefaultingFuncs(
func(obj *KubeProxyConfiguration) {
if obj.BindAddress == "" {
obj.BindAddress = "0.0.0.0"
}
if obj.HealthzPort == 0 {
obj.HealthzPort = 10249
}
if obj.HealthzBindAddress == "" {
obj.HealthzBindAddress = "127.0.0.1"
}
if obj.OOMScoreAdj == nil {
temp := qos.KubeProxyOOMScoreAdj
obj.OOMScoreAdj = &temp
}
if obj.ResourceContainer == "" {
obj.ResourceContainer = "/kube-proxy"
}
if obj.IPTablesSyncePeriodSeconds == 0 {
obj.IPTablesSyncePeriodSeconds = 5
}
},
)
}

View File

@ -0,0 +1,37 @@
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
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"
"k8s.io/kubernetes/pkg/runtime"
)
var Codec = runtime.CodecFor(api.Scheme, "componentconfig/v1alpha1")
func init() {
addKnownTypes()
addDefaultingFuncs()
}
func addKnownTypes() {
api.Scheme.AddKnownTypes("componentconfig/v1alpha1",
&KubeProxyConfiguration{},
)
}
func (_ *KubeProxyConfiguration) IsAnAPIObject() {}

View File

@ -0,0 +1,899 @@
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
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.
*/
// ************************************************************
// DO NOT EDIT.
// THIS FILE IS AUTO-GENERATED BY codecgen.
// ************************************************************
package v1alpha1
import (
"errors"
"fmt"
codec1978 "github.com/ugorji/go/codec"
pkg1_unversioned "k8s.io/kubernetes/pkg/api/unversioned"
"reflect"
"runtime"
)
const (
codecSelferC_UTF81234 = 1
codecSelferC_RAW1234 = 0
codecSelferValueTypeArray1234 = 10
codecSelferValueTypeMap1234 = 9
)
var (
codecSelferBitsize1234 = uint8(reflect.TypeOf(uint(0)).Bits())
codecSelferOnlyMapOrArrayEncodeToStructErr1234 = errors.New(`only encoded map or array can be decoded into a struct`)
)
type codecSelfer1234 struct{}
func init() {
if codec1978.GenVersion != 4 {
_, file, _, _ := runtime.Caller(0)
err := fmt.Errorf("codecgen version mismatch: current: %v, need %v. Re-generate file: %v",
4, codec1978.GenVersion, file)
panic(err)
}
if false { // reference the types, but skip this branch at build/run time
var v0 pkg1_unversioned.TypeMeta
_ = v0
}
}
func (x *KubeProxyConfiguration) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r
if x == nil {
r.EncodeNil()
} else {
yym1 := z.EncBinary()
_ = yym1
if false {
} else if z.HasExtensions() && z.EncExt(x) {
} else {
yysep2 := !z.EncBinary()
yy2arr2 := z.EncBasicHandle().StructToArray
var yyq2 [18]bool
_, _, _ = yysep2, yyq2, yy2arr2
const yyr2 bool = false
yyq2[0] = x.Kind != ""
yyq2[1] = x.APIVersion != ""
if yyr2 || yy2arr2 {
r.EncodeArrayStart(18)
} else {
var yynn2 int = 16
for _, b := range yyq2 {
if b {
yynn2++
}
}
r.EncodeMapStart(yynn2)
}
if yyr2 || yy2arr2 {
if yyq2[0] {
yym4 := z.EncBinary()
_ = yym4
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq2[0] {
r.EncodeString(codecSelferC_UTF81234, string("kind"))
yym5 := z.EncBinary()
_ = yym5
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Kind))
}
}
}
if yyr2 || yy2arr2 {
if yyq2[1] {
yym7 := z.EncBinary()
_ = yym7
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
}
} else {
r.EncodeString(codecSelferC_UTF81234, "")
}
} else {
if yyq2[1] {
r.EncodeString(codecSelferC_UTF81234, string("apiVersion"))
yym8 := z.EncBinary()
_ = yym8
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.APIVersion))
}
}
}
if yyr2 || yy2arr2 {
yym10 := z.EncBinary()
_ = yym10
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.BindAddress))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("bindAddress"))
yym11 := z.EncBinary()
_ = yym11
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.BindAddress))
}
}
if yyr2 || yy2arr2 {
yym13 := z.EncBinary()
_ = yym13
if false {
} else {
r.EncodeBool(bool(x.CleanupIPTables))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("cleanupIPTables"))
yym14 := z.EncBinary()
_ = yym14
if false {
} else {
r.EncodeBool(bool(x.CleanupIPTables))
}
}
if yyr2 || yy2arr2 {
yym16 := z.EncBinary()
_ = yym16
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.HealthzBindAddress))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("healthzBindAddress"))
yym17 := z.EncBinary()
_ = yym17
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.HealthzBindAddress))
}
}
if yyr2 || yy2arr2 {
yym19 := z.EncBinary()
_ = yym19
if false {
} else {
r.EncodeInt(int64(x.HealthzPort))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("healthzPort"))
yym20 := z.EncBinary()
_ = yym20
if false {
} else {
r.EncodeInt(int64(x.HealthzPort))
}
}
if yyr2 || yy2arr2 {
yym22 := z.EncBinary()
_ = yym22
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.HostnameOverride))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("hostnameOverride"))
yym23 := z.EncBinary()
_ = yym23
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.HostnameOverride))
}
}
if yyr2 || yy2arr2 {
yym25 := z.EncBinary()
_ = yym25
if false {
} else {
r.EncodeInt(int64(x.IPTablesSyncePeriodSeconds))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("iptablesSyncPeriodSeconds"))
yym26 := z.EncBinary()
_ = yym26
if false {
} else {
r.EncodeInt(int64(x.IPTablesSyncePeriodSeconds))
}
}
if yyr2 || yy2arr2 {
yym28 := z.EncBinary()
_ = yym28
if false {
} else {
r.EncodeInt(int64(x.KubeAPIBurst))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("kubeAPIBurst"))
yym29 := z.EncBinary()
_ = yym29
if false {
} else {
r.EncodeInt(int64(x.KubeAPIBurst))
}
}
if yyr2 || yy2arr2 {
yym31 := z.EncBinary()
_ = yym31
if false {
} else {
r.EncodeInt(int64(x.KubeAPIQPS))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("kubeAPIQPS"))
yym32 := z.EncBinary()
_ = yym32
if false {
} else {
r.EncodeInt(int64(x.KubeAPIQPS))
}
}
if yyr2 || yy2arr2 {
yym34 := z.EncBinary()
_ = yym34
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.KubeconfigPath))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("kubeconfigPath"))
yym35 := z.EncBinary()
_ = yym35
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.KubeconfigPath))
}
}
if yyr2 || yy2arr2 {
yym37 := z.EncBinary()
_ = yym37
if false {
} else {
r.EncodeBool(bool(x.MasqueradeAll))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("masqueradeAll"))
yym38 := z.EncBinary()
_ = yym38
if false {
} else {
r.EncodeBool(bool(x.MasqueradeAll))
}
}
if yyr2 || yy2arr2 {
yym40 := z.EncBinary()
_ = yym40
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Master))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("master"))
yym41 := z.EncBinary()
_ = yym41
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.Master))
}
}
if yyr2 || yy2arr2 {
if x.OOMScoreAdj == nil {
r.EncodeNil()
} else {
yy43 := *x.OOMScoreAdj
yym44 := z.EncBinary()
_ = yym44
if false {
} else {
r.EncodeInt(int64(yy43))
}
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("oomScoreAdj"))
if x.OOMScoreAdj == nil {
r.EncodeNil()
} else {
yy45 := *x.OOMScoreAdj
yym46 := z.EncBinary()
_ = yym46
if false {
} else {
r.EncodeInt(int64(yy45))
}
}
}
if yyr2 || yy2arr2 {
x.Mode.CodecEncodeSelf(e)
} else {
r.EncodeString(codecSelferC_UTF81234, string("mode"))
x.Mode.CodecEncodeSelf(e)
}
if yyr2 || yy2arr2 {
yym49 := z.EncBinary()
_ = yym49
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.PortRange))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("portRange"))
yym50 := z.EncBinary()
_ = yym50
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.PortRange))
}
}
if yyr2 || yy2arr2 {
yym52 := z.EncBinary()
_ = yym52
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.ResourceContainer))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("resourceContainer"))
yym53 := z.EncBinary()
_ = yym53
if false {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x.ResourceContainer))
}
}
if yyr2 || yy2arr2 {
yym55 := z.EncBinary()
_ = yym55
if false {
} else {
r.EncodeInt(int64(x.UDPTimeoutMilliseconds))
}
} else {
r.EncodeString(codecSelferC_UTF81234, string("udpTimeoutMilliseconds"))
yym56 := z.EncBinary()
_ = yym56
if false {
} else {
r.EncodeInt(int64(x.UDPTimeoutMilliseconds))
}
}
if yysep2 {
r.EncodeEnd()
}
}
}
}
func (x *KubeProxyConfiguration) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yym57 := z.DecBinary()
_ = yym57
if false {
} else if z.HasExtensions() && z.DecExt(x) {
} else {
if r.IsContainerType(codecSelferValueTypeMap1234) {
yyl58 := r.ReadMapStart()
if yyl58 == 0 {
r.ReadEnd()
} else {
x.codecDecodeSelfFromMap(yyl58, d)
}
} else if r.IsContainerType(codecSelferValueTypeArray1234) {
yyl58 := r.ReadArrayStart()
if yyl58 == 0 {
r.ReadEnd()
} else {
x.codecDecodeSelfFromArray(yyl58, d)
}
} else {
panic(codecSelferOnlyMapOrArrayEncodeToStructErr1234)
}
}
}
func (x *KubeProxyConfiguration) codecDecodeSelfFromMap(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yys59Slc = z.DecScratchBuffer() // default slice to decode into
_ = yys59Slc
var yyhl59 bool = l >= 0
for yyj59 := 0; ; yyj59++ {
if yyhl59 {
if yyj59 >= l {
break
}
} else {
if r.CheckBreak() {
break
}
}
yys59Slc = r.DecodeBytes(yys59Slc, true, true)
yys59 := string(yys59Slc)
switch yys59 {
case "kind":
if r.TryDecodeAsNil() {
x.Kind = ""
} else {
x.Kind = string(r.DecodeString())
}
case "apiVersion":
if r.TryDecodeAsNil() {
x.APIVersion = ""
} else {
x.APIVersion = string(r.DecodeString())
}
case "bindAddress":
if r.TryDecodeAsNil() {
x.BindAddress = ""
} else {
x.BindAddress = string(r.DecodeString())
}
case "cleanupIPTables":
if r.TryDecodeAsNil() {
x.CleanupIPTables = false
} else {
x.CleanupIPTables = bool(r.DecodeBool())
}
case "healthzBindAddress":
if r.TryDecodeAsNil() {
x.HealthzBindAddress = ""
} else {
x.HealthzBindAddress = string(r.DecodeString())
}
case "healthzPort":
if r.TryDecodeAsNil() {
x.HealthzPort = 0
} else {
x.HealthzPort = int(r.DecodeInt(codecSelferBitsize1234))
}
case "hostnameOverride":
if r.TryDecodeAsNil() {
x.HostnameOverride = ""
} else {
x.HostnameOverride = string(r.DecodeString())
}
case "iptablesSyncPeriodSeconds":
if r.TryDecodeAsNil() {
x.IPTablesSyncePeriodSeconds = 0
} else {
x.IPTablesSyncePeriodSeconds = int(r.DecodeInt(codecSelferBitsize1234))
}
case "kubeAPIBurst":
if r.TryDecodeAsNil() {
x.KubeAPIBurst = 0
} else {
x.KubeAPIBurst = int(r.DecodeInt(codecSelferBitsize1234))
}
case "kubeAPIQPS":
if r.TryDecodeAsNil() {
x.KubeAPIQPS = 0
} else {
x.KubeAPIQPS = int(r.DecodeInt(codecSelferBitsize1234))
}
case "kubeconfigPath":
if r.TryDecodeAsNil() {
x.KubeconfigPath = ""
} else {
x.KubeconfigPath = string(r.DecodeString())
}
case "masqueradeAll":
if r.TryDecodeAsNil() {
x.MasqueradeAll = false
} else {
x.MasqueradeAll = bool(r.DecodeBool())
}
case "master":
if r.TryDecodeAsNil() {
x.Master = ""
} else {
x.Master = string(r.DecodeString())
}
case "oomScoreAdj":
if r.TryDecodeAsNil() {
if x.OOMScoreAdj != nil {
x.OOMScoreAdj = nil
}
} else {
if x.OOMScoreAdj == nil {
x.OOMScoreAdj = new(int)
}
yym74 := z.DecBinary()
_ = yym74
if false {
} else {
*((*int)(x.OOMScoreAdj)) = int(r.DecodeInt(codecSelferBitsize1234))
}
}
case "mode":
if r.TryDecodeAsNil() {
x.Mode = ""
} else {
x.Mode = ProxyMode(r.DecodeString())
}
case "portRange":
if r.TryDecodeAsNil() {
x.PortRange = ""
} else {
x.PortRange = string(r.DecodeString())
}
case "resourceContainer":
if r.TryDecodeAsNil() {
x.ResourceContainer = ""
} else {
x.ResourceContainer = string(r.DecodeString())
}
case "udpTimeoutMilliseconds":
if r.TryDecodeAsNil() {
x.UDPTimeoutMilliseconds = 0
} else {
x.UDPTimeoutMilliseconds = int(r.DecodeInt(codecSelferBitsize1234))
}
default:
z.DecStructFieldNotFound(-1, yys59)
} // end switch yys59
} // end for yyj59
if !yyhl59 {
r.ReadEnd()
}
}
func (x *KubeProxyConfiguration) codecDecodeSelfFromArray(l int, d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
var yyj79 int
var yyb79 bool
var yyhl79 bool = l >= 0
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.Kind = ""
} else {
x.Kind = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.APIVersion = ""
} else {
x.APIVersion = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.BindAddress = ""
} else {
x.BindAddress = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.CleanupIPTables = false
} else {
x.CleanupIPTables = bool(r.DecodeBool())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.HealthzBindAddress = ""
} else {
x.HealthzBindAddress = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.HealthzPort = 0
} else {
x.HealthzPort = int(r.DecodeInt(codecSelferBitsize1234))
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.HostnameOverride = ""
} else {
x.HostnameOverride = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.IPTablesSyncePeriodSeconds = 0
} else {
x.IPTablesSyncePeriodSeconds = int(r.DecodeInt(codecSelferBitsize1234))
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.KubeAPIBurst = 0
} else {
x.KubeAPIBurst = int(r.DecodeInt(codecSelferBitsize1234))
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.KubeAPIQPS = 0
} else {
x.KubeAPIQPS = int(r.DecodeInt(codecSelferBitsize1234))
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.KubeconfigPath = ""
} else {
x.KubeconfigPath = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.MasqueradeAll = false
} else {
x.MasqueradeAll = bool(r.DecodeBool())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.Master = ""
} else {
x.Master = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
if x.OOMScoreAdj != nil {
x.OOMScoreAdj = nil
}
} else {
if x.OOMScoreAdj == nil {
x.OOMScoreAdj = new(int)
}
yym94 := z.DecBinary()
_ = yym94
if false {
} else {
*((*int)(x.OOMScoreAdj)) = int(r.DecodeInt(codecSelferBitsize1234))
}
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.Mode = ""
} else {
x.Mode = ProxyMode(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.PortRange = ""
} else {
x.PortRange = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.ResourceContainer = ""
} else {
x.ResourceContainer = string(r.DecodeString())
}
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
r.ReadEnd()
return
}
if r.TryDecodeAsNil() {
x.UDPTimeoutMilliseconds = 0
} else {
x.UDPTimeoutMilliseconds = int(r.DecodeInt(codecSelferBitsize1234))
}
for {
yyj79++
if yyhl79 {
yyb79 = yyj79 > l
} else {
yyb79 = r.CheckBreak()
}
if yyb79 {
break
}
z.DecStructFieldNotFound(yyj79-1, "")
}
r.ReadEnd()
}
func (x ProxyMode) CodecEncodeSelf(e *codec1978.Encoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperEncoder(e)
_, _, _ = h, z, r
yym99 := z.EncBinary()
_ = yym99
if false {
} else if z.HasExtensions() && z.EncExt(x) {
} else {
r.EncodeString(codecSelferC_UTF81234, string(x))
}
}
func (x *ProxyMode) CodecDecodeSelf(d *codec1978.Decoder) {
var h codecSelfer1234
z, r := codec1978.GenHelperDecoder(d)
_, _, _ = h, z, r
yym100 := z.DecBinary()
_ = yym100
if false {
} else if z.HasExtensions() && z.DecExt(x) {
} else {
*((*string)(x)) = r.DecodeString()
}
}

View File

@ -0,0 +1,64 @@
/*
Copyright 2015 The Kubernetes Authors All rights reserved.
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 KubeProxyConfiguration struct {
unversioned.TypeMeta
// bindAddress is the IP address for the proxy server to serve on (set to 0.0.0.0 for all interfaces)
BindAddress string `json:"bindAddress"`
// cleanupIPTables
CleanupIPTables bool `json:"cleanupIPTables"`
// healthzBindAddress is the IP address for the health check server to serve on, defaulting to 127.0.0.1 (set to 0.0.0.0 for all interfaces)
HealthzBindAddress string `json:"healthzBindAddress"`
// healthzPort is the port to bind the health check server. Use 0 to disable.
HealthzPort int `json:"healthzPort"`
// hostnameOverride, if non-empty, will be used as the identity instead of the actual hostname.
HostnameOverride string `json:"hostnameOverride"`
// iptablesSyncPeriodSeconds is the period that iptables rules are refreshed (e.g. '5s', '1m', '2h22m'). Must be greater than 0.
IPTablesSyncePeriodSeconds int `json:"iptablesSyncPeriodSeconds"`
// kubeAPIBurst is the burst to use while talking with kubernetes apiserver
KubeAPIBurst int `json:"kubeAPIBurst"`
// kubeAPIQPS is the max QPS to use while talking with kubernetes apiserver
KubeAPIQPS int `json:"kubeAPIQPS"`
// kubeconfigPath is the path to the kubeconfig file with authorization information (the master location is set by the master flag).
KubeconfigPath string `json:"kubeconfigPath"`
// masqueradeAll tells kube-proxy to SNAT everything if using the pure iptables proxy mode.
MasqueradeAll bool `json:"masqueradeAll"`
// master is the address of the Kubernetes API server (overrides any value in kubeconfig)
Master string `json:"master"`
// oomScoreAdj is the oom-score-adj value for kube-proxy process. Values must be within the range [-1000, 1000]
OOMScoreAdj *int `json:"oomScoreAdj"`
// mode specifies which proxy mode to use.
Mode ProxyMode `json:"mode"`
// portRange is the range of host ports (beginPort-endPort, inclusive) that may be consumed in order to proxy service traffic. If unspecified (0-0) then ports will be randomly chosen.
PortRange string `json:"portRange"`
// resourceContainer is the bsolute name of the resource-only container to create and run the Kube-proxy in (Default: /kube-proxy).
ResourceContainer string `json:"resourceContainer"`
// udpTimeoutMilliseconds is how long an idle UDP connection will be kept open (e.g. '250ms', '2s'). Must be greater than 0. Only applicable for proxyMode=userspace.
UDPTimeoutMilliseconds int `json:"udpTimeoutMilliseconds"`
}
// Currently two modes of proxying are available: 'userspace' (older, stable) or 'iptables' (experimental). If blank, look at the Node object on the Kubernetes API and respect the 'net.experimental.kubernetes.io/proxy-mode' annotation if provided. Otherwise use the best-available proxy (currently userspace, but may change in future versions). If the iptables proxy is selected, regardless of how, but the system's kernel or iptables versions are insufficient, this always falls back to the userspace proxy.
type ProxyMode string
const (
ProxyModeUserspace ProxyMode = "userspace"
ProxyModeIPTables ProxyMode = "iptables"
)

View File

@ -19,5 +19,6 @@ package unversioned
// These imports are the API groups the client will support.
import (
_ "k8s.io/kubernetes/pkg/api/install"
_ "k8s.io/kubernetes/pkg/apis/componentconfig/install"
_ "k8s.io/kubernetes/pkg/apis/extensions/install"
)

View File

@ -19,5 +19,6 @@ package master
// These imports are the API groups the API server will support.
import (
_ "k8s.io/kubernetes/pkg/api/install"
_ "k8s.io/kubernetes/pkg/apis/componentconfig/install"
_ "k8s.io/kubernetes/pkg/apis/extensions/install"
)