Giter Site home page Giter Site logo

racheljpg / kas-fleetshard Goto Github PK

View Code? Open in Web Editor NEW

This project forked from bf2fc6cc711aee1a0c2a/kas-fleetshard

0.0 0.0 0.0 12.28 MB

The kas-fleetshard-operator is responsible for provisioning and managing instances of kafka on a cluster. The kas-fleetshard-synchronizer synchronizes the state of a fleet shard with the kas-fleet-manager.

License: Apache License 2.0

Shell 3.12% Python 1.66% Java 95.05% Makefile 0.15% 1C Enterprise 0.02%

kas-fleetshard's Introduction

License

kas-fleetshard

Build and Unit tests Smoke tests

Running

WARNING : currently the kas fleetshard operator needs a Strimzi operator already running on your Kubernetes/OpenShift cluster.

kubectl create namespace kafka
kubectl create -f 'https://strimzi.io/install/latest?namespace=kafka' -n kafka

The first step is to install the operator allowing fabric8 to generate the ManagedKafka CRDs.

mvn install

After that, apply the generated CRD to the Kubernetes/OpenShift cluster by running the following commands.

kubectl apply -f operator/target/kubernetes/managedkafkas.managedkafka.bf2.org-v1.yml
kubectl apply -f operator/target/kubernetes/managedkafkaagents.managedkafka.bf2.org-v1.yml

Finally, you can start the operator from your IDE running the Main application (for a step by step debugging purposes), or you can run it from the command line by running the following command (with Quarkus in "dev" mode). If you're running against a vanilla Kubernetes, you'll need to add -Dkafka=dev so that it doesn't assume that OLM, etc, are available.

# OpenShift
mvn -pl operator quarkus:dev

# OR
# Vanilla Kubernetes
mvn -pl operator quarkus:dev -Dkafka=dev

NOTE: Quarkus will start debugger listener on port 5005 to which you can attach from your IDE.

Testing

Read Testing guide

Releasing

Milestones

Each release requires an open milestone that includes the issues/pull requests that are part of the release. All issues in the release milestone must be closed. The name of the milestone must match the version number to be released.

Configuration

The release action flow requires that the following secrets are configured in the repository:

  • IMAGE_REPO_HOSTNAME - the host (optionally including a port number) of the image repository where images will be pushed
  • IMAGE_REPO_NAMESPACE - namespace/library/user where the image will be pushed
  • IMAGE_REPO_USERNAME - user name for authentication to server IMAGE_REPO_HOSTNAME
  • IMAGE_REPO_PASSWORD - password for authentication to server IMAGE_REPO_HOSTNAME
  • RELEASE_TOKEN - GitHub token for the account performing the release (i.e. a bot account). The commits generated by the release process will be authored by this account. Currently configured to be the bf2-ci-bot

These credentials will be used to push the release image to the repository configured in the .github/workflows/release.yml workflow.

Performing the Release

Release Branch

Optional - only required when a release branch is needed for patch releases. Routine releases should target the main branch. Patch/release branches are only necessary when main includes commits that should not be included in the patch release.

Create a new branch from the tag being patched. For example, if the release that requires a patch release is version/tag 0.22.0, create a new branch 0.22.x from that tag.

git checkout -b 0.22.x 0.22.0
git push upstream 0.22.x

Follow the steps in the pull request section using branch 0.22.x as the target of the PR for release 0.22.1. If you are already releasing from a release branch, skip the above step of creating a new branch and simply checkout that branch and open the PR as described below.

Pull Request

Releases are performed by modifying the .github/project.yml file, setting current-version to the release version and next-version to the next SNAPSHOT. Open a pull request with the changed project.yml to initiate the pre-release workflows. The target of the pull request should be either main or a release branch (described above).

At this phase, the project milestone will be checked and it will be verified that no issues for the release milestone are still open. Additionally, the project's integration tests will be run.

Once approved and the pull request is merged, the release action will execute. This action will execute the Maven release plugin to tag the release commit, build the application artifacts, create the build image, and push the image to the repository identified by the secret IMAGE_REPO_HOSTNAME. If successful, the action will push the new tag to the Github repository and generate release notes listing all of the closed issues included in the milestone. Finally, the milestone will be closed.

Contributing

Use mvn clean process-sources or almost any mvn command to automatically format your code contribution prior to creating a pull request.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.