Skip to content

Latest commit

 

History

History
112 lines (85 loc) · 3.86 KB

CONTRIBUTING.md

File metadata and controls

112 lines (85 loc) · 3.86 KB
title description lead lastmod draft images menu weight toc
Contributing
How can I contribute to the Tempo Operator?
2021-03-08T08:48:57+00:00
false
docs
parent
prologue
200
true

This project is licensed under the AGPLv3 license and accept contributions via GitHub pull requests. This document outlines some of the conventions on development workflow, contact points and other resources to make it easier to get your contribution accepted.

Contributor License Agreement

By contributing to this project you agree to the Contributor License Agreement.

Email and Chat

The project currently uses the Grafana Slack:

Getting Started

  • Fork the repository on GitHub
  • Read the README for build and test instructions
  • Play with the project, submit bugs, submit patches!

Contribution Flow

This is a rough outline of what a contributor's workflow looks like:

  • Create a topic branch from where you want to base your work (usually main).
  • Update the code and test the changes on your local cluster:
IMG_PREFIX=docker.io/${USER} OPERATOR_VERSION=$(date +%s).0.0 make docker-build docker-push deploy reset
  • On OpenShift, you can install the operator via OLM:
kubectl create namespace tempo-operator-system
IMG_PREFIX=docker.io/${USER} OPERATOR_VERSION=$(date +%s).0.0 BUNDLE_VARIANT=openshift make docker-build docker-push bundle bundle-build bundle-push olm-deploy reset

# If the operator is already installed, replace `olm-deploy` with `olm-upgrade`
  • Make commits of logical units.
  • Push your changes to a topic branch in your fork of the repository.
  • Make sure the tests pass, and add any new tests as appropriate.
  • Submit a pull request to the original repository.

Thanks for your contributions!

Adding a Changelog Entry

The CHANGELOG.md file in this repo is autogenerated from .yaml files in the ./.chloggen directory.

Your pull-request should add a new .yaml file to this directory. The name of your file must be unique since the last release.

During the operator release process, all ./.chloggen/*.yaml files are transcribed into CHANGELOG.md and then deleted.

If a changelog entry is not required, add either [chore] to the title of the pull request or add the "Skip Changelog" label to disable this action.

Recommended Steps

  1. Create an entry file using make chlog-new. This generates a file based on your current branch (e.g. ./.chloggen/my-branch.yaml)
  2. Fill in all fields in the new file
  3. Run make chlog-validate to ensure the new file is valid
  4. Commit and push the file

Alternately, copy ./.chloggen/TEMPLATE.yaml, or just create your file from scratch.

Updating related components

Versions of all components (operator, tempo, tempo-query, etc.) are stored in the Makefile. The manifests target will update the image locations and versions of files in config/.

Manually Testing Operator Upgrades

Using OLM

Install latest released version:

IMG_PREFIX=ghcr.io/grafana/tempo-operator OPERATOR_VERSION=old_xyz make olm-deploy

Build and push operator and bundle image to a container registry:

IMG_PREFIX=docker.io/your_username OPERATOR_VERSION=x.y.z BUNDLE_VARIANT=openshift make bundle docker-build docker-push bundle-build bundle-push

Upgrade to new version:

IMG_PREFIX=docker.io/your_username OPERATOR_VERSION=x.y.z make olm-upgrade

Using Manifests

Install latest released version:

kubectl apply -f https://github.com/grafana/tempo-operator/releases/latest/download/tempo-operator.yaml

Build and push operator to a container registry:

IMG_PREFIX=docker.io/your_username OPERATOR_VERSION=x.y.z make docker-build docker-push release-artifacts

Upgrade to new version:

kubectl apply -f dist/tempo-operator.yaml