Skip to content

Upgrade operator to Fabric-X components v1.0.0 - #3

Open
elishambadi wants to merge 3 commits into
kfsoftware:mainfrom
elishambadi:main
Open

elishambadi wants to merge 3 commits into
kfsoftware:mainfrom
elishambadi:main

Conversation

@elishambadi

@elishambadi elishambadi commented Jul 27, 2026

Copy link
Copy Markdown

Type

  • Feature addition
  • Version upgrade

Summary

  • Updates the operator to handle fabric-x-committer v1.0.0 and fabric-x-orderer v1.0.0.
  • Creates BlockExplorer CRDs and controller
  • Test coverage

Changes made:

  • update templates.go & config/samples to reflect new versions
  • chore(deps): bump fabric-x-common to v0.2.6 for ASN1Marshal fix
  • add consenters to genesis block in genesis_service.go
  • add PVCs to controller for configurability
  • in shared_config.go. Ensure RequestBatchMaxBytes > RequestMaxBytes
  • Setup BlockExplorer CRDs based on https://github.com/LF-Decentralized-Trust-labs/fabric-x-block-explorer

Elisha Mbadi added 3 commits July 27, 2026 14:12
- update templates.go & config/samples to reflect new versions
- update to fabric-x-common v 0.2.6
- add consenters to genesis block in genesis_service.go
- add configurable PVC sizes to configs
- in shared_config.go. Ensure RequestBatchMaxBytes > RequestMaxBytes
- Implement unit tests for the BlockExplorer controller, covering both 'configure' and 'deploy' modes.
- Ensure the tests validate the creation of necessary Kubernetes resources such as secrets and deployments.
- Introduce BlockExplorerTemplateData struct and BuildBlockExplorerConfig function to generate block explorer configuration.
- Update the templates.go file to include the new configuration generation logic.
@dviejokfs

Copy link
Copy Markdown
Contributor

@elishambadi thanks for putting this upgrade together. I’m requesting changes because I found several blocking issues:

  • The v1.0 upgrade is not wired through consistently. Parent Committer and OrdererGroup controllers still propagate older image tags, making the new v1.0 leaf defaults unreachable. Some samples and CRD defaults also retain old versions.
  • The committed CommitterQueryService tests fail against the rewritten configuration template: 2 focused specs fail at lines 154 and 174.
  • BlockExplorer replaces the complete Service.Spec, clearing API-assigned fields such as clusterIP on subsequent reconciliations.
  • Genesis generation unconditionally changes lifecycle and endorsement policies to ANY, explicitly bypassing majority governance without a test-only guard.
  • A BlockExplorer editor can select an arbitrary image and reference namespace secrets through env.valueFrom.secretKeyRef, potentially using the operator as a privilege-escalation path.
  • BlockExplorer status updates can cause a continuous reconciliation loop and report Ready=True for failed or non-deployed resources.

I also found invalid storage input reaching resource.MustParse, verifier configuration fields emitted at the wrong YAML level, and Go build-image version mismatches.

Focused genesis and BlockExplorer tests passed, but the QueryService tests failed, GitHub reports no CI checks, and the PR contains no runtime deployment evidence. Please address these issues and add an end-to-end reconciliation test that runs at least twice to verify steady-state behavior.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants