Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
K
k3s
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jacklull
k3s
Commits
90c647ef
Commit
90c647ef
authored
Feb 07, 2016
by
Piotr Szczesniak
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
API changes in HPA required for going to GA
parent
2fbc5bb7
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
110 additions
and
20 deletions
+110
-20
conversion.go
pkg/apis/autoscaling/v1/conversion.go
+101
-0
defaults.go
pkg/apis/autoscaling/v1/defaults.go
+0
-3
register.go
pkg/apis/autoscaling/v1/register.go
+1
-0
types.go
pkg/apis/autoscaling/v1/types.go
+8
-17
No files found.
pkg/apis/autoscaling/v1/conversion.go
0 → 100644
View file @
90c647ef
/*
Copyright 2016 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
v1
import
(
"reflect"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/conversion"
"k8s.io/kubernetes/pkg/runtime"
)
func
addConversionFuncs
(
scheme
*
runtime
.
Scheme
)
{
// Add non-generated conversion functions
err
:=
scheme
.
AddConversionFuncs
(
Convert_extensions_SubresourceReference_To_v1_CrossVersionObjectReference
,
Convert_v1_CrossVersionObjectReference_To_extensions_SubresourceReference
,
Convert_extensions_HorizontalPodAutoscalerSpec_To_v1_HorizontalPodAutoscalerSpec
,
Convert_v1_HorizontalPodAutoscalerSpec_To_extensions_HorizontalPodAutoscalerSpec
,
)
if
err
!=
nil
{
// If one of the conversion functions is malformed, detect it immediately.
panic
(
err
)
}
}
func
Convert_extensions_SubresourceReference_To_v1_CrossVersionObjectReference
(
in
*
extensions
.
SubresourceReference
,
out
*
CrossVersionObjectReference
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
extensions
.
SubresourceReference
))(
in
)
}
out
.
Kind
=
in
.
Kind
out
.
Name
=
in
.
Name
out
.
APIVersion
=
in
.
APIVersion
return
nil
}
func
Convert_v1_CrossVersionObjectReference_To_extensions_SubresourceReference
(
in
*
CrossVersionObjectReference
,
out
*
extensions
.
SubresourceReference
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
CrossVersionObjectReference
))(
in
)
}
out
.
Kind
=
in
.
Kind
out
.
Name
=
in
.
Name
out
.
APIVersion
=
in
.
APIVersion
out
.
Subresource
=
"scale"
return
nil
}
func
Convert_extensions_HorizontalPodAutoscalerSpec_To_v1_HorizontalPodAutoscalerSpec
(
in
*
extensions
.
HorizontalPodAutoscalerSpec
,
out
*
HorizontalPodAutoscalerSpec
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
extensions
.
HorizontalPodAutoscalerSpec
))(
in
)
}
if
err
:=
Convert_extensions_SubresourceReference_To_v1_CrossVersionObjectReference
(
&
in
.
ScaleRef
,
&
out
.
ScaleTargetRef
,
s
);
err
!=
nil
{
return
err
}
if
in
.
MinReplicas
!=
nil
{
out
.
MinReplicas
=
new
(
int32
)
*
out
.
MinReplicas
=
int32
(
*
in
.
MinReplicas
)
}
else
{
out
.
MinReplicas
=
nil
}
out
.
MaxReplicas
=
int32
(
in
.
MaxReplicas
)
if
in
.
CPUUtilization
!=
nil
{
out
.
TargetCPUUtilizationPercentage
=
new
(
int32
)
*
out
.
TargetCPUUtilizationPercentage
=
int32
(
in
.
CPUUtilization
.
TargetPercentage
)
}
return
nil
}
func
Convert_v1_HorizontalPodAutoscalerSpec_To_extensions_HorizontalPodAutoscalerSpec
(
in
*
HorizontalPodAutoscalerSpec
,
out
*
extensions
.
HorizontalPodAutoscalerSpec
,
s
conversion
.
Scope
)
error
{
if
defaulting
,
found
:=
s
.
DefaultingInterface
(
reflect
.
TypeOf
(
*
in
));
found
{
defaulting
.
(
func
(
*
HorizontalPodAutoscalerSpec
))(
in
)
}
if
err
:=
Convert_v1_CrossVersionObjectReference_To_extensions_SubresourceReference
(
&
in
.
ScaleTargetRef
,
&
out
.
ScaleRef
,
s
);
err
!=
nil
{
return
err
}
if
in
.
MinReplicas
!=
nil
{
out
.
MinReplicas
=
new
(
int
)
*
out
.
MinReplicas
=
int
(
*
in
.
MinReplicas
)
}
else
{
out
.
MinReplicas
=
nil
}
out
.
MaxReplicas
=
int
(
in
.
MaxReplicas
)
if
in
.
TargetCPUUtilizationPercentage
!=
nil
{
out
.
CPUUtilization
=
&
extensions
.
CPUTargetUtilization
{
TargetPercentage
:
int
(
*
in
.
TargetCPUUtilizationPercentage
)}
}
return
nil
}
pkg/apis/autoscaling/v1/defaults.go
View file @
90c647ef
...
...
@@ -27,9 +27,6 @@ func addDefaultingFuncs(scheme *runtime.Scheme) {
minReplicas
:=
int32
(
1
)
obj
.
Spec
.
MinReplicas
=
&
minReplicas
}
if
obj
.
Spec
.
CPUUtilization
==
nil
{
obj
.
Spec
.
CPUUtilization
=
&
CPUTargetUtilization
{
TargetPercentage
:
80
}
}
},
)
}
pkg/apis/autoscaling/v1/register.go
View file @
90c647ef
...
...
@@ -31,6 +31,7 @@ var SchemeGroupVersion = unversioned.GroupVersion{Group: GroupName, Version: "v1
func
AddToScheme
(
scheme
*
runtime
.
Scheme
)
{
addKnownTypes
(
scheme
)
addDefaultingFuncs
(
scheme
)
addConversionFuncs
(
scheme
)
}
// Adds the list of known types to api.Scheme.
...
...
pkg/apis/autoscaling/v1/types.go
View file @
90c647ef
...
...
@@ -21,36 +21,27 @@ import (
"k8s.io/kubernetes/pkg/api/v1"
)
//
SubresourceReference contains enough information to let you inspect or modify the referred sub
resource.
type
Subresource
Reference
struct
{
//
CrossVersionObjectReference contains enough information to let you identify the referred
resource.
type
CrossVersionObject
Reference
struct
{
// Kind of the referent; More info: http://releases.k8s.io/HEAD/docs/devel/api-conventions.md#types-kinds"
Kind
string
`json:"kind
,omitempty
"`
Kind
string
`json:"kind"`
// Name of the referent; More info: http://releases.k8s.io/HEAD/docs/user-guide/identifiers.md#names
Name
string
`json:"name
,omitempty
"`
Name
string
`json:"name"`
// API version of the referent
APIVersion
string
`json:"apiVersion,omitempty"`
// Subresource name of the referent
Subresource
string
`json:"subresource,omitempty"`
}
type
CPUTargetUtilization
struct
{
// fraction of the requested CPU that should be utilized/used,
// e.g. 70 means that 70% of the requested CPU should be in use.
TargetPercentage
int32
`json:"targetPercentage"`
}
// specification of a horizontal pod autoscaler.
type
HorizontalPodAutoscalerSpec
struct
{
// reference to
Scale subresource; horizontal pod autoscaler will learn the current resource consumption from its status,
// and will set the desired number of pods by
modifying its spec
.
Scale
Ref
SubresourceReference
`json:"scale
Ref"`
// reference to
scaled resource; horizontal pod autoscaler will learn the current resource consumption
// and will set the desired number of pods by
using its Scale subresource
.
Scale
TargetRef
CrossVersionObjectReference
`json:"scaleTarget
Ref"`
// lower limit for the number of pods that can be set by the autoscaler, default 1.
MinReplicas
*
int32
`json:"minReplicas,omitempty"`
// upper limit for the number of pods that can be set by the autoscaler; cannot be smaller than MinReplicas.
MaxReplicas
int32
`json:"maxReplicas"`
// target average CPU utilization (represented as a percentage of requested CPU) over all the pods;
// if not specified it defaults to the target CPU utilization at 80% of the requested resources.
CPUUtilization
*
CPUTargetUtilization
`json:"cpuUtilization,omitempty"`
TargetCPUUtilizationPercentage
*
int32
`json:"targetCPUUtilizationPercentage,omitempty"`
}
// current status of a horizontal pod autoscaler
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment