diff --git a/tinkerbell/stack/Chart.lock b/tinkerbell/stack/Chart.lock index abe4fd15..cd850424 100644 --- a/tinkerbell/stack/Chart.lock +++ b/tinkerbell/stack/Chart.lock @@ -1,7 +1,7 @@ dependencies: - name: tink repository: file://../tink - version: 0.2.2 + version: 0.2.3 - name: smee repository: file://../smee version: 0.3.2 @@ -11,5 +11,5 @@ dependencies: - name: hegel repository: file://../hegel version: 0.3.4 -digest: sha256:130a4fb5ba20f90cf53a817a6982e940816486fdf95efab29ee29b3a1f0d4779 -generated: "2024-01-19T09:59:37.58462298-07:00" +digest: sha256:39fca33324ba76f85f489fe43dd533f7d87e5b1011e55ca483fda47a049188c9 +generated: "2024-01-21T16:18:17.211889842-07:00" diff --git a/tinkerbell/stack/Chart.yaml b/tinkerbell/stack/Chart.yaml index d205b559..1f342bfc 100644 --- a/tinkerbell/stack/Chart.yaml +++ b/tinkerbell/stack/Chart.yaml @@ -25,7 +25,7 @@ appVersion: "0.4.3" dependencies: - name: tink - version: "0.2.2" + version: "0.2.3" repository: "file://../tink" - name: smee version: "0.3.2" diff --git a/tinkerbell/stack/values.yaml b/tinkerbell/stack/values.yaml index 7394c147..1651e6cf 100644 --- a/tinkerbell/stack/values.yaml +++ b/tinkerbell/stack/values.yaml @@ -51,7 +51,7 @@ stack: smee: image: quay.io/tinkerbell/smee:v0.11.0 - tinkWorkerImage: quay.io/tinkerbell/tink-worker:v0.9.0 + tinkWorkerImage: quay.io/tinkerbell/tink-worker:v0.10.0 trustedProxies: [] publicIP: *publicIP @@ -64,6 +64,6 @@ rufio: tink: controller: - image: quay.io/tinkerbell/tink-controller:v0.9.0 + image: quay.io/tinkerbell/tink-controller:v0.10.0 server: - image: quay.io/tinkerbell/tink:v0.9.0 + image: quay.io/tinkerbell/tink:v0.10.0 diff --git a/tinkerbell/tink/Chart.yaml b/tinkerbell/tink/Chart.yaml index 219ec76b..3f9b2a4e 100644 --- a/tinkerbell/tink/Chart.yaml +++ b/tinkerbell/tink/Chart.yaml @@ -15,10 +15,10 @@ type: application # This is the chart version. This version number should be incremented each time you make changes # to the chart and its templates, including the app version. # Versions are expected to follow Semantic Versioning (https://semver.org/) -version: 0.2.2 +version: 0.2.3 # This is the version number of the application being deployed. This version number should be # incremented each time you make changes to the application. Versions are not expected to # follow Semantic Versioning. They should reflect the version the application is using. # It is recommended to use it with quotes. -appVersion: "0.9.0" +appVersion: "0.10.0" diff --git a/tinkerbell/tink/crds/hardware-crd.yaml b/tinkerbell/tink/crds/hardware-crd.yaml index 3cf890ee..bd593998 100644 --- a/tinkerbell/tink/crds/hardware-crd.yaml +++ b/tinkerbell/tink/crds/hardware-crd.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.8.0 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.11.4 name: hardware.tinkerbell.org spec: group: tinkerbell.org @@ -29,16 +28,10 @@ spec: description: Hardware is the Schema for the Hardware 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" + 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" + 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 @@ -46,17 +39,10 @@ spec: description: HardwareSpec defines the desired state of Hardware. properties: bmcRef: - description: - BMCRef contains a relation to a BMC state management - type in the same namespace as the Hardware. This may be used for - BMC management by orchestrators. + description: BMCRef contains a relation to a BMC state management type in the same namespace as the Hardware. This may be used for BMC management by orchestrators. properties: apiGroup: - description: - APIGroup is the group for the resource being referenced. - If APIGroup is not specified, the specified Kind must be in - the core API group. For any other third-party types, APIGroup - is required. + description: APIGroup is the group for the resource being referenced. If APIGroup is not specified, the specified Kind must be in the core API group. For any other third-party types, APIGroup is required. type: string kind: description: Kind is the type of resource being referenced @@ -68,6 +54,7 @@ spec: - kind - name type: object + x-kubernetes-map-type: atomic disks: items: description: Disk represents a disk device for Tinkerbell Hardware. @@ -78,9 +65,7 @@ spec: type: array interfaces: items: - description: - Interface represents a network interface configuration - for Hardware. + description: Interface represents a network interface configuration for Hardware. properties: dhcp: description: DHCP configuration. @@ -121,9 +106,7 @@ spec: uefi: type: boolean vlan_id: - description: - validation pattern for VLANDID is a string - number between 0-4096 + description: validation pattern for VLANDID is a string number between 0-4096 pattern: ^(([0-9][0-9]{0,2}|[1-3][0-9][0-9][0-9]|40([0-8][0-9]|9[0-6]))(,[1-9][0-9]{0,2}|[1-3][0-9][0-9][0-9]|40([0-8][0-9]|9[0-6]))*)$ type: string type: object @@ -346,6 +329,7 @@ spec: type: string type: object state: + default: provisioning type: string type: object resources: @@ -355,22 +339,16 @@ spec: - type: string pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ x-kubernetes-int-or-string: true - description: - Resources represents known resources that are available - on a machine. Resources may be used for scheduling by orchestrators. + description: Resources represents known resources that are available on a machine. Resources may be used for scheduling by orchestrators. type: object tinkVersion: format: int64 type: integer userData: - description: - UserData is the user data to configure in the hardware's - metadata + description: UserData is the user data to configure in the hardware's metadata type: string vendorData: - description: - VendorData is the vendor data to configure in the hardware's - metadata + description: VendorData is the vendor data to configure in the hardware's metadata type: string type: object status: @@ -385,9 +363,134 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] + - additionalPrinterColumns: + - description: Baseboard management computer attached to the Hardware + jsonPath: .spec.bmcRef + name: BMC + type: string + name: v1alpha2 + schema: + openAPIV3Schema: + description: Hardware is a logical representation of a machine that can execute Workflows. + 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: + properties: + bmcRef: + description: BMCRef references a Rufio Machine object. + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + type: object + x-kubernetes-map-type: atomic + instance: + description: Instance describes instance specific data that is generally unused by Tinkerbell core. + properties: + userdata: + description: Userdata is data with a structure understood by the producer and consumer of the data. + type: string + vendordata: + description: Vendordata is data with a structure understood by the producer and consumer of the data. + type: string + type: object + ipxe: + description: IPXE provides iPXE script override fields. This is useful for debugging or netboot customization. + properties: + inline: + description: Content is an inline iPXE script. + type: string + url: + description: URL is a URL to a hosted iPXE script. + type: string + type: object + kernelParams: + description: KernelParams passed to the kernel when launching the OSIE. Parameters are joined with a space. + items: + type: string + type: array + networkInterfaces: + additionalProperties: + description: NetworkInterface is the desired configuration for a particular network interface. + properties: + dhcp: + description: DHCP is the basic network information for serving DHCP requests. Required when DisbaleDHCP is false. + properties: + gateway: + description: Gateway is the default gateway address to serve. + pattern: (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3} + type: string + hostname: + pattern: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9]"[A-Za-z0-9\-]*[A-Za-z0-9])$ + type: string + ip: + description: IP is an IPv4 address to serve. + pattern: (25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3} + type: string + leaseTimeSeconds: + default: 86400 + description: LeaseTimeSeconds to serve. 24h default. Maximum equates to max uint32 as defined by RFC 2132 ยง 9.2 (https://www.rfc-editor.org/rfc/rfc2132.html#section-9.2). + format: int64 + maximum: 4294967295 + minimum: 0 + type: integer + nameservers: + description: Nameservers to serve. + items: + description: Nameserver is an IP or hostname. + pattern: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$|^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ + type: string + type: array + netmask: + description: Netmask is an IPv4 netmask to serve. + type: string + timeservers: + description: Timeservers to serve. + items: + description: Timeserver is an IP or hostname. + pattern: ^(([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-]*[a-zA-Z0-9])\.)*([A-Za-z0-9]|[A-Za-z0-9][A-Za-z0-9\-]*[A-Za-z0-9])$|^(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])$ + type: string + type: array + vlanId: + description: VLANID is a VLAN ID between 0 and 4096. + pattern: ^(([0-9][0-9]{0,2}|[1-3][0-9][0-9][0-9]|40([0-8][0-9]|9[0-6]))(,[1-9][0-9]{0,2}|[1-3][0-9][0-9][0-9]|40([0-8][0-9]|9[0-6]))*)$ + type: string + type: object + disableDhcp: + default: false + description: DisableDHCP disables DHCP for this interface. Implies DisableNetboot. + type: boolean + disableNetboot: + default: false + description: DisableNetboot disables netbooting for this interface. The interface will still receive network information specified by DHCP. + type: boolean + type: object + description: NetworkInterfaces defines the desired DHCP and netboot configuration for a network interface. + type: object + osie: + description: OSIE describes the Operating System Installation Environment to be netbooted. + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + type: object + x-kubernetes-map-type: atomic + storageDevices: + description: StorageDevices is a list of storage devices that will be available in the OSIE. + items: + description: "StorageDevice describes a storage device path that will be present in the OSIE. StorageDevices must be valid Linux paths. They should not contain partitions. \n Good \n /dev/sda /dev/nvme0n1 \n Bad (contains partitions) \n /dev/sda1 /dev/nvme0n1p1 \n Bad (invalid Linux path) \n \\dev\\sda" + pattern: ^(/[^/ ]*)+/?$ + type: string + type: array + type: object + type: object + served: false + storage: false + subresources: {} diff --git a/tinkerbell/tink/crds/template-crd.yaml b/tinkerbell/tink/crds/template-crd.yaml index 179124f7..277a37a3 100644 --- a/tinkerbell/tink/crds/template-crd.yaml +++ b/tinkerbell/tink/crds/template-crd.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.8.0 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.11.4 name: templates.tinkerbell.org spec: group: tinkerbell.org @@ -29,16 +28,10 @@ spec: description: Template is the Schema for the Templates 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" + 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" + 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 @@ -60,9 +53,80 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] + - name: v1alpha2 + schema: + openAPIV3Schema: + description: Template defines a set of actions to be run on a target machine. The template is rendered prior to execution where it is exposed to Hardware and user defined data. Most fields within the TemplateSpec may contain templates values excluding .TemplateSpec.Actions[].Name. See https://pkg.go.dev/text/template for more details. + 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: + properties: + actions: + description: Actions defines the set of actions to be run on a target machine. Actions are run sequentially in the order they are specified. At least 1 action must be specified. Names of actions must be unique within a Template. + items: + description: Action defines an individual action to be run on a target machine. + properties: + args: + description: Args are a set of arguments to be passed to the command executed by the container on launch. + items: + type: string + type: array + cmd: + description: Cmd defines the command to use when launching the image. It overrides the default command of the action. It must be a unix path to an executable program. + pattern: ^(/[^/ ]*)+/?$ + type: string + env: + additionalProperties: + type: string + description: Env defines environment variables used when launching the container. + type: object + image: + description: Image is an OCI image. + type: string + name: + description: Name is a name for the action. + type: string + namespaces: + description: Namespace defines the Linux namespaces this container should execute in. + properties: + network: + description: Network defines the network namespace. + type: string + pid: + description: PID defines the PID namespace + type: integer + type: object + volumes: + description: Volumes defines the volumes to mount into the container. + items: + description: "Volume is a specification for mounting a volume in an action. Volumes take the form {SRC-VOLUME-NAME | SRC-HOST-DIR}:TGT-CONTAINER-DIR:OPTIONS. When specifying a VOLUME-NAME that does not exist it will be created for you. Examples: \n Read-only bind mount bound to /data \n /etc/data:/data:ro \n Writable volume name bound to /data \n shared_volume:/data \n See https://docs.docker.com/storage/volumes/ for additional details." + type: string + type: array + required: + - image + - name + type: object + minItems: 1 + type: array + env: + additionalProperties: + type: string + description: Env defines environment variables to be available in all actions. If an action specifies the same environment variable it will take precedence. + type: object + volumes: + description: Volumes to be mounted on all actions. If an action specifies the same volume it will take precedence. + items: + description: "Volume is a specification for mounting a volume in an action. Volumes take the form {SRC-VOLUME-NAME | SRC-HOST-DIR}:TGT-CONTAINER-DIR:OPTIONS. When specifying a VOLUME-NAME that does not exist it will be created for you. Examples: \n Read-only bind mount bound to /data \n /etc/data:/data:ro \n Writable volume name bound to /data \n shared_volume:/data \n See https://docs.docker.com/storage/volumes/ for additional details." + type: string + type: array + type: object + type: object + served: false + storage: false diff --git a/tinkerbell/tink/crds/workflow-crd.yaml b/tinkerbell/tink/crds/workflow-crd.yaml index 7f09f3c0..b9419704 100644 --- a/tinkerbell/tink/crds/workflow-crd.yaml +++ b/tinkerbell/tink/crds/workflow-crd.yaml @@ -3,8 +3,7 @@ apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.8.0 - creationTimestamp: null + controller-gen.kubebuilder.io/version: v0.11.4 name: workflows.tinkerbell.org spec: group: tinkerbell.org @@ -32,16 +31,10 @@ spec: description: Workflow is the Schema for the Workflows 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" + 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" + 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 @@ -73,9 +66,7 @@ spec: tasks: description: Tasks are the tasks to be completed items: - description: - Task represents a series of actions to be completed - by a worker. + description: Task represents a series of actions to be completed by a worker. properties: actions: items: @@ -138,9 +129,180 @@ spec: storage: true subresources: status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] + - additionalPrinterColumns: + - description: State of the workflow such as Pending,Running etc + jsonPath: .status.state + name: State + type: string + - description: Hardware object that runs the workflow + jsonPath: .spec.hardwareRef + name: Hardware + type: string + - description: Template to run on the associated Hardware + jsonPath: .spec.templateRef + name: Template + type: string + name: v1alpha2 + schema: + openAPIV3Schema: + description: Workflow describes a set of actions to be run on a specific Hardware. Workflows execute once and should be considered ephemeral. + 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: + properties: + hardwareRef: + description: HardwareRef is a reference to a Hardware resource this workflow will execute on. If no namespace is specified the Workflow's namespace is assumed. + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + type: object + x-kubernetes-map-type: atomic + templateParams: + additionalProperties: + type: string + description: "TemplateParams are a list of key-value pairs that are injected into templates at render time. TemplateParams are exposed to templates using a top level .Params key. \n For example, TemplateParams = {\"foo\": \"bar\"}, the foo key can be accessed via .Params.foo." + type: object + templateRef: + description: TemplateRef is a reference to a Template resource used to render workflow actions. If no namespace is specified the Workflow's namespace is assumed. + properties: + name: + description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names TODO: Add other useful fields. apiVersion, kind, uid?' + type: string + type: object + x-kubernetes-map-type: atomic + timeout: + default: 0 + description: TimeoutSeconds defines the time the workflow has to complete. The timer begins when the first action is requested. When set to 0, no timeout is applied. + format: int64 + minimum: 0 + type: integer + type: object + status: + properties: + actions: + description: Actions is a list of action states. + items: + description: ActionStatus describes status information about an action. + properties: + failureMessage: + description: FailureMessage is a free-form user friendly message describing why the Action entered the ActionStateFailed state. Typically, this is an elaboration on the Reason. + type: string + failureReason: + description: FailureReason is a short CamelCase word or phrase describing why the Action entered ActionStateFailed. + type: string + id: + description: ID uniquely identifies the action status. + type: string + lastTransitioned: + description: LastTransition is the observed time when State transitioned last. + format: date-time + type: string + rendered: + description: Rendered is the rendered action. + properties: + args: + description: Args are a set of arguments to be passed to the command executed by the container on launch. + items: + type: string + type: array + cmd: + description: Cmd defines the command to use when launching the image. It overrides the default command of the action. It must be a unix path to an executable program. + pattern: ^(/[^/ ]*)+/?$ + type: string + env: + additionalProperties: + type: string + description: Env defines environment variables used when launching the container. + type: object + image: + description: Image is an OCI image. + type: string + name: + description: Name is a name for the action. + type: string + namespaces: + description: Namespace defines the Linux namespaces this container should execute in. + properties: + network: + description: Network defines the network namespace. + type: string + pid: + description: PID defines the PID namespace + type: integer + type: object + volumes: + description: Volumes defines the volumes to mount into the container. + items: + description: "Volume is a specification for mounting a volume in an action. Volumes take the form {SRC-VOLUME-NAME | SRC-HOST-DIR}:TGT-CONTAINER-DIR:OPTIONS. When specifying a VOLUME-NAME that does not exist it will be created for you. Examples: \n Read-only bind mount bound to /data \n /etc/data:/data:ro \n Writable volume name bound to /data \n shared_volume:/data \n See https://docs.docker.com/storage/volumes/ for additional details." + type: string + type: array + required: + - image + - name + type: object + startedAt: + description: StartedAt is the time the action was started as reported by the client. Nil indicates the Action has not started. + format: date-time + type: string + state: + description: State describes the current state of the action. + type: string + required: + - id + type: object + type: array + conditions: + description: Conditions details a set of observations about the Workflow. + items: + description: Condition defines an observation on a resource that is generally attainable by inspecting other status fields. + properties: + lastTransitionTime: + description: LastTransition is the last time the condition transitioned from one status to another. + format: date-time + type: string + message: + description: Message is a human readable message indicating details about the last transition. + type: string + reason: + description: Reason is a short CamelCase description for the conditions last transition. + type: string + status: + description: Status of the condition. + type: string + type: + description: Type of condition. + type: string + required: + - lastTransitionTime + - status + - type + type: object + type: array + lastTransitioned: + description: LastTransition is the observed time when State transitioned last. + format: date-time + type: string + startedAt: + description: StartedAt is the time the first action was requested. Nil indicates the Workflow has not started. + format: date-time + type: string + state: + description: State describes the current state of the workflow. For the workflow to enter the WorkflowStateSucceeded state all actions must be in ActionStateSucceeded. The Workflow will enter a WorkflowStateFailed if 1 or more Actions fails. + type: string + required: + - actions + - conditions + type: object + type: object + served: false + storage: false + subresources: + status: {} diff --git a/tinkerbell/tink/crds/workflow-data-crd.yaml b/tinkerbell/tink/crds/workflow-data-crd.yaml deleted file mode 100644 index cc9878fa..00000000 --- a/tinkerbell/tink/crds/workflow-data-crd.yaml +++ /dev/null @@ -1,139 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.8.0 - creationTimestamp: null - name: workflowdata.tinkerbell.org -spec: - group: tinkerbell.org - names: - categories: - - tinkerbell - kind: WorkflowData - listKind: WorkflowDataList - plural: workflowdata - shortNames: - - wfdata - singular: workflowdata - scope: Namespaced - versions: - - name: v1alpha1 - schema: - openAPIV3Schema: - description: Workflow is the Schema for the Workflows 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: WorkflowSpec defines the desired state of Workflow. - properties: - hardwareMap: - additionalProperties: - type: string - description: A mapping of template devices to hadware mac addresses - type: object - hardwareRef: - description: Name of the Hardware associated with this workflow. - type: string - templateRef: - description: Name of the Template associated with this workflow. - type: string - type: object - status: - description: WorkflowStatus defines the observed state of Workflow. - properties: - globalTimeout: - description: GlobalTimeout represents the max execution time - format: int64 - type: integer - state: - description: State is the state of the workflow in Tinkerbell. - type: string - tasks: - description: Tasks are the tasks to be completed - items: - description: - Task represents a series of actions to be completed - by a worker. - properties: - actions: - items: - description: Action represents a workflow action. - properties: - command: - items: - type: string - type: array - environment: - additionalProperties: - type: string - type: object - image: - type: string - message: - type: string - name: - type: string - pid: - type: string - seconds: - format: int64 - type: integer - startedAt: - format: date-time - type: string - status: - type: string - timeout: - format: int64 - type: integer - volumes: - items: - type: string - type: array - type: object - type: array - environment: - additionalProperties: - type: string - type: object - name: - type: string - volumes: - items: - type: string - type: array - worker: - type: string - required: - - actions - - name - - worker - type: object - type: array - type: object - type: object - served: true - storage: true - subresources: - status: {} -status: - acceptedNames: - kind: "" - plural: "" - conditions: [] - storedVersions: [] diff --git a/tinkerbell/tink/values.yaml b/tinkerbell/tink/values.yaml index b9985094..673f6354 100644 --- a/tinkerbell/tink/values.yaml +++ b/tinkerbell/tink/values.yaml @@ -1,7 +1,7 @@ controller: deploy: true name: tink-controller - image: quay.io/tinkerbell/tink-controller:v0.9.0 + image: quay.io/tinkerbell/tink-controller:v0.10.0 imagePullPolicy: IfNotPresent replicas: 1 args: [] @@ -20,7 +20,7 @@ controller: server: deploy: true name: tink-server - image: quay.io/tinkerbell/tink:v0.9.0 + image: quay.io/tinkerbell/tink:v0.10.0 imagePullPolicy: IfNotPresent replicas: 1 service: