◐ Shell
clean mode source ↗

feat: Production ready feast operator with v1 apiversion by jyejare · Pull Request #5743 · feast-dev/feast

@jyejare rather than using rename + patch approach, I think we should use kubebuilder standard approach for API version upgrades, where we keep both v1 and v1aplha1 like:

api/
├── v1/
│   ├── featurestore_types.go      (+kubebuilder:storageversion)
│   ├── groupversion_info.go
│   └── zz_generated.deepcopy.go
└── v1alpha1/
    ├── featurestore_types.go      (+kubebuilder:deprecatedversion)
    ├── groupversion_info.go
    └── zz_generated.deepcopy.go

and CRD will look like:

versions:
- name: v1
  storage: true           # Primary storage version
  # Full schema...
  
- name: v1alpha1
  storage: false          # Deprecated, not stored
  deprecated: true
  deprecationWarning: "feast.dev/v1alpha1 FeatureStore is deprecated, use feast.dev/v1 instead"
  # Full schema (for validation)