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 }