{"id":40450745,"url":"https://github.com/codice/keip","last_synced_at":"2026-02-24T19:02:20.225Z","repository":{"id":213591223,"uuid":"719229087","full_name":"codice/keip","owner":"codice","description":"Kubernetes Enterprise Integration Patterns","archived":false,"fork":false,"pushed_at":"2025-10-02T22:34:28.000Z","size":284,"stargazers_count":0,"open_issues_count":0,"forks_count":6,"subscribers_count":9,"default_branch":"main","last_synced_at":"2025-10-03T00:23:10.718Z","etag":null,"topics":["integration","kubernetes","kubernetes-operator"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/codice.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2023-11-15T18:23:21.000Z","updated_at":"2025-10-02T22:31:53.000Z","dependencies_parsed_at":"2024-04-23T05:13:38.910Z","dependency_job_id":"46e61000-e59f-4852-80b2-f5437725d261","html_url":"https://github.com/codice/keip","commit_stats":null,"previous_names":["octoconsulting/keip","codice/keip"],"tags_count":53,"template":false,"template_full_name":null,"purl":"pkg:github/codice/keip","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codice%2Fkeip","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codice%2Fkeip/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codice%2Fkeip/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codice%2Fkeip/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/codice","download_url":"https://codeload.github.com/codice/keip/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/codice%2Fkeip/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28607625,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-20T16:10:39.856Z","status":"ssl_error","status_checked_at":"2026-01-20T16:10:39.493Z","response_time":117,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["integration","kubernetes","kubernetes-operator"],"created_at":"2026-01-20T17:17:30.651Z","updated_at":"2026-02-24T19:02:20.219Z","avatar_url":"https://github.com/codice.png","language":"Python","readme":"# keip - Kubernetes Enterprise Integration Patterns\n\n**The communication backbone for microservices, AI toolchains, and enterprise integration on Kubernetes.**\n\n## What is keip?\n\nkeip (Kubernetes Enterprise Integration Patterns) is a Kubernetes operator that serves as the communication backbone for modern distributed systems. Whether you're orchestrating microservices, building AI toolchains, or handling traditional enterprise integration, keip transforms complex data flow challenges into simple, declarative configurations.\n\nInstead of writing, compiling, and deploying Java applications for service communication and data integration, define Spring Integration routes as Kubernetes resources and let keip handle the rest.\n\n### The Problems It Solves\n\nModern distributed systems often need to:\n- **Microservices Communication**: Orchestrate complex service-to-service interactions, event streaming, and API workflows\n- **AI Toolchain Coordination**: Connect AI models, data pipelines, feature stores, and inference engines in sophisticated workflows\n- **Enterprise Integration**: Move data between different systems (databases, message queues, APIs, files)\n- **Data Transformation**: Convert formats (JSON to XML, CSV to database records, etc.) and enrich data in transit\n- **Smart Routing**: Route messages based on content, rules, or dynamic conditions\n- **Resilient Operations**: Handle errors, retries, and circuit breaking gracefully\n- **Dynamic Scaling**: Scale integration workloads based on demand\n- **Legacy Systems**: Bridge legacy systems with modern cloud applications and microservices\n\nTraditionally, this requires:\n- Writing Java code with Spring Integration\n- Managing application lifecycle and deployments\n- Handling scaling and resilience manually\n- Complex CI/CD pipelines for every integration change\n\n### The keip Solution\n\nWith keip, you define your integration logic in XML configuration and deploy it as a Kubernetes resource. The operator automatically:\n- Creates and manages the underlying Spring Boot application with Spring Integration\n- Provides access to the entire Spring ecosystem (hundreds of connectors, components, and enterprise patterns)\n- Handles Kubernetes deployment, scaling, and lifecycle\n- Provides cloud-native resilience and observability\n- Enables runtime route updates without code compilation\n\n## Key Features\n\n- **Kubernetes Native**: Fully integrates with Kubernetes using custom resources and scales with cluster capabilities\n- **Spring Ecosystem Powered**: Built on Spring Boot and Spring Integration with access to 300+ connectors and enterprise patterns\n- **No Code Compilation**: Define integration routes in XML and deploy instantly\n- **Auto-Scaling**: Leverages Kubernetes scaling capabilities for integration workloads\n- **Runtime Flexibility**: Update integration routes without rebuilding applications\n- **Enterprise Ready**: Battle-tested Spring components with comprehensive error handling and monitoring\n- **Cloud-Native Observability**: Native Kubernetes monitoring and logging support\n\n## Quick Start\n\n### Prerequisites\n\n- Kubernetes cluster (v1.24+ recommended)\n- `kubectl` installed and configured to interact with your cluster\n\n### Installation\n\nChoose one of the following methods:\n\n**Option A — Static manifest (recommended):**\n```bash\nkubectl apply -f https://github.com/codice/keip/releases/latest/download/install.yaml\n```\n\n**Option B — Remote kustomize:**\n```bash\nkubectl apply -k 'https://github.com/codice/keip/operator?ref=main'\n```\n\n**Option C — From source (development):**\n```bash\ngit clone https://github.com/codice/keip.git \u0026\u0026 cd keip/operator\nmake deploy\n```\n\nAll methods create the `keip` and `metacontroller` namespaces and deploy the necessary components.\n\n**Verify installation:**\n```bash\n# Check metacontroller pod\nkubectl -n metacontroller get po\n\n# Check keip webhook pod\nkubectl -n keip get po\n```\n\n### Your First Integration Route\n\nCreate a simple integration that prints a message every 5 seconds:\n\n1. **Create the integration configuration:**\n   ```bash\n   cat \u003c\u003cYAMEOF | kubectl create -f -\n   apiVersion: v1\n   kind: ConfigMap\n   metadata:\n     name: keip-route-xml\n   data:\n     integrationRoute.xml: |\n       \u003c?xml version=\"1.0\" encoding=\"UTF-8\"?\u003e\n       \u003cbeans xmlns=\"http://www.springframework.org/schema/beans\"\n              xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\"\n              xmlns:int=\"http://www.springframework.org/schema/integration\"\n              xsi:schemaLocation=\"http://www.springframework.org/schema/beans\n                      https://www.springframework.org/schema/beans/spring-beans.xsd\n                      http://www.springframework.org/schema/integration\n                      https://www.springframework.org/schema/integration/spring-integration.xsd\"\u003e\n\n         \u003cint:channel id=\"output\"/\u003e\n\n         \u003cint:inbound-channel-adapter channel=\"output\" expression=\"Hello from keip every 5 seconds\"\u003e\n           \u003cint:poller fixed-rate=\"5000\"/\u003e\n         \u003c/int:inbound-channel-adapter\u003e\n\n         \u003cint:logging-channel-adapter channel=\"output\" log-full-message=\"true\"/\u003e\n       \u003c/beans\u003e\n   YAMEOF\n   ```\n\n2. **Deploy the integration route:**\n   ```bash\n   cat \u003c\u003cYAMEOF | kubectl create -f -\n   apiVersion: keip.codice.org/v1alpha2\n   kind: IntegrationRoute\n   metadata:\n     name: example-route\n   spec:\n     routeConfigMap: keip-route-xml\n   YAMEOF\n   ```\n\n3. **Check the status and view logs:**\n   ```bash\n   kubectl get ir\n   kubectl logs -f deployment/example-route\n   ```\n\n4. **Clean up:**\n   ```bash\n   kubectl delete ir example-route\n   kubectl delete cm keip-route-xml\n   ```\n\n## Advanced Configuration\n\n### Custom Container Images\n\nThe default keip container provides basic Spring Integration components. For advanced use cases, you can create custom containers with additional Spring Boot starters, Spring Integration components, or your own Java libraries:\n\n1. Copy the `keip-integration/` directory and update `groupId`, `artifactId`, and `version` in `pom.xml`\n2. Add any Spring Boot starters or custom dependencies to `pom.xml`\n3. Update the `keip-controller-props` ConfigMap to reference your custom image\n4. Restart the webhook deployment\n\n### Debugging\n\nView operator logs for troubleshooting:\n```bash\n# Metacontroller logs\nkubectl -n metacontroller logs -f sts/metacontroller\n\n# Keip webhook logs\nkubectl -n keip logs -f deployments/integrationroute-webhook\n```\n\nFor verbose logging, set `LOG_LEVEL=DEBUG` in the webhook deployment.\n\n## Examples\n\nFor more comprehensive examples including a secure HTTPS server and message routing with externalized configurations,\nsee the [operator/examples](operator/examples) directory.\n\n## Contributing\n\nContributions are welcome. Please see [CONTRIBUTING.md](CONTRIBUTING.md) for more details.\n\n## License\n\nThis project is licensed under the Apache License 2.0. See the [LICENSE](LICENSE) file for details.\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodice%2Fkeip","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcodice%2Fkeip","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcodice%2Fkeip/lists"}