Class KubernetesCachingAgent

java.lang.Object
com.netflix.spinnaker.clouddriver.kubernetes.caching.agent.KubernetesCachingAgent
All Implemented Interfaces:
com.netflix.spinnaker.cats.agent.AccountAware, com.netflix.spinnaker.cats.agent.Agent, com.netflix.spinnaker.cats.agent.AgentIntervalAware, com.netflix.spinnaker.cats.agent.CachingAgent
Direct Known Subclasses:
KubernetesCoreCachingAgent, KubernetesUnregisteredCustomResourceCachingAgent

public abstract class KubernetesCachingAgent extends Object implements com.netflix.spinnaker.cats.agent.AgentIntervalAware, com.netflix.spinnaker.cats.agent.CachingAgent, com.netflix.spinnaker.cats.agent.AccountAware
A kubernetes caching agent is a class that caches part of the kubernetes infrastructure. Every instance of a caching agent is responsible for caching only one account, and only some (but not all) kubernetes kinds of that account.
  • Field Details

    • SPINNAKER_UI_KINDS

      public static final List<SpinnakerKind> SPINNAKER_UI_KINDS
    • accountName

      @Nonnull protected final String accountName
    • registry

      protected final com.netflix.spectator.api.Registry registry
    • credentials

      protected final KubernetesCredentials credentials
    • objectMapper

      protected final com.fasterxml.jackson.databind.ObjectMapper objectMapper
    • agentIndex

      protected final int agentIndex
    • agentCount

      protected final int agentCount
    • jobExecutor

      protected KubectlJobExecutor jobExecutor
    • providerName

      protected String providerName
    • agentInterval

      protected final Long agentInterval
    • configurationProperties

      protected final KubernetesConfigurationProperties configurationProperties
    • kubernetesSpinnakerKindMap

      protected final KubernetesSpinnakerKindMap kubernetesSpinnakerKindMap
  • Constructor Details

  • Method Details

    • defaultIntrospectionDetails

      protected Map<String,Object> defaultIntrospectionDetails()
    • primaryKinds

      protected abstract List<KubernetesKind> primaryKinds()
    • filteredPrimaryKinds

      protected List<KubernetesKind> filteredPrimaryKinds()
      Filters the list of kinds returned from primaryKinds according to configuration.
      Returns:
      filtered list of primaryKinds.
    • loadPrimaryResourceList

      protected Map<KubernetesKind,List<KubernetesManifest>> loadPrimaryResourceList()
    • loadPrimaryResource

      @Deprecated protected KubernetesManifest loadPrimaryResource(KubernetesKind kind, String namespace, String name)
      Deprecated.
    • loadPrimaryResource

      protected KubernetesManifest loadPrimaryResource(KubernetesCoordinates coordinates)
    • loadData

      public com.netflix.spinnaker.cats.agent.CacheResult loadData(com.netflix.spinnaker.cats.provider.ProviderCache providerCache)
      Specified by:
      loadData in interface com.netflix.spinnaker.cats.agent.CachingAgent
    • buildCacheResult

      protected com.netflix.spinnaker.cats.agent.CacheResult buildCacheResult(KubernetesManifest resource)
    • buildCacheResult

      protected com.netflix.spinnaker.cats.agent.CacheResult buildCacheResult(Map<KubernetesKind,List<KubernetesManifest>> resources)
    • loadSecondaryResourceRelationships

      protected Map<KubernetesManifest,List<KubernetesManifest>> loadSecondaryResourceRelationships(Map<KubernetesKind,List<KubernetesManifest>> allResources)
    • getNamespaces

      protected com.google.common.collect.ImmutableList<String> getNamespaces()
    • handleClusterScopedResources

      protected boolean handleClusterScopedResources()
      Should this caching agent be responsible for caching cluster-scoped resources (ie, those that do not live in a particular namespace)?
    • getAgentType

      public String getAgentType()
      Specified by:
      getAgentType in interface com.netflix.spinnaker.cats.agent.Agent