--- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: controller-gen.kubebuilder.io/version: v0.16.4 name: workloadreplicasets.runtime.wasmcloud.dev spec: group: runtime.wasmcloud.dev names: kind: WorkloadReplicaSet listKind: WorkloadReplicaSetList plural: workloadreplicasets singular: workloadreplicaset scope: Namespaced versions: - additionalPrinterColumns: - jsonPath: .spec.replicas name: REPLICAS type: integer - jsonPath: .status.conditions[?(@.type=="Ready")].status name: READY type: string name: v1alpha1 schema: openAPIV3Schema: description: WorkloadReplicaSet is the Schema for the artifacts API. properties: apiVersion: description: |- 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 type: string kind: description: |- 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 type: string metadata: type: object spec: description: WorkloadReplicaSetSpec defines the desired state of WorkloadReplicaSet. properties: replicas: format: int32 type: integer template: properties: annotations: additionalProperties: type: string type: object labels: additionalProperties: type: string type: object spec: description: WorkloadSpec defines the desired state of Workload. properties: components: items: description: |- WorkloadComponent represents a component of a workload. Components are stateless, invocation-driven units of computation. Components are isolated from each other and can be scaled independently. Each Component has a Root WIT World, representing the Components imports/exports. The combined list of all Components' Root WIT Worlds within a workload must be compatible with the Host's WIT World. All components within a workload are guaranteed to be placed on the same Wasm Host. properties: image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string imagePullSecret: description: |- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string type: object x-kubernetes-map-type: atomic localResources: description: LocalResources describes resources that will be made available to a workload component. properties: allowedHosts: items: type: string type: array config: additionalProperties: type: string type: object environment: properties: config: additionalProperties: type: string type: object configFrom: description: |- ConfigFrom is a list of references to ConfigMaps that will be provided to the workload. The keys and values of all referenced ConfigMaps will be merged. In case of key conflicts, the last ConfigMap in the list wins. items: description: |- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string type: object x-kubernetes-map-type: atomic type: array secretFrom: description: |- The keys and values of all referenced Secrets will be merged. In case of key conflicts, the last Secret in the list wins. The values of the Secrets will be base64-decoded, utf-8 decoded before being provided to the workload. items: description: |- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string type: object x-kubernetes-map-type: atomic type: array type: object volumeMounts: description: |- VolumeMounts is a list of volume mounts that will be mounted into the workload component. The volumes must be defined in the WorkloadSpec.Volumes field. items: description: VolumeMount describes a mounting of a Volume within a component. properties: mountPath: description: MountPath is the path within the component where the volume should be mounted. type: string name: description: Name must match the Name of a Volume defined in the WorkloadSpec.Volumes field. type: string readOnly: description: ReadOnly indicates whether the volume should be mounted as read-only. type: boolean required: - mountPath - name type: object type: array type: object maxInvocations: format: int32 type: integer name: type: string poolSize: format: int32 type: integer required: - image - name type: object type: array hostId: type: string hostInterfaces: items: properties: config: additionalProperties: type: string type: object configFrom: description: |- ConfigFrom is a list of references to ConfigMaps that will be provided to the workload. The keys and values of all referenced ConfigMaps will be merged. In case of key conflicts, the last ConfigMap in the list wins. items: description: |- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string type: object x-kubernetes-map-type: atomic type: array interfaces: items: type: string minItems: 1 type: array name: description: |- Name uniquely identifies this interface instance when multiple entries share the same namespace+package. Components use this name as the identifier parameter in resource-opening functions (e.g., store::open(name)). Required when multiple entries of the same namespace:package exist. pattern: ^[a-z0-9][a-z0-9-]*$ type: string namespace: type: string package: type: string secretFrom: description: |- The keys and values of all referenced Secrets will be merged. In case of key conflicts, the last Secret in the list wins. The values of the Secrets will be base64-decoded, utf-8 decoded before being provided to the workload. items: description: |- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string type: object x-kubernetes-map-type: atomic type: array version: type: string required: - interfaces - namespace - package type: object type: array hostSelector: additionalProperties: type: string type: object kubernetes: description: |- Kubernetes groups Kubernetes-specific configuration such as Service references and endpoint management. properties: service: description: |- Service references an existing Kubernetes Service that the operator will maintain an EndpointSlice for, pointing to the host pods running this workload. When set, the operator also registers DNS aliases for the service (e.g. service-name, service-name.namespace.svc.cluster.local) with the host so cluster-internal callers can reach the workload via Service DNS without going through an external gateway. properties: name: description: Name is the name of the Kubernetes Service in the same namespace. type: string required: - name type: object type: object service: description: |- WorkloadService represents a long-running service that is part of the workload. It is also sometimes referred to as a "sidecar" and is optional. A Service differs from a Component in that it is long-running and represents the Workload's "localhost". Services can bind to TCP & UDP ports, which are accessible by Components within the same workload via "localhost" or "127.0.0.1". Services export a single WIT interface, shaped as wasi:cli/run. Services can import interfaces from any Component within the same workload, or from the Host. properties: image: type: string imagePullPolicy: description: PullPolicy describes a policy for if/when to pull a container image type: string imagePullSecret: description: |- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string type: object x-kubernetes-map-type: atomic localResources: description: LocalResources describes resources that will be made available to a workload component. properties: allowedHosts: items: type: string type: array config: additionalProperties: type: string type: object environment: properties: config: additionalProperties: type: string type: object configFrom: description: |- ConfigFrom is a list of references to ConfigMaps that will be provided to the workload. The keys and values of all referenced ConfigMaps will be merged. In case of key conflicts, the last ConfigMap in the list wins. items: description: |- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string type: object x-kubernetes-map-type: atomic type: array secretFrom: description: |- The keys and values of all referenced Secrets will be merged. In case of key conflicts, the last Secret in the list wins. The values of the Secrets will be base64-decoded, utf-8 decoded before being provided to the workload. items: description: |- LocalObjectReference contains enough information to let you locate the referenced object inside the same namespace. properties: name: default: "" description: |- Name of the referent. This field is effectively required, but due to backwards compatibility is allowed to be empty. Instances of this type with an empty value here are almost certainly wrong. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names type: string type: object x-kubernetes-map-type: atomic type: array type: object volumeMounts: description: |- VolumeMounts is a list of volume mounts that will be mounted into the workload component. The volumes must be defined in the WorkloadSpec.Volumes field. items: description: VolumeMount describes a mounting of a Volume within a component. properties: mountPath: description: MountPath is the path within the component where the volume should be mounted. type: string name: description: Name must match the Name of a Volume defined in the WorkloadSpec.Volumes field. type: string readOnly: description: ReadOnly indicates whether the volume should be mounted as read-only. type: boolean required: - mountPath - name type: object type: array type: object maxRestarts: format: int32 type: integer required: - image type: object volumes: items: description: Volume represents a named volume that can be mounted by components. properties: ephemeral: description: EphemeralVolume represents a temporary directory that shares a workload's lifetime. type: object hostPath: description: HostPathVolume represents a pre-existing file or directory on the host machine. properties: path: description: Path of the file or directory on the host. type: string required: - path type: object name: description: Name of the volume. Must be a DNS_LABEL and unique within the Workload. type: string required: - name type: object type: array type: object required: - spec type: object required: - template type: object status: description: WorkloadReplicaSetStatus defines the observed state of WorkloadReplicaSet. properties: conditions: description: Conditions of the resource. items: description: A Condition that may apply to a resource. properties: lastProbeTime: description: Last time we probed the condition. format: date-time type: string lastTransitionTime: description: |- LastTransitionTime is the last time this condition transitioned from one status to another. format: date-time type: string message: description: |- A Message containing details about this condition's last transition from one status to another, if any. type: string observedGeneration: description: If set, this represents the .metadata.generation that the object condition was set based upon. format: int64 type: integer reason: description: A Reason for this condition's last transition from one status to another. type: string status: description: Status of this condition; is it currently True, False, or Unknown. type: string type: description: |- Type of this condition. At most one of each condition type may apply to a resource at any point in time. type: string required: - status - type type: object type: array replicas: properties: current: format: int32 type: integer expected: format: int32 type: integer ready: format: int32 type: integer unavailable: format: int32 type: integer type: object type: object type: object served: true storage: true subresources: status: {}