Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 7 additions & 10 deletions .github/workflows/ci.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2025-09-01T14:49:33Z by kres 784fa1f.
# Generated on 2025-09-22T15:35:18Z by kres fdbc9fc.

concurrency:
group: ${{ github.head_ref || github.run_id }}
Expand All @@ -26,13 +26,12 @@ jobs:
packages: write
pull-requests: read
runs-on:
- self-hosted
- generic
group: generic
if: (!startsWith(github.head_ref, 'renovate/') && !startsWith(github.head_ref, 'dependabot/')) && github.event_name == 'pull_request'
steps:
- name: gather-system-info
id: system-info
uses: kenchan0130/actions-system-info@v1.3.1
uses: kenchan0130/actions-system-info@v1.4.0
continue-on-error: true
- name: print-system-info
run: |
Expand Down Expand Up @@ -104,13 +103,12 @@ jobs:
packages: write
pull-requests: read
runs-on:
- self-hosted
- generic
group: generic
if: (!startsWith(github.head_ref, 'renovate/') && !startsWith(github.head_ref, 'dependabot/')) && github.event_name != 'pull_request' && !startsWith(github.ref, 'refs/tags/')
steps:
- name: gather-system-info
id: system-info
uses: kenchan0130/actions-system-info@v1.3.1
uses: kenchan0130/actions-system-info@v1.4.0
continue-on-error: true
- name: print-system-info
run: |
Expand Down Expand Up @@ -166,13 +164,12 @@ jobs:
packages: write
pull-requests: read
runs-on:
- self-hosted
- generic
group: generic
if: (!startsWith(github.head_ref, 'renovate/') && !startsWith(github.head_ref, 'dependabot/')) && startsWith(github.ref, 'refs/tags/')
steps:
- name: gather-system-info
id: system-info
uses: kenchan0130/actions-system-info@v1.3.1
uses: kenchan0130/actions-system-info@v1.4.0
continue-on-error: true
- name: print-system-info
run: |
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/slack-notify-ci-failure.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2025-08-11T16:22:48Z by kres 79636f7.
# Generated on 2025-09-22T15:35:18Z by kres fdbc9fc.

"on":
workflow_run:
Expand All @@ -14,8 +14,7 @@ name: slack-notify-failure
jobs:
slack-notify:
runs-on:
- self-hosted
- generic
group: generic
if: github.event.workflow_run.conclusion == 'failure' && github.event.workflow_run.event != 'pull_request'
steps:
- name: Slack Notify
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/slack-notify.yaml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2025-08-11T16:22:48Z by kres 79636f7.
# Generated on 2025-09-22T15:35:18Z by kres fdbc9fc.

"on":
workflow_run:
Expand All @@ -12,8 +12,7 @@ name: slack-notify
jobs:
slack-notify:
runs-on:
- self-hosted
- generic
group: generic
if: github.event.workflow_run.conclusion != 'skipped'
steps:
- name: Get PR number
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/stale.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# THIS FILE WAS AUTOMATICALLY GENERATED, PLEASE DO NOT EDIT.
#
# Generated on 2025-08-11T16:22:48Z by kres 79636f7.
# Generated on 2025-09-22T15:35:18Z by kres fdbc9fc.

"on":
schedule:
Expand All @@ -15,7 +15,7 @@ jobs:
- ubuntu-latest
steps:
- name: Close stale issues and PRs
uses: actions/stale@v9.1.0
uses: actions/stale@v10.0.0
with:
close-issue-message: This issue was closed because it has been stalled for 7 days with no activity.
days-before-issue-close: "5"
Expand Down
12 changes: 3 additions & 9 deletions .kres.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,7 @@ spec:
- name: default
buildxOptions:
enabled: true
runners:
- self-hosted
- generic
runnerGroup: generic
conditions:
- on-pull-request
steps:
Expand All @@ -56,9 +54,7 @@ spec:
- name: push
buildxOptions:
enabled: true
runners:
- self-hosted
- generic
runnerGroup: generic
conditions:
- except-pull-request
- not-on-tag
Expand All @@ -74,9 +70,7 @@ spec:
- name: tag
buildxOptions:
enabled: true
runners:
- self-hosted
- generic
runnerGroup: generic
conditions:
- only-on-tag
steps:
Expand Down
4 changes: 2 additions & 2 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -16,8 +16,8 @@ K8S_VERSION ?= 1.34.0

KRES_IMAGE ?= ghcr.io/siderolabs/kres:latest

CONTROLLER_GEN_VERSION ?= v0.17.0
CONVERSION_GEN_VERSION ?= v0.32.3
CONTROLLER_GEN_VERSION ?= v0.18.0
CONVERSION_GEN_VERSION ?= v0.33.3

