Skip to content

Commit

Permalink
Add Jaeger CSV and Package for OLM integration and deployment of the …
Browse files Browse the repository at this point in the history
…operator through OperatorHub

- This pull requests introduces a CSV and Package which can be bundled together and used by the [Operator Lifecycle Manager](https://github.com/operator-framework/operator-lifecycle-manager) to install, manage, and upgrade the Jaeger Operator in a cluster.

- The Jaeger operator versions available to all Kubernetes clusters using OLM can be updated by submitting a pull request to the [Community Operators GitHub repo](https://github.com/operator-framework/community-operators) that includes the latest CSVs, CRDs, and Packages.

- The CSV was created based of the [documentation provided by OLM](https://github.com/operator-framework/operator-lifecycle-manager/blob/master/Documentation/design/building-your-csv.md) and the [documentation](https://github.com/operator-framework/community-operators/blob/master/docs/marketplace-required-csv-annotations.md) provided by [OperatorHub](https://github.com/operator-framework/operator-marketplace).

- The operator and the CSV were tested using the [scorecard functionality recently introduced](operator-framework/operator-sdk#758) to the [Operator-sdk](https://github.com/operator-framework/operator-sdk). Currently, the Jaeger operator scores a 4/18 on the scorecard tests.

OLM integration could be improved by future code changes to the Operator:
- Addressing the operator-sdk scorecard tests that failed.
- Adding additional information to the Jaeger CSV based on the [CSV documentation provided by OLM](https://github.com/operator-framework/operator-lifecycle-manager/blob/master/Documentation/design/building-your-csv.md)
- Adding additional information to the Jaeger CSV based on the [CSV documentation provided by OperatorHub](https://github.com/operator-framework/community-operators/blob/master/docs/marketplace-required-csv-annotations.md)
  • Loading branch information
awgreene committed Jan 21, 2019
1 parent 1e134be commit 3078ca0
Show file tree
Hide file tree
Showing 2 changed files with 138 additions and 0 deletions.
4 changes: 4 additions & 0 deletions deploy/bundle/jaeger.package.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
packageName: jaeger
channels:
- name: alpha
currentCSV: jaeger-operator.v1.8.2
134 changes: 134 additions & 0 deletions deploy/bundle/jaeger.v1.8.2.clusterserviceversion.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,134 @@
apiVersion: operators.coreos.com/v1alpha1
kind: ClusterServiceVersion
metadata:
name: jaeger-operator.v1.8.2
namespace: placeholder
annotations:
categories: "tracing, monitoring, troubleshooting, distributed"
certified: "false"
containerImage: docker.io/jaegertracing/jaeger-operator:1.8.2
createdAt: 2019-01-09T12:00:00Z
support: Jaeger
alm-examples: >-
[ { "apiVersion": "io.jaegertracing/v1alpha1", "kind": "Jaeger", "metadata": { "name": "agent-as-daemonset" }, "spec":{ "agent": { "strategy": "DaemonSet", "options":{ "log-level": "debug" } } } }, { "apiVersion": "io.jaegertracing/v1alpha1", "kind": "Jaeger", "metadata":{ "name": "simplest" } } ]
spec:
displayName: jaeger-operator
description: |-
Provides monitoring and troubleshooting microservices-based distributed systems
keywords: ['tracing', 'monitoring', 'troubleshooting', 'distributed']
version: 1.8.2
maintainers:
- name: Jaeger Google Group
email: jaeger-tracing@googlegroups.com
provider:
name: Jaeger
labels:
name: jaeger-operator
selector:
matchLabels:
name: jaeger-operator
links:
- name: Jaeger Operator Source Code
url: https://github.com/jaegertracing/jaeger-operator
installModes:
- type: OwnNamespace
supported: true
- type: SingleNamespace
supported: true
- type: MultiNamespace
supported: false
- type: AllNamespaces
supported: true
install:
strategy: deployment
spec:
permissions:
- serviceAccountName: jaeger-operator
rules:
- apiGroups:
- ""
resources:
- pods
- services
- endpoints
- persistentvolumeclaims
- events
- configmaps
- secrets
- serviceaccounts
verbs:
- '*'
- apiGroups:
- apps
resources:
- deployments
- daemonsets
- replicasets
- statefulsets
verbs:
- '*'
- apiGroups:
- monitoring.coreos.com
resources:
- servicemonitors
verbs:
- get
- create
- apiGroups:
- io.jaegertracing
resources:
- '*'
verbs:
- '*'
- apiGroups:
- extensions
resources:
- ingresses
verbs:
- "*"
- apiGroups:
- batch
resources:
- jobs
- cronjobs
verbs:
- "*"
deployments:
- name: jaeger-operator
spec:
replicas: 1
selector:
matchLabels:
name: jaeger-operator
template:
metadata:
labels:
name: jaeger-operator
spec:
serviceAccountName: jaeger-operator
containers:
- name: jaeger-operator
image: jaegertracing/jaeger-operator:1.8.2
ports:
- containerPort: 60000
name: metrics
args: ["start"]
imagePullPolicy: Always
env:
- name: WATCH_NAMESPACE
valueFrom:
fieldRef:
fieldPath: metadata.annotations['olm.targetNamespaces']
- name: POD_NAME
valueFrom:
fieldRef:
fieldPath: metadata.name
- name: OPERATOR_NAME
value: "jaeger-operator"
customresourcedefinitions:
owned:
- name: jaegers.io.jaegertracing
version: v1alpha1
kind: Jaeger
displayName: Jaeger
description: A configuration file for a Jaeger custom resource.

0 comments on commit 3078ca0

Please sign in to comment.