Skip to content

Commit

Permalink
feat: add ApisixPluginConfigs crd to v2beta3 (#792)
Browse files Browse the repository at this point in the history
  • Loading branch information
neverCase committed Dec 14, 2021
1 parent 413e7ca commit 472fbcd
Show file tree
Hide file tree
Showing 14 changed files with 670 additions and 2 deletions.
2 changes: 1 addition & 1 deletion pkg/apisix/cache/cache.go
Expand Up @@ -71,7 +71,7 @@ type Cache interface {
ListConsumers() ([]*v1.Consumer, error)
// ListSchema lists all schema in cache.
ListSchema() ([]*v1.Schema, error)
// ListPluginConfig lists all plugin_config in cache.
// ListPluginConfigs lists all plugin_config in cache.
ListPluginConfigs() ([]*v1.PluginConfig, error)

// DeleteRoute deletes the specified route in cache.
Expand Down
34 changes: 34 additions & 0 deletions pkg/kube/apisix/apis/config/v2beta3/types.go
Expand Up @@ -611,3 +611,37 @@ type ApisixMutualTlsClientConfig struct {
CASecret ApisixSecret `json:"caSecret,omitempty" yaml:"caSecret,omitempty"`
Depth int `json:"depth,omitempty" yaml:"depth,omitempty"`
}

// +genclient
// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +kubebuilder:subresource:status

// ApisixPluginConfig is the Schema for the ApisixPluginConfig resource.
// An ApisixPluginConfig is used to support a group of plugin configs
type ApisixPluginConfig struct {
metav1.TypeMeta `json:",inline" yaml:",inline"`
metav1.ObjectMeta `json:"metadata" yaml:"metadata"`

// Spec defines the desired state of ApisixPluginConfigSpec.
Spec ApisixPluginConfigSpec `json:"spec" yaml:"spec"`
Status ApisixStatus `json:"status,omitempty" yaml:"status,omitempty"`
}

// ApisixPluginConfigSpec defines the desired state of ApisixPluginConfigSpec.
type ApisixPluginConfigSpec struct {
// Plugins contains a list of ApisixRouteHTTPPluginConfig
// +required
// +kubebuilder:validation:Required
// +kubebuilder:validation:MinItems=1
Plugins []ApisixRouteHTTPPluginConfig `json:"plugins" yaml:"plugins"`
}

// +k8s:deepcopy-gen:interfaces=k8s.io/apimachinery/pkg/runtime.Object
// +kubebuilder:object:generate=true

// ApisixPluginConfigList contains a list of ApisixPluginConfig.
type ApisixPluginConfigList struct {
metav1.TypeMeta `json:",inline" yaml:",inline"`
metav1.ListMeta `json:"metadata" yaml:"metadata"`
Items []ApisixPluginConfig `json:"items,omitempty" yaml:"items,omitempty"`
}
84 changes: 84 additions & 0 deletions pkg/kube/apisix/apis/config/v2beta3/zz_generated.deepcopy.go

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

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

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

0 comments on commit 472fbcd

Please sign in to comment.