...

Source file src/sigs.k8s.io/cli-utils/pkg/kstatus/polling/statusreaders/replicaset.go

Documentation: sigs.k8s.io/cli-utils/pkg/kstatus/polling/statusreaders

     1  // Copyright 2020 The Kubernetes Authors.
     2  // SPDX-License-Identifier: Apache-2.0
     3  
     4  package statusreaders
     5  
     6  import (
     7  	"context"
     8  
     9  	appsv1 "k8s.io/api/apps/v1"
    10  	"k8s.io/apimachinery/pkg/api/meta"
    11  	"k8s.io/apimachinery/pkg/apis/meta/v1/unstructured"
    12  	"k8s.io/apimachinery/pkg/runtime/schema"
    13  	"sigs.k8s.io/cli-utils/pkg/kstatus/polling/engine"
    14  	"sigs.k8s.io/cli-utils/pkg/kstatus/polling/event"
    15  )
    16  
    17  func NewReplicaSetStatusReader(mapper meta.RESTMapper, podStatusReader resourceTypeStatusReader) engine.StatusReader {
    18  	return &baseStatusReader{
    19  		mapper: mapper,
    20  		resourceStatusReader: &replicaSetStatusReader{
    21  			mapper:          mapper,
    22  			podStatusReader: podStatusReader,
    23  		},
    24  	}
    25  }
    26  
    27  // replicaSetStatusReader is an engine that can fetch ReplicaSet resources
    28  // from the cluster, knows how to find any Pods belonging to the ReplicaSet,
    29  // and compute status for the ReplicaSet.
    30  type replicaSetStatusReader struct {
    31  	mapper meta.RESTMapper
    32  
    33  	podStatusReader resourceTypeStatusReader
    34  }
    35  
    36  var _ resourceTypeStatusReader = &replicaSetStatusReader{}
    37  
    38  func (r *replicaSetStatusReader) Supports(gk schema.GroupKind) bool {
    39  	return gk == appsv1.SchemeGroupVersion.WithKind("ReplicaSet").GroupKind()
    40  }
    41  
    42  func (r *replicaSetStatusReader) ReadStatusForObject(ctx context.Context, reader engine.ClusterReader, rs *unstructured.Unstructured) (*event.ResourceStatus, error) {
    43  	return newPodControllerStatusReader(r.mapper, r.podStatusReader).readStatus(ctx, reader, rs)
    44  }
    45  

View as plain text