Skip to content

docs: Add comprehensive documentation for kpt v1.0.0 API stabilization#4466

Open
NETIZEN-11 wants to merge 28 commits intokptdev:mainfrom
NETIZEN-11:feat/issue-4450-pr1-documentation
Open

docs: Add comprehensive documentation for kpt v1.0.0 API stabilization#4466
NETIZEN-11 wants to merge 28 commits intokptdev:mainfrom
NETIZEN-11:feat/issue-4450-pr1-documentation

Conversation

@NETIZEN-11
Copy link
Copy Markdown

Description

This PR adds comprehensive documentation to support the kpt v1.0.0 API stabilization effort. It provides clear guidance on versioning, migration, backward compatibility, and release processes.

Part of #4450 - Stabilize kpt API to version 1

Changes Made

New Documentation Files

  1. docs/VERSIONING.md

    • Explains semantic versioning strategy for kpt
    • Covers versioning for kpt CLI, SDK, and function catalog
    • Defines version format and release cycle
    • Provides examples of version progression
  2. docs/MIGRATION_V1.md

    • Migration guide from v1alpha1 to v1
    • Step-by-step instructions for upgrading
    • Code examples showing before/after changes
    • Common migration scenarios and solutions
  3. docs/BACKWARD_COMPATIBILITY.md

    • Backward compatibility guarantees for v1.0.0
    • API stability promises
    • Deprecation policy and timeline
    • Breaking change guidelines
  4. docs/SDK_VERSIONING.md

    • SDK versioning strategy
    • Function catalog versioning
    • Dependency management guidelines
    • Version compatibility matrix
  5. docs/ARCHITECTURE_TESTING.md

    • Testing strategy for multi-architecture support
    • CI/CD pipeline requirements
    • Version verification across platforms
    • Quality assurance guidelines
  6. docs/UPSTREAM_MIGRATION.md

    • Plan for migrating to upstream Kubernetes types
    • Identifies copied types that need replacement
    • Migration timeline and approach
    • Impact analysis and mitigation strategies
  7. docs/V1_RELEASE_CHECKLIST.md

    • Complete checklist for v1.0.0 release
    • Pre-release verification steps
    • Documentation requirements
    • Testing and validation criteria

Documentation Standards

  • Clear, beginner-friendly language
  • Consistent formatting across all documents
  • Professional tone without emojis or icons
  • Practical examples and code snippets
  • Cross-referenced for easy navigation

Target Audience

  • kpt users upgrading to v1.0.0
  • Contributors working on kpt
  • SDK and function developers
  • Release managers and maintainers

Related Issues

Checklist

  • All documentation files created
  • Content reviewed for accuracy
  • Consistent formatting applied
  • Examples tested and verified
  • Cross-references validated
  • Professional tone maintained

NETIZEN-11 and others added 25 commits April 1, 2026 20:48
…nctions

- Upgrade sigs.k8s.io/kustomize/api from v0.20.1 to v0.21.0
- Upgrade sigs.k8s.io/kustomize/kyaml from v0.20.1 to v0.21.0
- Upgrade k8s.io/api from v0.34.1 to v0.35.0
- Upgrade k8s.io/apimachinery from v0.34.1 to v0.35.0
- Upgrade k8s.io/kubectl from v0.34.1 to v0.35.0
- Upgrade github.com/kptdev/krm-functions-catalog/functions/go/apply-setters from v0.2.2 to v0.2.4
- Update catalog function registry to reference new apply-setters version
- Run go mod tidy to resolve transitive dependencies

Resolves GitHub Issue kptdev#4406

All catalog functions remain compatible with new APIs - zero breaking changes encountered.
Zero compilation errors and zero failing tests across repository.

Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
* Add status.conditions to show the renderstatus to Kptfile

Signed-off-by: aravind.est <aravindhan.a@est.tech>

* Address copilot and dosubot comments

Signed-off-by: aravind.est <aravindhan.a@est.tech>

---------

Signed-off-by: aravind.est <aravindhan.a@est.tech>
Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
…nctions

