package v1alpha2 import "cue.dev/x/k8s.io/apimachinery/pkg/apis/meta/v1" // 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. #LeaseCandidate: { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "coordination.k8s.io/v1alpha2" // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "LeaseCandidate" // More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata "metadata"?: v1.#ObjectMeta // spec contains the specification of the Lease. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status "spec"!: #LeaseCandidateSpec } // LeaseCandidateList is a list of Lease objects. #LeaseCandidateList: { // APIVersion defines the versioned schema of this representation of an object. // Servers should convert recognized schemas to the latest internal value, and // may reject unrecognized values. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources "apiVersion": "coordination.k8s.io/v1alpha2" // items is a list of schema objects. "items"!: [...#LeaseCandidate] // Kind is a string value representing the REST resource this object represents. // Servers may infer this from the endpoint the client submits requests to. // Cannot be updated. In CamelCase. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds "kind": "LeaseCandidateList" // Standard list metadata. More info: // https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata "metadata"?: v1.#ListMeta } // LeaseCandidateSpec is a specification of a Lease. #LeaseCandidateSpec: { // BinaryVersion is the binary version. It must be in a semver format without // leading `v`. This field is required. "binaryVersion"!: string // 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" "emulationVersion"?: string // LeaseName is the name of the lease for which this candidate is contending. // This field is immutable. "leaseName"!: string // 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. "pingTime"?: v1.#MicroTime // 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. "renewTime"?: v1.#MicroTime // 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. "strategy"!: string }