1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- /*
- Copyright 2014 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.
- */
- // ### ATTENTION ###
- //
- // ReplicationManager is now just a wrapper around ReplicaSetController,
- // with a conversion layer that effectively treats ReplicationController
- // as if it were an older API version of ReplicaSet.
- //
- // However, RC and RS still have separate storage and separate instantiations
- // of the ReplicaSetController object.
- package replication
- import (
- "k8s.io/api/core/v1"
- coreinformers "k8s.io/client-go/informers/core/v1"
- clientset "k8s.io/client-go/kubernetes"
- "k8s.io/client-go/kubernetes/scheme"
- v1core "k8s.io/client-go/kubernetes/typed/core/v1"
- "k8s.io/client-go/tools/record"
- "k8s.io/klog"
- "k8s.io/kubernetes/pkg/controller"
- "k8s.io/kubernetes/pkg/controller/replicaset"
- )
- const (
- BurstReplicas = replicaset.BurstReplicas
- )
- // ReplicationManager is responsible for synchronizing ReplicationController objects stored
- // in the system with actual running pods.
- // It is actually just a wrapper around ReplicaSetController.
- type ReplicationManager struct {
- replicaset.ReplicaSetController
- }
- // NewReplicationManager configures a replication manager with the specified event recorder
- func NewReplicationManager(podInformer coreinformers.PodInformer, rcInformer coreinformers.ReplicationControllerInformer, kubeClient clientset.Interface, burstReplicas int) *ReplicationManager {
- eventBroadcaster := record.NewBroadcaster()
- eventBroadcaster.StartLogging(klog.Infof)
- eventBroadcaster.StartRecordingToSink(&v1core.EventSinkImpl{Interface: kubeClient.CoreV1().Events("")})
- return &ReplicationManager{
- *replicaset.NewBaseController(informerAdapter{rcInformer}, podInformer, clientsetAdapter{kubeClient}, burstReplicas,
- v1.SchemeGroupVersion.WithKind("ReplicationController"),
- "replication_controller",
- "replicationmanager",
- podControlAdapter{controller.RealPodControl{
- KubeClient: kubeClient,
- Recorder: eventBroadcaster.NewRecorder(scheme.Scheme, v1.EventSource{Component: "replication-controller"}),
- }},
- ),
- }
- }
|