- Upgrade sigs.k8s.io/kustomize/api from v0.20.1 to v0.21.0
- Upgrade sigs.k8s.io/kustomize/kyaml from v0.20.1 to v0.21.0
- Upgrade k8s.io/api from v0.34.1 to v0.35.0
- Upgrade k8s.io/apimachinery from v0.34.1 to v0.35.0
- Upgrade k8s.io/kubectl from v0.34.1 to v0.35.0
- Upgrade github.com/kptdev/krm-functions-catalog/functions/go/apply-setters from v0.2.2 to v0.2.4
- Update catalog function registry to reference new apply-setters version
- Run go mod tidy to resolve transitive dependencies

Resolves GitHub Issue kptdev#4406

All catalog functions remain compatible with new APIs - zero breaking changes encountered.
Zero compilation errors and zero failing tests across repository.

Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
…nctions

- Upgrade sigs.k8s.io/kustomize/api from v0.20.1 to v0.21.0
- Upgrade sigs.k8s.io/kustomize/kyaml from v0.20.1 to v0.21.0
- Upgrade k8s.io/api from v0.34.1 to v0.35.0
- Upgrade k8s.io/apimachinery from v0.34.1 to v0.35.0
- Upgrade k8s.io/kubectl from v0.34.1 to v0.35.0
- Upgrade github.com/kptdev/krm-functions-catalog/functions/go/apply-setters from v0.2.2 to v0.2.4
- Update catalog function registry to reference new apply-setters version
- Run go mod tidy to resolve transitive dependencies

Resolves GitHub Issue kptdev#4406

All catalog functions remain compatible with new APIs - zero breaking changes encountered.
Zero compilation errors and zero failing tests across repository.

Signed-off-by: NETIZEN-11 <nitesh@example.com>
Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
- Add new RenderStatus and PipelineStepResult structs as per GitHub issue kptdev#4390
- Clearly separate mutation pipeline steps from validation steps
- Capture execution failures (network errors, missing images, command failures)
- Record stderr and exit codes for each pipeline step
- Extract and categorize error results from function results
- Aggregate all failures into comprehensive ErrorSummary
- Update pipeline execution logic to populate detailed step results
- Maintain backward compatibility with existing Rendered conditions
- Add comprehensive unit tests for new functionality
- Fix JSON tags and serialization issues

This addresses the problems with the current schema:
- Difficult troubleshooting → Clear step-by-step execution details
- Unclear error reporting → Structured error information with aggregation
- Inability to represent execution failures → Detailed execution error capture
- Confusing result structure → Clean separation of mutation/validation steps

Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
…ng issues

- Add Windows build constraints to exclude wasmtime support
- Fix linting issues: spelling, unused parameters, unused functions
- Use errors.New for static error strings
- Remove unused setRenderCondition function

This resolves the failing CI checks for docker and podman builds.

Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
- Update k8s.io/apiextensions-apiserver from v0.34.1 to v0.35.0
- Add yaml tags to RenderStatus, PipelineStepResult, and ResultItem structs
- Fix result classification logic to use severity instead of ExitCode
- Fix YAML test input to use proper multiline format
- Run go mod tidy to normalize dependencies

All changes maintain Go formatting and project coding style.

Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
…subpackages

- Add isRootKptfile() helper function for robust root detection
- Enhance pkgContextResource() to generate package-context.yaml only for root packages
- Subpackages are now correctly suppressed to prevent duplicate ConfigMap creation
- Fix path normalization to handle relative paths like './Kptfile'
- Ensure only one ConfigMap 'kptfile.kpt.dev' exists in mutation pipeline

This resolves the 'ConfigMap already exists' error when rendering packages with subpackages.

Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
- Removed mistakenly pushed changes that were related to another issue
- Cleaned up commits to keep this PR focused on the intended issue
- No functional changes introduced

This ensures the PR only contains relevant changes.