BUILD := docker buildx build
PLATFORM ?= linux/amd64
Expand Down
11 changes: 7 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -47,24 +47,27 @@ providers:

This provider's versions are compatible with the following versions of Cluster API:

| | v1alpha3 (v0.3) | v1alpha4 (v0.4) | v1beta1 (v1.x) |
| -------------- | --------------- | --------------- | -------------- |
| CABPT (v0.5.x) | | | ✓ |
| CABPT (v0.6.x) | | | ✓ |
| | v1alpha3 (v0.3) | v1alpha4 (v0.4) | v1beta1 (v1.x) | v1beta2 (v1.1.x) |
| -------------- | --------------- | --------------- | -------------- | -------------- |
| CABPT (v0.5.x) | | | ✓ | |
| CABPT (v0.6.x) | | | ✓ | |
| CABPT (v0.7.x) | | | | ✓ |

This provider's versions are able to install and manage the following versions of Kubernetes:

| | v1.19 | v1.20 | v1.21 | v1.22 | v1.23 | v1.24 | v1.25 | v1.26 | v1.27 | v1.28 | v1.29 | v1.30 | v1.31 | v1.32 | v1.33 | v1.34 |
| -------------- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- |
| CABPT (v0.5.x) | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | | | | | | | | |
| CABPT (v0.6.x) | | | | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| CABPT (v0.7.x) | | | | | | | | | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |

This provider's versions are compatible with the following versions of Talos:

| | v1.0 | v1.1 | v1.2 | v1.3 | v1.4 | v1.5 | v1.6 | v1.7 | v1.8 | v1.9 | v1.10 | v1.11 |
| ---------------- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- | ----- |
| CABPT (v0.5.x) | ✓ | ✓ | ✓ | ✓ | | | | | | | | |
| CABPT (v0.6.x) | | | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
| CABPT (v0.7.x) | | | | | | | | | | ✓ | ✓ | ✓ |

CABPT generates machine configuration compatible with Talos Linux version specified in the `talosVersion:` field (see below).

Expand Down
8 changes: 2 additions & 6 deletions api/v1alpha3/conditions.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,6 @@

package v1alpha3

import (
capiv1 "sigs.k8s.io/cluster-api/api/v1beta1"
)

// Conditions and condition Reasons for the TalosConfig object

