The InfraKitchen plugin integrates InfraKitchen infrastructure management capabilities directly into your Backstage instance. This plugin provides a seamless interface to interact with InfraKitchen APIs, enabling developers and platform engineers to manage infrastructure resources from within the Backstage developer portal.
- 🚀 Full integration with InfraKitchen API
- 🔐 Built-in authentication using Backstage identity
- 🎨 Consistent UI/UX with Backstage design system
- 📊 Infrastructure resource visualization
- 🔄 Automatic configuration from Backstage backend
# From your Backstage root directory
yarn --cwd packages/app add @electrolux-oss/infrakitchen-plugin-for-backstageAdd the InfraKitchen proxy configuration to your app-config.yaml:
proxy:
endpoints:
'/infrakitchen':
target: 'http://your-infrakitchen-instance:7777'
allowedHeaders:
- 'Authorization'
- 'Range'
- 'Content-Range'
- 'Access-Control-Expose-Headers'
changeOrigin: trueReplace http://your-infrakitchen-instance:7777 with your actual InfraKitchen instance URL.
Edit packages/app/src/App.tsx to import and use the plugin:
// Add the import at the top
import { InfraKitchenApp } from '@electrolux-oss/infrakitchen-plugin-for-backstage';
// Add the route inside your FlatRoutes component
const routes = (
<FlatRoutes>
{/* ...other routes */}
<Route path="/infrakitchen" element={<InfraKitchenApp />} />
</FlatRoutes>
);To add InfraKitchen to your sidebar navigation, edit packages/app/src/components/Root/Root.tsx:
import CloudIcon from '@material-ui/icons/Cloud';
// Inside your SidebarPage component
<SidebarItem icon={CloudIcon} to="infrakitchen" text="InfraKitchen" />;yarn devNavigate to http://localhost:3000/infrakitchen to access the plugin.
The plugin uses Backstage's proxy configuration to communicate with your InfraKitchen instance. Ensure the following is configured in your app-config.yaml:
backend:
baseUrl: http://localhost:7007
proxy:
endpoints:
'/infrakitchen':
target: 'http://your-infrakitchen-instance:7777'
changeOrigin: true
allowedHeaders:
- 'Authorization'
- 'Range'
- 'Content-Range'
- 'Access-Control-Expose-Headers'The plugin automatically uses Backstage's identity API to authenticate requests to InfraKitchen. Please follow the Infrakitchen integration documentation to set up authentication for your Backstage instance, and ensure that your InfraKitchen instance is configured to accept the appropriate authentication tokens.
To develop the plugin in isolation:
yarn startThe plugin exports the following:
InfraKitchenApp: The main component that renders the InfraKitchen interfaceinfrakitchenPlugin: The plugin instanceinfraKitchenApiRef: API reference for the InfraKitchen API client
Contributions are welcome! Please feel free to submit a Pull Request.
This project is licensed under the Apache-2.0 License - see the LICENSE file for details.
For issues and questions:
- GitHub Issues: Report an issue
- InfraKitchen Documentation: https://opensource.electrolux.one/infrakitchen