Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

fix: fix script entrypoints #1041

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,8 @@ classifiers=[
]

[project.scripts]
karapace = "karapace.kafka_rest_apis:main"
karapace = "karapace.__main__:main"
karapace_rest_proxy = "karapace.kafka_rest_apis.__main__:main"
karapace_schema_backup = "karapace.backup.cli:main"
karapace_mkpasswd = "karapace.core.auth:main"

Expand Down
11 changes: 9 additions & 2 deletions src/karapace/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@
from karapace.api.telemetry.container import TelemetryContainer
from karapace.core.auth_container import AuthContainer
from karapace.core.container import KarapaceContainer
from karapace.core.metrics_container import MetricsContainer

import karapace.api.controller
import karapace.api.factory
Expand All @@ -24,11 +25,12 @@
import karapace.api.telemetry.setup
import karapace.api.telemetry.tracer
import karapace.api.user

import sys
import uvicorn

from karapace.core.metrics_container import MetricsContainer

if __name__ == "__main__":
def main() -> int:
karapace_container = KarapaceContainer()
karapace_container.wire(
modules=[
Expand Down Expand Up @@ -98,3 +100,8 @@
config = karapace_container.config()
app = create_karapace_application(config=config, lifespan=karapace_schema_registry_lifespan)
uvicorn.run(app, host=config.host, port=config.port, log_level=config.log_level.lower(), log_config=None)
return 0


if __name__ == "__main__":
sys.exit(main())
23 changes: 9 additions & 14 deletions src/karapace/kafka_rest_apis/__main__.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,11 +5,9 @@

from __future__ import annotations

from dependency_injector.wiring import inject, Provide
from dependency_injector.wiring import inject
from karapace import version as karapace_version
from karapace.core.config import Config
from karapace.core.container import KarapaceContainer
from karapace.core.instrumentation.prometheus import PrometheusInstrumentation
from karapace.core.logging_setup import configure_logging, log_config_without_secrets
from karapace.kafka_rest_apis import KafkaRest

Expand All @@ -19,22 +17,21 @@


@inject
def main(
config: Config = Provide[KarapaceContainer.config],
prometheus: PrometheusInstrumentation = Provide[KarapaceContainer.prometheus],
) -> int:
config.set_config_defaults()
def main() -> int:
container = KarapaceContainer()
container.wire(modules=[__name__])

parser = argparse.ArgumentParser(prog="karapace", description="Karapace: Your Kafka essentials in one tool")
parser.add_argument("--version", action="version", help="show program version", version=karapace_version.__version__)
parser.parse_args()
configure_logging(config=config)
log_config_without_secrets(config=config)
configure_logging(config=container.config())
log_config_without_secrets(config=container.config())

logging.info("\n%s\nStarting %s\n%s", ("=" * 100), "Starting Karapace Rest Proxy", ("=" * 100))
app = KafkaRest(config=config)
app = KafkaRest(config=container.config())

try:
prometheus.setup_metrics(app=app)
container.prometheus().setup_metrics(app=app)
app.run() # `close` will be called by the callback `close_by_app` set by `KarapaceBase`
except Exception as ex:
app.stats.unexpected_exception(ex=ex, where="karapace")
Expand All @@ -43,6 +40,4 @@ def main(


if __name__ == "__main__":
container = KarapaceContainer()
container.wire(modules=[__name__])
sys.exit(main())
Loading