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
a6539f84
Commit
a6539f84
authored
Aug 09, 2016
by
AdoHe
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
move RangeRegistry to a separate package for generic usage
parent
b5ce23c4
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
67 additions
and
24 deletions
+67
-24
controller.go
pkg/master/controller.go
+3
-2
master.go
pkg/master/master.go
+5
-4
doc.go
pkg/registry/rangeallocation/doc.go
+19
-0
registry.go
pkg/registry/rangeallocation/registry.go
+31
-0
etcd.go
pkg/registry/service/allocator/etcd/etcd.go
+3
-3
repair.go
pkg/registry/service/ipallocator/controller/repair.go
+3
-2
repair.go
pkg/registry/service/portallocator/controller/repair.go
+3
-2
registry.go
pkg/registry/service/registry.go
+0
-11
No files found.
pkg/master/controller.go
View file @
a6539f84
...
@@ -28,6 +28,7 @@ import (
...
@@ -28,6 +28,7 @@ import (
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/api/rest"
"k8s.io/kubernetes/pkg/registry/endpoint"
"k8s.io/kubernetes/pkg/registry/endpoint"
"k8s.io/kubernetes/pkg/registry/namespace"
"k8s.io/kubernetes/pkg/registry/namespace"
"k8s.io/kubernetes/pkg/registry/rangeallocation"
"k8s.io/kubernetes/pkg/registry/service"
"k8s.io/kubernetes/pkg/registry/service"
servicecontroller
"k8s.io/kubernetes/pkg/registry/service/ipallocator/controller"
servicecontroller
"k8s.io/kubernetes/pkg/registry/service/ipallocator/controller"
portallocatorcontroller
"k8s.io/kubernetes/pkg/registry/service/portallocator/controller"
portallocatorcontroller
"k8s.io/kubernetes/pkg/registry/service/portallocator/controller"
...
@@ -45,11 +46,11 @@ type Controller struct {
...
@@ -45,11 +46,11 @@ type Controller struct {
NamespaceRegistry
namespace
.
Registry
NamespaceRegistry
namespace
.
Registry
ServiceRegistry
service
.
Registry
ServiceRegistry
service
.
Registry
ServiceClusterIPRegistry
service
.
RangeRegistry
ServiceClusterIPRegistry
rangeallocation
.
RangeRegistry
ServiceClusterIPInterval
time
.
Duration
ServiceClusterIPInterval
time
.
Duration
ServiceClusterIPRange
*
net
.
IPNet
ServiceClusterIPRange
*
net
.
IPNet
ServiceNodePortRegistry
service
.
RangeRegistry
ServiceNodePortRegistry
rangeallocation
.
RangeRegistry
ServiceNodePortInterval
time
.
Duration
ServiceNodePortInterval
time
.
Duration
ServiceNodePortRange
utilnet
.
PortRange
ServiceNodePortRange
utilnet
.
PortRange
...
...
pkg/master/master.go
View file @
a6539f84
...
@@ -71,6 +71,7 @@ import (
...
@@ -71,6 +71,7 @@ import (
pvcetcd
"k8s.io/kubernetes/pkg/registry/persistentvolumeclaim/etcd"
pvcetcd
"k8s.io/kubernetes/pkg/registry/persistentvolumeclaim/etcd"
podetcd
"k8s.io/kubernetes/pkg/registry/pod/etcd"
podetcd
"k8s.io/kubernetes/pkg/registry/pod/etcd"
podtemplateetcd
"k8s.io/kubernetes/pkg/registry/podtemplate/etcd"
podtemplateetcd
"k8s.io/kubernetes/pkg/registry/podtemplate/etcd"
"k8s.io/kubernetes/pkg/registry/rangeallocation"
resourcequotaetcd
"k8s.io/kubernetes/pkg/registry/resourcequota/etcd"
resourcequotaetcd
"k8s.io/kubernetes/pkg/registry/resourcequota/etcd"
secretetcd
"k8s.io/kubernetes/pkg/registry/secret/etcd"
secretetcd
"k8s.io/kubernetes/pkg/registry/secret/etcd"
"k8s.io/kubernetes/pkg/registry/service"
"k8s.io/kubernetes/pkg/registry/service"
...
@@ -137,8 +138,8 @@ type Master struct {
...
@@ -137,8 +138,8 @@ type Master struct {
namespaceRegistry
namespace
.
Registry
namespaceRegistry
namespace
.
Registry
serviceRegistry
service
.
Registry
serviceRegistry
service
.
Registry
endpointRegistry
endpoint
.
Registry
endpointRegistry
endpoint
.
Registry
serviceClusterIPAllocator
service
.
RangeRegistry
serviceClusterIPAllocator
rangeallocation
.
RangeRegistry
serviceNodePortAllocator
service
.
RangeRegistry
serviceNodePortAllocator
rangeallocation
.
RangeRegistry
// storage for third party objects
// storage for third party objects
thirdPartyStorage
storage
.
Interface
thirdPartyStorage
storage
.
Interface
...
@@ -341,7 +342,7 @@ func (m *Master) initV1ResourcesStorage(c *Config) {
...
@@ -341,7 +342,7 @@ func (m *Master) initV1ResourcesStorage(c *Config) {
serviceRESTStorage
,
serviceStatusStorage
:=
serviceetcd
.
NewREST
(
restOptions
(
"services"
))
serviceRESTStorage
,
serviceStatusStorage
:=
serviceetcd
.
NewREST
(
restOptions
(
"services"
))
m
.
serviceRegistry
=
service
.
NewRegistry
(
serviceRESTStorage
)
m
.
serviceRegistry
=
service
.
NewRegistry
(
serviceRESTStorage
)
var
serviceClusterIPRegistry
service
.
RangeRegistry
var
serviceClusterIPRegistry
rangeallocation
.
RangeRegistry
serviceClusterIPRange
:=
m
.
ServiceClusterIPRange
serviceClusterIPRange
:=
m
.
ServiceClusterIPRange
if
serviceClusterIPRange
==
nil
{
if
serviceClusterIPRange
==
nil
{
glog
.
Fatalf
(
"service clusterIPRange is nil"
)
glog
.
Fatalf
(
"service clusterIPRange is nil"
)
...
@@ -362,7 +363,7 @@ func (m *Master) initV1ResourcesStorage(c *Config) {
...
@@ -362,7 +363,7 @@ func (m *Master) initV1ResourcesStorage(c *Config) {
})
})
m
.
serviceClusterIPAllocator
=
serviceClusterIPRegistry
m
.
serviceClusterIPAllocator
=
serviceClusterIPRegistry
var
serviceNodePortRegistry
service
.
RangeRegistry
var
serviceNodePortRegistry
rangeallocation
.
RangeRegistry
serviceNodePortAllocator
:=
portallocator
.
NewPortAllocatorCustom
(
m
.
ServiceNodePortRange
,
func
(
max
int
,
rangeSpec
string
)
allocator
.
Interface
{
serviceNodePortAllocator
:=
portallocator
.
NewPortAllocatorCustom
(
m
.
ServiceNodePortRange
,
func
(
max
int
,
rangeSpec
string
)
allocator
.
Interface
{
mem
:=
allocator
.
NewAllocationMap
(
max
,
rangeSpec
)
mem
:=
allocator
.
NewAllocationMap
(
max
,
rangeSpec
)
// TODO etcdallocator package to return a storage interface via the storageFactory
// TODO etcdallocator package to return a storage interface via the storageFactory
...
...
pkg/registry/rangeallocation/doc.go
0 → 100644
View file @
a6539f84
/*
Copyright 2016 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
// Package rangeallocation provides the Registry interface for storing RangeAllocation
// api objects.
package
rangeallocation
pkg/registry/rangeallocation/registry.go
0 → 100644
View file @
a6539f84
/*
Copyright 2016 The Kubernetes Authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package
rangeallocation
import
(
"k8s.io/kubernetes/pkg/api"
)
// RangeRegistry is a registry that can retrieve or persist a RangeAllocation object.
type
RangeRegistry
interface
{
// Get returns the latest allocation, an empty object if no allocation has been made,
// or an error if the allocation could not be retrieved.
Get
()
(
*
api
.
RangeAllocation
,
error
)
// CreateOrUpdate should create or update the provide allocation, unless a conflict
// has occurred since the item was last created.
CreateOrUpdate
(
*
api
.
RangeAllocation
)
error
}
pkg/registry/service/allocator/etcd/etcd.go
View file @
a6539f84
...
@@ -25,7 +25,7 @@ import (
...
@@ -25,7 +25,7 @@ import (
k8serr
"k8s.io/kubernetes/pkg/api/errors"
k8serr
"k8s.io/kubernetes/pkg/api/errors"
storeerr
"k8s.io/kubernetes/pkg/api/errors/storage"
storeerr
"k8s.io/kubernetes/pkg/api/errors/storage"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/api/unversioned"
"k8s.io/kubernetes/pkg/registry/
service
"
"k8s.io/kubernetes/pkg/registry/
rangeallocation
"
"k8s.io/kubernetes/pkg/registry/service/allocator"
"k8s.io/kubernetes/pkg/registry/service/allocator"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/runtime"
"k8s.io/kubernetes/pkg/storage"
"k8s.io/kubernetes/pkg/storage"
...
@@ -52,9 +52,9 @@ type Etcd struct {
...
@@ -52,9 +52,9 @@ type Etcd struct {
resource
unversioned
.
GroupResource
resource
unversioned
.
GroupResource
}
}
// Etcd implements allocator.Interface and
service
.RangeRegistry
// Etcd implements allocator.Interface and
rangeallocation
.RangeRegistry
var
_
allocator
.
Interface
=
&
Etcd
{}
var
_
allocator
.
Interface
=
&
Etcd
{}
var
_
service
.
RangeRegistry
=
&
Etcd
{}
var
_
rangeallocation
.
RangeRegistry
=
&
Etcd
{}
// NewEtcd returns an allocator that is backed by Etcd and can manage
// NewEtcd returns an allocator that is backed by Etcd and can manage
// persisting the snapshot state of allocation after each allocation is made.
// persisting the snapshot state of allocation after each allocation is made.
...
...
pkg/registry/service/ipallocator/controller/repair.go
View file @
a6539f84
...
@@ -24,6 +24,7 @@ import (
...
@@ -24,6 +24,7 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/errors"
client
"k8s.io/kubernetes/pkg/client/unversioned"
client
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/registry/rangeallocation"
"k8s.io/kubernetes/pkg/registry/service"
"k8s.io/kubernetes/pkg/registry/service"
"k8s.io/kubernetes/pkg/registry/service/ipallocator"
"k8s.io/kubernetes/pkg/registry/service/ipallocator"
"k8s.io/kubernetes/pkg/util/runtime"
"k8s.io/kubernetes/pkg/util/runtime"
...
@@ -49,12 +50,12 @@ type Repair struct {
...
@@ -49,12 +50,12 @@ type Repair struct {
interval
time
.
Duration
interval
time
.
Duration
registry
service
.
Registry
registry
service
.
Registry
network
*
net
.
IPNet
network
*
net
.
IPNet
alloc
service
.
RangeRegistry
alloc
rangeallocation
.
RangeRegistry
}
}
// NewRepair creates a controller that periodically ensures that all clusterIPs are uniquely allocated across the cluster
// NewRepair creates a controller that periodically ensures that all clusterIPs are uniquely allocated across the cluster
// and generates informational warnings for a cluster that is not in sync.
// and generates informational warnings for a cluster that is not in sync.
func
NewRepair
(
interval
time
.
Duration
,
registry
service
.
Registry
,
network
*
net
.
IPNet
,
alloc
service
.
RangeRegistry
)
*
Repair
{
func
NewRepair
(
interval
time
.
Duration
,
registry
service
.
Registry
,
network
*
net
.
IPNet
,
alloc
rangeallocation
.
RangeRegistry
)
*
Repair
{
return
&
Repair
{
return
&
Repair
{
interval
:
interval
,
interval
:
interval
,
registry
:
registry
,
registry
:
registry
,
...
...
pkg/registry/service/portallocator/controller/repair.go
View file @
a6539f84
...
@@ -23,6 +23,7 @@ import (
...
@@ -23,6 +23,7 @@ import (
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/errors"
"k8s.io/kubernetes/pkg/api/errors"
client
"k8s.io/kubernetes/pkg/client/unversioned"
client
"k8s.io/kubernetes/pkg/client/unversioned"
"k8s.io/kubernetes/pkg/registry/rangeallocation"
"k8s.io/kubernetes/pkg/registry/service"
"k8s.io/kubernetes/pkg/registry/service"
"k8s.io/kubernetes/pkg/registry/service/portallocator"
"k8s.io/kubernetes/pkg/registry/service/portallocator"
"k8s.io/kubernetes/pkg/util/net"
"k8s.io/kubernetes/pkg/util/net"
...
@@ -35,12 +36,12 @@ type Repair struct {
...
@@ -35,12 +36,12 @@ type Repair struct {
interval
time
.
Duration
interval
time
.
Duration
registry
service
.
Registry
registry
service
.
Registry
portRange
net
.
PortRange
portRange
net
.
PortRange
alloc
service
.
RangeRegistry
alloc
rangeallocation
.
RangeRegistry
}
}
// NewRepair creates a controller that periodically ensures that all ports are uniquely allocated across the cluster
// NewRepair creates a controller that periodically ensures that all ports are uniquely allocated across the cluster
// and generates informational warnings for a cluster that is not in sync.
// and generates informational warnings for a cluster that is not in sync.
func
NewRepair
(
interval
time
.
Duration
,
registry
service
.
Registry
,
portRange
net
.
PortRange
,
alloc
service
.
RangeRegistry
)
*
Repair
{
func
NewRepair
(
interval
time
.
Duration
,
registry
service
.
Registry
,
portRange
net
.
PortRange
,
alloc
rangeallocation
.
RangeRegistry
)
*
Repair
{
return
&
Repair
{
return
&
Repair
{
interval
:
interval
,
interval
:
interval
,
registry
:
registry
,
registry
:
registry
,
...
...
pkg/registry/service/registry.go
View file @
a6539f84
...
@@ -101,14 +101,3 @@ func (s *storage) ExportService(ctx api.Context, name string, options unversione
...
@@ -101,14 +101,3 @@ func (s *storage) ExportService(ctx api.Context, name string, options unversione
}
}
return
obj
.
(
*
api
.
Service
),
nil
return
obj
.
(
*
api
.
Service
),
nil
}
}
// TODO: Move to a general location (as other components may need allocation in future; it's not service specific)
// RangeRegistry is a registry that can retrieve or persist a RangeAllocation object.
type
RangeRegistry
interface
{
// Get returns the latest allocation, an empty object if no allocation has been made,
// or an error if the allocation could not be retrieved.
Get
()
(
*
api
.
RangeAllocation
,
error
)
// CreateOrUpdate should create or update the provide allocation, unless a conflict
// has occurred since the item was last created.
CreateOrUpdate
(
*
api
.
RangeAllocation
)
error
}
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