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
8de89d9f
Commit
8de89d9f
authored
Feb 06, 2018
by
Ayush Pateria
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Fix StatefulSet set selector bug
parent
d8928efc
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
31 additions
and
5 deletions
+31
-5
controller_history.go
pkg/controller/history/controller_history.go
+31
-5
No files found.
pkg/controller/history/controller_history.go
View file @
8de89d9f
...
@@ -18,6 +18,7 @@ package history
...
@@ -18,6 +18,7 @@ package history
import
(
import
(
"bytes"
"bytes"
"encoding/json"
"fmt"
"fmt"
"hash/fnv"
"hash/fnv"
"sort"
"sort"
...
@@ -56,7 +57,7 @@ func ControllerRevisionName(prefix string, hash uint32) string {
...
@@ -56,7 +57,7 @@ func ControllerRevisionName(prefix string, hash uint32) string {
}
}
// NewControllerRevision returns a ControllerRevision with a ControllerRef pointing to parent and indicating that
// NewControllerRevision returns a ControllerRevision with a ControllerRef pointing to parent and indicating that
// parent is of parentKind. The ControllerRevision has labels matching
selector
, contains Data equal to data, and
// parent is of parentKind. The ControllerRevision has labels matching
pod
, contains Data equal to data, and
// has a Revision equal to revision. The collisionCount is used when creating the name of the ControllerRevision
// has a Revision equal to revision. The collisionCount is used when creating the name of the ControllerRevision
// so the name is likely unique. If the returned error is nil, the returned ControllerRevision is valid. If the
// so the name is likely unique. If the returned error is nil, the returned ControllerRevision is valid. If the
// returned error is not nil, the returned ControllerRevision is invalid for use.
// returned error is not nil, the returned ControllerRevision is invalid for use.
...
@@ -66,10 +67,7 @@ func NewControllerRevision(parent metav1.Object,
...
@@ -66,10 +67,7 @@ func NewControllerRevision(parent metav1.Object,
data
runtime
.
RawExtension
,
data
runtime
.
RawExtension
,
revision
int64
,
revision
int64
,
collisionCount
*
int32
)
(
*
apps
.
ControllerRevision
,
error
)
{
collisionCount
*
int32
)
(
*
apps
.
ControllerRevision
,
error
)
{
labelMap
,
err
:=
labels
.
ConvertSelectorToLabelsMap
(
selector
.
String
())
labelMap
:=
getPodLabelsFromData
(
data
)
if
err
!=
nil
{
return
nil
,
err
}
blockOwnerDeletion
:=
true
blockOwnerDeletion
:=
true
isController
:=
true
isController
:=
true
cr
:=
&
apps
.
ControllerRevision
{
cr
:=
&
apps
.
ControllerRevision
{
...
@@ -454,3 +452,31 @@ func (fh *fakeHistory) ReleaseControllerRevision(parent metav1.Object, revision
...
@@ -454,3 +452,31 @@ func (fh *fakeHistory) ReleaseControllerRevision(parent metav1.Object, revision
}
}
return
clone
,
fh
.
indexer
.
Update
(
clone
)
return
clone
,
fh
.
indexer
.
Update
(
clone
)
}
}
func
getPodLabelsFromData
(
data
runtime
.
RawExtension
)
map
[
string
]
string
{
var
dat
map
[
string
]
interface
{}
labelMap
:=
make
(
map
[
string
]
string
)
if
err
:=
json
.
Unmarshal
(
data
.
Raw
,
&
dat
);
err
!=
nil
{
return
labelMap
}
spec
,
ok
:=
dat
[
"spec"
]
.
(
map
[
string
]
interface
{})
if
!
ok
{
return
labelMap
}
template
,
ok
:=
spec
[
"template"
]
.
(
map
[
string
]
interface
{})
if
!
ok
{
return
labelMap
}
metadata
,
ok
:=
template
[
"metadata"
]
.
(
map
[
string
]
interface
{})
if
!
ok
{
return
labelMap
}
labels
,
ok
:=
metadata
[
"labels"
]
.
(
map
[
string
]
interface
{})
if
!
ok
{
return
labelMap
}
for
key
,
value
:=
range
labels
{
labelMap
[
key
]
=
value
.
(
string
)
}
return
labelMap
}
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