Skip to content

Commit

Permalink
Merge pull request #1064 from rancher/issue-1051
Browse files Browse the repository at this point in the history
Add controllers for OTEL log scraper
  • Loading branch information
dbason committed Feb 22, 2023
2 parents f32cf54 + 24ae62b commit a5ff93b
Show file tree
Hide file tree
Showing 23 changed files with 1,838 additions and 3 deletions.
56 changes: 56 additions & 0 deletions apis/core/v1beta1/collector_types.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
package v1beta1

import (
opnimeta "github.com/rancher/opni/pkg/util/meta"
corev1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)

type CollectorState string

const (
CollectorStatePending CollectorState = "pending"
CollectorStateReady CollectorState = "ready"
CollectorStateError CollectorState = "error"
)

type CollectorSpec struct {
opnimeta.ImageSpec `json:",inline,omitempty"`
AgentEndpoint string `json:"agentEndpoint,omitempty"`
SystemNamespace string `json:"systemNamespace,omitempty"`
ClusterID string `json:"clusterID"`
LoggingConfig *corev1.LocalObjectReference `json:"loggingConfig,omitempty"`
}

// CollectorStatus defines the observed state of Collector
type CollectorStatus struct {
Conditions []string `json:"conditions,omitempty"`
State CollectorState `json:"state,omitempty"`
}

//+kubebuilder:object:root=true
//+kubebuilder:subresource:status
//+kubebuilder:resource:scope=Cluster
// +kubebuilder:storageversion

// Collector is the Schema for the logadapters API
type Collector struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`

Spec CollectorSpec `json:"spec,omitempty"`
Status CollectorStatus `json:"status,omitempty"`
}

//+kubebuilder:object:root=true

// CollectorList contains a list of Collector
type CollectorList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Collector `json:"items"`
}

func init() {
SchemeBuilder.Register(&Collector{}, &CollectorList{})
}
100 changes: 100 additions & 0 deletions apis/core/v1beta1/zz_generated.deepcopy.go

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

64 changes: 64 additions & 0 deletions apis/logging/v1beta1/collector_config_types.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
package v1beta1

import metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

// CollectorConfigSpec defines the desired state of CollectorConfig
type CollectorConfigSpec struct {
// +kubebuilder:validation:Enum:=aks;eks;gke;k3s;rke;rke2;generic
// +kubebuilder:validation:Required
Provider LogProvider `json:"provider"`

SELinuxEnabled bool `json:"seLinuxEnabled,omitempty"`
Selector Selector `json:"selector,omitempty"`

AKS *AKSSpec `json:"aks,omitempty"`
EKS *EKSSpec `json:"eks,omitempty"`
GKE *GKESpec `json:"gke,omitempty"`
K3S *K3SSpec `json:"k3s,omitempty"`
RKE *RKESpec `json:"rke,omitempty"`
RKE2 *RKE2Spec `json:"rke2,omitempty"`
}

type SelectorConfig struct {
Namespace string `json:"namespace,omitempty"`
PodNames []string `json:"podNames,omitempty"`
}

type Selector struct {
Include []SelectorConfig `json:"include,omitempty"`
Exclude []SelectorConfig `json:"exclude,omitempty"`
}

// CollectorConfigStatus defines the observed state of CollectorConfig
type CollectorConfigStatus struct {
Phase string `json:"phase,omitempty"`
Message string `json:"message,omitempty"`
Conditions []string `json:"conditions,omitempty"`
}

//+kubebuilder:object:root=true
//+kubebuilder:subresource:status
//+kubebuilder:resource:scope=Cluster
// +kubebuilder:storageversion

// CollectorConfig is the Schema for the logadapters API
type CollectorConfig struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`

Spec CollectorConfigSpec `json:"spec,omitempty"`
Status CollectorConfigStatus `json:"status,omitempty"`
}

//+kubebuilder:object:root=true

// CollectorConfigList contains a list of CollectorConfig
type CollectorConfigList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []CollectorConfig `json:"items"`
}

func init() {
SchemeBuilder.Register(&CollectorConfig{}, &CollectorConfigList{})
}
2 changes: 0 additions & 2 deletions apis/logging/v1beta1/webhook_suite_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,6 @@ import (
admissionv1beta1 "k8s.io/api/admission/v1beta1"
//+kubebuilder:scaffold:imports
"k8s.io/apimachinery/pkg/runtime"
"k8s.io/client-go/rest"
ctrl "sigs.k8s.io/controller-runtime"
"sigs.k8s.io/controller-runtime/pkg/client"
"sigs.k8s.io/controller-runtime/pkg/envtest"
Expand All @@ -41,7 +40,6 @@ import (
// These tests use Ginkgo (BDD-style Go testing framework). Refer to
// http://onsi.github.io/ginkgo/ to learn more about Ginkgo.

var cfg *rest.Config
var k8sClient client.Client
var testEnv *envtest.Environment
var ctx context.Context
Expand Down
Loading

0 comments on commit a5ff93b

Please sign in to comment.