{"id":18363421,"url":"https://github.com/stuttgart-things/kaeffken","last_synced_at":"2026-04-30T13:34:39.629Z","repository":{"id":214881352,"uuid":"737576713","full_name":"stuttgart-things/kaeffken","owner":"stuttgart-things","description":"gitops apps \u0026 cluster management cli ","archived":false,"fork":false,"pushed_at":"2025-07-09T20:43:53.000Z","size":390,"stargazers_count":0,"open_issues_count":12,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2025-07-10T06:51:46.217Z","etag":null,"topics":["apps","flux","github-api","gitops","k8s","sops"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/stuttgart-things.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","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}},"created_at":"2023-12-31T15:37:59.000Z","updated_at":"2025-03-31T07:39:41.000Z","dependencies_parsed_at":"2024-02-14T06:27:34.091Z","dependency_job_id":"303a220b-a02b-4638-a7c3-b8c7bd5f0f13","html_url":"https://github.com/stuttgart-things/kaeffken","commit_stats":null,"previous_names":["stuttgart-things/kaeffken"],"tags_count":31,"template":false,"template_full_name":null,"purl":"pkg:github/stuttgart-things/kaeffken","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuttgart-things%2Fkaeffken","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuttgart-things%2Fkaeffken/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuttgart-things%2Fkaeffken/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuttgart-things%2Fkaeffken/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/stuttgart-things","download_url":"https://codeload.github.com/stuttgart-things/kaeffken/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/stuttgart-things%2Fkaeffken/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32466333,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-30T13:12:12.517Z","status":"ssl_error","status_checked_at":"2026-04-30T13:12:06.837Z","response_time":57,"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":["apps","flux","github-api","gitops","k8s","sops"],"created_at":"2024-11-05T23:06:27.681Z","updated_at":"2026-04-30T13:34:39.614Z","avatar_url":"https://github.com/stuttgart-things.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# stuttgart-things/kaeffken\n\n\u003cdiv align=\"center\"\u003e\n  \u003cp\u003e\n    \u003cimg src=\"https://github.com/stuttgart-things/docs/blob/main/hugo/sthings-coffee.png\" alt=\"sthings\" width=\"350\" /\u003e\n  \u003c/p\u003e\n  \u003cp\u003e\n    \u003cstrong\u003e[ˈkɛfkən]\u003c/strong\u003e- gitops apps \u0026 cluster management cli\n\n  \u003c/p\u003e\n\u003c/div\u003e\n\n## CREATE\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eCREATE\u003c/b\u003e\u003c/summary\u003e\n\n```bash\nkaeffken create --profile tests/vspherevm-workflow.yaml --survey true\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eWORFKLOW SCHEMA\u003c/b\u003e\u003c/summary\u003e\n\n```bash\n---\ngitRepo: stuttgart-things\ngitOwner: stuttgart-things\ngitBranch: \"{{ .technology }}-{{ .vmName }}\"\nrootFolder: terraform\nsubFolder: \"{{ .vmName }}\"\ntechnology: terraform\ncommitMessage: \"Add {{ .vmName }} VM\"\n\nprTitle: \"Add {{ .vmName }} VM\"\nprDescription: \"Add {{ .vmName }} VM\"\nprTags:\n  - terraform\n\nvalues:\n  - \"tests/values.yaml\"\n\n#SECRETS\nsecretFiles:\n  - \"tests/secret-config.yaml\"\n\nsecretAliases:\n  - \"host:vsphere_host\"    # KEYINSOURCE:TARGETKEY\n\nsecretFileOutputName: \"secret-vars.yaml\" # SOURCE SECRET FILE  #pragma: allowlist secret\n\npreQuestions:\n  - prompt: \"VM name?\"\n    kind: ask\n    name: vmName\n    type: string\n    minLength: 3\n    maxLength: 20\n\n# SHOULD BE IMPLEMENTED | BEFORE RENDERING - SET/PRE-RENDER THOSE ALIASES\naliases:\n  - \"stateKey:{{ .vmName }}\"\n\nquestions:\n  - tests/vm-general.yaml\n  - tests/{{ .envName }}.yaml\n\ntemplates:\n  - \"tests/vsphere-vm.tf.tpl:{{ .vmName }}.tf\"\n\n\u003c/details\u003e\n\n\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eDECRYPT\u003c/b\u003e\u003c/summary\u003e\n\n## DECRYPT FILE (SOPS)\n\n### STDOUT\n\n```bash\nexport SOPS_AGE_KEY=AGE-SECRET-KEY-1T22K05UTRDU..\nkaeffken decrypt \\\n--source encrypted.yaml\n```\n\n### TO FILE\n\n```bash\nkaeffken decrypt \\\n--source encrypted.yaml \\\n--key AGE-SECRET-KEY-1T22K05UTRDU.. \\\n--output file \\\n--destination /tmp/decrypted.yaml\n```\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eAPPS\u003c/b\u003e\u003c/summary\u003e\n\n```bash\nkaeffken \\\n--output file \\\n--clusterPath=clusters/labul/test1 \\\n--apps tests/apps.yaml\n--pr true\n```\n\n```bash\nkaeffken \\\n--output stdout \\\n--apps /home/sthings/projects/stuttgart-things/kaeffken/apps/flux/apps.yaml \\\n--appDefaults /home/sthings/projects/stuttgart-things/kaeffken/apps/flux/app-defaults.yaml \\\n--defaults /home/sthings/projects/stuttgart-things/kaeffken/apps/flux/flux-defaults.yaml\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eENCRYPT FILE\u003c/b\u003e\u003c/summary\u003e\n\n```bash\ncat \u003c\u003cEOF \u003e\u003e tests/secret.yaml\nkind: Secret\napiVersion: v1\nmetadata:\n  name: secret\ndata:\n  password: wHat6ver\nEOF\n```\n\n```bash\nkaeffken encrypt \\\n--source tests/secret.yaml \\\n--output stdout\n```\n\n```bash\nkaeffken encrypt \\\n--source tests/secret.yaml \\\n--output file \\\n--destination ~/projects/sops/ \\\n--name config \\\n--age age1g438...\n```\n\n```bash\nkaeffken encrypt \\\n--source tests/secret.yaml \\\n--output file \\\n--pr true \\\n--destination /tmp \\\n--clusterPath=clusters/labul/test1\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eRENDER (BUILTIN) TEMPLATE AND ENCRYPT FILE\u003c/b\u003e\u003c/summary\u003e\n\n```bash\nkaeffken encrypt \\\n--template k8s \\\n--values \"password=mysecretvalue, username=admin\" \\\n--output stdout\n```\n\n\u003c/details\u003e\n\n## INSTALL\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eINSTALL (LINUX)\u003c/b\u003e\u003c/summary\u003e\n\n\u003c/details\u003e\n\n## DEV\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eCREATE BRANCH\u003c/b\u003e\u003c/summary\u003e\n\n```bash\ntask branch\n```\n\n\u003c/details\u003e\n\n:bulb: :computer: :floppy_disk: Add Features, fixes, documentation ...\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eLINT, TEST, BUILD, RUN\u003c/b\u003e\u003c/summary\u003e\n\n```bash\ntask run\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eCREATE/MERGE PULL REQUEST\u003c/b\u003e\u003c/summary\u003e\n\n```bash\ntask pr\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eRELEASE VERSIONED ARTIFACTS\u003c/b\u003e\u003c/summary\u003e\n\n```bash\ntask release\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eENV FILE\u003c/b\u003e\u003c/summary\u003e\n\n```bash\ncat \u003c\u003cEOF \u003e .env\nSOPS_AGE_KEY=AGE-SECRET-KEY-1T2...\nEOF\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\u003csummary\u003e\u003cb\u003eALL TASKS\u003c/b\u003e\u003c/summary\u003e\n\n```bash\ntask: Available tasks for this project:\n* branch:              Create branch from main\n* build:               Install\n* build-ko:            Build KO Image\n* commit:              Commit + push code into branch\n* delete-branch:       Delete branch from origin\n* lint:                Lint code\n* pr:                  Create pull request into main\n* release:             Release\n* run:                 Run\n* test:                Test code\n* tests:               Built cli tests\n```\n\n\u003c/details\u003e\n\n## AUTHOR\n\n```bash\nPatrick Hermann, stuttgart-things 12/2023\n```\n\n## License\n\nLicensed under the Apache License, Version 2.0 (the \"License\").\n\nYou may obtain a copy of the License at [apache.org/licenses/LICENSE-2.0](http://www.apache.org/licenses/LICENSE-2.0).\n\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on an _\"AS IS\"_ basis, without WARRANTIES or conditions of any kind, either express or implied.\n\nSee the License for the specific language governing permissions and limitations under the License.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstuttgart-things%2Fkaeffken","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fstuttgart-things%2Fkaeffken","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fstuttgart-things%2Fkaeffken/lists"}