Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Save alecmerdler/b39da8f217b1acd9de19b316587c8634 to your computer and use it in GitHub Desktop.
Save alecmerdler/b39da8f217b1acd9de19b316587c8634 to your computer and use it in GitHub Desktop.
Creation of Cluster Logging Operator and Elasticsearch Operarator SVCs
apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
name: clusterlogging.v0.0.1
namespace: placeholder
spec:
displayName: Cluster Logging Operator
description: |
The Cluster Logging Operator for OKD provides easy means for configuring and managing your aggregated logging stack.
Once installed, the Cluster Logging Operator provides the following features:
* **Create/Destroy**: Easily launch and create an aggregated logging stack in the `openshift-logging` namespace.
* **Simple Configuration**: Configure your aggregated logging cluster's structure like components and end points easily.
keywords: ['elasticsearch', 'kibana', 'fluentd', 'logging' 'aggregated', 'efk']
maintainers:
- name: Red Hat
email: aos-logging@redhat.com
provider:
name: Red Hat
links:
- name: Elastic
url: https://www.elastic.co/
- name: Fluentd
url: https://www.fluentd.org/
- name: Documentation
url: https://github.com/openshift/cluster-logging-operator/blob/master/README.md
- name: Cluster Logging Operator
url: https://github.com/openshift/cluster-logging-operator
install:
strategy: deployment
spec:
permissions:
- serviceAccountName: cluster-logging-operator
rules:
- apiGroups:
- logging.openshift.io
resources:
- "*"
verbs:
- "*"
- apiGroups:
- ""
resources:
- pods
- services
- endpoints
- persistentvolumeclaims
- events
- configmaps
- secrets
- serviceaccounts
verbs:
- "*"
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- replicasets
- statefulsets
verbs:
- "*"
- apiGroups:
- route.openshift.io
resources:
- routes
- routes/custom-host
verbs:
- "*"
- apiGroups:
- batch
resources:
- cronjobs
verbs:
- "*"
clusterPermissions:
- serviceAccountName: cluster-logging-operator
rules:
- apiGroups:
- scheduling.k8s.io
resources:
- priorityclasses
verbs:
- "*"
- apiGroups:
- oauth.openshift.io
resources:
- oauthclients
verbs:
- "*"
deployments:
- name: cluster-logging-operator
spec:
replicas: 1
selector:
matchLabels:
name: cluster-logging-operator
template:
metadata:
labels:
name: cluster-logging-operator
spec:
serviceAccountName: cluster-logging-operator
containers:
- name: cluster-logging-operator
image: quay.io/openshift/cluster-logging-operator:latest
imagePullPolicy: IfNotPresent
command:
- cluster-logging-operator
env:
- name: WATCH_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: OPERATOR_NAME
value: "cluster-logging-operator"
maturity: alpha
version: v0.0.1
customresourcedefinitions:
owned:
- name: clusterloggings.logging.openshift.io
version: v1alpha1
kind: ClusterLogging
displayName: Cluster Logging
description: A Cluster Logging instance
resources:
- kind: Deployment
version: v1
- kind: DaemonSet
version: v1
- kind: CronJob
version: v1beta1
- kind: ReplicaSet
version: v1
- kind: Pod
version: v1
- kind: ConfigMap
version: v1
- kind: Secret
version: v1
- kind: Service
version: v1
- kind: Route
version: v1
- kind: Elasticsearch
version: v1alpha1
specDescriptors:
# Kibana spec
- description: The desired number of Kibana Pods for the Visualization component
displayName: Kibana Size
path: visualization.kibana.replicas
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:podCount'
- description: Resource requirements for the Kibana pods
displayName: Kibana Resource Requirements
path: visualization.kibana.resources
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:resourceRequirements'
- description: The node selector to use for the Kibana log collection component
displayName: Kibana Node Selector
path: visualization.kibana.nodeSelector
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:nodeSelector'
# Elasticsearch spec
- description: The desired number of Elasticsearch Pods for the Log Storage component
displayName: Elasticsearch Size
path: logStore.elasticsearch.replicas
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:podCount'
- description: Resource requirements for the Elasticsearch pods
displayName: Elasticsearch Resource Requirements
path: logStore.elasticsearch.resources
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:resourceRequirements'
- description: The node selector to use for the Fluentd log collection component
displayName: Fluentd Node Selector
path: logStore.elasticsearch.nodeSelector
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:nodeSelector'
# Fluentd spec
- description: Resource requirements for the Fluentd pods
displayName: Fluentd Resource Requirements
path: collection.logCollection.fluentd.resources
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:resourceRequirements'
- description: The node selector to use for the Fluentd log collection component
displayName: Fluentd Node Selector
path: collection.logCollection.fluentd.nodeSelector
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:nodeSelector'
# Curator spec
- description: Resource requirements for the curator pods
displayName: Curator Resource Requirements
path: curation.curator.resources
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:resourceRequirements'
- description: The node selector to use for the curator component
displayName: Curator Node Selector
path: curation.curator.nodeSelector
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:nodeSelector'
- description: The cron schedule for the Curator component
displayName: Curation Schedule
path: curation.curator.schedule
statusDescriptors:
# Kibana status
- description: The status for each of the Kibana pods for the Visualization component
displayName: Kibana Status
path: visualization.kibanaStatus.pods
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:podStatuses'
# Elasticsearch status
- description: The status for each of the Elasticsearch pods for the Log Storage component
displayName: Elasticsearch Pod Status
path: logStore.elasticsearchStatus.pods
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:podStatuses'
# Fluentd status
- description: The status for each of the Fluentd pods for the Log Collection component
displayName: Fluentd status
path: collection.logCollectioon.fluentdStatus.pods
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:podStatuses'
# Curator status
required:
- name: elasticsearches.logging.openshift.io
version: v1alpha1
kind: Elasticsearch
displayName: Elasticsearch
description: An Elasticsearch cluster instance
apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
name: elasticsearch.v0.0.1
namespace: placeholder
spec:
displayName: Elasticsearch Operator
description: |
The Elasticsearch Operator for OKD provides easy means for configuring and managing your Elasticsearch cluster.
Once installed, the Elasticsearch Operator provides the following features:
* **Create/Destroy**: Easily launch and create an Elasticsearch cluster in the `openshift-logging` namespace.
* **Simple Configuration**: Configure your Elasticsearch's structure like node roles and node replica count easily.
keywords: ['elasticsearch', 'logging' 'aggregated', 'efk']
maintainers:
- name: Red Hat
email: aos-logging@redhat.com
provider:
name: Red Hat
links:
- name: Elastic
url: https://www.elastic.co/
- name: Documentation
url: https://github.com/openshift/elasticsearch-operator/blob/master/README.md
- name: Elasticsearch Operator
url: https://github.com/openshift/elasticsearch-operator
install:
strategy: deployment
spec:
permissions:
- serviceAccountName: elasticsearch-operator
rules:
- apiGroups:
- logging.openshift.io
resources:
- "*"
verbs:
- "*"
- apiGroups:
- ""
resources:
- pods
- services
- endpoints
- persistentvolumeclaims
- events
- configmaps
- secrets
- serviceaccounts
verbs:
- "*"
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- replicasets
- statefulsets
verbs:
- "*"
deployments:
- name: elasticsearch-operator
spec:
replicas: 1
selector:
matchLabels:
name: elasticsearch-operator
template:
metadata:
labels:
name: elasticsearch-operator
spec:
serviceAccountName: elasticsearch-operator
containers:
- name: elasticsearch-operator
image: quay.io/openshift/elasticsearch-operator:latest
imagePullPolicy: IfNotPresent
command:
- elasticsearch-operator
ports:
- containerPort: 60000
name: metrics
env:
- name: WATCH_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.namespace
- name: OPERATOR_NAME
value: "elasticsearch-operator"
maturity: alpha
version: v0.0.1
customresourcedefinitions:
owned:
- name: elasticsearches.logging.openshift.io
version: v1alpha1
kind: Elasticsearch
displayName: Elasticsearch
description: An Elasticsearch cluster instance
resources:
- kind: Deployment
version: v1
- kind: StatefulSet
version: v1
- kind: ReplicaSet
version: v1
- kind: Pod
version: v1
- kind: ConfigMap
version: v1
- kind: Service
version: v1
- kind: Route
version: v1
specDescriptors:
- description: The name of the serviceaccount used by the Elasticsearch pods
displayName: Service Account
path: serviceAccountName
x-descriptors:
- 'urn:alm:descriptor:io.kubernetes:ServiceAccount'
- description: The name of the configmap used by the Elasticsearch pods
displayName: Config Map
path: configMapName
x-descriptors:
- 'urn:alm:descriptor:io.kubernetes:ConfigMap'
- description: The name of the secret used by the Elasticsearch pods
displayName: Secret
path: secretName
x-descriptors:
- 'urn:alm:descriptor:io.kubernetes:Secret'
- description: Limits describes the minimum/maximum amount of compute resources required/allowed
displayName: Resource Requirements
path: nodeSpec.resources
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:resourceRequirements'
statusDescriptors:
- description: The current health of the Elasticsearch cluster
displayName: Cluster Health
path: clusterHealth
x-descriptors:
- 'urn:alm:descriptor:io.kubernetes.phase'
- description: The status for each of the Elasticsearch pods for the client role
displayName: Elasticsearch Client Status
path: pods.client
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:podStatuses'
- description: The status for each of the Elasticsearch pods for the data role
displayName: Elasticsearch Data Status
path: pods.data
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:podStatuses'
- description: The status for each of the Elasticsearch pods for the master role
displayName: Elasticsearch Master Status
path: pods.master
x-descriptors:
- 'urn:alm:descriptor:com.tectonic.ui:podStatuses'
required:
- name: clusterloggings.logging.openshift.io
version: v1alpha1
kind: ClusterLogging
displayName: Cluster Logging Operator
description: The operator that manages the aggregated logging certificates and components
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment