Skip to content

Commit fde73b7

Browse files
authored
Merge pull request #597 from dlaw4608/keystone_group
Keystone: Group Controller
2 parents 28d6d74 + 03e01e8 commit fde73b7

File tree

111 files changed

+4420
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

111 files changed

+4420
-0
lines changed

PROJECT

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,14 @@ resources:
3232
kind: FloatingIP
3333
path: github.com/k-orc/openstack-resource-controller/api/v1alpha1
3434
version: v1alpha1
35+
- api:
36+
crdVersion: v1
37+
namespaced: true
38+
domain: k-orc.cloud
39+
group: openstack
40+
kind: Group
41+
path: github.com/k-orc/openstack-resource-controller/api/v1alpha1
42+
version: v1alpha1
3543
- api:
3644
crdVersion: v1
3745
namespaced: true

README.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,7 @@ kubectl delete -f $ORC_RELEASE
7070
| domain | |||
7171
| flavor | |||
7272
| floating ip | |||
73+
| group | |||
7374
| image ||||
7475
| keypair | |||
7576
| network | |||
@@ -84,6 +85,8 @@ kubectl delete -f $ORC_RELEASE
8485
| volume | |||
8586
| volume type | |||
8687

88+
89+
8790
✔: mostly implemented
8891

8992
◐: partially implemented

api/v1alpha1/group_types.go

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
/*
2+
Copyright 2025 The ORC Authors.
3+
4+
Licensed under the Apache License, Version 2.0 (the "License");
5+
you may not use this file except in compliance with the License.
6+
You may obtain a copy of the License at
7+
8+
http://www.apache.org/licenses/LICENSE-2.0
9+
10+
Unless required by applicable law or agreed to in writing, software
11+
distributed under the License is distributed on an "AS IS" BASIS,
12+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
See the License for the specific language governing permissions and
14+
limitations under the License.
15+
*/
16+
17+
package v1alpha1
18+
19+
// GroupResourceSpec contains the desired state of the resource.
20+
type GroupResourceSpec struct {
21+
// name will be the name of the created resource. If not specified, the
22+
// name of the ORC object will be used.
23+
// +optional
24+
Name *KeystoneName `json:"name,omitempty"`
25+
26+
// description is a human-readable description for the resource.
27+
// +kubebuilder:validation:MinLength:=1
28+
// +kubebuilder:validation:MaxLength:=255
29+
// +optional
30+
Description *string `json:"description,omitempty"`
31+
32+
// domainRef is a reference to the ORC Domain which this resource is associated with.
33+
// +optional
34+
// +kubebuilder:validation:XValidation:rule="self == oldSelf",message="domainRef is immutable"
35+
DomainRef *KubernetesNameRef `json:"domainRef,omitempty"`
36+
}
37+
38+
// GroupFilter defines an existing resource by its properties
39+
// +kubebuilder:validation:MinProperties:=1
40+
type GroupFilter struct {
41+
// name of the existing resource
42+
// +optional
43+
Name *KeystoneName `json:"name,omitempty"`
44+
45+
// domainRef is a reference to the ORC Domain which this resource is associated with.
46+
// +optional
47+
DomainRef *KubernetesNameRef `json:"domainRef,omitempty"`
48+
}
49+
50+
// GroupResourceStatus represents the observed state of the resource.
51+
type GroupResourceStatus struct {
52+
// name is a Human-readable name for the resource. Might not be unique.
53+
// +kubebuilder:validation:MaxLength=1024
54+
// +optional
55+
Name string `json:"name,omitempty"`
56+
57+
// description is a human-readable description for the resource.
58+
// +kubebuilder:validation:MaxLength=1024
59+
// +optional
60+
Description string `json:"description,omitempty"`
61+
62+
// domainID is the ID of the Domain to which the resource is associated.
63+
// +kubebuilder:validation:MaxLength=1024
64+
// +optional
65+
DomainID string `json:"domainID,omitempty"`
66+
}

api/v1alpha1/zz_generated.deepcopy.go

Lines changed: 217 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)