...

Source file src/sigs.k8s.io/cli-utils/pkg/kstatus/polling/statusreaders/statefulset.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 NewStatefulSetResourceReader(mapper meta.RESTMapper, podResourceReader resourceTypeStatusReader) engine.StatusReader {
    18  	return &baseStatusReader{
    19  		mapper: mapper,
    20  		resourceStatusReader: &statefulSetResourceReader{
    21  			mapper:            mapper,
    22  			podResourceReader: podResourceReader,
    23  		},
    24  	}
    25  }
    26  
    27  // statefulSetResourceReader is an implementation of the ResourceReader interface
    28  // that can fetch StatefulSet resources from the cluster, knows how to find any
    29  // Pods belonging to the StatefulSet, and compute status for the StatefulSet.
    30  type statefulSetResourceReader struct {
    31  	mapper meta.RESTMapper
    32  
    33  	podResourceReader resourceTypeStatusReader
    34  }
    35  
    36  var _ resourceTypeStatusReader = &statefulSetResourceReader{}
    37  
    38  func (s *statefulSetResourceReader) Supports(gk schema.GroupKind) bool {
    39  	return gk == appsv1.SchemeGroupVersion.WithKind("StatefulSet").GroupKind()
    40  }
    41  
    42  func (s *statefulSetResourceReader) ReadStatusForObject(ctx context.Context, reader engine.ClusterReader,
    43  	statefulSet *unstructured.Unstructured) (*event.ResourceStatus, error) {
    44  	return newPodControllerStatusReader(s.mapper, s.podResourceReader).readStatus(ctx, reader, statefulSet)
    45  }
    46  

View as plain text