Skip to content

Commit

Permalink
Update tink chart to v0.10.0: (#82)
Browse files Browse the repository at this point in the history
## Description


This includes updating the CRDs and the stack repo. The CRDs have the v1alpha2 API definitions in there but they are implemented or used by Tink v0.10.0.

## Why is this needed



Fixes: #

## How Has This Been Tested?





## How are existing users impacted? What migration steps/scripts do we need?





## Checklist:

I have:

- [ ] updated the documentation and/or roadmap (if required)
- [ ] added unit or e2e tests
- [ ] provided instructions on how to upgrade
  • Loading branch information
mergify[bot] authored Jan 22, 2024
2 parents 999328c + daa4aec commit 63e43d3
Show file tree
Hide file tree
Showing 9 changed files with 415 additions and 225 deletions.
6 changes: 3 additions & 3 deletions tinkerbell/stack/Chart.lock
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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"
2 changes: 1 addition & 1 deletion tinkerbell/stack/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
Expand Down
6 changes: 3 additions & 3 deletions tinkerbell/stack/values.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand All @@ -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
4 changes: 2 additions & 2 deletions tinkerbell/tink/Chart.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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"
183 changes: 143 additions & 40 deletions tinkerbell/tink/crds/hardware-crd.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand All @@ -29,34 +28,21 @@ 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
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
Expand All @@ -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.
Expand All @@ -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.
Expand Down Expand Up @@ -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
Expand Down Expand Up @@ -346,6 +329,7 @@ spec:
type: string
type: object
state:
default: provisioning
type: string
type: object
resources:
Expand All @@ -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:
Expand All @@ -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: {}
Loading

0 comments on commit 63e43d3

Please sign in to comment.