Conversation
Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
|
@copilot not yet like provider-keycloak. We need everything. (Provider schema diff etc) |
|
@copilot also create a skill for the "perfect upjet Provider" which defines everything we do in Provider-keycloak so I can point an AI agent to it to implement a new Provider for a given terraform Provider. |
…ma-diff) Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
Added the missing provider-keycloak pattern components in commit Generation pipeline ( Schema diff tooling
Workflows
Makefile targets Supporting files |
Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
Added in
Also linked from |
|
@copilot get rid of all the old garbage. https://github.com/BerriAI/terraform-provider-litellm/releases/tag/v1.98.0 latest release. also use the latest go versions and tool versions. I dont know where you took them from, but its wrong. also get this ready for a releaseable state |
Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
…lm v1.98.0 Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
…eal PC ref handling Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
Done in Garbage removed
terraform-provider-litellm v1.98.0 Versions Releasable state
Locally verified: |
|
@copilot i want that all resources live under api group |
…roup Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
Done in
The previous Verified locally: |
Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
|
@copilot e2e tests? Dev/ci Environment? Deploy a litellm and the Provider and configure it. We need strong e2e tests |
…ment - cluster/test/litellm/deploy.yaml: LiteLLM Namespace/ConfigMap/Deployment/Service for hermetic in-cluster testing (no external endpoint required) - cluster/test/setup.sh: rewritten to deploy LiteLLM, wait for readiness, then create the litellm-credentials Secret and ProviderConfig pointing at the in-cluster endpoint - cluster/test/chainsaw/: 11 Chainsaw test suites covering every MR kind: Model, Team, Key, McpServer, Credential, Organization, TeamMember, TeamMemberAdd, OrganizationMember, OrganizationMemberAdd, VectorStore. Each suite exercises create → assert Ready+Synced → update → assert updated → delete → assert gone. Relational resources (TeamMember, TeamMemberAdd, OrganizationMember, OrganizationMemberAdd) use a script step to capture the provider-assigned ID from status.atProvider.id before creating the dependent - cluster/test/cases.txt: updated to list all 11 chainsaw test directories - Makefile: add chainsaw target; change e2e target to use chainsaw (not uptest); add chainsaw to .PHONY - .github/workflows/ci.yml: remove RUN_E2E/LITELLM_API_BASE/LITELLM_API_KEY gates; e2e-tests job now always runs after build; adds Go cache steps and failure diagnostics (provider logs, LiteLLM logs, managed resource status) Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
Done. The e2e suite is now fully hermetic — no external LiteLLM endpoint or secrets required. What was added:
|
|
@copilot and how do we do local development? Use tilt for that. |
Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
Added in the latest commit. Here's what you get with
|
Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
|
@copilot why no uptest testcases? look at provider-keycloak. |
Co-authored-by: Breee <11966385+Breee@users.noreply.github.com>
Added provider-keycloak-style uptest coverage in commit |
Bootstraps a complete upjet v2-based Crossplane provider for LiteLLM, embedding the
terraform-provider-litellmSDK directly (no external Terraform CLI). Follows thecrossplane-contrib/provider-keycloakpattern end-to-end: Go scaffold, CI/CD, e2e test suite, and release automation. Runningmake generatewill produce the actual managed-resource CRDs and controllers.Provider scaffold
cmd/provider/main.go— controller-manager entry point; wiresWorkspaceStore,OperationTrackerStore, and theTerraformSetupBuildercmd/generator/main.go— upjet code-gen entry point; cluster-scoped only (pipeline.Run(provider, nil, absRootDir))config/provider.go— wrapsBerriAI/terraform-provider-litellmviaGetProvider(generationProvider bool); all 11 resources useIdentifierFromProviderexternal namesinternal/clients/litellm.go— readsapi_base+api_keyfrom a Kubernetes Secret; type-assertsresource.Managed→resource.ModernManaged(crossplane-runtime v2 movedGetProviderConfigReferenceoff the base interface)apis/v1beta1/— hand-writtenProviderConfig/ProviderConfigUsagetypes;ProviderConfigUsageembedsxpv1.ProviderConfigUsageinline (noSpecwrapper — theProviderConfigUsageSpectype does not exist in crossplane-runtime v2)Build & CI
Makefile— full build system:generate,build,test,e2e,download-tf-provider-platforms.github/workflows/ci.yml— detect-noop → lint → check-diff → unit-tests → build → e2e.github/workflows/auto-release.yml+tag.yml— semver tagging and OCI image release.github/renovate.json,CODEOWNERS,Dockerfile,.golangci.ymlcluster/test/— Chainsaw e2e setup (ProviderConfig secret, chainsaw config)Dependency notes
go 1.26.5required (upjet v2.4.2 floor);toolchain go1.26.5directive addedterraform-plugin-frameworkpinned to v1.19.0 —terraform-provider-litellmpullsterraform-plugin-go@v0.31.0which addedGenerateResourceConfigtoProviderServer; framework ≤v1.15.x predates that interface change and fails to compilego-openapi/swagpinned to v0.25.5 to fix broken test-dep import in v0.25.4Original prompt