Update operator-sdk version from v0.13.0 to v0.18.1 (last one). Although v0.18.1 comes with CRD v1, I needed to do a rollback to v1beta1 because OLM does not support CRD v1
Rename operator api from ops.3scale.net to monitoring.3scale.net (more appropriate API name)
Integrate dashboards into operator:
Having a way to detect if not-default apis like ServiceMonitor/GrafanaDashboard exists on the cluster (to not have never a failing task)
Implement dashboards per operator instance (namespace), so it is possible to deploy the operator on a different namespace (different version), having possibly different dashboards version, without collision on dashboards names
Parametrized liveness/readiness probes per exporter, with possibility to override values
Fixed cloudwatch_exporter (is was not working at the moment), and provide more config examples to scrape different AWS services and metrics
Added cloudwatch dashboard with monitoring at least of ElastiCache, RDS, ALB, NLB, ELB, ElasticSearchDomain
Added cloudwatch prometheusrules examples
Added more redis prometheusrules examples
Replaced elasticsearch exporter by https://github.com/justwatchcom/elasticsearch_exporter (we used in the past another es-exporter that converted queries to logs into prometheus metrics, but we no longer require it as we have native prometheus metrics on all our apps, and this new exporter has more community behind, and provides some examples of how to deploy it in kubernetes, basic dashboard, basic rules...)
Added elasticsearch dashboard
Added elasticsearch prometheusrules examples
Added CRD validation of all possible operator fields, so for example:
type is a required field, if you don't specify it, you receive an error from the API informing it is required
livenessProbePeriodSeconds is a integer, if you for example put a string, you receive an error from the API informing it must be an integer instead of a string
Enable ServiceMonitor and GrafanaDashboard creation by default, but:
It will always be checked if the API exists on the cluster, so if it not exists in the cluster but it is enabled, it won't be created
You can disable them by changing boolean vars to false
Refactor prometheus-rules (all of them following more or less same naming and messages convention)
Simplify ansible tasks (before there was an if checking if CR type was one of the list (mysql, redis...), but now with CRD validation it is not needed, it is checked at API level before reaching the operator.
Add OLM management with CSV and package (managed by Makefile documented targets). Operator can be deployed using OperatorSource 3scaleops (prometheus-exporter-operator metadata has been pushed to quay.io/3scaleops as an application).
Add initial e2e test using kind
Added circleci integration (create operator image with for every repo tag vX.Y.Z and for every merge to master branch with tag master).
Improved documentation
Important
As there have been introduced several changes, some of them breaking changes, we have updated previous operator v1.0.0 release to v0.1.0 and created a new release v0.2.0 (keeping major version 0, in case we need to add future breaking changes until reaching real v0.1.0 ). In the following weeks we will delete quay tag v1.0.0, so update you current deployment/operator.yaml with tag v0.1.0 if you don't want to update, but consider updating to new release v0.2.0 to benefit from lots of important changes, after adapting your current PrometheusExporter CRs).
OperatorHub.io
Once merged to master, OLM CSV/package will be contributed to https://operatorhub.io, following contribution-guide, to both community-operators (OpenShift) and upstream-community-operators (Kubernetes) OperatorSources.
Closes https://github.com/3scale/prometheus-exporter-operator/issues/3
v0.13.0
tov0.18.1
(last one). Althoughv0.18.1
comes with CRDv1
, I needed to do a rollback tov1beta1
because OLM does not support CRDv1
type
is a required field, if you don't specify it, you receive an error from the API informing it is requiredlivenessProbePeriodSeconds
is ainteger
, if you for example put astring
, you receive an error from the API informing it must be aninteger
instead of astring
boolean
vars tofalse
if
checking if CRtype
was one of the list (mysql, redis...), but now with CRD validation it is not needed, it is checked at API level before reaching the operator.3scaleops
(prometheus-exporter-operator metadata has been pushed to quay.io/3scaleops as an application).vX.Y.Z
and for every merge to master branch with tagmaster
).Important
As there have been introduced several changes, some of them breaking changes, we have updated previous operator
v1.0.0
release tov0.1.0
and created a new releasev0.2.0
(keeping major version0
, in case we need to add future breaking changes until reaching realv0.1.0
). In the following weeks we will delete quay tagv1.0.0
, so update you current deployment/operator.yaml with tagv0.1.0
if you don't want to update, but consider updating to new releasev0.2.0
to benefit from lots of important changes, after adapting your currentPrometheusExporter
CRs).OperatorHub.io
Once merged to master, OLM CSV/package will be contributed to https://operatorhub.io, following contribution-guide, to both
community-operators
(OpenShift) andupstream-community-operators
(Kubernetes) OperatorSources.