apiVersion: apis.kcp.io/v1alpha1
kind: APIResourceSchema
metadata:
name: v1alpha1-31.computecontracts.socialweb.computer
spec:
group: socialweb.computer
names:
kind: ComputeContract
listKind: ComputeContractList
plural: computecontracts
singular: computecontract
scope: Cluster
versions:
- name: v1alpha1
served: true
storage: true
subresources:
status: {}
schema:
type: object
properties:
apiVersion:
type: string
kind:
type: string
metadata:
type: object
spec:
type: object
properties:
vmName:
type: string
bidderDids:
type: array
items:
type: string
denyBidderDids:
type: array
items:
type: string
sshAuthorizedKeys:
type: array
items:
type: string
userData:
type: string
computeKind:
type: string
enum:
- vm
- deno
default: vm
policy:
type: string
policyArgs:
type: string
vmReadyTimeoutSec:
type: integer
tunnels:
type: array
items:
type: object
properties:
tag:
type: string
pattern: ^[a-z0-9]([a-z0-9-]{0,30}[a-z0-9])?$
port:
type: integer
minimum: 1
maximum: 65535
server:
type: string
shell:
type: object
properties:
envFile:
type: string
default: /etc/wootty/wootty.env
transport:
type: string
enum:
- opentunnel
- webrtc
default: opentunnel
required:
- tag
- port
x-kubernetes-list-type: map
x-kubernetes-list-map-keys:
- tag
agent:
type: object
properties:
envFile:
type: string
default: /etc/atirc/atirc.env
association:
type: object
properties:
subject:
type: string
fromGuest:
type: boolean
refFile:
type: string
default: /etc/socialweb-computer/association-ref
guestTools:
type: array
items:
type: string
enum:
- socialweb-computer
x-kubernetes-list-type: set
secretsRef:
type: object
properties:
vault:
type: object
properties:
group:
type: string
kind:
type: string
maxLength: 63
name:
type: string
maxLength: 253
workspace:
type: string
required:
- kind
- name
mount:
type: string
path:
type: string
key:
type: string
required:
- mount
- path
release:
type: boolean
releaseRequestedAt:
type: string
ownerDid:
type: string
adopt:
type: boolean
nodeJoin:
type: object
properties:
clusterRef:
type: object
properties:
name:
type: string
maxLength: 253
required:
- name
meshd:
type: object
properties:
downloadBase:
type: string
pins:
type: array
items:
type: object
properties:
arch:
type: string
sha256:
type: string
required:
- arch
- sha256
required:
- downloadBase
- pins
nodeAgent:
type: object
properties:
downloadBase:
type: string
pins:
type: array
items:
type: object
properties:
arch:
type: string
sha256:
type: string
required:
- arch
- sha256
required:
- downloadBase
- pins
required:
- clusterRef
ttlSecondsAfterFinished:
type: integer
format: int32
default: 691200
minimum: 0
status:
type: object
properties:
observedGeneration:
type: integer
format: int64
phase:
type: string
enum:
- Pending
- Requesting
- Held
- Releasing
- Released
- Failed
message:
type: string
secretsUrl:
type: string
secretsFetchedAt:
type: string
contract:
type: object
properties:
vmUri:
type: string
rfpUri:
type: string
acceptUri:
type: string
receiptUri:
type: string
receiptCid:
type: string
submitEventRef:
type: string
version:
type: integer
phase:
type: string
enum:
- requested
- rfp_submitted
- winner_selected
- accepted
- receipt
- network
- released
vmName:
type: string
requesterDid:
type: string
marketDid:
type: string
payload:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
rfp:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
policy:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
bid:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
winner:
type: object
properties:
did:
type: string
submitAccept:
type: string
required:
- did
acceptPending:
type: object
properties:
bidUri:
type: string
required:
- bidUri
accept:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
receipt:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
receiptOk:
type: boolean
vmAddress:
type: string
networks:
type: array
items:
type: object
properties:
tag:
type: string
kind:
type: string
enum:
- iroh
- https
- webrtc
address:
type: string
at:
type: string
event:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
required:
- tag
- address
- event
bids:
type: integer
release:
type: object
properties:
event:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
payload:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
ok:
type: boolean
status:
type: integer
required:
- event
- payload
- ok
termination:
type: object
properties:
reason:
type: string
exitCode:
type: integer
observedAt:
type: string
event:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
payload:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
request:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
required:
- reason
- observedAt
- event
- payload
hostKeys:
type: object
properties:
keys:
type: array
items:
type: object
properties:
type:
type: string
publicKey:
type: string
fingerprint:
type: string
required:
- type
- publicKey
- fingerprint
observedAt:
type: string
event:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
payload:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
required:
- keys
- observedAt
- event
- payload
sandbox:
type: object
properties:
exitCode:
type: integer
timedOut:
type: boolean
stdout:
type: string
stderr:
type: string
observedAt:
type: string
required:
- exitCode
secretsRequested:
type: object
properties:
requestedAt:
type: string
event:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
payload:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
required:
- requestedAt
- event
- payload
secretsApplied:
type: object
properties:
appliedAt:
type: string
via:
type: string
count:
type: integer
format: int64
event:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
payload:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
required:
- appliedAt
- event
- payload
guestRequester:
type: object
properties:
did:
type: string
state:
type: string
enum:
- Pending
- Verified
- Refused
message:
type: string
reportedAt:
type: string
event:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
payload:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
required:
- did
- state
- reportedAt
- event
- payload
r2Release:
type: object
properties:
phase:
type: string
enum:
- Requested
- Released
- Failed
- TimedOut
ok:
type: boolean
message:
type: string
requestedAt:
type: string
answeredAt:
type: string
required:
- phase
outcome:
type: string
enum:
- no_bids
- bids_denied
- policy_rejected
- returned
- receipt_invalid
- network_timeout
- complete
error:
type: string
timestamps:
type: object
properties:
requested:
type: string
rfp_submitted:
type: string
winner_selected:
type: string
accepted:
type: string
receipt:
type: string
network:
type: string
released:
type: string
grant:
type: object
properties:
issuer:
type: string
subject:
type: string
audience:
type: string
role:
type: string
required:
- issuer
- subject
- audience
bids:
type: array
items:
type: object
properties:
did:
type: string
uri:
type: string
offer:
type: string
cost:
type: integer
format: int64
verdict:
type: string
enum:
- considered
- denied
- chosen
- notChosen
- policyRejected
arrivedAt:
type: string
required:
- did
- uri
- verdict
- arrivedAt
chosen:
type: object
properties:
uri:
type: string
did:
type: string
reason:
type: string
enum:
- firstFree
- bestWithinWindow
- policy
- resumed
considered:
type: integer
required:
- uri
- did
- reason
- considered
conditions:
type: array
items:
type: object
x-kubernetes-preserve-unknown-fields: true
execution:
type: object
properties:
step:
type: string
stepStartedAt:
type: string
lastEventAt:
type: string
lastError:
type: string
attempts:
type: integer
format: int32
release:
type: object
properties:
startedAt:
type: string
deadline:
type: string
attempts:
type: integer
lastError:
type: string
requestedAt:
type: string
pendingEvents:
type: array
items:
type: object
properties:
uri:
type: string
cid:
type: string
receiptUri:
type: string
receivedAt:
type: string
required:
- uri
association:
type: object
properties:
uri:
type: string
cid:
type: string
required:
- uri
- cid
associationMessage:
type: string
atircRevokes:
type: string
enum:
- Pending
- Done
- Abandoned
heldSession:
type: object
properties:
name:
type: string
guestKeyPath:
type: string
until:
type: string
required:
- name
- until
additionalPrinterColumns:
- name: Phase
type: string
jsonPath: .status.phase
- name: Contract
type: string
jsonPath: .status.contract.phase
- name: Winner
type: string
jsonPath: .status.contract.winner.did
- name: Age
type: date
jsonPath: .metadata.creationTimestamp