{"owner":"kubernetes","repo":"kops","hasSkills":true,"hasMcp":false,"mcpConfig":null,"found":["AGENTS.md"],"skills":{"AGENTS.md":"# kOps Project Overview\n\nkOps is a command-line tool for creating, destroying, upgrading, and maintaining production-grade, highly available Kubernetes clusters. It is written in Go and supports multiple cloud providers, including AWS, GCP, DigitalOcean, Hetzner, OpenStack, and Azure.\n\nThe project is well-structured, with a clear separation of concerns between the different packages. The `cmd` directory contains the main entry points for the `kops` CLI and other related commands. The `pkg` directory contains the core logic for managing clusters, and the `upup` directory contains the code for provisioning cloud infrastructure.\n\nThe project has a comprehensive test suite, including unit tests, integration tests, and end-to-end tests. It also has a robust CI/CD pipeline that runs these tests on every pull request.\n\n## Building and Running\n\n### Prerequisites\n\n* `make`\n\n### Building\n\nTo build the `kops` binary, run the following command:\n\n```bash\nmake kops\n```\n\nThis will create the `kops` binary in the `.build/dist/<os>/<arch>` directory.\n\nTo build all the binaries, including `kops`, `nodeup`, and `channels`, run the following command:\n\n```bash\nmake all\n```\n\n### Running\n\nTo run the `kops` binary, you can either run it directly from the `dist` directory or install it to your `$GOPATH/bin` directory by running the following command:\n\n```bash\nmake install\n```\n\n### Testing\n\nTo run the unit tests, run the following command:\n\n```bash\nmake test\n```\n\nTo run the verification scripts, run the following command:\n\n```bash\nmake verify\n```\n\nTo run the full suite of CI checks, run the following command:\n\n```bash\nmake ci\n```\n\n## Development Conventions\n\n### Guidelines for Programming Assistance\n\nWhen assisting with programming tasks, you will adhere to the following principles:\n\n* **Follow Requirements**: Carefully follow the user's requirements to the letter.\n* **Plan First**: For any non-trivial change, first describe a detailed, step-by-step plan, including the files you intend to modify and the tests you will add or update.\n* **Test Thoroughly**: Implement comprehensive tests to ensure correctness and prevent regressions.\n* **Comment Intelligently**: Add comments to explain the \"why\" behind complex or non-obvious code, keeping in mind that the reader may not be a Kubernetes expert.\n* **No TODOs**: Leave no `TODO` comments, placeholders, or incomplete implementations.\n* **Prioritize Correctness**: Always prioritize security, scalability, and maintainability in your implementations.\n\n### Avoiding Loops\n\nWhen performing complex tasks, especially those involving code modifications and verification, it's important to avoid getting into loops. A loop can occur when the agent repeatedly tries the same action without success, or when it gets stuck in a cycle of analysis, action, and failure.\n\nTo avoid loops:\n*   **Analyze the problem carefully**: Before taking any action, make sure you understand the problem and have a clear plan to solve it.\n*   **Break down the problem**: Break down complex problems into smaller, more manageable steps.\n*   **Verify each step**: After each step, verify that it was successful before moving on to the next one.\n*   **Don't repeat failed actions**: If an action fails, don't just repeat it. Analyze the cause of the failure and try a different approach.\n*   **Ask for help**: If you're stuck, don't hesitate to ask for help from the user.\n\n### Code Style\n\nThe project follows the standard Go code style and the official [Kubernetes coding conventions](https://www.k8s.dev/docs/guide/coding-convention/). All code should be formatted with `gofmt` and `goimports`. You can format the code by running the following commands:\n\n```bash\nmake gofmt\nmake goimports\n```\n\n### Linting\n\nThe project uses `golangci-lint` to lint the code. You can run the linter by running the following command:\n\n```bash\nmake verify-golangci-lint\n```\n\n### Dependencies\n\nThe project uses Go modules to manage dependencies. To add a new dependency, add it to the `go.mod` file and then run the following command:\n\n```bash\nmake gomod\n```\n\n### Commits\n\nThe project follows the conventional commit message format.\n\n### Contributions\n\nContributions are welcome! Before submitting a pull request, please open an issue to discuss your proposed changes. All pull requests must be reviewed and approved by a maintainer before they can be merged.\n\n## E2E CI Failure Troubleshooting\n\nFor investigating E2E CI job failures — including locating artifacts, diagnosing root causes, and finding correlations across failing jobs — see [docs/e2e-failure-troubleshooting.md](docs/e2e-failure-troubleshooting.md).\n\n"},"files":{"AGENTS.md":"# kOps Project Overview\n\nkOps is a command-line tool for creating, destroying, upgrading, and maintaining production-grade, highly available Kubernetes clusters. It is written in Go and supports multiple cloud providers, including AWS, GCP, DigitalOcean, Hetzner, OpenStack, and Azure.\n\nThe project is well-structured, with a clear separation of concerns between the different packages. The `cmd` directory contains the main entry points for the `kops` CLI and other related commands. The `pkg` directory contains the core logic for managing clusters, and the `upup` directory contains the code for provisioning cloud infrastructure.\n\nThe project has a comprehensive test suite, including unit tests, integration tests, and end-to-end tests. It also has a robust CI/CD pipeline that runs these tests on every pull request.\n\n## Building and Running\n\n### Prerequisites\n\n* `make`\n\n### Building\n\nTo build the `kops` binary, run the following command:\n\n```bash\nmake kops\n```\n\nThis will create the `kops` binary in the `.build/dist/<os>/<arch>` directory.\n\nTo build all the binaries, including `kops`, `nodeup`, and `channels`, run the following command:\n\n```bash\nmake all\n```\n\n### Running\n\nTo run the `kops` binary, you can either run it directly from the `dist` directory or install it to your `$GOPATH/bin` directory by running the following command:\n\n```bash\nmake install\n```\n\n### Testing\n\nTo run the unit tests, run the following command:\n\n```bash\nmake test\n```\n\nTo run the verification scripts, run the following command:\n\n```bash\nmake verify\n```\n\nTo run the full suite of CI checks, run the following command:\n\n```bash\nmake ci\n```\n\n## Development Conventions\n\n### Guidelines for Programming Assistance\n\nWhen assisting with programming tasks, you will adhere to the following principles:\n\n* **Follow Requirements**: Carefully follow the user's requirements to the letter.\n* **Plan First**: For any non-trivial change, first describe a detailed, step-by-step plan, including the files you intend to modify and the tests you will add or update.\n* **Test Thoroughly**: Implement comprehensive tests to ensure correctness and prevent regressions.\n* **Comment Intelligently**: Add comments to explain the \"why\" behind complex or non-obvious code, keeping in mind that the reader may not be a Kubernetes expert.\n* **No TODOs**: Leave no `TODO` comments, placeholders, or incomplete implementations.\n* **Prioritize Correctness**: Always prioritize security, scalability, and maintainability in your implementations.\n\n### Avoiding Loops\n\nWhen performing complex tasks, especially those involving code modifications and verification, it's important to avoid getting into loops. A loop can occur when the agent repeatedly tries the same action without success, or when it gets stuck in a cycle of analysis, action, and failure.\n\nTo avoid loops:\n*   **Analyze the problem carefully**: Before taking any action, make sure you understand the problem and have a clear plan to solve it.\n*   **Break down the problem**: Break down complex problems into smaller, more manageable steps.\n*   **Verify each step**: After each step, verify that it was successful before moving on to the next one.\n*   **Don't repeat failed actions**: If an action fails, don't just repeat it. Analyze the cause of the failure and try a different approach.\n*   **Ask for help**: If you're stuck, don't hesitate to ask for help from the user.\n\n### Code Style\n\nThe project follows the standard Go code style and the official [Kubernetes coding conventions](https://www.k8s.dev/docs/guide/coding-convention/). All code should be formatted with `gofmt` and `goimports`. You can format the code by running the following commands:\n\n```bash\nmake gofmt\nmake goimports\n```\n\n### Linting\n\nThe project uses `golangci-lint` to lint the code. You can run the linter by running the following command:\n\n```bash\nmake verify-golangci-lint\n```\n\n### Dependencies\n\nThe project uses Go modules to manage dependencies. To add a new dependency, add it to the `go.mod` file and then run the following command:\n\n```bash\nmake gomod\n```\n\n### Commits\n\nThe project follows the conventional commit message format.\n\n### Contributions\n\nContributions are welcome! Before submitting a pull request, please open an issue to discuss your proposed changes. All pull requests must be reviewed and approved by a maintainer before they can be merged.\n\n## E2E CI Failure Troubleshooting\n\nFor investigating E2E CI job failures — including locating artifacts, diagnosing root causes, and finding correlations across failing jobs — see [docs/e2e-failure-troubleshooting.md](docs/e2e-failure-troubleshooting.md).\n\n"},"items":[{"name":"AGENTS.md","path":"AGENTS.md","title":"AGENTS.md","content":"# kOps Project Overview\n\nkOps is a command-line tool for creating, destroying, upgrading, and maintaining production-grade, highly available Kubernetes clusters. It is written in Go and supports multiple cloud providers, including AWS, GCP, DigitalOcean, Hetzner, OpenStack, and Azure.\n\nThe project is well-structured, with a clear separation of concerns between the different packages. The `cmd` directory contains the main entry points for the `kops` CLI and other related commands. The `pkg` directory contains the core logic for managing clusters, and the `upup` directory contains the code for provisioning cloud infrastructure.\n\nThe project has a comprehensive test suite, including unit tests, integration tests, and end-to-end tests. It also has a robust CI/CD pipeline that runs these tests on every pull request.\n\n## Building and Running\n\n### Prerequisites\n\n* `make`\n\n### Building\n\nTo build the `kops` binary, run the following command:\n\n```bash\nmake kops\n```\n\nThis will create the `kops` binary in the `.build/dist/<os>/<arch>` directory.\n\nTo build all the binaries, including `kops`, `nodeup`, and `channels`, run the following command:\n\n```bash\nmake all\n```\n\n### Running\n\nTo run the `kops` binary, you can either run it directly from the `dist` directory or install it to your `$GOPATH/bin` directory by running the following command:\n\n```bash\nmake install\n```\n\n### Testing\n\nTo run the unit tests, run the following command:\n\n```bash\nmake test\n```\n\nTo run the verification scripts, run the following command:\n\n```bash\nmake verify\n```\n\nTo run the full suite of CI checks, run the following command:\n\n```bash\nmake ci\n```\n\n## Development Conventions\n\n### Guidelines for Programming Assistance\n\nWhen assisting with programming tasks, you will adhere to the following principles:\n\n* **Follow Requirements**: Carefully follow the user's requirements to the letter.\n* **Plan First**: For any non-trivial change, first describe a detailed, step-by-step plan, including the files you intend to modify and the tests you will add or update.\n* **Test Thoroughly**: Implement comprehensive tests to ensure correctness and prevent regressions.\n* **Comment Intelligently**: Add comments to explain the \"why\" behind complex or non-obvious code, keeping in mind that the reader may not be a Kubernetes expert.\n* **No TODOs**: Leave no `TODO` comments, placeholders, or incomplete implementations.\n* **Prioritize Correctness**: Always prioritize security, scalability, and maintainability in your implementations.\n\n### Avoiding Loops\n\nWhen performing complex tasks, especially those involving code modifications and verification, it's important to avoid getting into loops. A loop can occur when the agent repeatedly tries the same action without success, or when it gets stuck in a cycle of analysis, action, and failure.\n\nTo avoid loops:\n*   **Analyze the problem carefully**: Before taking any action, make sure you understand the problem and have a clear plan to solve it.\n*   **Break down the problem**: Break down complex problems into smaller, more manageable steps.\n*   **Verify each step**: After each step, verify that it was successful before moving on to the next one.\n*   **Don't repeat failed actions**: If an action fails, don't just repeat it. Analyze the cause of the failure and try a different approach.\n*   **Ask for help**: If you're stuck, don't hesitate to ask for help from the user.\n\n### Code Style\n\nThe project follows the standard Go code style and the official [Kubernetes coding conventions](https://www.k8s.dev/docs/guide/coding-convention/). All code should be formatted with `gofmt` and `goimports`. You can format the code by running the following commands:\n\n```bash\nmake gofmt\nmake goimports\n```\n\n### Linting\n\nThe project uses `golangci-lint` to lint the code. You can run the linter by running the following command:\n\n```bash\nmake verify-golangci-lint\n```\n\n### Dependencies\n\nThe project uses Go modules to manage dependencies. To add a new dependency, add it to the `go.mod` file and then run the following command:\n\n```bash\nmake gomod\n```\n\n### Commits\n\nThe project follows the conventional commit message format.\n\n### Contributions\n\nContributions are welcome! Before submitting a pull request, please open an issue to discuss your proposed changes. All pull requests must be reviewed and approved by a maintainer before they can be merged.\n\n## E2E CI Failure Troubleshooting\n\nFor investigating E2E CI job failures — including locating artifacts, diagnosing root causes, and finding correlations across failing jobs — see [docs/e2e-failure-troubleshooting.md](docs/e2e-failure-troubleshooting.md).\n\n","category":"root","tokens":1158}]}