const (
Expand All @@ -16,7 +12,7 @@ const (
// NOTE: When the DataSecret generation starts the process completes immediately and within the
// same reconciliation, so the user will always see a transition from Wait to Generated without having
// evidence that BootstrapSecret generation is started/in progress.
DataSecretAvailableCondition capiv1.ConditionType = "DataSecretAvailable"
DataSecretAvailableCondition string = "DataSecretAvailable"

// WaitingForClusterInfrastructureReason (Severity=Info) document a bootstrap secret generation process
// waiting for the cluster infrastructure to be ready.
Expand All @@ -33,7 +29,7 @@ const (

const (
// ClientConfigAvailableCondition documents the status of the client config generation process.
ClientConfigAvailableCondition capiv1.ConditionType = "ClientConfigAvailable"
ClientConfigAvailableCondition string = "ClientConfigAvailable"

// ClientConfigGenerationFailedReason (Severity=Warning) documents a TalosConfig controller detecting
// an error while generating a client config; those kind of errors are usually due to misconfigurations
Expand Down
7 changes: 3 additions & 4 deletions api/v1alpha3/talosconfig_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ package v1alpha3

import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
capiv1 "sigs.k8s.io/cluster-api/api/v1beta1"
)

const (
Expand Down Expand Up @@ -76,7 +75,7 @@ type TalosConfigStatus struct {

// Conditions defines current service state of the TalosConfig.
// +optional
Conditions capiv1.Conditions `json:"conditions,omitempty"`
Conditions []metav1.Condition `json:"conditions,omitempty"`
}

// +kubebuilder:object:root=true
Expand All @@ -94,12 +93,12 @@ type TalosConfig struct {
}

// GetConditions returns the set of conditions for this object.
func (c *TalosConfig) GetConditions() capiv1.Conditions {
func (c *TalosConfig) GetConditions() []metav1.Condition {
return c.Status.Conditions
}

// SetConditions sets the conditions on this object.
func (c *TalosConfig) SetConditions(conditions capiv1.Conditions) {
func (c *TalosConfig) SetConditions(conditions []metav1.Condition) {
c.Status.Conditions = conditions
}

Expand Down
4 changes: 2 additions & 2 deletions api/v1alpha3/zz_generated.deepcopy.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

55 changes: 30 additions & 25 deletions config/crd/bases/bootstrap.cluster.x-k8s.io_talosconfigs.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.0
controller-gen.kubebuilder.io/version: v0.18.0
name: talosconfigs.bootstrap.cluster.x-k8s.io
spec:
group: bootstrap.cluster.x-k8s.io
Expand Down Expand Up @@ -147,51 +147,56 @@ spec:
conditions:
description: Conditions defines current service state of the TalosConfig.
items:
description: Condition defines an observation of a Cluster API resource
operational state.
description: Condition contains details for one aspect of the current
state of this API Resource.
properties:
lastTransitionTime:
description: |-
lastTransitionTime is the last time the condition transitioned from one status to another.
This should be when the underlying condition changed. If that is not known, then using the time when
the API field changed is acceptable.
This should be when the underlying condition changed. If that is not known, then using the time when the API field changed is acceptable.
format: date-time
type: string
message:
description: |-
message is a human readable message indicating details about the transition.
This field may be empty.
maxLength: 10240
minLength: 1
This may be an empty string.
maxLength: 32768
type: string
observedGeneration:
description: |-
observedGeneration represents the .metadata.generation that the condition was set based upon.
For instance, if .metadata.generation is currently 12, but the .status.conditions[x].observedGeneration is 9, the condition is out of date
with respect to the current state of the instance.
format: int64
minimum: 0
type: integer
reason:
description: |-
reason is the reason for the condition's last transition in CamelCase.
The specific API may choose whether or not this field is considered a guaranteed API.
This field may be empty.
maxLength: 256
reason contains a programmatic identifier indicating the reason for the condition's last transition.
Producers of specific condition types may define expected values and meanings for this field,
and whether the values are considered a guaranteed API.
The value should be a CamelCase string.
This field may not be empty.
maxLength: 1024
minLength: 1
type: string
severity:
description: |-
severity provides an explicit classification of Reason code, so the users or machines can immediately
understand the current situation and act accordingly.
The Severity field MUST be set only when Status=False.
maxLength: 32
pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$
type: string
status:
description: status of the condition, one of True, False, Unknown.
enum:
- "True"
- "False"
- Unknown
type: string
type:
description: |-
type of condition in CamelCase or in foo.example.com/CamelCase.
Many .condition.type values are consistent across resources like Available, but because arbitrary conditions
can be useful (see .node.status.conditions), the ability to deconflict is important.
maxLength: 256
minLength: 1
description: type of condition in CamelCase or in foo.example.com/CamelCase.
maxLength: 316
pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$
type: string
required:
- lastTransitionTime
- message
- reason
- status
- type
type: object
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
controller-gen.kubebuilder.io/version: v0.17.0
controller-gen.kubebuilder.io/version: v0.18.0
name: talosconfigtemplates.bootstrap.cluster.x-k8s.io
spec:
group: bootstrap.cluster.x-k8s.io
Expand Down
4 changes: 1 addition & 3 deletions controllers/scheme.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,8 +7,7 @@ package controllers
import (
utilruntime "k8s.io/apimachinery/pkg/util/runtime"
"k8s.io/client-go/kubernetes/scheme"
capiv1 "sigs.k8s.io/cluster-api/api/v1beta1"
expv1 "sigs.k8s.io/cluster-api/exp/api/v1beta1"
capiv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"

bootstrapv1alpha2 "github.com/siderolabs/cluster-api-bootstrap-provider-talos/api/v1alpha2"
bootstrapv1alpha3 "github.com/siderolabs/cluster-api-bootstrap-provider-talos/api/v1alpha3"
Expand All @@ -18,7 +17,6 @@ import (
// Use shared scheme for all calls.
func init() {
utilruntime.Must(capiv1.AddToScheme(scheme.Scheme))
utilruntime.Must(expv1.AddToScheme(scheme.Scheme))
utilruntime.Must(bootstrapv1alpha2.AddToScheme(scheme.Scheme))
utilruntime.Must(bootstrapv1alpha3.AddToScheme(scheme.Scheme))

Expand Down
2 changes: 1 addition & 1 deletion controllers/secrets.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ import (
corev1 "k8s.io/api/core/v1"
k8serrors "k8s.io/apimachinery/pkg/api/errors"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
capiv1 "sigs.k8s.io/cluster-api/api/v1beta1"
capiv1 "sigs.k8s.io/cluster-api/api/core/v1beta2"
"sigs.k8s.io/cluster-api/util/collections"
"sigs.k8s.io/controller-runtime/pkg/client"

Expand Down
Loading
Loading