Skip to content

Commit b2938db

Browse files
committed
add ceph/ceph-csi-operator
Signed-off-by: Sebastian Hoß <[email protected]>
1 parent af14f14 commit b2938db

30 files changed

+41325
-0
lines changed
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# SPDX-FileCopyrightText: The kube-custom-resources-rs Authors
2+
# SPDX-License-Identifier: 0BSD
3+
4+
name: Release csi_ceph_io
5+
on:
6+
schedule:
7+
- cron: 48 7 * * WED
8+
workflow_dispatch:
9+
jobs:
10+
release:
11+
runs-on: ubuntu-latest
12+
permissions:
13+
contents: read
14+
steps:
15+
- id: checkout
16+
name: Checkout
17+
uses: actions/checkout@v4
18+
with:
19+
fetch-depth: 0
20+
- id: commits
21+
name: Count Commits
22+
run: echo "count=$(git rev-list --count HEAD --since='last Wednesday' -- custom-resources/csi_ceph_io)" >> $GITHUB_OUTPUT
23+
- id: release
24+
name: Create Release Version
25+
if: steps.commits.outputs.count > 0
26+
run: echo "version=1.$(date --utc +'%Y%m%d').$(date --utc +'%-H%M%S')" >> $GITHUB_OUTPUT
27+
- name: Set up Rust
28+
if: steps.commits.outputs.count > 0
29+
uses: dtolnay/rust-toolchain@stable
30+
- name: Install cargo-workspaces
31+
uses: taiki-e/install-action@v2
32+
with:
33+
tool: cargo-edit
34+
- name: Cargo Version
35+
if: steps.commits.outputs.count > 0
36+
run: cargo set-version --package kcr_csi_ceph_io ${{ steps.release.outputs.version }}
37+
- name: Publish to crates.io
38+
if: steps.commits.outputs.count > 0
39+
run: >
40+
cargo publish
41+
--allow-dirty
42+
--token ${{ secrets.CRATES_IO_TOKEN }}
43+
--package kcr_csi_ceph_io
44+
--jobs 1
45+
--no-verify
46+
env:
47+
RUSTFLAGS: "-A warnings"
48+
- id: mail
49+
name: Send Mail
50+
if: steps.commits.outputs.count > 0
51+
uses: dawidd6/action-send-mail@v5
52+
with:
53+
server_address: ${{ secrets.MAIL_SERVER }}
54+
server_port: ${{ secrets.MAIL_PORT }}
55+
username: ${{ secrets.MAIL_USERNAME }}
56+
password: ${{ secrets.MAIL_PASSWORD }}
57+
subject: ${{ github.event.repository.name }}/csi_ceph_io version ${{ steps.release.outputs.version }} published
58+
body: See ${{ steps.create_release.outputs.url }} for details.
59+
to: ${{ secrets.MAIL_RECIPIENT }}
60+
from: ${{ secrets.MAIL_SENDER }}
61+
- id: matrix
62+
name: Send Matrix Message
63+
if: steps.commits.outputs.count > 0
64+
uses: s3krit/[email protected]
65+
with:
66+
room_id: ${{ secrets.MATRIX_ROOM_ID }}
67+
access_token: ${{ secrets.MATRIX_ACCESS_TOKEN }}
68+
message: ${{ github.event.repository.name }}/csi_ceph_io version [${{ steps.release.outputs.version }}](${{ steps.create_release.outputs.url }}) published
69+
server: ${{ secrets.MATRIX_SERVER }}

