Skip to content

Commit 88e7a83

Browse files
Tenant variables (#632)
1 parent c6fae07 commit 88e7a83

Some content is hidden

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

46 files changed

+2061
-44
lines changed

PROJECT

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -151,4 +151,13 @@ resources:
151151
defaulting: true
152152
validation: true
153153
webhookVersion: v1
154+
- api:
155+
crdVersion: v1
156+
namespaced: true
157+
controller: true
158+
domain: oceanbase.com
159+
group: oceanbase
160+
kind: OBTenantVariable
161+
path: github.com/oceanbase/ob-operator/api/v1alpha1
162+
version: v1alpha1
154163
version: "3"

api/types/variable.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
/*
2+
Copyright (c) 2023 OceanBase
3+
ob-operator is licensed under Mulan PSL v2.
4+
You can use this software according to the terms and conditions of the Mulan PSL v2.
5+
You may obtain a copy of Mulan PSL v2 at:
6+
http://license.coscl.org.cn/MulanPSL2
7+
THIS SOFTWARE IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OF ANY KIND,
8+
EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO NON-INFRINGEMENT,
9+
MERCHANTABILITY OR FIT FOR A PARTICULAR PURPOSE.
10+
See the Mulan PSL v2 for more details.
11+
*/
12+
13+
package types
14+
15+
type Variable struct {
16+
Name string `json:"name"`
17+
Value string `json:"value"`
18+
}

api/v1alpha1/obtenant_types.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ type OBTenantSpec struct {
5252
Credentials TenantCredentials `json:"credentials,omitempty"`
5353
Scenario string `json:"scenario,omitempty"`
5454
Parameters []apitypes.Parameter `json:"parameters,omitempty"`
55+
Variables []apitypes.Variable `json:"variables,omitempty"`
5556
}
5657

5758
type TenantCredentials struct {
@@ -106,6 +107,7 @@ type OBTenantStatus struct {
106107
Source *TenantSourceStatus `json:"source,omitempty"`
107108
Credentials TenantCredentials `json:"credentials,omitempty"`
108109
Parameters []apitypes.Parameter `json:"parameters,omitempty"`
110+
Variables []apitypes.Variable `json:"variables,omitempty"`
109111
}
110112

111113
type TenantSourceStatus struct {
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
/*
2+
Copyright 2023.
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+
import (
20+
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
21+
22+
apitypes "github.com/oceanbase/ob-operator/api/types"
23+
tasktypes "github.com/oceanbase/ob-operator/pkg/task/types"
24+
)
25+
26+
// EDIT THIS FILE! THIS IS SCAFFOLDING FOR YOU TO OWN!
27+
// NOTE: json tags are required. Any new fields you add must have json tags for the fields to be serialized.
28+
29+
// OBTenantVariableSpec defines the desired state of OBTenantVariable.
30+
type OBTenantVariableSpec struct {
31+
// INSERT ADDITIONAL SPEC FIELDS - desired state of cluster
32+
// Important: Run "make" to regenerate code after modifying this file
33+
34+
// Foo is an example field of OBTenantVariable. Edit obtenantvariable_types.go to remove/update
35+
OBTenant string `json:"obtenant"`
36+
Variable *apitypes.Variable `json:"variable"`
37+
}
38+
39+
// OBTenantVariableStatus defines the observed state of OBTenantVariable.
40+
type OBTenantVariableStatus struct {
41+
// INSERT ADDITIONAL STATUS FIELD - define observed state of cluster
42+
// Important: Run "make" to regenerate code after modifying this file
43+
OperationContext *tasktypes.OperationContext `json:"operationContext,omitempty"`
44+
Status string `json:"status"`
45+
Variable apitypes.Variable `json:"variable"`
46+
}
47+
48+
//+kubebuilder:object:root=true
49+
//+kubebuilder:subresource:status
50+
//+kubebuilder:printcolumn:name="Tenant",type="string",JSONPath=".spec.obtenant"
51+
//+kubebuilder:printcolumn:name="Status",type="string",JSONPath=".status.status"
52+
//+kubebuilder:printcolumn:name="Age",type="date",JSONPath=".metadata.creationTimestamp"
53+
//+kubebuilder:printcolumn:name="Key",type="string",JSONPath=".spec.variable.name"
54+
//+kubebuilder:printcolumn:name="WantedValue",type="string",JSONPath=".spec.variable.value"
55+
56+
// OBTenantVariable is the Schema for the obtenantvariables API.
57+
type OBTenantVariable struct {
58+
metav1.TypeMeta `json:",inline"`
59+
metav1.ObjectMeta `json:"metadata,omitempty"`
60+
61+
Spec OBTenantVariableSpec `json:"spec,omitempty"`
62+
Status OBTenantVariableStatus `json:"status,omitempty"`
63+
}
64+
65+
// +kubebuilder:object:root=true
66+
67+
// OBTenantVariableList contains a list of OBTenantVariable.
68+
type OBTenantVariableList struct {
69+
metav1.TypeMeta `json:",inline"`
70+
metav1.ListMeta `json:"metadata,omitempty"`
71+
Items []OBTenantVariable `json:"items"`
72+
}
73+
74+
func init() {
75+
SchemeBuilder.Register(&OBTenantVariable{}, &OBTenantVariableList{})
76+
}

api/v1alpha1/zz_generated.deepcopy.go

Lines changed: 104 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)