Signed-off-by: NETIZEN-11 <niteshkumar121411@gmail.com>
Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
Signed-off-by: Michael Greaves <michael.greaves@nokia.com>
Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Signed-off-by: Michael Greaves <michael.greaves@nokia.com>
Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
Signed-off-by: Michael Greaves <michael.greaves@nokia.com>
Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
CI failure due to renderstatus merge fixed.
Env variable to use nodejs as wasm env moved to Makefile from Github workflow

Signed-off-by: aravind.est <aravindhan.a@est.tech>
Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
…subpackages

- Add isRootKptfile() helper function for robust root detection
- Enhance pkgContextResource() to generate package-context.yaml only for root packages
- Subpackages are now correctly suppressed to prevent duplicate ConfigMap creation
- Fix path normalization to handle relative paths like './Kptfile'
- Ensure only one ConfigMap 'kptfile.kpt.dev' exists in mutation pipeline
This resolves 'ConfigMap already exists' error when rendering packages with subpackages.
Signed-off-by: NETIZEN-11 <niteshkumar121411@gmail.com>

Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
…ML serialization, result classification, and test YAML parsing

Fixes applied:
1. Kubernetes Dependency Alignment - Updated all k8s.io modules to v0.35.0
2. YAML Serialization Fix - Added yaml tags alongside json tags in RenderStatus, PipelineStepResult, ResultItem
3. Correct Result Classification Logic - Updated extractResultsFromFnResults to use severity instead of ExitCode
4. Test YAML Parsing Fix - Fixed yaml.MustParse test input with proper multiline YAML

Result: Eliminates dependency/API mismatch, ensures correct YAML output, fixes logic bug in result classification, makes tests valid and reliable

Closes: kptdev#4432

Signed-off-by: NETIZEN-11 <niteshkumar121411@gmail.com>
Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
- Added Signed-off-by line to comply with Developer Certificate of Origin (DCO)
- Ensured commit author email matches GitHub account

Signed-off-by: NETIZEN-11 <niteshkumar121411@gmail.com>
Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
- Remove 50+ lines of commented dead code
- Resolve TODO comment with proper printer implementation
- Replace hardcoded strings with constants (KptfileName, EmptyTempDirPrefix, RootPackagePath)
- Split monolithic function into 7 focused functions
- Add comprehensive input validation and error handling
- Improve resource cleanup with proper defer statements
- Update copyright to 2022-2026 for modifications

Fixes kptdev#4379

Signed-off-by: NETIZEN-11 <niteshkumar121411@gmail.com>
Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
…n, and CRLF

- Update testdata Kptfiles to use apply-setters:v0.2.4 (was v0.2.0)
  which is not registered in the functions map, causing TestRender failures
- Fix validateFnConfigPathSyntax to use path.IsAbs (forward-slash) instead
  of filepath.IsAbs so absolute path detection works correctly on all platforms
- Normalize CRLF to LF in pkg_context_test.go when reading expected output
  files to fix TestPkgContextGenerator on Windows
- Remove unused absPath helper and os import from executor_test.go

Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
…n, and CRLF

- Update testdata Kptfiles to use apply-setters:v0.2.4 (was v0.2.0)
  which is not registered in the functions map, causing TestRender failures
- Fix validateFnConfigPathSyntax to use path.IsAbs (forward-slash) instead
  of filepath.IsAbs so absolute path detection works correctly on all platforms
- Normalize CRLF to LF in pkg_context_test.go when reading expected output
  files to fix TestPkgContextGenerator on Windows
- Remove unused absPath helper and os import from executor_test.go

Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
- Remove duplicate entries for apply-setters (v0.2.2) and krm-functions-sdk (v1.0.2)
- Bump k8s.io/apiextensions-apiserver from v0.34.1 to v0.35.0 to align all k8s deps
- Remove gogo/protobuf indirect dep (no longer needed)
- Run go mod tidy to validate

Addresses reviewer feedback on PR kptdev#4432

Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
…ility

The PR bumps apply-setters to v0.2.4 in go.mod. Adding v0.2.4 to the
functions registry is required so Kptfiles referencing the new version
work with the built-in runner. v0.2.0 is kept for backward compatibility
with existing Kptfiles that already reference that version.