.reuse/dep5

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,10 @@ Files: crd-catalog/carlosedp/lbconfig-operator/*
343343
Copyright: The carlosedp/lbconfig-operator Authors
344344
License: MIT
345345

346+
Files: crd-catalog/ceph/ceph-csi-operator/*
347+
Copyright: The ceph/ceph-csi-operator Authors
348+
License: MIT
349+
346350
Files: crd-catalog/cert-manager/cert-manager/*
347351
Copyright: The cert-manager/cert-manager Authors
348352
License: Apache-2.0

Cargo.toml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -111,6 +111,7 @@ members = [
111111
"custom-resources/craftypath_github_io",
112112
"custom-resources/crane_konveyor_io",
113113
"custom-resources/crd_projectcalico_org",
114+
"custom-resources/csi_ceph_io",
114115
"custom-resources/data_fluid_io",
115116
"custom-resources/databases_schemahero_io",
116117
"custom-resources/databases_spotahome_com",

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,7 @@ The following groups are available:
151151
- [craftypath.github.io](https://crates.io/crates/kcr_craftypath_github_io)
152152
- [crane.konveyor.io](https://crates.io/crates/kcr_crane_konveyor_io)
153153
- [crd.projectcalico.org](https://crates.io/crates/kcr_crd_projectcalico_org)
154+
- [csi.ceph.io](https://crates.io/crates/kcr_csi_ceph_io)
154155
- [data.fluid.io](https://crates.io/crates/kcr_data_fluid_io)
155156
- [databases.schemahero.io](https://crates.io/crates/kcr_databases_schemahero_io)
156157
- [databases.spotahome.com](https://crates.io/crates/kcr_databases_spotahome_com)

code-generator/src/catalog.rs

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -939,6 +939,18 @@ pub const CRD_V1_SOURCES: &'static [UpstreamSource] = &[
939939
],
940940
ignores: &[],
941941
},
942+
UpstreamSource {
943+
project_name: "ceph/ceph-csi-operator",
944+
license: MIT,
945+
urls: &[
946+
"https://github.com/ceph/ceph-csi-operator/blob/main/config/crd/bases/csi.ceph.io_cephconnections.yaml",
947+
"https://github.com/ceph/ceph-csi-operator/blob/main/config/crd/bases/csi.ceph.io_clientprofilemappings.yaml",
948+
"https://github.com/ceph/ceph-csi-operator/blob/main/config/crd/bases/csi.ceph.io_clientprofiles.yaml",
949+
"https://github.com/ceph/ceph-csi-operator/blob/main/config/crd/bases/csi.ceph.io_drivers.yaml",
950+
"https://github.com/ceph/ceph-csi-operator/blob/main/config/crd/bases/csi.ceph.io_operatorconfigs.yaml",
951+
],
952+
ignores: &[],
953+
},
942954
UpstreamSource {
943955
project_name: "cert-manager/cert-manager",
944956
license: APACHE_V2,
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
apiVersion: "apiextensions.k8s.io/v1"
2+
kind: "CustomResourceDefinition"
3+
metadata:
4+
annotations:
5+
controller-gen.kubebuilder.io/version: "v0.17.2"
6+
name: "cephconnections.csi.ceph.io"
7+
spec:
8+
group: "csi.ceph.io"
9+
names:
10+
kind: "CephConnection"
11+
listKind: "CephConnectionList"
12+
plural: "cephconnections"
13+
singular: "cephconnection"
14+
scope: "Namespaced"
15+
versions:
16+
- name: "v1"
17+
schema:
18+
openAPIV3Schema:
19+
description: "CephConnection is the Schema for the cephconnections API"
20+
properties:
21+
apiVersion:
22+
description: "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources"
23+
type: "string"
24+
kind:
25+
description: "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
26+
type: "string"
27+
metadata:
28+
type: "object"
29+
spec:
30+
description: "CephConnectionSpec defines the desired state of CephConnection"
31+
properties:
32+
monitors:
33+
items:
34+
type: "string"
35+
minItems: 1
36+
type: "array"
37+
rbdMirrorDaemonCount:
38+
minimum: 1.0
39+
type: "integer"
40+
readAffinity:
41+
description: "ReadAffinitySpec capture Ceph CSI read affinity settings"
42+
properties:
43+
crushLocationLabels:
44+
items:
45+
type: "string"
46+
minItems: 1
47+
type: "array"
48+
required:
49+
- "crushLocationLabels"
50+
type: "object"
51+
required:
52+
- "monitors"
53+
type: "object"
54+
status:
55+
description: "CephConnectionStatus defines the observed state of CephConnection"
56+
type: "object"
57+
type: "object"
58+
served: true
59+
storage: true
60+
subresources:
61+
status: {}
Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,63 @@
1+
apiVersion: "apiextensions.k8s.io/v1"
2+
kind: "CustomResourceDefinition"
3+
metadata:
4+
annotations:
5+
controller-gen.kubebuilder.io/version: "v0.17.2"
6+
name: "clientprofilemappings.csi.ceph.io"
7+
spec:
8+
group: "csi.ceph.io"
9+
names:
10+
kind: "ClientProfileMapping"
11+
listKind: "ClientProfileMappingList"
12+
plural: "clientprofilemappings"
13+
singular: "clientprofilemapping"
14+
scope: "Namespaced"
15+
versions:
16+
- name: "v1"
17+
schema:
18+
openAPIV3Schema:
19+
description: "ClientProfileMapping is the Schema for the clientprofilemappings API"
20+
properties:
21+
apiVersion:
22+
description: "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources"
23+
type: "string"
24+
kind:
25+
description: "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
26+
type: "string"
27+
metadata:
28+
type: "object"
29+
spec:
30+
description: "ClientProfileMappingSpec defines the desired state of ClientProfileMapping"
31+
properties:
32+
mappings:
33+
items:
34+
description: "MappingsSpec define a mapping between a local and remote profiles"
35+
properties:
36+
blockPoolIdMapping:
37+
items:
38+
items:
39+
type: "string"
40+
maxItems: 2
41+
minItems: 2
42+
type: "array"
43+
type: "array"
44+
localClientProfile:
45+
type: "string"
46+
remoteClientProfile:
47+
type: "string"
48+
required:
49+
- "localClientProfile"
50+
- "remoteClientProfile"
51+
type: "object"
52+
type: "array"
53+
required:
54+
- "mappings"
55+
type: "object"
56+
status:
57+
description: "ClientProfileMappingStatus defines the observed state of ClientProfileMapping"
58+
type: "object"
59+
type: "object"
60+
served: true
61+
storage: true
62+
subresources:
63+
status: {}
Lines changed: 85 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,85 @@
1+
apiVersion: "apiextensions.k8s.io/v1"
2+
kind: "CustomResourceDefinition"
3+
metadata:
4+
annotations:
5+
controller-gen.kubebuilder.io/version: "v0.17.2"
6+
name: "clientprofiles.csi.ceph.io"
7+
spec:
8+
group: "csi.ceph.io"
9+
names:
10+
kind: "ClientProfile"
11+
listKind: "ClientProfileList"
12+
plural: "clientprofiles"
13+
singular: "clientprofile"
14+
scope: "Namespaced"
15+
versions:
16+
- name: "v1"
17+
schema:
18+
openAPIV3Schema:
19+
description: "ClientProfile is the Schema for the clientprofiles API"
20+
properties:
21+
apiVersion:
22+
description: "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources"
23+
type: "string"
24+
kind:
25+
description: "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds"
26+
type: "string"
27+
metadata:
28+
type: "object"
29+
spec:
30+
description: "ClientProfileSpec defines the desired state of Ceph CSI\nconfiguration for volumes and snapshots configured to use\nthis profile"
31+
properties:
32+
cephConnectionRef:
33+
description: "LocalObjectReference contains enough information to let you locate the\nreferenced object inside the same namespace."
34+
properties:
35+
name:
36+
default: ""
37+
description: "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names"
38+
type: "string"
39+
type: "object"
40+
x-kubernetes-map-type: "atomic"
41+
x-kubernetes-validations:
42+
- message: "'.name' cannot be empty"
43+
rule: "self.name != \"\""
44+
cephFs:
45+
description: "CephFsConfigSpec defines the desired CephFs configuration"
46+
properties:
47+
fuseMountOptions:
48+
additionalProperties:
49+
type: "string"
50+
type: "object"
51+
kernelMountOptions:
52+
additionalProperties:
53+
type: "string"
54+
type: "object"
55+
radosNamespace:
56+
type: "string"
57+
x-kubernetes-validations:
58+
- message: "field is immutable"
59+
rule: "self == oldSelf"
60+
subVolumeGroup:
61+
type: "string"
62+
type: "object"
63+
nfs:
64+
description: "NfsConfigSpec cdefines the desired NFS configuration"
65+
type: "object"
66+
rbd:
67+
description: "RbdConfigSpec defines the desired RBD configuration"
68+
properties:
69+
radosNamespace:
70+
type: "string"
71+
x-kubernetes-validations:
72+
- message: "field is immutable"
73+
rule: "self == oldSelf"
74+
type: "object"
75+
required:
76+
- "cephConnectionRef"
77+
type: "object"
78+
status:
79+
description: "ClientProfileStatus defines the observed state of Ceph CSI\nconfiguration for volumes and snapshots configured to use\nthis profile"
80+
type: "object"
81+
type: "object"
82+
served: true
83+
storage: true
84+
subresources:
85+
status: {}

0 commit comments

Comments
 (0)