Skip to content
Merged
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
9 changes: 9 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,10 @@ Release notes are generated from [Conventional Commits](https://www.conventional

- **observe:** Move YAMLs to examples/, update grpc, refresh changelog [6a9b19f](https://github.com/platformrelay/provider-gridscale/commit/6a9b19fc67c57cb2e0a01b096733f04e8633d525)

- **backuplist:** Fix deprecated API, goimports, regenerate managed/deepcopy files [5d9a3a4](https://github.com/platformrelay/provider-gridscale/commit/5d9a3a445d759c791d41727f48f8847bf88b257f)

- **backuplist:** Gofmt, README count 33, API docs, grpc v1.82.1, changelog [d2ff5a3](https://github.com/platformrelay/provider-gridscale/commit/d2ff5a3e09cc95a4227d64e2af7ed3cfee3ed593)


### Documentation

Expand All @@ -23,6 +27,11 @@ Release notes are generated from [Conventional Commits](https://www.conventional

- **coordination:** Mark E5 sonar-security batch Integrated ([#28](https://github.com/platformrelay/provider-gridscale/pull/28))[3378a81](https://github.com/platformrelay/provider-gridscale/commit/3378a8124ec06c9b327358c0e904e10460c1a025)


### Features

- **backuplist:** Add BackupList CRD and observe-only controller E8-S02 [73d9201](https://github.com/platformrelay/provider-gridscale/commit/73d9201b756ca3cf81888311a6661017b743ac0d)

## [0.2.2](https://github.com/platformrelay/provider-gridscale/compare/v0.2.1..v0.2.2) - 2026-07-25

### Bug Fixes
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,7 @@ clusters in YAML — Crossplane reconciles them against
- **Cluster *and* namespaced APIs** — `gridscale.platformrelay.io` (cluster) and
`gridscale.m.platformrelay.io` (namespaced) so multi-tenant teams can own
their own `ProviderConfig`.
- **32 managed resources / 8 API groups** — servers, storage, networking, PaaS
- **33 managed resources / 8 API groups** — servers, storage, networking, PaaS
databases, K8s, object storage, marketplace apps, and more.
- **Signed packages** — GHCR + Upbound Marketplace publishes are keyless-cosign
signed with an SBOM (from `v0.2.0` onward).
Expand Down Expand Up @@ -113,7 +113,7 @@ Namespaced `ProviderConfig` / `ClusterProviderConfig` live under

## Supported resources

32 managed resources across 8 API groups, each served under both the
33 managed resources across 8 API groups, each served under both the
cluster-scoped and namespaced families. Kind names below are the exact API
server values (Upjet casing) — copy straight into `kind:`.

Expand Down
83 changes: 83 additions & 0 deletions apis/cluster/storage/v1alpha1/backuplist_types.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,83 @@
// SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0

package v1alpha1

import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"

v1 "github.com/crossplane/crossplane-runtime/v2/apis/common/v1"
)

// StorageBackupEntry describes a single backup entry returned by the gridscale
// storage backups API.
type StorageBackupEntry struct {
ObjectUUID string `json:"objectUuid,omitempty"`
Name string `json:"name,omitempty"`
Capacity float64 `json:"capacity,omitempty"`
CreateTime string `json:"createTime,omitempty"`
}

// BackupListParameters are the configurable fields of a BackupList.
type BackupListParameters struct {
// StorageUUID is the UUID of the storage whose backups to list.
// +kubebuilder:validation:Required
StorageUUID string `json:"storageUUID"`
}

// BackupListObservation are the observable fields of a BackupList.
type BackupListObservation struct {
// StorageBackups is the list of backups for the storage.
StorageBackups []StorageBackupEntry `json:"storageBackups,omitempty"`
}

// BackupListSpec defines the desired state of BackupList.
type BackupListSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider BackupListParameters `json:"forProvider"`
}

// BackupListStatus defines the observed state of BackupList.
type BackupListStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider BackupListObservation `json:"atProvider,omitempty"`
}

// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:storageversion
// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status"
// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status"
// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,gridscale}

// BackupList is the Schema for the BackupLists API. Lists storage backups for a given storage UUID.
type BackupList struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec BackupListSpec `json:"spec"`
Status BackupListStatus `json:"status,omitempty"`
}

// +kubebuilder:object:root=true

// BackupListList contains a list of BackupList.
type BackupListList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []BackupList `json:"items"`
}

// Repository type metadata.
var (
BackupList_Kind = "BackupList"
BackupList_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: BackupList_Kind}.String()
BackupList_KindAPIVersion = BackupList_Kind + "." + CRDGroupVersion.String()
BackupList_GroupVersionKind = CRDGroupVersion.WithKind(BackupList_Kind)
)

func init() {
SchemeBuilder.Register(&BackupList{}, &BackupListList{})
}
143 changes: 143 additions & 0 deletions apis/cluster/storage/v1alpha1/zz_generated.deepcopy.go

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

50 changes: 50 additions & 0 deletions apis/cluster/storage/v1alpha1/zz_generated.managed.go

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

9 changes: 9 additions & 0 deletions apis/cluster/storage/v1alpha1/zz_generated.managedlist.go

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

Loading
Loading