{"id":51858576,"url":"https://github.com/stuttgart-things/kcl","last_synced_at":"2026-07-24T03:31:06.670Z","repository":{"id":319057242,"uuid":"1077409375","full_name":"stuttgart-things/kcl","owner":"stuttgart-things","description":"kcl modules","archived":false,"fork":false,"pushed_at":"2026-07-18T23:24:34.000Z","size":13850,"stargazers_count":0,"open_issues_count":6,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-07-18T23:26:15.593Z","etag":null,"topics":["developer-tools","kcl","platform-engineering","standardization"],"latest_commit_sha":null,"homepage":"","language":"KCL","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/stuttgart-things.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"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":"2025-10-16T08:02:58.000Z","updated_at":"2026-07-18T23:24:36.000Z","dependencies_parsed_at":"2025-10-17T23:24:59.288Z","dependency_job_id":"dd696758-5bad-4de7-ac89-5ef17f744411","html_url":"https://github.com/stuttgart-things/kcl","commit_stats":null,"previous_names":["stuttgart-things/kcl"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/stuttgart-things/kcl","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuttgart-things%2Fkcl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuttgart-things%2Fkcl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuttgart-things%2Fkcl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuttgart-things%2Fkcl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stuttgart-things","download_url":"https://codeload.github.com/stuttgart-things/kcl/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuttgart-things%2Fkcl/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35826032,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-07-20T02:08:10.276Z","status":"online","status_checked_at":"2026-07-24T02:00:07.870Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["developer-tools","kcl","platform-engineering","standardization"],"created_at":"2026-07-24T03:31:05.335Z","updated_at":"2026-07-24T03:31:06.604Z","avatar_url":"https://github.com/stuttgart-things.png","language":"KCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"# stuttgart-things/kcl: KCL Modules \u0026 Structure\n\nThis repository contains KCL modules, tests, and documentation for Crossplane, Kubernetes, Flux, Helm, and related technologies. All modules are published as OCI artifacts and follow team standards for development, testing, and release.\n\n## Folder Overview\n\n### 1. `models/`\n- **Purpose:** KCL modules for Crossplane, Kubernetes, Flux, Helm, etc.\n- **Contents:**\n  - KCL model files and reusable logic\n\n### 2. `tests/`\n- **Purpose:** Technology-specific tests, wrappers, Makefiles, and documentation\n- **Contents:**\n  - `tekton/` — Tekton module tests and usage examples\n  - `argo/` — Argo module tests (if present)\n  - Add more technology folders as needed\n\n### 3. `crossplane/`, `flux/`\n- **Purpose:** Technology-specific KCL logic and integrations\n- **Contents:**\n  - Crossplane and Flux KCL modules, helpers, and configs\n\n### 4. `README.md`, `Taskfile.yaml`, `.container-use/`, `.github/`\n- **Purpose:** Documentation, automation, and team standards\n- **Contents:**\n  - Main README, automation scripts, decision docs, CI/CD config\n\n---\n\n## Module Overview\n\n### Crossplane Modules\n\n| Module                  | Path                                             | Description                                      |\n|-------------------------|--------------------------------------------------|--------------------------------------------------|\n| xplane-cilium           | crossplane/xplane-cilium/                        | Cilium CNI, L2 announcements, advanced networking|\n| xplane-flux-apps        | crossplane/xplane-flux-apps/                     | Generic Flux app Kustomizations on a target cluster|\n| xplane-helm-release     | crossplane/xplane-helm-release/                  | Helm chart deployment via Crossplane              |\n| xplane-vault-auth       | crossplane/xplane-vault-auth/                    | Vault Kubernetes authentication via Terraform     |\n| xplane-vault-config     | crossplane/xplane-vault-config/                  | Vault, CSI, ESO, RBAC, ServiceAccount tokens      |\n| xplane-vcluster         | crossplane/xplane-vcluster/                      | VCluster deployment with connection secrets       |\n\n### Flux Modules\n\n| Module                        | Path                                             | Description                                      |\n|-------------------------------|--------------------------------------------------|--------------------------------------------------|\n| flux-kustomization-tekton     | flux/flux-kustomization-tekton/                  | Tekton deployment via Flux Kustomization          |\n| flux-operator-instance        | flux/flux-operator-instance/                     | FluxInstance CRD, Git/SOPS secrets, tuning        |\n\n### Models\n\n| Module                        | Path                                             | Description                                      |\n|-------------------------------|--------------------------------------------------|--------------------------------------------------|\n| crossplane-provider-helm      | models/crossplane-provider-helm/                 | Helm releases via Crossplane                      |\n| crossplane-provider-terraform | models/crossplane-provider-terraform/            | Terraform workspaces via Crossplane               |\n| flux-helmrelease              | models/flux-helmrelease/                         | Flux HelmRelease CRDs and helpers                 |\n| flux-kustomization            | models/flux-kustomization/                       | Flux Kustomization CRDs and helpers               |\n\n- All modules are published as OCI artifacts (see each folder's `kcl.mod` for registry info).\n- Usage examples and API docs are in each module's `README.md` and `examples/`.\n\n---\n\n## Installation\n\n```bash\n# Add a module (example)\nkcl mod add oci://ghcr.io/stuttgart-things/xplane-vault-config\n```\n\nAll modules are available as OCI artifacts and can be added directly via `kcl mod add ...`.\n\n---\n\n## Example: Tekton Kustomization\n\nSee `tests/tekton/test_module_tekton.k` for usage:\n\n```kcl\nimport kcl_flux_tekton as tekton\ntekton_config = tekton.items({\n    name = \"tekton\"\n    namespace = \"flux-system\"\n    path = \"./cicd/tekton\"\n    sourceKind = \"GitRepository\"\n    sourceName = \"flux-apps\"\n    interval = \"1h\"\n    timeout = \"35m\"\n    postBuild = {\n        substitute = {\n            TEKTON_NAMESPACE = \"tekton-pipelines\"\n            TEKTON_VERSION = \"0.77.0\"\n        }\n    }\n})\n```\n\n---\n\n## Development \u0026 Workflow\n\n1. Develop according to team standards (`.container-use/decisions.md`)\n2. Syntax and resource tests (`kcl run ...`)\n3. Versioning and commit conventions\n4. Release as OCI artifact\n\n### Push Module\n\n**Interactive (gum-based):**\n```bash\ntask push-module\n```\n\n**Non-interactive:**\n```bash\ntask push-module MODULE_DIR=flux/claim-flux-kustomizations NEW_VERSION=0.3.4\n```\n\n| Variable | Description |\n|---|---|\n| `MODULE_DIR` | Path to the KCL module directory (relative to repo root) |\n| `NEW_VERSION` | Semver version without `v` prefix (e.g. `0.3.4`) |\n\nWhen both variables are provided, `gum` prompts are skipped. Registry version check still runs for feedback.\n\n---\n\n## Standards \u0026 Support\n\n- All development guidelines: `.container-use/decisions.md`\n- Automated checks \u0026 pre-commit hooks\n- OCI registry for all modules\n\nFor questions, feature requests, or contributions: please open an issue or pull request in the [GitHub Repo](https://github.com/stuttgart-things/kcl).\n\n---\n\n**To view changes or use this structure in your environment:**\n- Use `container-use log \u003cenv_id\u003e` to see the change history.\n- Use `container-use checkout \u003cenv_id\u003e` to access the updated environment.\n\n---\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstuttgart-things%2Fkcl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstuttgart-things%2Fkcl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstuttgart-things%2Fkcl/lists"}