Skip to content

Commit

Permalink
Moving cert generation into EO based on enhancement proposal
Browse files Browse the repository at this point in the history
  • Loading branch information
ewolinetz committed Jun 11, 2021
1 parent b911e78 commit c372cb4
Show file tree
Hide file tree
Showing 12 changed files with 945 additions and 13 deletions.
11 changes: 7 additions & 4 deletions apis/logging/v1/elasticsearch_types.go
Original file line number Diff line number Diff line change
Expand Up @@ -36,17 +36,20 @@ type Elasticsearch struct {

// AddOwnerRefTo appends the Elasticsearch object as an OwnerReference to the passed object
func (es *Elasticsearch) AddOwnerRefTo(o metav1.Object) {

ref := es.GetOwnerRef()
o.SetOwnerReferences(append(o.GetOwnerReferences(), ref))
}

func (es *Elasticsearch) GetOwnerRef() metav1.OwnerReference {
trueVar := true
ref := metav1.OwnerReference{
return metav1.OwnerReference{
APIVersion: GroupVersion.String(),
Kind: "Elasticsearch",
Name: es.Name,
UID: es.UID,
Controller: &trueVar,
}
if (metav1.OwnerReference{}) != ref {
o.SetOwnerReferences(append(o.GetOwnerReferences(), ref))
}
}

// +kubebuilder:object:root=true
Expand Down
15 changes: 14 additions & 1 deletion controllers/logging/kibana_controller.go
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@ package controllers
import (
"context"
"fmt"
"strconv"
"strings"
"sync"
"time"
Expand Down Expand Up @@ -89,13 +90,25 @@ func (r *KibanaReconciler) Reconcile(request ctrl.Request) (ctrl.Result, error)
return reconcile.Result{RequeueAfter: 30 * time.Second}, nil
}

// Check if es has annotation logging.openshift.io/elasticsearch-cert-management: true
eoCertManagement := false
certOwnerRef := metav1.OwnerReference{}
value, ok := es.Annotations[constants.EOCertManagementLabel]
if ok {
manageBool, _ := strconv.ParseBool(value)
if manageBool {
eoCertManagement = manageBool
certOwnerRef = es.GetOwnerRef()
}
}

esClient := elasticsearch.NewClient(es.Name, es.Namespace, r.Client)
proxyCfg, err := kibana.GetProxyConfig(r.Client)
if err != nil {
return reconcile.Result{}, err
}

if err := kibana.Reconcile(kibanaInstance, r.Client, esClient, proxyCfg); err != nil {
if err := kibana.Reconcile(kibanaInstance, r.Client, esClient, proxyCfg, eoCertManagement, certOwnerRef); err != nil {
return reconcile.Result{}, err
}

Expand Down
2 changes: 2 additions & 0 deletions hack/cr.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,8 @@ metadata:
name: "elasticsearch"
annotations:
elasticsearch.openshift.io/loglevel: trace
logging.openshift.io/elasticsearch-cert-management: "true"
logging.openshift.io/elasticsearch-cert.fluentd: "system.logging.fluentd"
spec:
managementState: "Managed"
nodeSpec:
Expand Down
3 changes: 3 additions & 0 deletions internal/constants/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,9 @@ const (
OcpTemplatePrefix = "ocp-gen"

SecurityIndex = ".security"

EOCertManagementLabel = "logging.openshift.io/elasticsearch-cert-management"
EOComponentCertPrefix = "logging.openshift.io/elasticsearch-cert."
)

var (
Expand Down
Loading

0 comments on commit c372cb4

Please sign in to comment.