{"id":38232529,"url":"https://github.com/kattecon/argocd-renderer","last_synced_at":"2026-01-17T01:01:25.874Z","repository":{"id":245703063,"uuid":"818731249","full_name":"kattecon/argocd-renderer","owner":"kattecon","description":"A simple script to render argocd application manifests.","archived":false,"fork":false,"pushed_at":"2025-12-17T21:43:43.000Z","size":76,"stargazers_count":3,"open_issues_count":2,"forks_count":0,"subscribers_count":0,"default_branch":"master","last_synced_at":"2025-12-19T12:42:28.737Z","etag":null,"topics":["argocd","cd","ci","helm","kustomize","test"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/kattecon.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":".github/CODEOWNERS","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":"2024-06-22T17:38:11.000Z","updated_at":"2025-12-17T21:43:47.000Z","dependencies_parsed_at":"2024-06-23T15:30:34.714Z","dependency_job_id":"fc565599-1f04-47e6-bf2a-825a18ecd9e5","html_url":"https://github.com/kattecon/argocd-renderer","commit_stats":null,"previous_names":["kattecon/argocd-renderer"],"tags_count":12,"template":false,"template_full_name":null,"purl":"pkg:github/kattecon/argocd-renderer","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kattecon%2Fargocd-renderer","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kattecon%2Fargocd-renderer/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kattecon%2Fargocd-renderer/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kattecon%2Fargocd-renderer/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/kattecon","download_url":"https://codeload.github.com/kattecon/argocd-renderer/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/kattecon%2Fargocd-renderer/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28490900,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-17T00:50:05.742Z","status":"ssl_error","status_checked_at":"2026-01-17T00:43:11.982Z","response_time":107,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: 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":["argocd","cd","ci","helm","kustomize","test"],"created_at":"2026-01-17T01:01:25.103Z","updated_at":"2026-01-17T01:01:25.840Z","avatar_url":"https://github.com/kattecon.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# argocd-renderer\n\nThis is a simple Python script for rendering ArgoCD application manifests\nthe same way ArgoCD would do it. This can be useful for using\nin a CI/CD pipeline for further validation\nwith [kyverno](https://github.com/kyverno/kyverno) or any other tool.\n\nThe script processes a given resource YAML file as input and writes the results to\nan output file. It accomplishes this by copying all the original resources\nto the output, and additionally, for any ArgoCD applications it encounters,\nit renders the application manifest and includes all the rendered resources\nin the output file as well. The process is recursive: all the rendered\nresources are also processed as if they were input.\n\n## Goals\n\n- Render ArgoCD applications as close as possible to how ArgoCD would do it.\n- Keep the script simple and easy to understand. One file, no special dependencies.\n\n## Compatibility\n\nThere is no plan to implement all the rendering options available in ArgoCD.\nArgoCD is a complex system with many features some of which require a running\nKubernetes cluster. Additionally, certain features would significantly\ncomplicate the code.\n\nThe following options are supported:\n\n- [.spec.source.helm.valuesObject](./tests/test-01/input.yaml)\n- [.spec.source.helm.releaseName](./tests/test-04/input.yaml)\n- [.spec.source.helm.parameters](./tests/test-04/input.yaml)\n- [.spec.source.helm.fileParameters](./tests/test-04/input.yaml)\n- [.spec.source.helm.values](./tests/test-04/input.yaml)\n- [.spec.source.helm.valueFiles](./tests/test-04/input.yaml)\n- [.spec.source.chart](./tests/test-06/input.yaml)\n- [kustomization.yaml](./tests/test-20/input.yaml)\n- [directory source](./tests/test-40/input.yaml)\n\nThe following features are not supported:\n\n- [.spec.source.kustomize](https://argo-cd.readthedocs.io/en/stable/user-guide/kustomize/#patches)\n  is not supported. Use `kustomization.yaml` file instead.\n- [.spec.source.directory](https://argo-cd.readthedocs.io/en/stable/user-guide/directory/)\n  options are not supported. Note, this means that the only the configuration\n  options are not supported. The directory source itself is supported.\n- [ApplicationSet](https://argo-cd.readthedocs.io/en/stable/user-guide/application-set/)\n  is not supported.\n\n## Repository access\n\nThe script doesn't have an ability to download repositories. Instead, there is\nan option to call a helper script that can resolve a repository URL to a local\npath. The helper script is called with the following arguments:\n\n- `repo_url`: the URL of the repository to resolve.\n- `revision`: the revision to checkout.\n- `temp_dir`: a temporary directory that can be used to store the repository\n              (as a subdirectory in it).\n\nThe helper script can either return the resolved path or an empty string if\nthe repository can't be resolved. The implementation of the helper script\ncan either checkout the repository or use a local cache or return a path to\nan already checked out repository.\n\nSee the [repo-resolver.sh](./tests/repo-resolver.sh) script for an example.\n\n## Installation and requirements\n\n- Python 3 is required.\n- PyYaml is required (`pip3 install pyyaml`\n  or `sudo apt-get install python3-yaml`, github runner usually have this\n  library already installed).\n- kubectl is required for kustomize to work.\n- Helm is required to render Helm charts.\n\nInstallation is not required. Just a release [release](https://github.com/kattecon/argocd-renderer/releases)\nof [the script](./argocd-renderer.py) and enjoy.\n\n## Command line arguments\n\n```text\nusage: argocd-renderer.py\n           [-h] -o output_yaml_file [-n target_namespace]\n           [-r repo_resolver] [-a helm_args] [-k kustomize_args]\n           resources_yaml_file\n\n  resources_yaml_file   resources file containing the resources to be used in\n                        the argocd application manifest.\n\noptions:\n  -o output_yaml_file, --output output_yaml_file\n                        output file to save the resources rendered for\n                        the found argocd application manifests.\n\n  -n target_namespace, --namespace target_namespace\n                        target namespace to be used in the argocd application\n                        manifest if not explicitly given in the resources file.\n\n  -r repo_resolver, --repo-resolver repo_resolver\n                        path to the repository resolver script that takes\n                        [repo url, revision, temp_dir] and returns the resolved\n                        local path or empty string.\n\n  -a helm_args, --helm-args helm_args\n                        json/yaml array of strings to pass as additional\n                        arguments to helm command.\n\n  -k kustomize_args, --kustomize-args kustomize_args\n                        json/yaml array of strings to pass as additional\n                        arguments to kustomize command.\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkattecon%2Fargocd-renderer","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkattecon%2Fargocd-renderer","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkattecon%2Fargocd-renderer/lists"}