The following topics are covered in this chapter:
./charts- directory with HELM charts for Kafka and Kafka-related components../demo- directory withdocker-composesetup to run Kafka and related services locally../docs- directory containing project documentation../integration-tests- directory with Robot Framework integration test cases../operator- directory with operator source code used for running Kafka and related services.
-
Build operator and integration tests, if you need non-master versions.
-
Prepare kubeconfig on you host machine to work with target cluster.
-
Prepare
sample.yamlfile with deployment parameters, which should contains custom docker images if it is needed. -
Store
sample.yamlfile in/charts/helm/kafkaor/charts/helm/kafka-servicedirectory. -
Go to
/charts/helm/kafkaor/charts/helm/kafka-servicedirectory. -
Run the following command if you deploy Kafka only:
# Run in /charts/helm/kafka directory helm install kafka ./ -f sample.yaml -n <TARGET_NAMESPACE>
-
Run the following command if you deploy Kafka's supplementary services only:
# Run in /charts/helm/kafka-service directory helm install kafka-service ./ -f sample.yaml -n <TARGET_NAMESPACE>
Integration tests (including ATP Storage for S3-compatible report upload) are documented in the Installation guide - Integration Tests section.
There is no smoke tests.
To debug Operator in VSCode you can use Launch Kafka Operator configuration which is already defined in
.vscode/launch.json file.
The developer should configure environment variables:
KUBECONFIG- developer should need to defineKUBECONFIGenvironment variable which should contains path to the kube-config file. It can be defined on configuration level or on the level of user's environment variables.WATCH_NAMESPACE- namespace, in which custom resources should be proceeded.OPERATOR_NAMESPACE- namespace, where Kafka should be proceeded.
To debug Operator in VSCode you can use Launch Kafka-Services Operator configuration which is already defined in
.vscode/launch.json file.
The developer should configure environment variables:
KUBECONFIG- developer should need to defineKUBECONFIGenvironment variable which should contains path to the kube-config file. It can be defined on configuration level or on the level of user's environment variables.WATCH_NAMESPACE- namespace, in which custom resources should be proceeded.OPERATOR_NAMESPACE- namespace, where Kafka-Services should be proceeded.
Note: The
secondaryApiGroupparameter was added to enable listening to several API groups with the same CR type.
There are no well-defined rules for troubleshooting, as each task is unique, but there are some tips that can do:
- Deploy parameters.
- Application manifest.
- Logs from all Kafka and Kafka-Services pods: operators, Kafka and others.
Also, developer can take a look on Troubleshooting guide.
To keep the component up to date, the following activities should be performed regularly:
- Vulnerabilities fixing.
- Kafka or Kafka supplementary services upgrade.
- Bug-fixing, improvement and feature implementation for operator and other related supplementary services.
- Installation guide (Helm parameters, including integration tests and ATP Storage).
- Troubleshooting guide.
- Architecture Guide.
- Internal Developer Guide.