Skip to content

Commit

Permalink
Add Rabbitmq API
Browse files Browse the repository at this point in the history
Signed-off-by: raihankhan <raihan@appscode.com>
  • Loading branch information
raihankhan committed Jan 19, 2024
1 parent 7a929ce commit c3e787a
Show file tree
Hide file tree
Showing 10 changed files with 17 additions and 365 deletions.
45 changes: 1 addition & 44 deletions apis/catalog/v1alpha1/openapi_generated.go

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

18 changes: 2 additions & 16 deletions apis/catalog/v1alpha1/rabbitmqversion_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,13 @@ package v1alpha1

import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
appcat "kmodules.xyz/custom-resources/apis/appcatalog/v1alpha1"
)

const (
ResourceCodeRabbitMQVersion = "rmversion"
ResourceKindRabbitMQVersion = "RabbitMQVersion"
ResourceSingularRabbitMQVersion = "Rabbitmqversion"
ResourcePluralRabbitMQVersion = "Rabbitmqversions"
ResourceSingularRabbitMQVersion = "rabbitmqversion"
ResourcePluralRabbitMQVersion = "rabbitmqversions"
)

// RabbitMQVersion defines a RabbitMQ database version.
Expand Down Expand Up @@ -59,14 +58,6 @@ type RabbitMQVersionSpec struct {
// Deprecated versions usable but regarded as obsolete and best avoided, typically due to having been superseded.
// +optional
Deprecated bool `json:"deprecated,omitempty"`
// PSP names
// +optional
PodSecurityPolicies RabbitMQVersionPodSecurityPolicy `json:"podSecurityPolicies"`
// Stash defines backup and restore task definitions.
// +optional
Stash appcat.StashAddonSpec `json:"stash,omitempty"`
// update constraints
UpdateConstraints UpdateConstraints `json:"updateConstraints,omitempty"`
// SecurityContext is for the additional config for the DB container
// +optional
SecurityContext SecurityContext `json:"securityContext"`
Expand All @@ -82,11 +73,6 @@ type RabbitMQInitContainer struct {
Image string `json:"image"`
}

// RabbitMQVersionPodSecurityPolicy is the RabbitMQ pod security policies
type RabbitMQVersionPodSecurityPolicy struct {
DatabasePolicyName string `json:"databasePolicyName"`
}

// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object

// RabbitMQVersionList is a list of RabbitmqVersions
Expand Down
6 changes: 2 additions & 4 deletions apis/catalog/v1alpha1/register.go
Original file line number Diff line number Diff line change
Expand Up @@ -86,12 +86,10 @@ func addKnownTypes(scheme *runtime.Scheme) error {
&RedisVersionList{},
&SinglestoreVersion{},
&SinglestoreVersionList{},
&ZooKeeperVersion{},
&ZooKeeperVersionList{},
&KafkaConnectorVersion{},
&KafkaConnectorVersionList{},
&SolrVersion{},
&SolrVersionList{},
&ZooKeeperVersion{},
&ZooKeeperVersionList{},
)

scheme.AddKnownTypes(SchemeGroupVersion,
Expand Down
19 changes: 0 additions & 19 deletions apis/catalog/v1alpha1/zz_generated.deepcopy.go

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

8 changes: 1 addition & 7 deletions apis/kubedb/v1alpha2/openapi_generated.go

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

5 changes: 0 additions & 5 deletions apis/kubedb/v1alpha2/rabbitmq_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,6 @@ import (
core "k8s.io/api/core/v1"
meta "k8s.io/apimachinery/pkg/apis/meta/v1"
kmapi "kmodules.xyz/client-go/api/v1"
mona "kmodules.xyz/monitoring-agent-api/api/v1"
ofst "kmodules.xyz/offshoot-api/api/v2"
)

Expand Down Expand Up @@ -114,10 +113,6 @@ type RabbitMQSpec struct {
// +optional
// +kubebuilder:default={periodSeconds: 20, timeoutSeconds: 10, failureThreshold: 3}
HealthChecker kmapi.HealthCheckSpec `json:"healthChecker"`

// Monitor is used monitor database instance
// +optional
Monitor *mona.AgentSpec `json:"monitor,omitempty"`
}

// RabbitMQStatus defines the observed state of RabbitMQ
Expand Down
23 changes: 11 additions & 12 deletions apis/kubedb/v1alpha2/rabbitmq_webhook.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,15 @@ limitations under the License.
package v1alpha2

import (
"context"
"errors"

catalog "kubedb.dev/apimachinery/apis/catalog/v1alpha1"

apierrors "k8s.io/apimachinery/pkg/api/errors"
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/apimachinery/pkg/runtime/schema"
"k8s.io/apimachinery/pkg/types"
"k8s.io/apimachinery/pkg/util/validation/field"
ofst "kmodules.xyz/offshoot-api/api/v2"
logf "sigs.k8s.io/controller-runtime/pkg/log"
Expand Down Expand Up @@ -100,7 +104,7 @@ func (r *RabbitMQ) ValidateCreateOrUpdate() error {
"number of replicas can not be 0 or less"))
}

err := r.validateVersion(r)
err := r.ValidateVersion(r)
if err != nil {
allErr = append(allErr, field.Invalid(field.NewPath("spec").Child("version"),
r.Name,
Expand Down Expand Up @@ -139,18 +143,13 @@ func (r *RabbitMQ) ValidateCreateOrUpdate() error {
return apierrors.NewInvalid(schema.GroupKind{Group: "kafka.kubedb.com", Kind: "Kafka"}, r.Name, allErr)
}

var rabbitmqAvailableVersions = []string{
"3.12",
}

func (r *RabbitMQ) validateVersion(db *RabbitMQ) error {
version := db.Spec.Version
for _, v := range rabbitmqAvailableVersions {
if v == version {
return nil
}
func (r *RabbitMQ) ValidateVersion(db *RabbitMQ) error {
rmVersion := catalog.RabbitMQVersion{}
err := DefaultClient.Get(context.TODO(), types.NamespacedName{Name: db.Spec.Version}, &rmVersion)
if err != nil {
return errors.New("version not supported")
}
return errors.New("version not supported")
return nil
}

var rabbitmqReservedVolumes = []string{
Expand Down
5 changes: 0 additions & 5 deletions apis/kubedb/v1alpha2/zz_generated.deepcopy.go

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

65 changes: 0 additions & 65 deletions crds/catalog.kubedb.com_rabbitmqversions.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -61,77 +61,12 @@ spec:
required:
- image
type: object
podSecurityPolicies:
properties:
databasePolicyName:
type: string
required:
- databasePolicyName
type: object
securityContext:
properties:
runAsUser:
format: int64
type: integer
type: object
stash:
properties:
addon:
properties:
backupTask:
properties:
name:
type: string
params:
items:
properties:
name:
type: string
value:
type: string
required:
- name
- value
type: object
type: array
required:
- name
type: object
restoreTask:
properties:
name:
type: string
params:
items:
properties:
name:
type: string
value:
type: string
required:
- name
- value
type: object
type: array
required:
- name
type: object
required:
- backupTask
- restoreTask
type: object
type: object
updateConstraints:
properties:
allowlist:
items:
type: string
type: array
denylist:
items:
type: string
type: array
type: object
version:
type: string
required:
Expand Down
Loading

0 comments on commit c3e787a

Please sign in to comment.