apiVersion: apis.kcp.io/v1alpha1
kind: APIResourceSchema
metadata:
name: v1alpha1-13.infras.socialweb.computer
spec:
group: socialweb.computer
names:
kind: Infra
listKind: InfraList
plural: infras
singular: infra
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:
description:
type: string
maxLength: 1024
contracts:
type: array
items:
type: object
properties:
name:
type: string
maxLength: 63
pattern: ^[a-z0-9]([a-z0-9-]{0,61}[a-z0-9])?$
state:
type: string
enum:
- Staged
- Requested
- Released
default: Staged
releaseRequestedAt:
type: string
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
required:
- name
x-kubernetes-list-type: map
x-kubernetes-list-map-keys:
- name
secrets:
type: array
items:
type: object
properties:
contract:
type: string
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
required:
- contract
- secretsRef
x-kubernetes-list-type: map
x-kubernetes-list-map-keys:
- contract
nodes:
type: array
items:
type: object
properties:
contract:
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
nodeClaimRef:
type: object
properties:
group:
type: string
kind:
type: string
maxLength: 63
name:
type: string
maxLength: 253
workspace:
type: string
required:
- kind
- name
required:
- contract
- nodeClaimRef
x-kubernetes-list-type: map
x-kubernetes-list-map-keys:
- contract
clusterRef:
type: object
properties:
group:
type: string
kind:
type: string
maxLength: 63
name:
type: string
maxLength: 253
workspace:
type: string
required:
- kind
- name
record:
type: object
properties:
repoRef:
type: object
properties:
group:
type: string
kind:
type: string
maxLength: 63
name:
type: string
maxLength: 253
workspace:
type: string
required:
- kind
- name
sync:
type: string
enum:
- Both
- Publish
default: Both
uri:
type: string
eventSourceRefs:
type: array
items:
type: object
properties:
group:
type: string
kind:
type: string
maxLength: 63
name:
type: string
maxLength: 253
workspace:
type: string
required:
- kind
- name
required:
- repoRef
status:
type: object
properties:
observedGeneration:
type: integer
format: int64
phase:
type: string
enum:
- Pending
- Staged
- Deploying
- Deployed
- Releasing
- Released
- Degraded
- Ending
- Deleting
- Ended
message:
type: string
contracts:
type: array
items:
type: object
properties:
name:
type: string
phase:
type: string
enum:
- Staged
- Requesting
- Deployed
- Releasing
- Released
- Failed
computeContract:
type: string
winner:
type: string
receiptUri:
type: string
message:
type: string
required:
- name
- phase
record:
type: object
properties:
uri:
type: string
cid:
type: string
declarationHash:
type: string
syncedGeneration:
type: integer
format: int64
syncedAt:
type: string
direction:
type: string
enum:
- Created
- Pushed
- Pulled
- InSync
- Retained
conditions:
type: array
items:
type: object
x-kubernetes-preserve-unknown-fields: true
additionalPrinterColumns:
- name: Phase
type: string
jsonPath: .status.phase
- name: Record
type: string
jsonPath: .status.record.uri
- name: Sync
type: string
jsonPath: .status.record.direction
- name: Age
type: date
jsonPath: .metadata.creationTimestamp