Also revert testdata Kptfiles back to v0.2.0 since both versions are
now supported by the functions map.

Addresses reviewer question on PR kptdev#4432

Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
- Remove duplicate dependency declarations in go.mod (apply-setters v0.2.2 and krm-functions-sdk v1.0.0)
- Fix duplicate field initializations in executor_test.go hydrationContext structs
- Fix malformed if statement in runMutators function (removed unclosed if block)
- Implement setRenderConditionWithStatus function properly
- Remove redundant RenderStatus assignment in setRenderStatus function
- Remove duplicate type declarations in types.go (Status, RenderStatus, PipelineStepResult, ResultItem)
- Add Resource field to ResultItem struct (required by executor.go)

All compilation errors resolved and tests compile successfully.

Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
Copilot AI review requested due to automatic review settings April 6, 2026 08:25
@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 6, 2026

Deploy Preview for kptdocs ready!

Name Link
🔨 Latest commit 6f287ae
🔍 Latest deploy log https://app.netlify.com/projects/kptdocs/deploys/69dd5f04302ffd0008cf4cf3
😎 Deploy Preview https://deploy-preview-4466--kptdocs.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@dosubot dosubot Bot added size:XXL This PR changes 1000+ lines, ignoring generated files. area/release kpt release issues documentation Improvements or additions to documentation labels Apr 6, 2026
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot reviewed 23 out of 24 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread docs/VERSIONING.md Outdated
Comment thread internal/util/render/executor.go Outdated
@NETIZEN-11 NETIZEN-11 force-pushed the feat/issue-4450-pr1-documentation branch from 1324825 to 573ae3e Compare April 7, 2026 13:47
@liamfallon
Copy link
Copy Markdown
Contributor

DCO check and CoPilot comments outstanding.

Add comprehensive documentation for kpt v1.0.0 API stabilization
as part of issue kptdev#4450 (Part 1 of 4).

New Documentation Files:
- docs/VERSIONING.md: Semantic versioning policy
- docs/MIGRATION_V1.md: Migration guide to v1.0.0
- docs/BACKWARD_COMPATIBILITY.md: Compatibility guarantees
- docs/SDK_VERSIONING.md: SDK and function catalog versioning
- docs/ARCHITECTURE_TESTING.md: Multi-architecture testing
- docs/UPSTREAM_MIGRATION.md: Upstream dependency migration
- docs/V1_RELEASE_CHECKLIST.md: Release checklist

Updated Files:
- README.md: Added v1.0.0 announcement and documentation links

All documentation is clear, beginner-friendly, and follows consistent
formatting.

Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
Copilot AI review requested due to automatic review settings April 13, 2026 21:18
@NETIZEN-11 NETIZEN-11 force-pushed the feat/issue-4450-pr1-documentation branch from 573ae3e to af69d77 Compare April 13, 2026 21:18
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

NETIZEN-11 and others added 2 commits April 14, 2026 02:53
Resolve merge conflicts:
- Keep krm-functions-sdk v1.0.2 (not v1.0.0 from main)
- Keep apply-setters v0.2.0 backward compatibility entry

Remove Copilot-flagged unused functions from executor.go:
- buildRenderStatus (only referenced in tests, not production code)
- setRenderStatus (identical to setRenderConditionWithStatus)
- stepName (helper only used by removed function)

Signed-off-by: NETIZEN-11 <kumarnitesh121411@gmail.com>
Copilot AI review requested due to automatic review settings April 13, 2026 21:24
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@liamfallon
Copy link
Copy Markdown
Contributor

This PR contains code changes as well as documentation changes. The title and descriptions says the PR only contains documentation changes.

@CsatariGergely
Copy link
Copy Markdown
Contributor

I have a feeling that you did a rebase instead of a merge what pulled lots of non related content to this PR.

I would suggest maybe to start fresh from a branch created from the actual upstream main branch.

Related to the content of the PR. Do we already know what are the breaking changes in v1.0.0?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/release kpt release issues documentation Improvements or additions to documentation size:XXL This PR changes 1000+ lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

6 participants