Skip to main content
StreamNative Private Cloud is an enterprise product which brings specific controllers for Kubernetes by providing specific Custom Resource Definitions (CRDs) that extend the basic Kubernetes orchestration capabilities to support the setup and management of StreamNative components.

What’s Changed

🚀 New Features

KafkaCluster Support

  • KafkaCluster Controller: Added a dedicated controller for KafkaCluster resources
  • Listener Management: Added support for listeners and additional listeners on KafkaCluster
  • APIKey Authentication: Added API key authentication support for Kafka clusters
  • Enabled by Default: KafkaCluster feature gate is now enabled by default

Kafka Ecosystem Resources

  • Kafka REST Proxy: Added a new KafkaRestProxy resource with controller, service, and Istio integration
  • Schema Registry: Added a new SNSchemaRegistry resource with controller, service, StatefulSet, and Istio support
  • Functions Worker for Kafka: Made Pulsar Functions Worker ready for Kafka cluster scenarios

Coordinator, Toolset, and Detector

  • Coordinator Resource: Added coordinator support for deploying detector and toolset workloads
  • Toolset Deployment: Added end-to-end toolset deployment support
  • Detector Deployment: Added detector deployment support for Kafka-related workflows
  • Resource Rename: Renamed GeneralCoordinator to Coordinator

Agent and API Key Enhancements

  • Custom Agent Framework: Added support for "custom" AgentFramework
  • API Key Configs: Added CRD and configuration support for API key management
  • Functions Component Limits: Added componentLimits configuration for functions on serverless clusters

🔧 Enhancements

Kafka Networking and Exposure

  • Istio Ingress Design: Added design proposal for exposing Kafka clusters by using Istio ingress gateway
  • Bootstrap Service Readiness: Enabled publishNotReadyAddresses for broker headless services
  • KafkaCluster CRD Completion: Added missing webhook, CA injection, RBAC, and sample wiring for KafkaCluster

Broker and Load Management

  • Bundle Distribution Control: Added loadBalancerDistributeBundlesEvenlyEnabled for modularLoadManager
  • Default Load Balancer Config: Continued the default broker load balancer improvements for Pulsar 3.x
  • Usage Reporting: Added namespace UID to usage report data

Platform Compatibility

  • Kubernetes 1.31: Upgraded Kubernetes dependencies to v1.31
  • Dependency Refresh: Upgraded jose2go and refreshed container images
  • Base Image Update: Upgraded Alpine base image

🐛 Bug Fixes

Kafka and Istio Fixes

  • Passthrough Port Alignment: Fixed bind address and VirtualService port alignment in passthrough mode with multiple gateways
  • Kafka REST Proxy Routing: Fixed Kafka REST Proxy VirtualService ports and label selectors
  • API Keys with KafkaNodePools: Fixed Kafka node pool patching when API keys are enabled
  • Bootstrap Server URL: Removed redundant HTTP scheme in generated bootstrapServers

Runtime and Controller Fixes

  • Served GVK Registration: Registered GVKs to the runtime only when they are served by the API server
  • Istio Watch Logic: Removed static Istio resource owner watch logic
  • Missing Gateway Handling: Fixed panic when Istio gateway is not configured
  • Coordinator CRD Short Name: Fixed the short name of the Coordinator CRD

Authentication and Config Fixes

  • Mounted Token Retrieval: Fixed SetupBrokerConfig token retrieval from mounted files
  • Compaction Secret: Fixed compaction service authv2 secret handling
  • Oxia Networking: Fixed Oxia VirtualService and Gateway generation
  • Certification Flag: Fixed the --certification-project-id unknown flag issue

📦 Dependencies

Updated Dependencies

  • Kubernetes Libraries: Upgraded controller and client dependencies to Kubernetes v1.31
  • jose2go: Upgraded jose2go dependency and related images
  • Container Images: Refreshed Docker and Alpine-based images

Generated Assets

  • CRD Refresh: Regenerated CRDs to reflect the new Kafka, schema registry, coordinator, and API key APIs
  • RBAC Updates: Added and refreshed RBAC manifests for the new resources

🚨 Breaking Changes

Resource and API Changes

  • Coordinator Rename: GeneralCoordinator has been renamed to Coordinator
  • New CRDs: KafkaCluster, KafkaRestProxy, SNSchemaRegistry, Coordinator, and API key related CRDs are introduced or significantly expanded
  • KafkaCluster Default Enablement: KafkaCluster is now enabled by default, which changes the default operator feature set

Manifest Changes

  • Coordinator Manifests: Existing manifests that reference GeneralCoordinator must be updated
  • CRD Reapplication: Cluster operators should re-apply CRDs and RBAC before rolling out v0.15

🔄 Migration Notes

From v0.14.8 to v0.15.0

  • Update Coordinator Resources: Replace GeneralCoordinator references in manifests and automation with Coordinator
  • Apply New CRDs First: Apply the updated CRDs and RBAC for KafkaCluster, KafkaRestProxy, SNSchemaRegistry, Coordinator, and API key resources before upgrading the operator
  • Review KafkaCluster Rollout: If you previously relied on the KafkaCluster feature gate being disabled, review your deployment assumptions because it is now enabled by default
  • Review Istio Configuration: If you expose Kafka or Kafka REST Proxy through Istio, review listener and port mappings after upgrade
  • Review Broker Auth Config: If broker auth tokens are mounted from files, validate the corrected token resolution behavior after upgrade

📋 Upgrade Instructions

  1. Backup: Create a backup of your current configuration and state
  2. Update CRDs: Apply the latest CRDs and RBAC manifests before upgrading the operator
  3. Update Manifests: Replace GeneralCoordinator with Coordinator in your manifests and automation
  4. Deploy Operator: Upgrade the operator to v0.15.0
  5. Review Kafka Resources: Validate KafkaCluster, KafkaRestProxy, and SNSchemaRegistry resources if you use Kafka workloads
  6. Verify Networking: Check Istio gateways, listeners, and generated service endpoints after rollout
  7. Monitor: Monitor controller logs, workload readiness, and metrics after the upgrade

🎯 Performance Improvements

  • Kafka Exposure Path: Improved Kafka listener and Istio generation for more consistent exposure behavior
  • Broker Readiness: Enabled publishNotReadyAddresses for broker headless services to improve cluster startup coordination
  • Load Balancing Tuning: Added finer control for modular load manager bundle distribution

📚 Documentation

  • Added design proposal for exposing Kafka clusters by using Istio ingress gateway
  • Refreshed generated CRD documentation for new Kafka-related resources
  • Updated API surface for Coordinator, KafkaCluster, API key configuration, and schema registry support