syntasso / kratix

Kratix is an open-source framework for building platforms
https://kratix.io
Apache License 2.0
423 stars 23 forks source link

Kratix and Backstage Integration #160

Closed tdiaque closed 2 weeks ago

tdiaque commented 3 weeks ago

Hello,

I am attempting to integrate Backstage and Kratix. My Kratix deployment is currently able to apply promises and serve them as shown in the https://docs.kratix.io/main/quick-start

However, when attempting to apply my custom promise of Jenkins that I created following https://docs.kratix.io/main/guides/writing-a-promise and https://docs.kratix.io/main/reference/backstage/intro the Promise seems to be applied, however, I am seeing the following message under kustomize.toolkit.fluxcd.io/Kustomizations:

Component/jenkins dry-run failed, error: no matches for kind "Component" in version "backstage.io/v1alpha1"

If I apply the Kafka Promise from the Kratix Marketplace repository, I am also provided with the same message: Component/kafka dry-run failed, error: no matches for kind "Component" in version "backstage.io/v1alpha1"

kirederik commented 3 weeks ago

hey @tdiaque

from the error message, it looks like a scheduling problem: your backstage documents are being scheduled to your kubernetes cluster instead of to the backstage catalog.

If you follow integration docs, you should have two destinations, one of which will be the bucket/repo that backstage is watching to fill its catalog (check with kubectl get destinations --show-labels).

The backstage documents must be schedule to the backstage destination, while the "non-backstage" components should be scheduled to the k8s destination.

Your backstage app is then configured to listen to documents hitting the backstage bucket.

The "Setting up Kratix with Backstage" section should include the necessary steps to write it all up.

kirederik commented 2 weeks ago

Let me know if you have any further questions! Closing this for now