{"id":15677642,"url":"https://github.com/int128/kustomize-action","last_synced_at":"2026-04-18T19:04:07.984Z","repository":{"id":37041281,"uuid":"378546077","full_name":"int128/kustomize-action","owner":"int128","description":"Run kustomize build in parallel in GitHub Actions","archived":false,"fork":false,"pushed_at":"2026-01-16T22:00:23.000Z","size":8101,"stargazers_count":17,"open_issues_count":6,"forks_count":4,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-01-17T05:42:31.811Z","etag":null,"topics":["github-actions","kubernetes","kustomize"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","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/int128.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":"2021-06-20T02:59:49.000Z","updated_at":"2026-01-16T22:00:28.000Z","dependencies_parsed_at":"2023-12-30T05:19:29.838Z","dependency_job_id":"7604bd7e-2e2a-44cb-adef-d52b675a6ad8","html_url":"https://github.com/int128/kustomize-action","commit_stats":{"total_commits":1002,"total_committers":2,"mean_commits":501.0,"dds":"0.053892215568862256","last_synced_commit":"15f54b4d766e6fbba1d15aa213e8793ab6bf4a38"},"previous_names":[],"tags_count":169,"template":false,"template_full_name":"int128/typescript-action","purl":"pkg:github/int128/kustomize-action","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/int128%2Fkustomize-action","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/int128%2Fkustomize-action/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/int128%2Fkustomize-action/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/int128%2Fkustomize-action/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/int128","download_url":"https://codeload.github.com/int128/kustomize-action/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/int128%2Fkustomize-action/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28630053,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-21T04:47:28.174Z","status":"ssl_error","status_checked_at":"2026-01-21T04:47:22.943Z","response_time":86,"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":["github-actions","kubernetes","kustomize"],"created_at":"2024-10-03T16:10:07.743Z","updated_at":"2026-01-21T08:19:23.578Z","avatar_url":"https://github.com/int128.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# kustomize-action [![ts](https://github.com/int128/kustomize-action/actions/workflows/ts.yaml/badge.svg)](https://github.com/int128/kustomize-action/actions/workflows/ts.yaml)\n\nThis is an action to run `kustomize build` in parallel.\n\n## Problem to solve\n\nIf `kustomization.yaml` depends on an external resource such as HTTPS, `kustomize build` takes a long time.\nFor GitOps, a manifest repository contains many `kustomization.yaml` and it would be take a very long time to build all.\nThis action builds them in parallel to reduce time.\n\n## Getting Started\n\nTo build manifests, create a workflow as follows:\n\n```yaml\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: int128/kustomize-action@v1\n        id: kustomize\n        with:\n          kustomization: overlays/*/kustomization.yaml\n      - run: find ${{ steps.kustomize.outputs.directory }}\n```\n\nIf the following files are matched,\n\n```\noverlays/development/kustomization.yaml\noverlays/production/kustomization.yaml\n```\n\nthis action writes the manifests to a temporary directory.\nYou can get the paths from `outputs.files`, for example,\n\n```\n/tmp/kustomize-action-xyz/overlays/development/generated.yaml\n/tmp/kustomize-action-xyz/overlays/production/generated.yaml\n```\n\nYou can get the base directory from `outputs.directory`, for example,\n\n```\n/tmp/kustomize-action-xyz\n```\n\n### Errors\n\nIf `kustomize build` command returned an error,\nyou can see it from GitHub Actions summary page or pull request review comment.\n\n\u003cimg width=\"860\" alt=\"image\" src=\"https://user-images.githubusercontent.com/321266/191903175-24c69251-0ef9-4515-8a24-91c9c3c5e598.png\"\u003e\n\n\u003cimg width=\"860\" alt=\"image\" src=\"https://user-images.githubusercontent.com/321266/191903273-db04a861-b9ff-4157-8e15-ba169e33e09b.png\"\u003e\n\nTo suppress any kustomize error, set `ignore-kustomize-error` input to true.\nIt exits successfully even if kustomize exited with non-zero code.\n\nYou can get the errors in Markdown format from `pretty-errors` output.\n\n### Error comment\n\nYou can post a comment on error using [int128/comment-action](https://github.com/int128/comment-action).\n\n```yaml\njobs:\n  build:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions/checkout@v4\n      - uses: int128/kustomize-action@v1\n        id: kustomize\n        with:\n          kustomization: overlays/*/kustomization.yaml\n      - if: failure()\n        uses: int128/comment-action@v1\n        with:\n          update-if-exists: replace\n          post: |\n            :x: kustomize error\n            ${{ steps.kustomize.outputs.pretty-errors }}\n```\n\nHere is an example of the comment.\n\n\u003cimg width=\"920\" alt=\"image\" src=\"https://user-images.githubusercontent.com/321266/174432028-24a3cc12-e3b0-45a6-aa5a-8137eb8237fe.png\"\u003e\n\n### Write individual files\n\nYou can set `write-individual-files` to write individual files (see [kustomize#960](https://github.com/kubernetes-sigs/kustomize/pull/960)).\n\n```yaml\n- uses: int128/kustomize-action@v1\n  with:\n    kustomization: overlays/*/kustomization.yaml\n    write-individual-files: true\n```\n\nThis action writes the individual manifests as follows:\n\n```\n/tmp/kustomize-action-xyz/overlays/development/apps_v1_deployment_echoserver.yaml\n/tmp/kustomize-action-xyz/overlays/development/v1_service_echoserver.yaml\n/tmp/kustomize-action-xyz/overlays/production/apps_v1_deployment_echoserver.yaml\n/tmp/kustomize-action-xyz/overlays/production/v1_service_echoserver.yaml\n```\n\n### Copy extra files\n\nYou can set `extra-files` to copy the extra files with the results of `kustomize build`.\n\n```yaml\n- uses: int128/kustomize-action@v1\n  with:\n    kustomization: overlays/*/kustomization.yaml\n    extra-files: overlays/*/metadata.yaml\n```\n\nThis action writes the generated manifests with the extra files as follows:\n\n```\n/tmp/kustomize-action-xyz/overlays/development/generated.yaml\n/tmp/kustomize-action-xyz/overlays/development/metadata.yaml\n/tmp/kustomize-action-xyz/overlays/production/generated.yaml\n```\n\n### Add extra args\n\nYou can add extra args to `kustomize build` command.\n\n```yaml\n- uses: int128/kustomize-action@v1\n  with:\n    kustomization: overlays/*/kustomization.yaml\n    kustomize-build-args: |\n      --load-restrictor=LoadRestrictionsNone\n```\n\n## Diff between head and base ref of pull request\n\nWhen you open or update a pull request, you can see the diff of generated manifests between head and base ref.\n\nSee https://github.com/int128/kubebuilder-workflows/blob/v1/.github/workflows/manifest.yaml for example.\n\n## Inputs\n\n| Name                     | Default     | Description                                                       |\n| ------------------------ | ----------- | ----------------------------------------------------------------- |\n| `kustomization`          | -           | Glob patterns to `kustomization.yaml`                             |\n| `kustomize-build-args`   | -           | Extra args to kustomize build command (multiline)                 |\n| `extra-files`            | -           | Glob patterns to extra files to copy                              |\n| `base-directory`         | (workspace) | Base directory to compute a relative path to `kustomization.yaml` |\n| `retry-max-attempts`     | 2           | Max attempts of retry to run kustomize (0 = no retry)             |\n| `retry-wait-ms`          | 2,000 (2s)  | Wait before retry kustomize in milliseconds                       |\n| `max-process`            | 5           | Max number of kustomize processes                                 |\n| `write-individual-files` | `false`     | If true, write individual files                                   |\n| `ignore-kustomize-error` | `false`     | If true, ignore kustomize errors                                  |\n\n### Retry options\n\nEventually `kustomize` command fails due to a temporary error such as network error.\nThis action retries if `kustomize` command returned non-zero exit status.\n\nYou can turn off the retry by `retry-max-attempts` option.\n\n## Outputs\n\n| Name            | Description                                                |\n| --------------- | ---------------------------------------------------------- |\n| `directory`     | Directory to results of `kustomize build`                  |\n| `files`         | Multi-line string of files generated by `kustomize build`  |\n| `raw-errors`    | Multi-line string of errors generated by `kustomize build` |\n| `pretty-errors` | Pretty formatted errors of kustomize build                 |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fint128%2Fkustomize-action","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fint128%2Fkustomize-action","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fint128%2Fkustomize-action/lists"}