hyperledger.fabricx.committer¶
Runs Fabric-X Committer components across host-binary, container, and Kubernetes deployments. The role renders component configuration, manages TLS/mTLS artifacts, and starts or removes validators, verifiers, coordinators, sidecars, and query-services.
Role Defaults¶
See defaults/main.yaml for the generated role defaults and inline variable descriptions.
ansible-doc¶
You can view the role documentation in your terminal running:
Tasks¶
ping¶
Check the committer gRPC endpoint
Validate that the Fabric-X Committer RPC port is reachable. Uses committer_rpc_port on host deployments and skips the direct host check in Kubernetes mode.
- name: Check the committer gRPC endpoint
vars:
# RPC port exposed by the selected committer component.
committer_rpc_port: 7051
# Enable Kubernetes deployment mode.
committer_use_k8s: false
# Selects the OpenShift deployment branch.
committer_use_openshift: false
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: ping
k8s/ping¶
Check the committer Kubernetes services are reachable
Probes configured Kubernetes NodePort values and LoadBalancer-exposed service ports for external reachability.
- name: Check the committer Kubernetes services are reachable
vars:
# Kubernetes NodePort value used by the external RPC Service port. Defining this variable enables the NodePort Service; the value is set as the static `nodePort` in the Service spec.
committer_k8s_rpc_node_port: 31051
# Kubernetes NodePort value used by the external metrics Service port. Defining this variable enables the NodePort Service; the value is set as the static `nodePort` in the Service spec.
committer_k8s_metrics_node_port: 31052
# Set to `true` to create a LoadBalancer Service entry that exposes the RPC port externally. When undefined or `false`, the RPC port is not included in the LoadBalancer Service.
committer_k8s_loadbalancer_expose_rpc_port: false
# Set to `true` to create a LoadBalancer Service entry that exposes the metrics port externally. When undefined or `false`, the metrics port is not included in the LoadBalancer Service.
committer_k8s_loadbalancer_expose_metrics_port: false
# RPC port exposed by the selected committer component.
committer_rpc_port: 7051
# Metrics port exposed by the selected committer component.
committer_metrics_port: 9443
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: k8s/ping
openshift/ping¶
Check the committer OpenShift deployment
Checks configured OpenShift Routes and reuses the Kubernetes service ping flow.
- name: Check the committer OpenShift deployment
vars:
# Enable TLS material for the selected component.
committer_use_tls: false
# Enable TLS for the monitoring endpoint.
committer_monitoring_use_tls: "{{ committer_use_tls }}"
# Specifies the OpenShift Route host.
committer_openshift_route: "committer-rpc.apps.example.com"
# Specifies the OpenShift Route host.
committer_openshift_metrics_route: "committer-metrics.apps.example.com"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: openshift/ping
stop¶
Stop a committer process
Stop the selected component in bin or container mode. Kubernetes teardown is handled through the teardown entry points instead. Selects the stop path from committer_component_type and committer_deployment_mode.
- name: Stop a committer process
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Deployment mode selected by the role.
committer_deployment_mode: "{%- if committer_use_bin -%}bin{%- elif committer_use_openshift -%}openshift{%- elif committer_use_k8s -%}k8s{%- else -%}container{%- endif -%}"
# Enable host-binary deployment mode.
committer_use_bin: false
# Enable Kubernetes deployment mode.
committer_use_k8s: false
# Selects the OpenShift deployment branch.
committer_use_openshift: false
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: stop
teardown¶
Teardown a selected component
Remove the selected component according to its deployment mode. Sidecar teardown also removes sidecar data. Dispatches by committer_component_type and committer_deployment_mode.
- name: Teardown a selected component
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Deployment mode selected by the role.
committer_deployment_mode: "{%- if committer_use_bin -%}bin{%- elif committer_use_openshift -%}openshift{%- elif committer_use_k8s -%}k8s{%- else -%}container{%- endif -%}"
# Enable host-binary deployment mode.
committer_use_bin: false
# Enable Kubernetes deployment mode.
committer_use_k8s: false
# Selects the OpenShift deployment branch.
committer_use_openshift: false
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: teardown
wipe¶
Remove all committer artifacts
Tear down the selected component and remove binary, config, and crypto assets. Intended for full cleanup of role-managed host artifacts after stopping the component.
- name: Remove all committer artifacts
vars:
# Enable host-binary deployment mode.
committer_use_bin: false
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: wipe
fetch_logs¶
Collect committer logs
Fetch logs from the selected deployment mode. Dispatches to binary, container, or Kubernetes log collection based on deployment flags.
- name: Collect committer logs
vars:
# Enable host-binary deployment mode.
committer_use_bin: false
# Enable Kubernetes deployment mode.
committer_use_k8s: false
# Selects the OpenShift deployment branch.
committer_use_openshift: false
# Enable container deployment mode.
committer_use_container: "{{ (not committer_use_bin) and (not committer_use_k8s) and (not committer_use_openshift) }}"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: fetch_logs
effective_address¶
Resolve the effective committer metrics address
Compute the address used to reach a committer metrics endpoint from outside its own host. Sets committer_effective_metrics_address as an Ansible fact on the calling host. Resolution priority is OpenShift Route, then Kubernetes NodePort, then the plain host port. Accepts a committer_host variable so the task can be called from any host in the inventory. All committer-specific variables are read from hostvars[committer_host].
- name: Resolve the effective committer metrics address
vars:
# Inventory host whose committer metrics endpoint should be resolved.
committer_host: "committer-validator-1"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: effective_address
get_metrics¶
Retrieve Prometheus metrics
Query the component metrics endpoint and print the response body. Delegates address resolution to the effective_address entry point.
- name: Retrieve Prometheus metrics
vars:
# Metrics port exposed by the selected committer component.
committer_metrics_port: 9443
# Enable mTLS for the monitoring endpoint.
committer_monitoring_use_mtls: "{{ committer_use_mtls }}"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Enable mTLS for the selected component.
committer_use_mtls: false
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: get_metrics
start¶
Start a committer component by type
Dispatch startup to the selected committer component. committer_component_type selects validator, verifier, coordinator, sidecar, or query-service. committer_deployment_mode selects bin, container, Kubernetes, or OpenShift.
- name: Start a committer component by type
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Deployment mode selected by the role.
committer_deployment_mode: "{%- if committer_use_bin -%}bin{%- elif committer_use_openshift -%}openshift{%- elif committer_use_k8s -%}k8s{%- else -%}container{%- endif -%}"
# Enable host-binary deployment mode.
committer_use_bin: false
# Enable Kubernetes deployment mode.
committer_use_k8s: false
# Selects the OpenShift deployment branch.
committer_use_openshift: false
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: start
crypto/setup¶
Prepare crypto material
Transfer cryptogen artifacts or enroll with Fabric CA for the selected component. When committer_use_k8s is true, also create the Kubernetes secret for the component. Uses organization to determine Fabric CA enrollment or cryptogen artifact paths.
- name: Prepare crypto material
vars:
# Organization definition consumed by crypto and sidecar configuration tasks.
organization:
name: "Org1"
domain: "org1.example.com"
role: "peer"
fabric_ca_host: "fca-org1"
peer:
name: "committer-sidecar"
secret: "committer-sidecarPWD"
users:
- name: "committer-sidecar"
secret: "committer-sidecarPWD"
# Enable Kubernetes deployment mode.
committer_use_k8s: false
# Selects the OpenShift deployment branch.
committer_use_openshift: false
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: crypto/setup
crypto/fetch¶
Fetch TLS certificates
Fetch the committer TLS CA certificate and server certificate to the control node. This task runs only when committer_use_tls is true. Stores fetched files under fetched_artifacts_dir for downstream trust bundle generation.
- name: Fetch TLS certificates
vars:
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
# Crypto material base name for the committer.
committer_crypto_name: "{{ organization.peer.name | default(inventory_hostname) }}"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Control-node directory that stores fetched artifacts.
fetched_artifacts_dir: "/tmp/fabricx/artifacts"
# Enable TLS material for the selected component.
committer_use_tls: false
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Organization definition consumed by crypto and sidecar configuration tasks.
organization:
name: "Org1"
domain: "org1.example.com"
role: "peer"
fabric_ca_host: "fca-org1"
peer:
name: "committer-sidecar"
secret: "committer-sidecarPWD"
users:
- name: "committer-sidecar"
secret: "committer-sidecarPWD"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: crypto/fetch
bin/install¶
Install the committer binary
Install the committer binary through the shared bin role Go installer entry point. Uses the configured Git repository, ref, package path, and binary name.
- name: Install the committer binary
vars:
# Binary name managed by the committer role.
committer_bin_name: committer
# Go package path used by the shared binary installer.
committer_bin_package: "{{ committer_git_hub_url }}/{{ committer_git_repo }}/{{ committer_source_code_package }}"
# Git host used for the committer source repository.
committer_git_hub_url: github.com
# Git repository that contains the committer sources.
committer_git_repo: hyperledger/fabric-x-committer
# Git ref used for building or installing the binary.
committer_git_commit: v1.0.4
# Go package path used as the build or install target.
committer_source_code_package: cmd/committer
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: bin/install
bin/build¶
Build the committer binary
Build the committer binary through the shared bin role Go build entry point. Produces the local committer binary artifact later transferred to target hosts.
- name: Build the committer binary
vars:
# Binary name managed by the committer role.
committer_bin_name: committer
# Git host used for the committer source repository.
committer_git_hub_url: github.com
# Git repository that contains the committer sources.
committer_git_repo: hyperledger/fabric-x-committer
# Git ref used for building or installing the binary.
committer_git_commit: v1.0.4
# Go package path used as the build or install target.
committer_source_code_package: cmd/committer
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: bin/build
bin/stop¶
Stop a committer binary
Stop the running committer binary process through the shared bin role. Applies to validator, verifier, coordinator, sidecar, and query-service host-binary processes.
- name: Stop a committer binary
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: bin/stop
bin/rm¶
Remove the committer binary
Remove the installed committer binary from the target host. Uses committer_bin_name as the target executable name.
- name: Remove the committer binary
vars:
# Binary name managed by the committer role.
committer_bin_name: committer
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: bin/rm
bin/fetch_logs¶
Fetch committer binary logs
Collect logs generated by the committer binary through the shared bin role. Applies to host-binary deployments.
- name: Fetch committer binary logs
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: bin/fetch_logs
bin/transfer¶
Transfer the committer binary
Copy the built committer binary to the target host. Uses committer_bin_name for the executable transferred by the shared bin role.
- name: Transfer the committer binary
vars:
# Binary name managed by the committer role.
committer_bin_name: committer
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: bin/transfer
container/start¶
Start the committer container
Run the container for the selected committer component, with its generated configuration directory mounted read-only. For the sidecar, also ensures the data directory exists and mounts it as a second volume. committer_component_type selects the CLI subcommand and, for the sidecar, whether the data volume and a longer wait timeout apply. Configures the image-native gRPC healthcheck with TLS verification when committer_use_tls is enabled.
- name: Start the committer container
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Generated config file name used by the selected component.
committer_config_file: "config-{{ committer_component_type }}.yml"
# Config directory inside the committer container.
committer_container_config_dir: /config
# Data directory inside the committer container.
committer_container_data_dir: /data
# Container name used by the committer container helper.
committer_container_name: "{{ inventory_hostname }}"
# Fully qualified committer image.
committer_image: "{{ committer_registry_endpoint }}/{{ committer_image_name }}:{{ committer_image_tag }}"
# Image name for the committer container.
committer_image_name: fabric-x-committer
# Image tag for the committer container.
committer_image_tag: 1.0.4
# Metrics port exposed by the selected committer component.
committer_metrics_port: 9443
# Container registry endpoint for the committer image.
committer_registry_endpoint: "{{ lookup('env', 'COMMITTER_REGISTRY_ENDPOINT') or 'docker.io/hyperledger' }}"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Remote data directory managed by the role.
committer_remote_data_dir: "{{ remote_data_dir }}"
# RPC port exposed by the selected committer component.
committer_rpc_port: 7051
# Enable TLS material for the selected component.
committer_use_tls: false
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
# Remote data directory used by delegated sidecar tasks.
remote_data_dir: "/var/lib/fabricx/committer/sidecar"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: container/start
container/stop¶
Stop a committer container
Stop the committer container through the shared container role. Uses committer_container_name for the selected component container.
- name: Stop a committer container
vars:
# Container name used by the committer container helper.
committer_container_name: "{{ inventory_hostname }}"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: container/stop
container/rm¶
Remove a committer container
Remove the committer container through the shared container role. Uses committer_container_name for the selected component container.
- name: Remove a committer container
vars:
# Container name used by the committer container helper.
committer_container_name: "{{ inventory_hostname }}"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: container/rm
container/fetch_logs¶
Fetch committer container logs
Collect logs from the committer container through the shared container role. Uses committer_container_name for the selected component container.
- name: Fetch committer container logs
vars:
# Container name used by the committer container helper.
committer_container_name: "{{ inventory_hostname }}"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: container/fetch_logs
config/transfer¶
Generate config by component type
Dispatch configuration generation to the selected committer component. Renders the component YAML config and any required companion artifacts.
- name: Generate config by component type
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: config/transfer
config/rm¶
Remove committer configuration
Remove the component config directory and the Kubernetes ConfigMap when enabled. Cleans committer_remote_config_dir and, for Kubernetes, the component ConfigMap.
- name: Remove committer configuration
vars:
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Enable Kubernetes deployment mode.
committer_use_k8s: false
# Selects the OpenShift deployment branch.
committer_use_openshift: false
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: config/rm
config/transfer_grafana_dashboard¶
Transfer the committer Grafana dashboard
Publish the committer Grafana dashboard through the shared Grafana helper flow. Installs dashboard configuration used to visualize committer metrics.
- name: Transfer the committer Grafana dashboard
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: config/transfer_grafana_dashboard
config/db/transfer¶
Transfer DB config by backend type
Dispatch database configuration generation to the selected backend. Selects PostgreSQL via postgres_db_host or YugabyteDB via yugabyte_cluster_ref_id.
- name: Transfer DB config by backend type
vars:
# Inventory host name of the Postgres backend used by validator or query-service configuration.
postgres_db_host: "postgres-committer-1"
# Yugabyte cluster identifier used by validator or query-service configuration.
yugabyte_cluster_ref_id: "yb-committer-ledger"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: config/db/transfer
config/db/postgres/transfer¶
Transfer PostgreSQL DB config
Generate the PostgreSQL connection settings consumed by the committer component. Copies the Postgres TLS CA certificate from fetched_artifacts_dir when needed.
- name: Transfer PostgreSQL DB config
vars:
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Control-node directory that stores fetched artifacts.
fetched_artifacts_dir: "/tmp/fabricx/artifacts"
# Inventory host name of the Postgres backend used by validator or query-service configuration.
postgres_db_host: "postgres-committer-1"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: config/db/postgres/transfer
config/db/yugabyte/transfer¶
Transfer Yugabyte DB config
Generate the Yugabyte connection settings consumed by the committer component. Copies the Yugabyte TLS CA certificate from fetched_artifacts_dir when needed.
- name: Transfer Yugabyte DB config
vars:
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Control-node directory that stores fetched artifacts.
fetched_artifacts_dir: "/tmp/fabricx/artifacts"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: config/db/yugabyte/transfer
config/mtls/transfer¶
Transfer committer mTLS certificates
Copy mTLS certificates for the committer service-to-service connections. Builds trust bundles for committer_mtls_clients and committer_mtls_orgs.
- name: Transfer committer mTLS certificates
vars:
# mTLS client identifiers trusted by the component.
committer_mtls_clients:
- "committer-sidecar-1"
- "loadgen-1"
# mTLS organizations trusted by the component.
committer_mtls_orgs:
- name: "Org2"
domain: "org2.example.com"
- name: "OrdererOrg1"
domain: "ordererorg1.example.com"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Control-node directory that stores fetched artifacts.
fetched_artifacts_dir: "/tmp/fabricx/artifacts"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: config/mtls/transfer
config/mtls/monitoring/transfer¶
Transfer monitoring mTLS certificates
Copy monitoring mTLS certificates for Prometheus scraping. Builds monitoring trust bundles for Prometheus clients and monitoring organizations.
- name: Transfer monitoring mTLS certificates
vars:
# Monitoring mTLS client identifiers trusted by the component.
committer_monitoring_mtls_clients:
- "prometheus-1"
# Monitoring mTLS organizations trusted by the component.
committer_monitoring_mtls_orgs:
- name: "MonitoringOrg"
domain: "monitoring.example.com"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Control-node directory that stores fetched artifacts.
fetched_artifacts_dir: "/tmp/fabricx/artifacts"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: config/mtls/monitoring/transfer
crypto/rm¶
Remove committer crypto material
Remove local TLS assets and the Kubernetes Secret when enabled. Cleans TLS material under committer_remote_config_dir for the selected component.
- name: Remove committer crypto material
vars:
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Enable Kubernetes deployment mode.
committer_use_k8s: false
# Selects the OpenShift deployment branch.
committer_use_openshift: false
# Enable TLS material for the selected component.
committer_use_tls: false
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: crypto/rm
crypto/cryptogen/transfer¶
Transfer committer crypto from cryptogen
Copy cryptogen-generated TLS assets for the selected committer component. Sidecar components also receive MSP material from the organization peer directory.
- name: Transfer committer crypto from cryptogen
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Crypto material base name for the committer.
committer_crypto_name: "{{ organization.peer.name | default(inventory_hostname) }}"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Enable TLS material for the selected component.
committer_use_tls: false
# Control-node directory that stores cryptogen output.
cryptogen_artifacts_dir: "/tmp/fabricx/crypto-material"
# Organization definition consumed by crypto and sidecar configuration tasks.
organization:
name: "Org1"
domain: "org1.example.com"
role: "peer"
fabric_ca_host: "fca-org1"
peer:
name: "committer-sidecar"
secret: "committer-sidecarPWD"
users:
- name: "committer-sidecar"
secret: "committer-sidecarPWD"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: crypto/cryptogen/transfer
crypto/fabric_ca/enroll¶
Enroll committer crypto with Fabric CA
Enroll the selected committer component against its Fabric CA and write the resulting TLS assets. Uses actual_host as a TLS CSR host and writes certificates under committer_remote_config_dir.
- name: Enroll committer crypto with Fabric CA
vars:
# Real machine host.
actual_host: "myvpc.cloud.ibm.com"
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Crypto material base name for the committer.
committer_crypto_name: "{{ organization.peer.name | default(inventory_hostname) }}"
# Specifies the OpenShift Route host.
committer_openshift_metrics_route: "committer-metrics.apps.example.com"
# Specifies the OpenShift Route host.
committer_openshift_route: "committer-rpc.apps.example.com"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Enable TLS material for the selected component.
committer_use_tls: false
# Control-node directory that stores fetched artifacts.
fetched_artifacts_dir: "/tmp/fabricx/artifacts"
# Organization definition consumed by crypto and sidecar configuration tasks.
organization:
name: "Org1"
domain: "org1.example.com"
role: "peer"
fabric_ca_host: "fca-org1"
peer:
name: "committer-sidecar"
secret: "committer-sidecarPWD"
users:
- name: "committer-sidecar"
secret: "committer-sidecarPWD"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: crypto/fabric_ca/enroll
data/rm¶
Remove sidecar data
Remove the sidecar data directory and sidecar PVC when Kubernetes mode is enabled. Applies only to sidecar ledger data stored under committer_remote_data_dir.
- name: Remove sidecar data
vars:
# Base Kubernetes resource name for committer objects. Used by the service, workload, secret, and optional NodePort resources.
committer_k8s_resource_name: "{{ inventory_hostname }}"
# Remote data directory managed by the role.
committer_remote_data_dir: "{{ remote_data_dir }}"
# Enable Kubernetes deployment mode.
committer_use_k8s: false
# Selects the OpenShift deployment branch.
committer_use_openshift: false
# Kubernetes namespace that contains the committer resources.
k8s_namespace: "fabricx-committer"
# Remote data directory used by delegated sidecar tasks.
remote_data_dir: "/var/lib/fabricx/committer/sidecar"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: data/rm
k8s/config/rm¶
Remove the committer ConfigMap
Delete the committer Kubernetes ConfigMap. Uses committer_k8s_resource_name and k8s_namespace to identify the ConfigMap.
- name: Remove the committer ConfigMap
vars:
# Base Kubernetes resource name for committer objects. Used by the service, workload, secret, and optional NodePort resources.
committer_k8s_resource_name: "{{ inventory_hostname }}"
# Kubernetes namespace that contains the committer resources.
k8s_namespace: "fabricx-committer"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: k8s/config/rm
k8s/crypto/rm¶
Remove the committer Secret
Delete the committer Kubernetes Secret. Uses committer_k8s_resource_name and k8s_namespace to identify the Secret.
- name: Remove the committer Secret
vars:
# Base Kubernetes resource name for committer objects. Used by the service, workload, secret, and optional NodePort resources.
committer_k8s_resource_name: "{{ inventory_hostname }}"
# Kubernetes namespace that contains the committer resources.
k8s_namespace: "fabricx-committer"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: k8s/crypto/rm
k8s/crypto/transfer¶
Create the committer Secret
Create the committer Kubernetes Secret from the generated TLS materials. Includes TLS keys, TLS certificates, and sidecar MSP material when required by the component.
- name: Create the committer Secret
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Crypto material base name for the committer.
committer_crypto_name: "{{ organization.peer.name | default(inventory_hostname) }}"
# Value for the Kubernetes `app.kubernetes.io/part-of` label applied to committer resources.
committer_k8s_part_of: "fabric-x-committer-{{ organization.name }}"
# Base Kubernetes resource name for committer objects. Used by the service, workload, secret, and optional NodePort resources.
committer_k8s_resource_name: "{{ inventory_hostname }}"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Enable TLS material for the selected component.
committer_use_tls: false
# Kubernetes namespace that contains the committer resources.
k8s_namespace: "fabricx-committer"
# Organization definition consumed by crypto and sidecar configuration tasks.
organization:
name: "Org1"
domain: "org1.example.com"
role: "peer"
fabric_ca_host: "fca-org1"
peer:
name: "committer-sidecar"
secret: "committer-sidecarPWD"
users:
- name: "committer-sidecar"
secret: "committer-sidecarPWD"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: k8s/crypto/transfer
k8s/fetch_logs¶
Fetch committer pod logs
Collect logs from committer pods through the shared Kubernetes helper role. Uses committer_k8s_resource_name to select the component workload.
- name: Fetch committer pod logs
vars:
# Base Kubernetes resource name for committer objects. Used by the service, workload, secret, and optional NodePort resources.
committer_k8s_resource_name: "{{ inventory_hostname }}"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: k8s/fetch_logs
prometheus/get_scrapers¶
Build Prometheus scrape targets for committer
Construct the Prometheus scrape service definitions for all deployed committer component types. Reads committer_hosts and fetched TLS artifacts to build scrape targets.
- name: Build Prometheus scrape targets for committer
vars:
# Inventory hosts for committer components used by Prometheus scrape generation.
committer_hosts:
- "committer-validator-1"
- "committer-verifier-1"
- "committer-coordinator-1"
- "committer-sidecar-1"
# Control-node directory that stores fetched artifacts.
fetched_artifacts_dir: "/tmp/fabricx/artifacts"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: prometheus/get_scrapers
bin/start¶
Start the committer binary
Run the binary for the selected committer component with its generated configuration file. For the sidecar, also ensures the data directory exists. committer_component_type selects the CLI subcommand and, for the sidecar, the data directory and a longer wait timeout.
- name: Start the committer binary
vars:
# Binary name managed by the committer role.
committer_bin_name: committer
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Generated config file name used by the selected component.
committer_config_file: "config-{{ committer_component_type }}.yml"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Remote data directory managed by the role.
committer_remote_data_dir: "{{ remote_data_dir }}"
# RPC port exposed by the selected committer component.
committer_rpc_port: 7051
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
# Remote data directory used by delegated sidecar tasks.
remote_data_dir: "/var/lib/fabricx/committer/sidecar"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: bin/start
validator/config/transfer¶
Generate validator config
Render validator configuration, DB settings, mTLS assets, and optional Kubernetes ConfigMap. Requires either postgres_db_host or yugabyte_cluster_ref_id for the state database.
- name: Generate validator config
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Active config directory used by the committer runtime.
committer_config_dir: "{{ committer_remote_config_dir if committer_use_bin else committer_container_config_dir }}"
# Generated config file name used by the selected component.
committer_config_file: "config-{{ committer_component_type }}.yml"
# Config directory inside the committer container.
committer_container_config_dir: /config
# Maximum size of the committer database connection pool.
committer_database_max_connections: 32
# Minimum size of the committer database connection pool.
committer_database_min_connections: 8
# Initial backoff interval for database retries.
committer_database_retry_initial_interval: "500ms"
# Maximum total elapsed time allowed for database retries.
committer_database_retry_max_elapsed_time: "15m"
# Maximum interval allowed between database retry attempts.
committer_database_retry_max_interval: "60s"
# Exponential multiplier applied to database retry intervals.
committer_database_retry_multiplier: 1.5
# Jitter factor applied to database retry intervals.
committer_database_retry_randomization_factor: 0.5
# Log format emitted by the committer component.
committer_log_format: "%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s}%{color:reset} %{message}"
# Log level emitted by the committer component.
committer_log_level: info
# Metrics port exposed by the selected committer component.
committer_metrics_port: 9443
# Monitoring mTLS client identifiers trusted by the component.
committer_monitoring_mtls_clients:
- "prometheus-1"
# Monitoring mTLS organizations trusted by the component.
committer_monitoring_mtls_orgs:
- name: "MonitoringOrg"
domain: "monitoring.example.com"
# Monitoring rate-limit burst.
committer_monitoring_rate_limit_burst: 100
# Monitoring rate-limit requests per second.
committer_monitoring_rate_limit_requests_per_second: 1000
# Enable mTLS for the monitoring endpoint.
committer_monitoring_use_mtls: "{{ committer_use_mtls }}"
# Enable TLS for the monitoring endpoint.
committer_monitoring_use_tls: "{{ committer_use_tls }}"
# mTLS client identifiers trusted by the component.
committer_mtls_clients:
- "committer-sidecar-1"
- "loadgen-1"
# mTLS organizations trusted by the component.
committer_mtls_orgs:
- name: "Org2"
domain: "org2.example.com"
- name: "OrdererOrg1"
domain: "ordererorg1.example.com"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Worker count for validator commit processing.
committer_resource_limits_max_workers_for_committer: 20
# Worker count for validator transaction preparation.
committer_resource_limits_max_workers_for_preparer: 4
# Worker count for validator MVCC checks.
committer_resource_limits_max_workers_for_validator: 8
# Minimum validator transaction batch size.
committer_resource_limits_min_transaction_batch_size: 100
# Timeout for the minimum validator transaction batch size.
committer_resource_limits_timeout_for_min_transaction_batch_size: "2s"
# RPC port exposed by the selected committer component.
committer_rpc_port: 7051
# Minimum client keepalive interval enforced by the server.
committer_server_keep_alive_min_time: "60s"
# Allow keepalive pings without active streams.
committer_server_keep_alive_permit_without_stream: false
# Server keepalive ping interval.
committer_server_keep_alive_time: "300s"
# Server keepalive acknowledgment timeout.
committer_server_keep_alive_timeout: "600s"
# Maximum concurrent streaming RPCs allowed per client connection.
committer_server_max_concurrent_streams: 128
# Server rate-limit burst.
committer_server_rate_limit_burst: 200
# Server rate-limit requests per second.
committer_server_rate_limit_requests_per_second: 2000
# Enable host-binary deployment mode.
committer_use_bin: false
# Enable Kubernetes deployment mode.
committer_use_k8s: false
# Enable mTLS for the selected component.
committer_use_mtls: false
# Selects the OpenShift deployment branch.
committer_use_openshift: false
# Enable TLS material for the selected component.
committer_use_tls: false
# Inventory host name of the Postgres backend used by validator or query-service configuration.
postgres_db_host: "postgres-committer-1"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
# Yugabyte cluster identifier used by validator or query-service configuration.
yugabyte_cluster_ref_id: "yb-committer-ledger"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: validator/config/transfer
verifier/config/transfer¶
Generate verifier config
Render verifier configuration, mTLS assets, and optional Kubernetes ConfigMap. Includes verifier parallel executor settings and RPC/metrics server settings.
- name: Generate verifier config
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Active config directory used by the committer runtime.
committer_config_dir: "{{ committer_remote_config_dir if committer_use_bin else committer_container_config_dir }}"
# Generated config file name used by the selected component.
committer_config_file: "config-{{ committer_component_type }}.yml"
# Config directory inside the committer container.
committer_container_config_dir: /config
# Log format emitted by the committer component.
committer_log_format: "%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s}%{color:reset} %{message}"
# Log level emitted by the committer component.
committer_log_level: info
# Metrics port exposed by the selected committer component.
committer_metrics_port: 9443
# Monitoring mTLS client identifiers trusted by the component.
committer_monitoring_mtls_clients:
- "prometheus-1"
# Monitoring mTLS organizations trusted by the component.
committer_monitoring_mtls_orgs:
- name: "MonitoringOrg"
domain: "monitoring.example.com"
# Monitoring rate-limit burst.
committer_monitoring_rate_limit_burst: 100
# Monitoring rate-limit requests per second.
committer_monitoring_rate_limit_requests_per_second: 1000
# Enable mTLS for the monitoring endpoint.
committer_monitoring_use_mtls: "{{ committer_use_mtls }}"
# Enable TLS for the monitoring endpoint.
committer_monitoring_use_tls: "{{ committer_use_tls }}"
# mTLS client identifiers trusted by the component.
committer_mtls_clients:
- "committer-sidecar-1"
- "loadgen-1"
# mTLS organizations trusted by the component.
committer_mtls_orgs:
- name: "Org2"
domain: "org2.example.com"
- name: "OrdererOrg1"
domain: "ordererorg1.example.com"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# RPC port exposed by the selected committer component.
committer_rpc_port: 7051
# Minimum client keepalive interval enforced by the server.
committer_server_keep_alive_min_time: "60s"
# Allow keepalive pings without active streams.
committer_server_keep_alive_permit_without_stream: false
# Server keepalive ping interval.
committer_server_keep_alive_time: "300s"
# Server keepalive acknowledgment timeout.
committer_server_keep_alive_timeout: "600s"
# Maximum concurrent streaming RPCs allowed per client connection.
committer_server_max_concurrent_streams: 128
# Server rate-limit burst.
committer_server_rate_limit_burst: 200
# Server rate-limit requests per second.
committer_server_rate_limit_requests_per_second: 2000
# Enable host-binary deployment mode.
committer_use_bin: false
# Enable Kubernetes deployment mode.
committer_use_k8s: false
# Enable mTLS for the selected component.
committer_use_mtls: false
# Selects the OpenShift deployment branch.
committer_use_openshift: false
# Enable TLS material for the selected component.
committer_use_tls: false
# Signature verification batch size cutoff.
committer_verifier_batch_size_cutoff: 500
# Signature verification batch timeout.
committer_verifier_batch_time_cutoff: "2ms"
# Channel buffer size for the verifier pipeline.
committer_verifier_channel_buffer_size: 1000
# Parallel signature verification workers.
committer_verifier_parallelism: 16
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: verifier/config/transfer
coordinator/config/transfer¶
Generate coordinator config
Render coordinator configuration, validator and verifier CA bundles, and optional Kubernetes ConfigMap. Uses committer_validators and committer_verifiers to build upstream endpoint lists.
- name: Generate coordinator config
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Active config directory used by the committer runtime.
committer_config_dir: "{{ committer_remote_config_dir if committer_use_bin else committer_container_config_dir }}"
# Generated config file name used by the selected component.
committer_config_file: "config-{{ committer_component_type }}.yml"
# Config directory inside the committer container.
committer_container_config_dir: /config
# Dependency-graph constructor count for the coordinator.
committer_coordinator_dep_graph_constructors: 4
# Dependency-graph waiting transaction limit for the coordinator.
committer_coordinator_dep_graph_wait_tx_limit: 20000000
# Per-goroutine channel buffer size for the coordinator.
committer_coordinator_per_channel_buffer_size_per_goroutine: 10
# Log format emitted by the committer component.
committer_log_format: "%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s}%{color:reset} %{message}"
# Log level emitted by the committer component.
committer_log_level: info
# Metrics port exposed by the selected committer component.
committer_metrics_port: 9443
# Monitoring mTLS client identifiers trusted by the component.
committer_monitoring_mtls_clients:
- "prometheus-1"
# Monitoring mTLS organizations trusted by the component.
committer_monitoring_mtls_orgs:
- name: "MonitoringOrg"
domain: "monitoring.example.com"
# Monitoring rate-limit burst.
committer_monitoring_rate_limit_burst: 100
# Monitoring rate-limit requests per second.
committer_monitoring_rate_limit_requests_per_second: 1000
# Enable mTLS for the monitoring endpoint.
committer_monitoring_use_mtls: "{{ committer_use_mtls }}"
# Enable TLS for the monitoring endpoint.
committer_monitoring_use_tls: "{{ committer_use_tls }}"
# mTLS client identifiers trusted by the component.
committer_mtls_clients:
- "committer-sidecar-1"
- "loadgen-1"
# mTLS organizations trusted by the component.
committer_mtls_orgs:
- name: "Org2"
domain: "org2.example.com"
- name: "OrdererOrg1"
domain: "ordererorg1.example.com"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# RPC port exposed by the selected committer component.
committer_rpc_port: 7051
# Minimum client keepalive interval enforced by the server.
committer_server_keep_alive_min_time: "60s"
# Allow keepalive pings without active streams.
committer_server_keep_alive_permit_without_stream: false
# Server keepalive ping interval.
committer_server_keep_alive_time: "300s"
# Server keepalive acknowledgment timeout.
committer_server_keep_alive_timeout: "600s"
# Maximum concurrent streaming RPCs allowed per client connection.
committer_server_max_concurrent_streams: 128
# Server rate-limit burst.
committer_server_rate_limit_burst: 200
# Server rate-limit requests per second.
committer_server_rate_limit_requests_per_second: 2000
# Enable host-binary deployment mode.
committer_use_bin: false
# Enable Kubernetes deployment mode.
committer_use_k8s: false
# Enable mTLS for the selected component.
committer_use_mtls: false
# Selects the OpenShift deployment branch.
committer_use_openshift: false
# Enable TLS material for the selected component.
committer_use_tls: false
# Inventory hosts for validator components.
committer_validators:
- "committer-validator-1"
- "committer-validator-2"
# Inventory hosts for verifier components.
committer_verifiers:
- "committer-verifier-1"
- "committer-verifier-2"
# Control-node directory that stores fetched artifacts.
fetched_artifacts_dir: "/tmp/fabricx/artifacts"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: coordinator/config/transfer
sidecar/config/transfer¶
Generate sidecar config
Render sidecar configuration, upstream TLS bundles, and optional Kubernetes ConfigMap. Uses orderer_assemblers, committer_coordinator, channel_id, and MSP material.
- name: Generate sidecar config
vars:
# Fabric channel identifier consumed by sidecar configuration.
channel_id: "mychannel"
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Active config directory used by the committer runtime.
committer_config_dir: "{{ committer_remote_config_dir if committer_use_bin else committer_container_config_dir }}"
# Generated config file name used by the selected component.
committer_config_file: "config-{{ committer_component_type }}.yml"
# Filename of the genesis config block placed in the sidecar config directory.
committer_sidecar_config_block_file: config-block.pb.bin
# Config directory inside the committer container.
committer_container_config_dir: /config
# Data directory inside the committer container.
committer_container_data_dir: /data
# Inventory host name of the coordinator component.
committer_coordinator: "committer-coordinator-1"
# Active data directory used by the committer runtime.
committer_data_dir: "{{ committer_remote_data_dir if committer_use_bin else committer_container_data_dir }}"
# Log format emitted by the committer component.
committer_log_format: "%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s}%{color:reset} %{message}"
# Log level emitted by the committer component.
committer_log_level: info
# Metrics port exposed by the selected committer component.
committer_metrics_port: 9443
# Monitoring mTLS client identifiers trusted by the component.
committer_monitoring_mtls_clients:
- "prometheus-1"
# Monitoring mTLS organizations trusted by the component.
committer_monitoring_mtls_orgs:
- name: "MonitoringOrg"
domain: "monitoring.example.com"
# Monitoring rate-limit burst.
committer_monitoring_rate_limit_burst: 100
# Monitoring rate-limit requests per second.
committer_monitoring_rate_limit_requests_per_second: 1000
# Enable mTLS for the monitoring endpoint.
committer_monitoring_use_mtls: "{{ committer_use_mtls }}"
# Enable TLS for the monitoring endpoint.
committer_monitoring_use_tls: "{{ committer_use_tls }}"
# mTLS client identifiers trusted by the component.
committer_mtls_clients:
- "committer-sidecar-1"
- "loadgen-1"
# mTLS organizations trusted by the component.
committer_mtls_orgs:
- name: "Org2"
domain: "org2.example.com"
- name: "OrdererOrg1"
domain: "ordererorg1.example.com"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Remote data directory managed by the role.
committer_remote_data_dir: "{{ remote_data_dir }}"
# RPC port exposed by the selected committer component.
committer_rpc_port: 7051
# Minimum client keepalive interval enforced by the server.
committer_server_keep_alive_min_time: "60s"
# Allow keepalive pings without active streams.
committer_server_keep_alive_permit_without_stream: false
# Server keepalive ping interval.
committer_server_keep_alive_time: "300s"
# Server keepalive acknowledgment timeout.
committer_server_keep_alive_timeout: "600s"
# Maximum concurrent streaming RPCs allowed per client connection.
committer_server_max_concurrent_streams: 128
# Organization definition consumed by crypto and sidecar configuration tasks.
organization:
name: "Org1"
domain: "org1.example.com"
role: "peer"
fabric_ca_host: "fca-org1"
peer:
name: "committer-sidecar"
secret: "committer-sidecarPWD"
users:
- name: "committer-sidecar"
secret: "committer-sidecarPWD"
# Fault tolerance level of the ordering service rendered into the sidecar config.
committer_sidecar_orderer_fault_tolerance_level: "BFT"
# Grace period per block before the sidecar suspects an orderer node is faulty.
committer_sidecar_orderer_suspicion_grace_period_per_block: "1s"
# Interval between sidecar committed-block updates.
committer_sidecar_last_committed_block_set_interval: "5s"
# Sidecar waiting transaction limit.
committer_sidecar_waiting_txs_limit: 20000000
# Server rate-limit burst.
committer_server_rate_limit_burst: 200
# Server rate-limit requests per second.
committer_server_rate_limit_requests_per_second: 2000
# Sidecar internal channel buffer size.
committer_sidecar_channel_buffer_size: 100
# Sidecar ledger sync interval.
committer_sidecar_ledger_sync_interval: 100
# Sidecar notification timeout.
committer_sidecar_notification_max_timeout: "10m"
# Maximum number of active transaction IDs tracked for notification subscriptions.
committer_sidecar_notification_max_active_tx_ids: 100000
# Maximum number of transaction IDs returned per notification request.
committer_sidecar_notification_max_tx_ids_per_request: 1000
# Enable host-binary deployment mode.
committer_use_bin: false
# Enable Kubernetes deployment mode.
committer_use_k8s: false
# Enable mTLS for the selected component.
committer_use_mtls: false
# Selects the OpenShift deployment branch.
committer_use_openshift: false
# Enable TLS material for the selected component.
committer_use_tls: false
# Control-node configtxgen output directory containing the genesis config block.
configtxgen_artifacts_dir: "/tmp/fabricx/configtxgen-artifacts"
# Control-node directory that stores fetched artifacts.
fetched_artifacts_dir: "/tmp/fabricx/artifacts"
# Inventory hosts for orderer assembler components.
orderer_assemblers:
- "orderer-assembler-1"
- "orderer-assembler-2"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
# Remote data directory used by delegated sidecar tasks.
remote_data_dir: "/var/lib/fabricx/committer/sidecar"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: sidecar/config/transfer
query_service/config/transfer¶
Generate query-service config
Render query-service configuration, DB settings, mTLS assets, and optional Kubernetes ConfigMap. Requires either postgres_db_host or yugabyte_cluster_ref_id for the query database.
- name: Generate query-service config
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Active config directory used by the committer runtime.
committer_config_dir: "{{ committer_remote_config_dir if committer_use_bin else committer_container_config_dir }}"
# Generated config file name used by the selected component.
committer_config_file: "config-{{ committer_component_type }}.yml"
# Config directory inside the committer container.
committer_container_config_dir: /config
# Maximum size of the committer database connection pool.
committer_database_max_connections: 32
# Minimum size of the committer database connection pool.
committer_database_min_connections: 8
# Initial backoff interval for database retries.
committer_database_retry_initial_interval: "500ms"
# Maximum total elapsed time allowed for database retries.
committer_database_retry_max_elapsed_time: "15m"
# Maximum interval allowed between database retry attempts.
committer_database_retry_max_interval: "60s"
# Exponential multiplier applied to database retry intervals.
committer_database_retry_multiplier: 1.5
# Jitter factor applied to database retry intervals.
committer_database_retry_randomization_factor: 0.5
# Log format emitted by the committer component.
committer_log_format: "%{color}%{time:2006-01-02 15:04:05.000 MST} [%{module}] %{shortfunc} -> %{level:.4s}%{color:reset} %{message}"
# Log level emitted by the committer component.
committer_log_level: info
# Metrics port exposed by the selected committer component.
committer_metrics_port: 9443
# Monitoring mTLS client identifiers trusted by the component.
committer_monitoring_mtls_clients:
- "prometheus-1"
# Monitoring mTLS organizations trusted by the component.
committer_monitoring_mtls_orgs:
- name: "MonitoringOrg"
domain: "monitoring.example.com"
# Monitoring rate-limit burst.
committer_monitoring_rate_limit_burst: 100
# Monitoring rate-limit requests per second.
committer_monitoring_rate_limit_requests_per_second: 1000
# Enable mTLS for the monitoring endpoint.
committer_monitoring_use_mtls: "{{ committer_use_mtls }}"
# Enable TLS for the monitoring endpoint.
committer_monitoring_use_tls: "{{ committer_use_tls }}"
# mTLS client identifiers trusted by the component.
committer_mtls_clients:
- "committer-sidecar-1"
- "loadgen-1"
# mTLS organizations trusted by the component.
committer_mtls_orgs:
- name: "Org2"
domain: "org2.example.com"
- name: "OrdererOrg1"
domain: "ordererorg1.example.com"
# Query-service maximum active views.
committer_query_service_max_active_views: 4096
# Query-service maximum aggregated views.
committer_query_service_max_aggregated_views: 1024
# Query-service maximum batch wait time.
committer_query_service_max_batch_wait: "100ms"
# Query-service maximum request key count.
committer_query_service_max_request_keys: 10000
# Query-service view timeout.
committer_query_service_max_view_timeout: "10s"
# Query-service minimum batch key count.
committer_query_service_min_batch_keys: 1024
# Query-service view aggregation window.
committer_query_service_view_aggregation_window: "100ms"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# RPC port exposed by the selected committer component.
committer_rpc_port: 7051
# Minimum client keepalive interval enforced by the server.
committer_server_keep_alive_min_time: "60s"
# Allow keepalive pings without active streams.
committer_server_keep_alive_permit_without_stream: false
# Server keepalive ping interval.
committer_server_keep_alive_time: "300s"
# Server keepalive acknowledgment timeout.
committer_server_keep_alive_timeout: "600s"
# Maximum concurrent streaming RPCs allowed per client connection.
committer_server_max_concurrent_streams: 128
# Server rate-limit burst.
committer_server_rate_limit_burst: 200
# Server rate-limit requests per second.
committer_server_rate_limit_requests_per_second: 2000
# Enable host-binary deployment mode.
committer_use_bin: false
# Enable Kubernetes deployment mode.
committer_use_k8s: false
# Enable mTLS for the selected component.
committer_use_mtls: false
# Selects the OpenShift deployment branch.
committer_use_openshift: false
# Enable TLS material for the selected component.
committer_use_tls: false
# Inventory host name of the Postgres backend used by validator or query-service configuration.
postgres_db_host: "postgres-committer-1"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
# Yugabyte cluster identifier used by validator or query-service configuration.
yugabyte_cluster_ref_id: "yb-committer-ledger"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: query_service/config/transfer
k8s/start¶
Create the committer Kubernetes workload
Creates the committer Service, and optional NodePort and LoadBalancer Services, after ensuring the namespace exists. Applies the Deployment or StatefulSet matching the host's committer_component_type, consuming ConfigMap and Secret artifacts generated by the Kubernetes config and crypto transfer entrypoints.
- name: Create the committer Kubernetes workload
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Generated config file name used by the selected component.
committer_config_file: "config-{{ committer_component_type }}.yml"
# Config directory inside the committer container.
committer_container_config_dir: /config
# Data directory inside the committer container.
committer_container_data_dir: /data
# Inventory host name of the coordinator component.
committer_coordinator: "committer-coordinator-1"
# Crypto material base name for the committer.
committer_crypto_name: "{{ organization.peer.name | default(inventory_hostname) }}"
# Fully qualified committer image.
committer_image: "{{ committer_registry_endpoint }}/{{ committer_image_name }}:{{ committer_image_tag }}"
# Image name for the committer container.
committer_image_name: fabric-x-committer
# Image tag for the committer container.
committer_image_tag: 1.0.4
# Filesystem group assigned to committer pods.
committer_k8s_fs_group: 10001
# Set to `true` to create a LoadBalancer Service entry that exposes the metrics port externally. When undefined or `false`, the metrics port is not included in the LoadBalancer Service.
committer_k8s_loadbalancer_expose_metrics_port: false
# Set to `true` to create a LoadBalancer Service entry that exposes the RPC port externally. When undefined or `false`, the RPC port is not included in the LoadBalancer Service.
committer_k8s_loadbalancer_expose_rpc_port: false
# Kubernetes NodePort value used by the external metrics Service port. Defining this variable enables the NodePort Service; the value is set as the static `nodePort` in the Service spec.
committer_k8s_metrics_node_port: 31052
# Value for the Kubernetes `app.kubernetes.io/part-of` label applied to committer resources.
committer_k8s_part_of: "fabric-x-committer-{{ organization.name }}"
# Base Kubernetes resource name for committer objects. Used by the service, workload, secret, and optional NodePort resources.
committer_k8s_resource_name: "{{ inventory_hostname }}"
# Kubernetes NodePort value used by the external RPC Service port. Defining this variable enables the NodePort Service; the value is set as the static `nodePort` in the Service spec.
committer_k8s_rpc_node_port: 31051
# Wait timeout in seconds for Kubernetes rollouts.
committer_k8s_wait_timeout: 120
# Metrics port exposed by the selected committer component.
committer_metrics_port: 9443
# Monitoring mTLS client identifiers trusted by the component.
committer_monitoring_mtls_clients:
- "prometheus-1"
# Monitoring mTLS organizations trusted by the component.
committer_monitoring_mtls_orgs:
- name: "MonitoringOrg"
domain: "monitoring.example.com"
# Enable mTLS for the monitoring endpoint.
committer_monitoring_use_mtls: "{{ committer_use_mtls }}"
# mTLS client identifiers trusted by the component.
committer_mtls_clients:
- "committer-sidecar-1"
- "loadgen-1"
# mTLS organizations trusted by the component.
committer_mtls_orgs:
- name: "Org2"
domain: "org2.example.com"
- name: "OrdererOrg1"
domain: "ordererorg1.example.com"
# Container registry endpoint for the committer image.
committer_registry_endpoint: "{{ lookup('env', 'COMMITTER_REGISTRY_ENDPOINT') or 'docker.io/hyperledger' }}"
# RPC port exposed by the selected committer component.
committer_rpc_port: 7051
# Filename of the genesis config block placed in the sidecar config directory.
committer_sidecar_config_block_file: config-block.pb.bin
# Enable mTLS for the selected component.
committer_use_mtls: false
# Enable TLS material for the selected component.
committer_use_tls: false
# Inventory hosts for validator components.
committer_validators:
- "committer-validator-1"
- "committer-validator-2"
# Inventory hosts for verifier components.
committer_verifiers:
- "committer-verifier-1"
- "committer-verifier-2"
# Optional image pull secret referenced by Kubernetes workloads.
k8s_image_pull_secret: "fabricx-registry-secret"
# Liveness probe failure threshold for Kubernetes workloads.
k8s_liveness_probe_failure_threshold: 5
# Liveness probe initial delay for Kubernetes workloads.
k8s_liveness_probe_initial_delay_seconds: 30
# Liveness probe period for Kubernetes workloads.
k8s_liveness_probe_period_seconds: 15
# Liveness probe timeout for Kubernetes workloads.
k8s_liveness_probe_timeout_seconds: 5
# Kubernetes namespace that contains the committer resources.
k8s_namespace: "fabricx-committer"
# Readiness probe failure threshold for Kubernetes workloads.
k8s_readiness_probe_failure_threshold: 3
# Readiness probe initial delay for Kubernetes workloads.
k8s_readiness_probe_initial_delay_seconds: 10
# Readiness probe period for Kubernetes workloads.
k8s_readiness_probe_period_seconds: 10
# Readiness probe timeout for Kubernetes workloads.
k8s_readiness_probe_timeout_seconds: 5
# Optional Kubernetes container resource requests and limits.
k8s_resources:
requests:
memory: "1Gi"
cpu: "500m"
limits:
memory: "2Gi"
cpu: "1000m"
# Storage class requested by the sidecar StatefulSet.
k8s_storage_class: "fast-ssd"
# Persistent volume size requested by the sidecar StatefulSet.
k8s_storage_size: "20Gi"
# Organization definition consumed by crypto and sidecar configuration tasks.
organization:
name: "Org1"
domain: "org1.example.com"
role: "peer"
fabric_ca_host: "fca-org1"
peer:
name: "committer-sidecar"
secret: "committer-sidecarPWD"
users:
- name: "committer-sidecar"
secret: "committer-sidecarPWD"
# Inventory host name of the Postgres backend used by validator or query-service configuration.
postgres_db_host: "postgres-committer-1"
# Yugabyte cluster identifier used by validator or query-service configuration.
yugabyte_cluster_ref_id: "yb-committer-ledger"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: k8s/start
k8s/rm¶
Remove the committer Kubernetes workload
Deletes the committer Deployment or StatefulSet and Services from the configured namespace. Leaves ConfigMap, Secret, and PVC artifacts for explicit config, crypto, or data cleanup entrypoints.
- name: Remove the committer Kubernetes workload
vars:
# Base Kubernetes resource name for committer objects. Used by the service, workload, secret, and optional NodePort resources.
committer_k8s_resource_name: "{{ inventory_hostname }}"
# Kubernetes namespace that contains the committer resources.
k8s_namespace: "fabricx-committer"
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Kubernetes NodePort value used by the external RPC Service port. Defining this variable enables the NodePort Service; the value is set as the static `nodePort` in the Service spec.
committer_k8s_rpc_node_port: 31051
# Set to `true` to create a LoadBalancer Service entry that exposes the RPC port externally. When undefined or `false`, the RPC port is not included in the LoadBalancer Service.
committer_k8s_loadbalancer_expose_rpc_port: false
# Kubernetes NodePort value used by the external metrics Service port. Defining this variable enables the NodePort Service; the value is set as the static `nodePort` in the Service spec.
committer_k8s_metrics_node_port: 31052
# Set to `true` to create a LoadBalancer Service entry that exposes the metrics port externally. When undefined or `false`, the metrics port is not included in the LoadBalancer Service.
committer_k8s_loadbalancer_expose_metrics_port: false
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: k8s/rm
validator/k8s/config/transfer¶
Create the validator ConfigMap
Ensure the namespace exists and create the validator Kubernetes ConfigMap. Publishes the rendered validator config and mounted CA files for Kubernetes pods.
- name: Create the validator ConfigMap
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Generated config file name used by the selected component.
committer_config_file: "config-{{ committer_component_type }}.yml"
# Value for the Kubernetes `app.kubernetes.io/part-of` label applied to committer resources.
committer_k8s_part_of: "fabric-x-committer-{{ organization.name }}"
# Base Kubernetes resource name for committer objects. Used by the service, workload, secret, and optional NodePort resources.
committer_k8s_resource_name: "{{ inventory_hostname }}"
# Monitoring mTLS client identifiers trusted by the component.
committer_monitoring_mtls_clients:
- "prometheus-1"
# Monitoring mTLS organizations trusted by the component.
committer_monitoring_mtls_orgs:
- name: "MonitoringOrg"
domain: "monitoring.example.com"
# Enable mTLS for the monitoring endpoint.
committer_monitoring_use_mtls: "{{ committer_use_mtls }}"
# mTLS client identifiers trusted by the component.
committer_mtls_clients:
- "committer-sidecar-1"
- "loadgen-1"
# mTLS organizations trusted by the component.
committer_mtls_orgs:
- name: "Org2"
domain: "org2.example.com"
- name: "OrdererOrg1"
domain: "ordererorg1.example.com"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Enable mTLS for the selected component.
committer_use_mtls: false
# Kubernetes namespace that contains the committer resources.
k8s_namespace: "fabricx-committer"
# Organization definition consumed by crypto and sidecar configuration tasks.
organization:
name: "Org1"
domain: "org1.example.com"
role: "peer"
fabric_ca_host: "fca-org1"
peer:
name: "committer-sidecar"
secret: "committer-sidecarPWD"
users:
- name: "committer-sidecar"
secret: "committer-sidecarPWD"
# Inventory host name of the Postgres backend used by validator or query-service configuration.
postgres_db_host: "postgres-committer-1"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
# Yugabyte cluster identifier used by validator or query-service configuration.
yugabyte_cluster_ref_id: "yb-committer-ledger"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: validator/k8s/config/transfer
verifier/k8s/config/transfer¶
Create the verifier ConfigMap
Ensure the namespace exists and create the verifier Kubernetes ConfigMap. Publishes the rendered verifier config and mounted CA files for Kubernetes pods.
- name: Create the verifier ConfigMap
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Generated config file name used by the selected component.
committer_config_file: "config-{{ committer_component_type }}.yml"
# Value for the Kubernetes `app.kubernetes.io/part-of` label applied to committer resources.
committer_k8s_part_of: "fabric-x-committer-{{ organization.name }}"
# Base Kubernetes resource name for committer objects. Used by the service, workload, secret, and optional NodePort resources.
committer_k8s_resource_name: "{{ inventory_hostname }}"
# Monitoring mTLS client identifiers trusted by the component.
committer_monitoring_mtls_clients:
- "prometheus-1"
# Monitoring mTLS organizations trusted by the component.
committer_monitoring_mtls_orgs:
- name: "MonitoringOrg"
domain: "monitoring.example.com"
# Enable mTLS for the monitoring endpoint.
committer_monitoring_use_mtls: "{{ committer_use_mtls }}"
# mTLS client identifiers trusted by the component.
committer_mtls_clients:
- "committer-sidecar-1"
- "loadgen-1"
# mTLS organizations trusted by the component.
committer_mtls_orgs:
- name: "Org2"
domain: "org2.example.com"
- name: "OrdererOrg1"
domain: "ordererorg1.example.com"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Enable mTLS for the selected component.
committer_use_mtls: false
# Kubernetes namespace that contains the committer resources.
k8s_namespace: "fabricx-committer"
# Organization definition consumed by crypto and sidecar configuration tasks.
organization:
name: "Org1"
domain: "org1.example.com"
role: "peer"
fabric_ca_host: "fca-org1"
peer:
name: "committer-sidecar"
secret: "committer-sidecarPWD"
users:
- name: "committer-sidecar"
secret: "committer-sidecarPWD"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: verifier/k8s/config/transfer
coordinator/k8s/config/transfer¶
Create the coordinator ConfigMap
Ensure the namespace exists and create the coordinator Kubernetes ConfigMap. Publishes rendered coordinator config plus validator and verifier CA bundle files.
- name: Create the coordinator ConfigMap
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Generated config file name used by the selected component.
committer_config_file: "config-{{ committer_component_type }}.yml"
# Value for the Kubernetes `app.kubernetes.io/part-of` label applied to committer resources.
committer_k8s_part_of: "fabric-x-committer-{{ organization.name }}"
# Base Kubernetes resource name for committer objects. Used by the service, workload, secret, and optional NodePort resources.
committer_k8s_resource_name: "{{ inventory_hostname }}"
# Monitoring mTLS client identifiers trusted by the component.
committer_monitoring_mtls_clients:
- "prometheus-1"
# Monitoring mTLS organizations trusted by the component.
committer_monitoring_mtls_orgs:
- name: "MonitoringOrg"
domain: "monitoring.example.com"
# Enable mTLS for the monitoring endpoint.
committer_monitoring_use_mtls: "{{ committer_use_mtls }}"
# mTLS client identifiers trusted by the component.
committer_mtls_clients:
- "committer-sidecar-1"
- "loadgen-1"
# mTLS organizations trusted by the component.
committer_mtls_orgs:
- name: "Org2"
domain: "org2.example.com"
- name: "OrdererOrg1"
domain: "ordererorg1.example.com"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Enable mTLS for the selected component.
committer_use_mtls: false
# Inventory hosts for validator components.
committer_validators:
- "committer-validator-1"
- "committer-validator-2"
# Inventory hosts for verifier components.
committer_verifiers:
- "committer-verifier-1"
- "committer-verifier-2"
# Kubernetes namespace that contains the committer resources.
k8s_namespace: "fabricx-committer"
# Organization definition consumed by crypto and sidecar configuration tasks.
organization:
name: "Org1"
domain: "org1.example.com"
role: "peer"
fabric_ca_host: "fca-org1"
peer:
name: "committer-sidecar"
secret: "committer-sidecarPWD"
users:
- name: "committer-sidecar"
secret: "committer-sidecarPWD"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: coordinator/k8s/config/transfer
sidecar/k8s/config/transfer¶
Create the sidecar ConfigMap
Ensure the namespace exists and create the sidecar Kubernetes ConfigMap. Publishes rendered sidecar config plus orderer and coordinator CA bundle files.
- name: Create the sidecar ConfigMap
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Generated config file name used by the selected component.
committer_config_file: "config-{{ committer_component_type }}.yml"
# Inventory host name of the coordinator component.
committer_coordinator: "committer-coordinator-1"
# Value for the Kubernetes `app.kubernetes.io/part-of` label applied to committer resources.
committer_k8s_part_of: "fabric-x-committer-{{ organization.name }}"
# Base Kubernetes resource name for committer objects. Used by the service, workload, secret, and optional NodePort resources.
committer_k8s_resource_name: "{{ inventory_hostname }}"
# Monitoring mTLS client identifiers trusted by the component.
committer_monitoring_mtls_clients:
- "prometheus-1"
# Monitoring mTLS organizations trusted by the component.
committer_monitoring_mtls_orgs:
- name: "MonitoringOrg"
domain: "monitoring.example.com"
# Enable mTLS for the monitoring endpoint.
committer_monitoring_use_mtls: "{{ committer_use_mtls }}"
# mTLS client identifiers trusted by the component.
committer_mtls_clients:
- "committer-sidecar-1"
- "loadgen-1"
# mTLS organizations trusted by the component.
committer_mtls_orgs:
- name: "Org2"
domain: "org2.example.com"
- name: "OrdererOrg1"
domain: "ordererorg1.example.com"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Filename of the genesis config block placed in the sidecar config directory.
committer_sidecar_config_block_file: config-block.pb.bin
# Enable mTLS for the selected component.
committer_use_mtls: false
# Kubernetes namespace that contains the committer resources.
k8s_namespace: "fabricx-committer"
# Organization definition consumed by crypto and sidecar configuration tasks.
organization:
name: "Org1"
domain: "org1.example.com"
role: "peer"
fabric_ca_host: "fca-org1"
peer:
name: "committer-sidecar"
secret: "committer-sidecarPWD"
users:
- name: "committer-sidecar"
secret: "committer-sidecarPWD"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: sidecar/k8s/config/transfer
query_service/k8s/config/transfer¶
Create the query-service ConfigMap
Ensure the namespace exists and create the query-service Kubernetes ConfigMap. Publishes the rendered query-service config and mounted DB CA file when used.
- name: Create the query-service ConfigMap
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Generated config file name used by the selected component.
committer_config_file: "config-{{ committer_component_type }}.yml"
# Value for the Kubernetes `app.kubernetes.io/part-of` label applied to committer resources.
committer_k8s_part_of: "fabric-x-committer-{{ organization.name }}"
# Base Kubernetes resource name for committer objects. Used by the service, workload, secret, and optional NodePort resources.
committer_k8s_resource_name: "{{ inventory_hostname }}"
# Monitoring mTLS client identifiers trusted by the component.
committer_monitoring_mtls_clients:
- "prometheus-1"
# Monitoring mTLS organizations trusted by the component.
committer_monitoring_mtls_orgs:
- name: "MonitoringOrg"
domain: "monitoring.example.com"
# Enable mTLS for the monitoring endpoint.
committer_monitoring_use_mtls: "{{ committer_use_mtls }}"
# mTLS client identifiers trusted by the component.
committer_mtls_clients:
- "committer-sidecar-1"
- "loadgen-1"
# mTLS organizations trusted by the component.
committer_mtls_orgs:
- name: "Org2"
domain: "org2.example.com"
- name: "OrdererOrg1"
domain: "ordererorg1.example.com"
# Remote config directory managed by the role.
committer_remote_config_dir: "{{ remote_config_dir }}"
# Enable mTLS for the selected component.
committer_use_mtls: false
# Kubernetes namespace that contains the committer resources.
k8s_namespace: "fabricx-committer"
# Organization definition consumed by crypto and sidecar configuration tasks.
organization:
name: "Org1"
domain: "org1.example.com"
role: "peer"
fabric_ca_host: "fca-org1"
peer:
name: "committer-sidecar"
secret: "committer-sidecarPWD"
users:
- name: "committer-sidecar"
secret: "committer-sidecarPWD"
# Inventory host name of the Postgres backend used by validator or query-service configuration.
postgres_db_host: "postgres-committer-1"
# Remote config directory used by delegated crypto tasks.
remote_config_dir: "/opt/fabricx/committer/config"
# Yugabyte cluster identifier used by validator or query-service configuration.
yugabyte_cluster_ref_id: "yb-committer-ledger"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: query_service/k8s/config/transfer
openshift/start¶
Start the committer OpenShift deployment
Reuses the Kubernetes workload flow and manages OpenShift Routes for configured HTTP-capable ports.
- name: Start the committer OpenShift deployment
vars:
# Committer component handled by the entry point.
committer_component_type: "coordinator"
# Value for the Kubernetes `app.kubernetes.io/part-of` label applied to committer resources.
committer_k8s_part_of: "fabric-x-committer-{{ organization.name }}"
# Base Kubernetes resource name for committer objects. Used by the service, workload, secret, and optional NodePort resources.
committer_k8s_resource_name: "{{ inventory_hostname }}"
# Enable TLS for the monitoring endpoint.
committer_monitoring_use_tls: "{{ committer_use_tls }}"
# Specifies the OpenShift Route host.
committer_openshift_metrics_route: "committer-metrics.apps.example.com"
# Specifies the OpenShift Route host.
committer_openshift_route: "committer-rpc.apps.example.com"
# Enable TLS material for the selected component.
committer_use_tls: false
# Organization definition consumed by crypto and sidecar configuration tasks.
organization:
name: "Org1"
domain: "org1.example.com"
role: "peer"
fabric_ca_host: "fca-org1"
peer:
name: "committer-sidecar"
secret: "committer-sidecarPWD"
users:
- name: "committer-sidecar"
secret: "committer-sidecarPWD"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: openshift/start
openshift/rm¶
Remove the committer OpenShift deployment
Reuses the Kubernetes workload flow and manages OpenShift Routes for configured HTTP-capable ports.
- name: Remove the committer OpenShift deployment
vars:
# Base Kubernetes resource name for committer objects. Used by the service, workload, secret, and optional NodePort resources.
committer_k8s_resource_name: "{{ inventory_hostname }}"
# Specifies the OpenShift Route host.
committer_openshift_route: "committer-rpc.apps.example.com"
# Specifies the OpenShift Route host.
committer_openshift_metrics_route: "committer-metrics.apps.example.com"
ansible.builtin.include_role:
name: hyperledger.fabricx.committer
tasks_from: openshift/rm