Skip to content

Support update of the underlying Jaeger version #42

Closed

Description

We should add support for automatic updates of the Jaeger instances that are managed by the operator. Idea:

  • Add a new property to the model: "update: [none|patch|minor|major]" to the model
  • Label the resulting "jaeger" object with the property above
  • From time to time, check for new versions of the Jaeger image on Docker Hub
  • On new versions, check which Jaeger instances need to be updated and do a blue/green deployment. For this to work properly, the following has to happen, in order:
  1. Migrate the data. If this step fails, skip everything else
  2. Add new collectors. If this step fails, skip everything else
  3. Create a dummy pod with the agent, so that image gets pulled and we can check whether the container starts fine. Delete the pod once we confirm it's working. If this step fails, remove the new collectors and skip everything else
  4. For each application with the old sidecar, update the deployment to use a new version. This will cause a new pod to start, replacing the old ones
  5. Add new query/UI. If this fails, don't rollback anything. Just do not continue with the next step
  6. Remove the old collectors/queries/UIs

We need also to find a way to alert the admins in case of failures. Is it enough for us to just generate metrics, hoping an admin will create an alert in case a specific gauge/counter goes off? There's an "admin" page being considered for Jaeger. How can we provide data to that?

Things we need to consider:

  1. During the data update, should we stop the collectors from writing to it, or can we trust the update will be properly managed by the create-schema job?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions