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
eec08872
Commit
eec08872
authored
Jul 05, 2016
by
Angus Salkeld
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Move deployment utilities to there own package
parent
b39951c7
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
15 changed files
with
29 additions
and
28 deletions
+29
-28
rollback.go
pkg/controller/deployment/rollback.go
+3
-3
rolling.go
pkg/controller/deployment/rolling.go
+3
-3
sync.go
pkg/controller/deployment/sync.go
+9
-9
sync_test.go
pkg/controller/deployment/sync_test.go
+3
-2
util.go
pkg/controller/deployment/util.go
+0
-0
deployment_util.go
pkg/controller/deployment/util/deployment_util.go
+0
-0
deployment_util_test.go
pkg/controller/deployment/util/deployment_util_test.go
+1
-1
describe.go
pkg/kubectl/describe.go
+1
-1
history.go
pkg/kubectl/history.go
+1
-1
rollback.go
pkg/kubectl/rollback.go
+1
-1
rolling_updater.go
pkg/kubectl/rolling_updater.go
+3
-3
stop.go
pkg/kubectl/stop.go
+1
-1
stop_test.go
pkg/kubectl/stop_test.go
+1
-1
deployment.go
test/e2e/deployment.go
+1
-1
util.go
test/e2e/framework/util.go
+1
-1
No files found.
pkg/controller/deployment/rollback.go
View file @
eec08872
...
...
@@ -23,7 +23,7 @@ import (
"github.com/golang/glog"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/apis/extensions"
deploymentutil
"k8s.io/kubernetes/pkg/
util/deployment
"
deploymentutil
"k8s.io/kubernetes/pkg/
controller/deployment/util
"
)
// Rolling back to a revision; no-op if the toRevision is deployment's current revision
...
...
@@ -35,7 +35,7 @@ func (dc *DeploymentController) rollback(deployment *extensions.Deployment, toRe
allRSs
:=
append
(
allOldRSs
,
newRS
)
// If rollback revision is 0, rollback to the last revision
if
*
toRevision
==
0
{
if
*
toRevision
=
l
astRevision
(
allRSs
);
*
toRevision
==
0
{
if
*
toRevision
=
deploymentutil
.
L
astRevision
(
allRSs
);
*
toRevision
==
0
{
// If we still can't find the last revision, gives up rollback
dc
.
emitRollbackWarningEvent
(
deployment
,
deploymentutil
.
RollbackRevisionNotFound
,
"Unable to find last revision."
)
// Gives up rollback
...
...
@@ -79,7 +79,7 @@ func (dc *DeploymentController) rollbackToTemplate(deployment *extensions.Deploy
//
// If we don't copy the annotations back from RS to deployment on rollback, the Deployment will stay as {change-cause:edit},
// and new RS1 becomes {change-cause:edit} (copied from deployment after rollback), old RS2 {change-cause:edit}, which is not correct.
s
etDeploymentAnnotationsTo
(
deployment
,
rs
)
deploymentutil
.
S
etDeploymentAnnotationsTo
(
deployment
,
rs
)
performedRollback
=
true
}
else
{
glog
.
V
(
4
)
.
Infof
(
"Rolling back to a revision that contains the same template as current deployment %s, skipping rollback..."
,
deployment
.
Name
)
...
...
pkg/controller/deployment/rolling.go
View file @
eec08872
...
...
@@ -23,7 +23,7 @@ import (
"github.com/golang/glog"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/controller"
deploymentutil
"k8s.io/kubernetes/pkg/
util/deployment
"
deploymentutil
"k8s.io/kubernetes/pkg/
controller/deployment/util
"
"k8s.io/kubernetes/pkg/util/integer"
)
...
...
@@ -94,7 +94,7 @@ func (dc *DeploymentController) reconcileOldReplicaSets(allRSs []*extensions.Rep
return
false
,
fmt
.
Errorf
(
"could not find available pods: %v"
,
err
)
}
glog
.
V
(
4
)
.
Infof
(
"New RS %s/%s has %d available pods."
,
newRS
.
Namespace
,
newRS
.
Name
,
newRSAvailablePodCount
)
maxUnavailable
:=
m
axUnavailable
(
*
deployment
)
maxUnavailable
:=
deploymentutil
.
M
axUnavailable
(
*
deployment
)
// Check if we can scale down. We can scale down in the following 2 cases:
// * Some old replica sets have unhealthy replicas, we could safely scale down those unhealthy replicas since that won't further
...
...
@@ -197,7 +197,7 @@ func (dc *DeploymentController) cleanupUnhealthyReplicas(oldRSs []*extensions.Re
// scaleDownOldReplicaSetsForRollingUpdate scales down old replica sets when deployment strategy is "RollingUpdate".
// Need check maxUnavailable to ensure availability
func
(
dc
*
DeploymentController
)
scaleDownOldReplicaSetsForRollingUpdate
(
allRSs
[]
*
extensions
.
ReplicaSet
,
oldRSs
[]
*
extensions
.
ReplicaSet
,
deployment
*
extensions
.
Deployment
)
(
int32
,
error
)
{
maxUnavailable
:=
m
axUnavailable
(
*
deployment
)
maxUnavailable
:=
deploymentutil
.
M
axUnavailable
(
*
deployment
)
// Check if we can scale down.
minAvailable
:=
deployment
.
Spec
.
Replicas
-
maxUnavailable
...
...
pkg/controller/deployment/sync.go
View file @
eec08872
...
...
@@ -28,7 +28,7 @@ import (
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/apis/extensions"
"k8s.io/kubernetes/pkg/controller"
deploymentutil
"k8s.io/kubernetes/pkg/
util/deployment
"
deploymentutil
"k8s.io/kubernetes/pkg/
controller/deployment/util
"
utilerrors
"k8s.io/kubernetes/pkg/util/errors"
labelsutil
"k8s.io/kubernetes/pkg/util/labels"
podutil
"k8s.io/kubernetes/pkg/util/pod"
...
...
@@ -72,7 +72,7 @@ func (dc *DeploymentController) getAllReplicaSetsAndSyncRevision(deployment *ext
}
// Calculate the max revision number among all old RSes
maxOldV
:=
m
axRevision
(
allOldRSs
)
maxOldV
:=
deploymentutil
.
M
axRevision
(
allOldRSs
)
// Get new replica set with the updated revision number
newRS
,
err
:=
dc
.
getNewReplicaSet
(
deployment
,
rsList
,
maxOldV
,
allOldRSs
,
createIfNotExisted
)
...
...
@@ -232,7 +232,7 @@ func (dc *DeploymentController) getNewReplicaSet(deployment *extensions.Deployme
return
nil
,
err
}
else
if
existingNewRS
!=
nil
{
// Set existing new replica set's annotation
if
s
etNewReplicaSetAnnotations
(
deployment
,
existingNewRS
,
newRevision
,
true
)
{
if
deploymentutil
.
S
etNewReplicaSetAnnotations
(
deployment
,
existingNewRS
,
newRevision
,
true
)
{
return
dc
.
client
.
Extensions
()
.
ReplicaSets
(
deployment
.
ObjectMeta
.
Namespace
)
.
Update
(
existingNewRS
)
}
return
existingNewRS
,
nil
...
...
@@ -270,7 +270,7 @@ func (dc *DeploymentController) getNewReplicaSet(deployment *extensions.Deployme
newRS
.
Spec
.
Replicas
=
newReplicasCount
// Set new replica set's annotation
s
etNewReplicaSetAnnotations
(
deployment
,
&
newRS
,
newRevision
,
false
)
deploymentutil
.
S
etNewReplicaSetAnnotations
(
deployment
,
&
newRS
,
newRevision
,
false
)
createdRS
,
err
:=
dc
.
client
.
Extensions
()
.
ReplicaSets
(
namespace
)
.
Create
(
&
newRS
)
if
err
!=
nil
{
dc
.
enqueueDeployment
(
deployment
)
...
...
@@ -303,7 +303,7 @@ func (dc *DeploymentController) updateDeploymentRevision(deployment *extensions.
func
(
dc
*
DeploymentController
)
scale
(
deployment
*
extensions
.
Deployment
,
newRS
*
extensions
.
ReplicaSet
,
oldRSs
[]
*
extensions
.
ReplicaSet
)
error
{
// If there is only one active replica set then we should scale that up to the full count of the
// deployment. If there is no active replica set, then we should scale up the newest replica set.
if
activeOrLatest
:=
f
indActiveOrLatest
(
newRS
,
oldRSs
);
activeOrLatest
!=
nil
{
if
activeOrLatest
:=
deploymentutil
.
F
indActiveOrLatest
(
newRS
,
oldRSs
);
activeOrLatest
!=
nil
{
if
activeOrLatest
.
Spec
.
Replicas
==
deployment
.
Spec
.
Replicas
{
return
nil
}
...
...
@@ -331,7 +331,7 @@ func (dc *DeploymentController) scale(deployment *extensions.Deployment, newRS *
allowedSize
:=
int32
(
0
)
if
deployment
.
Spec
.
Replicas
>
0
{
allowedSize
=
deployment
.
Spec
.
Replicas
+
m
axSurge
(
*
deployment
)
allowedSize
=
deployment
.
Spec
.
Replicas
+
deploymentutil
.
M
axSurge
(
*
deployment
)
}
// Number of additional replicas that can be either added or removed from the total
...
...
@@ -365,7 +365,7 @@ func (dc *DeploymentController) scale(deployment *extensions.Deployment, newRS *
for
i
:=
range
allRSs
{
rs
:=
allRSs
[
i
]
proportion
:=
g
etProportion
(
rs
,
*
deployment
,
deploymentReplicasToAdd
,
deploymentReplicasAdded
)
proportion
:=
deploymentutil
.
G
etProportion
(
rs
,
*
deployment
,
deploymentReplicasToAdd
,
deploymentReplicasAdded
)
rs
.
Spec
.
Replicas
+=
proportion
deploymentReplicasAdded
+=
proportion
...
...
@@ -411,7 +411,7 @@ func (dc *DeploymentController) scaleReplicaSetAndRecordEvent(rs *extensions.Rep
func
(
dc
*
DeploymentController
)
scaleReplicaSet
(
rs
*
extensions
.
ReplicaSet
,
newScale
int32
,
deployment
*
extensions
.
Deployment
,
scalingOperation
string
)
(
*
extensions
.
ReplicaSet
,
error
)
{
// NOTE: This mutates the ReplicaSet passed in. Not sure if that's a good idea.
rs
.
Spec
.
Replicas
=
newScale
setReplicasAnnotations
(
rs
,
deployment
.
Spec
.
Replicas
,
deployment
.
Spec
.
Replicas
+
m
axSurge
(
*
deployment
))
deploymentutil
.
SetReplicasAnnotations
(
rs
,
deployment
.
Spec
.
Replicas
,
deployment
.
Spec
.
Replicas
+
deploymentutil
.
M
axSurge
(
*
deployment
))
rs
,
err
:=
dc
.
client
.
Extensions
()
.
ReplicaSets
(
rs
.
ObjectMeta
.
Namespace
)
.
Update
(
rs
)
if
err
==
nil
{
dc
.
eventRecorder
.
Eventf
(
deployment
,
api
.
EventTypeNormal
,
"ScalingReplicaSet"
,
"Scaled %s replica set %s to %d"
,
scalingOperation
,
rs
.
Name
,
newScale
)
...
...
@@ -515,7 +515,7 @@ func (dc *DeploymentController) isScalingEvent(d *extensions.Deployment) bool {
}
allRSs
:=
append
(
oldRSs
,
newRS
)
for
_
,
rs
:=
range
controller
.
FilterActiveReplicaSets
(
allRSs
)
{
desired
,
ok
:=
g
etDesiredReplicasAnnotation
(
rs
)
desired
,
ok
:=
deploymentutil
.
G
etDesiredReplicasAnnotation
(
rs
)
if
!
ok
{
continue
}
...
...
pkg/controller/deployment/sync_test.go
View file @
eec08872
...
...
@@ -25,6 +25,7 @@ import (
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset/fake"
"k8s.io/kubernetes/pkg/client/record"
"k8s.io/kubernetes/pkg/controller"
deploymentutil
"k8s.io/kubernetes/pkg/controller/deployment/util"
"k8s.io/kubernetes/pkg/util/intstr"
)
...
...
@@ -237,7 +238,7 @@ func TestScale(t *testing.T) {
if
desired
,
ok
:=
test
.
desiredReplicasAnnotations
[
test
.
newRS
.
Name
];
ok
{
desiredReplicas
=
desired
}
setReplicasAnnotations
(
test
.
newRS
,
desiredReplicas
,
desiredReplicas
+
m
axSurge
(
*
test
.
oldDeployment
))
deploymentutil
.
SetReplicasAnnotations
(
test
.
newRS
,
desiredReplicas
,
desiredReplicas
+
deploymentutil
.
M
axSurge
(
*
test
.
oldDeployment
))
}
for
i
:=
range
test
.
oldRSs
{
rs
:=
test
.
oldRSs
[
i
]
...
...
@@ -248,7 +249,7 @@ func TestScale(t *testing.T) {
if
desired
,
ok
:=
test
.
desiredReplicasAnnotations
[
rs
.
Name
];
ok
{
desiredReplicas
=
desired
}
setReplicasAnnotations
(
rs
,
desiredReplicas
,
desiredReplicas
+
m
axSurge
(
*
test
.
oldDeployment
))
deploymentutil
.
SetReplicasAnnotations
(
rs
,
desiredReplicas
,
desiredReplicas
+
deploymentutil
.
M
axSurge
(
*
test
.
oldDeployment
))
}
if
err
:=
dc
.
scale
(
test
.
deployment
,
test
.
newRS
,
test
.
oldRSs
);
err
!=
nil
{
...
...
pkg/controller/deployment/util.go
deleted
100644 → 0
View file @
b39951c7
This diff is collapsed.
Click to expand it.
pkg/
util/deployment/deployment
.go
→
pkg/
controller/deployment/util/deployment_util
.go
View file @
eec08872
This diff is collapsed.
Click to expand it.
pkg/
util/deployment/deployment
_test.go
→
pkg/
controller/deployment/util/deployment_util
_test.go
View file @
eec08872
...
...
@@ -14,7 +14,7 @@ See the License for the specific language governing permissions and
limitations under the License.
*/
package
deployment
package
util
import
(
"fmt"
...
...
pkg/kubectl/describe.go
View file @
eec08872
...
...
@@ -42,12 +42,12 @@ import (
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
client
"k8s.io/kubernetes/pkg/client/unversioned"
adapter
"k8s.io/kubernetes/pkg/client/unversioned/adapters/internalclientset"
deploymentutil
"k8s.io/kubernetes/pkg/controller/deployment/util"
"k8s.io/kubernetes/pkg/fieldpath"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/kubelet/qos"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/types"
deploymentutil
"k8s.io/kubernetes/pkg/util/deployment"
"k8s.io/kubernetes/pkg/util/intstr"
"k8s.io/kubernetes/pkg/util/sets"
)
...
...
pkg/kubectl/history.go
View file @
eec08872
...
...
@@ -25,8 +25,8 @@ import (
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/apis/extensions"
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
deploymentutil
"k8s.io/kubernetes/pkg/controller/deployment/util"
"k8s.io/kubernetes/pkg/runtime"
deploymentutil
"k8s.io/kubernetes/pkg/util/deployment"
sliceutil
"k8s.io/kubernetes/pkg/util/slice"
)
...
...
pkg/kubectl/rollback.go
View file @
eec08872
...
...
@@ -26,8 +26,8 @@ import (
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/apis/extensions"
client
"k8s.io/kubernetes/pkg/client/unversioned"
deploymentutil
"k8s.io/kubernetes/pkg/controller/deployment/util"
"k8s.io/kubernetes/pkg/runtime"
deploymentutil
"k8s.io/kubernetes/pkg/util/deployment"
"k8s.io/kubernetes/pkg/watch"
)
...
...
pkg/kubectl/rolling_updater.go
View file @
eec08872
...
...
@@ -28,9 +28,9 @@ import (
"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/unversioned"
client
"k8s.io/kubernetes/pkg/client/unversioned"
deploymentutil
"k8s.io/kubernetes/pkg/controller/deployment/util"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/util/deployment"
"k8s.io/kubernetes/pkg/util/integer"
"k8s.io/kubernetes/pkg/util/intstr"
"k8s.io/kubernetes/pkg/util/wait"
...
...
@@ -206,7 +206,7 @@ func (r *RollingUpdater) Update(config *RollingUpdaterConfig) error {
}
// maxSurge is the maximum scaling increment and maxUnavailable are the maximum pods
// that can be unavailable during a rollout.
maxSurge
,
maxUnavailable
,
err
:=
deployment
.
ResolveFenceposts
(
&
config
.
MaxSurge
,
&
config
.
MaxUnavailable
,
desired
)
maxSurge
,
maxUnavailable
,
err
:=
deployment
util
.
ResolveFenceposts
(
&
config
.
MaxSurge
,
&
config
.
MaxUnavailable
,
desired
)
if
err
!=
nil
{
return
err
}
...
...
@@ -420,7 +420,7 @@ func (r *RollingUpdater) readyPods(oldRc, newRc *api.ReplicationController, minR
return
0
,
0
,
err
}
for
_
,
pod
:=
range
pods
.
Items
{
if
!
deployment
.
IsPodAvailable
(
&
pod
,
minReadySeconds
,
r
.
nowFn
()
.
Time
)
{
if
!
deployment
util
.
IsPodAvailable
(
&
pod
,
minReadySeconds
,
r
.
nowFn
()
.
Time
)
{
continue
}
switch
controller
.
Name
{
...
...
pkg/kubectl/stop.go
View file @
eec08872
...
...
@@ -28,9 +28,9 @@ import (
"k8s.io/kubernetes/pkg/apis/batch"
"k8s.io/kubernetes/pkg/apis/extensions"
client
"k8s.io/kubernetes/pkg/client/unversioned"
deploymentutil
"k8s.io/kubernetes/pkg/controller/deployment/util"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/util"
deploymentutil
"k8s.io/kubernetes/pkg/util/deployment"
utilerrors
"k8s.io/kubernetes/pkg/util/errors"
"k8s.io/kubernetes/pkg/util/wait"
)
...
...
pkg/kubectl/stop_test.go
View file @
eec08872
...
...
@@ -29,8 +29,8 @@ import (
"k8s.io/kubernetes/pkg/apis/extensions"
client
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/client/unversioned/testclient"
deploymentutil
"k8s.io/kubernetes/pkg/controller/deployment/util"
"k8s.io/kubernetes/pkg/runtime"
deploymentutil
"k8s.io/kubernetes/pkg/util/deployment"
)
func
TestReplicationControllerStop
(
t
*
testing
.
T
)
{
...
...
test/e2e/deployment.go
View file @
eec08872
...
...
@@ -30,10 +30,10 @@ import (
clientset
"k8s.io/kubernetes/pkg/client/clientset_generated/internalclientset"
client
"k8s.io/kubernetes/pkg/client/unversioned"
adapter
"k8s.io/kubernetes/pkg/client/unversioned/adapters/internalclientset"
deploymentutil
"k8s.io/kubernetes/pkg/controller/deployment/util"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/labels"
"k8s.io/kubernetes/pkg/util"
deploymentutil
"k8s.io/kubernetes/pkg/util/deployment"
"k8s.io/kubernetes/pkg/util/intstr"
"k8s.io/kubernetes/pkg/util/wait"
"k8s.io/kubernetes/pkg/watch"
...
...
test/e2e/framework/util.go
View file @
eec08872
...
...
@@ -55,6 +55,7 @@ import (
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd"
clientcmdapi
"k8s.io/kubernetes/pkg/client/unversioned/clientcmd/api"
gcecloud
"k8s.io/kubernetes/pkg/cloudprovider/providers/gce"
deploymentutil
"k8s.io/kubernetes/pkg/controller/deployment/util"
"k8s.io/kubernetes/pkg/fields"
"k8s.io/kubernetes/pkg/kubectl"
"k8s.io/kubernetes/pkg/kubelet/util/format"
...
...
@@ -64,7 +65,6 @@ import (
sshutil
"k8s.io/kubernetes/pkg/ssh"
"k8s.io/kubernetes/pkg/types"
"k8s.io/kubernetes/pkg/util"
deploymentutil
"k8s.io/kubernetes/pkg/util/deployment"
labelsutil
"k8s.io/kubernetes/pkg/util/labels"
"k8s.io/kubernetes/pkg/util/sets"
"k8s.io/kubernetes/pkg/util/wait"
...
...
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