| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164 |
- /*
- Copyright 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.
- */
- // This file was autogenerated by go-to-protobuf. Do not edit it manually!
- syntax = "proto2";
- package k8s.io.api.coordination.v1beta1;
- import "k8s.io/api/coordination/v1/generated.proto";
- import "k8s.io/apimachinery/pkg/apis/meta/v1/generated.proto";
- import "k8s.io/apimachinery/pkg/runtime/generated.proto";
- import "k8s.io/apimachinery/pkg/runtime/schema/generated.proto";
- // Package-wide variables from generator "generated".
- option go_package = "k8s.io/api/coordination/v1beta1";
- // Lease defines a lease concept.
- message Lease {
- // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
- // +optional
- optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
- // spec contains the specification of the Lease.
- // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
- // +optional
- optional LeaseSpec spec = 2;
- }
- // LeaseCandidate defines a candidate for a Lease object.
- // Candidates are created such that coordinated leader election will pick the best leader from the list of candidates.
- message LeaseCandidate {
- // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
- // +optional
- optional .k8s.io.apimachinery.pkg.apis.meta.v1.ObjectMeta metadata = 1;
- // spec contains the specification of the Lease.
- // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status
- // +optional
- optional LeaseCandidateSpec spec = 2;
- }
- // LeaseCandidateList is a list of Lease objects.
- message LeaseCandidateList {
- // Standard list metadata.
- // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
- // +optional
- optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
- // items is a list of schema objects.
- repeated LeaseCandidate items = 2;
- }
- // LeaseCandidateSpec is a specification of a Lease.
- message LeaseCandidateSpec {
- // LeaseName is the name of the lease for which this candidate is contending.
- // The limits on this field are the same as on Lease.name. Multiple lease candidates
- // may reference the same Lease.name.
- // This field is immutable.
- // +required
- optional string leaseName = 1;
- // PingTime is the last time that the server has requested the LeaseCandidate
- // to renew. It is only done during leader election to check if any
- // LeaseCandidates have become ineligible. When PingTime is updated, the
- // LeaseCandidate will respond by updating RenewTime.
- // +optional
- optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime pingTime = 2;
- // RenewTime is the time that the LeaseCandidate was last updated.
- // Any time a Lease needs to do leader election, the PingTime field
- // is updated to signal to the LeaseCandidate that they should update
- // the RenewTime.
- // Old LeaseCandidate objects are also garbage collected if it has been hours
- // since the last renew. The PingTime field is updated regularly to prevent
- // garbage collection for still active LeaseCandidates.
- // +optional
- optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime renewTime = 3;
- // BinaryVersion is the binary version. It must be in a semver format without leading `v`.
- // This field is required.
- // +required
- optional string binaryVersion = 4;
- // EmulationVersion is the emulation version. It must be in a semver format without leading `v`.
- // EmulationVersion must be less than or equal to BinaryVersion.
- // This field is required when strategy is "OldestEmulationVersion"
- // +optional
- optional string emulationVersion = 5;
- // Strategy is the strategy that coordinated leader election will use for picking the leader.
- // If multiple candidates for the same Lease return different strategies, the strategy provided
- // by the candidate with the latest BinaryVersion will be used. If there is still conflict,
- // this is a user error and coordinated leader election will not operate the Lease until resolved.
- // +required
- optional string strategy = 6;
- }
- // LeaseList is a list of Lease objects.
- message LeaseList {
- // Standard list metadata.
- // More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata
- // +optional
- optional .k8s.io.apimachinery.pkg.apis.meta.v1.ListMeta metadata = 1;
- // items is a list of schema objects.
- repeated Lease items = 2;
- }
- // LeaseSpec is a specification of a Lease.
- message LeaseSpec {
- // holderIdentity contains the identity of the holder of a current lease.
- // If Coordinated Leader Election is used, the holder identity must be
- // equal to the elected LeaseCandidate.metadata.name field.
- // +optional
- optional string holderIdentity = 1;
- // leaseDurationSeconds is a duration that candidates for a lease need
- // to wait to force acquire it. This is measure against time of last
- // observed renewTime.
- // +optional
- optional int32 leaseDurationSeconds = 2;
- // acquireTime is a time when the current lease was acquired.
- // +optional
- optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime acquireTime = 3;
- // renewTime is a time when the current holder of a lease has last
- // updated the lease.
- // +optional
- optional .k8s.io.apimachinery.pkg.apis.meta.v1.MicroTime renewTime = 4;
- // leaseTransitions is the number of transitions of a lease between
- // holders.
- // +optional
- optional int32 leaseTransitions = 5;
- // Strategy indicates the strategy for picking the leader for coordinated leader election
- // (Alpha) Using this field requires the CoordinatedLeaderElection feature gate to be enabled.
- // +featureGate=CoordinatedLeaderElection
- // +optional
- optional string strategy = 6;
- // PreferredHolder signals to a lease holder that the lease has a
- // more optimal holder and should be given up.
- // +featureGate=CoordinatedLeaderElection
- // +optional
- optional string preferredHolder = 7;
- }
|