Custom Services
A custom service is a service definition that adds components and lifecycle behavior to a stack. Place the service under the stack services directory, or provide a common definition that a stack service references. Current BIGTOP examples are under ambari-server/src/main/resources/stacks/BIGTOP/3.2.0/services.
Lifecycle and Packages
The service metainfo.xml names components, categories, cardinality, scripts, dependencies, packages, and configuration files. Python scripts implement install, configure, start, stop, and status; custom commands add service-specific operations. Package scripts and templates are kept with the service and run through Ambari's Python 3 runtime.
Configuration and Actions
Use configuration-dependencies to declare the configuration types required by a service or component. Use quicklinks/quicklinks.json for service links and themes for supported service presentation metadata. A service advisor can validate placement and recommend configuration. telemetry.json describes telemetry-provider inputs; metrics.json remains the Ambari control-plane service metrics contract.
Inheritance
Use the existing stack/service inheritance model and verify the resulting descriptor. Do not assume that a copied service definition inherits files unless its parent relationship is explicitly supported by the stack loader. Validate the assembled service, package paths, commands, and configuration dependencies before deployment.
Verification
Test the complete lifecycle, service checks, configuration rendering, custom actions, and upgrade behavior on the target stack. The BIGTOP HDFS definition is a concrete current reference.