Interface KubernetesLeaseResourceManager<T extends io.fabric8.kubernetes.api.model.HasMetadata>

All Known Implementing Classes:
ConfigMapLeaseResourceManager, NativeLeaseResourceManager

public interface KubernetesLeaseResourceManager<T extends io.fabric8.kubernetes.api.model.HasMetadata>
Handles the actual interaction with Kubernetes resources, allowing different implementation to be plugged.
  • Method Details

    • create

      static <S extends io.fabric8.kubernetes.api.model.HasMetadata> KubernetesLeaseResourceManager<S> create(LeaseResourceType type)
    • decodeLeaderInfo

      LeaderInfo decodeLeaderInfo(T leaseResource, Set<String> members, String group)
      Return a LeaderInfo object from the underlying Kubernetes resource.
    • fetchLeaseResource

      T fetchLeaseResource(io.fabric8.kubernetes.client.KubernetesClient client, String namespace, String leaseResourceName, String group)
      Fetch the lease resource for the given name and group.
    • optimisticDeleteLeaderInfo

      T optimisticDeleteLeaderInfo(io.fabric8.kubernetes.client.KubernetesClient client, T leaseResource, String group)
      Delete leadership information for the given lease resource and group.
    • optimisticAcquireLeadership

      T optimisticAcquireLeadership(io.fabric8.kubernetes.client.KubernetesClient client, T leaseResource, LeaderInfo newLeaderInfo)
      Set the leadership information on the lease resource to match the given LeaderInfo.
    • createNewLeaseResource

      T createNewLeaseResource(io.fabric8.kubernetes.client.KubernetesClient client, String namespace, String leaseResourceName, LeaderInfo leaderInfo)
      Create a new lease resource matching the given LeaderInfo.
    • refreshLeaseRenewTime

      T refreshLeaseRenewTime(io.fabric8.kubernetes.client.KubernetesClient client, T leaseResource, int minUpdateIntervalSeconds)
      Update information on the lease resource to increase the renew time (if last renewal has occurred more than minUpdateIntervalSeconds seconds ago).