Skip to content

Releases: crossplane/function-template-typescript

v0.2.0

19 Feb 12:53
005d851

Choose a tag to compare

Release Notes - v0.2.0

Overview

This release includes significant organizational changes, improved documentation, enhanced GitHub workflows, and better project structure. The template has been migrated to use GitHub Container Registry (ghcr.io) and updated to reflect the official Crossplane organization.

What's New

Organization Changes

  • Migrated to Crossplane Organization: Updated all package references from upbound to crossplane organization
  • GitHub Container Registry: Switched default package registry from Upbound registry to ghcr.io for better accessibility
  • Package Renaming: Updated package names to reflect the new organizational structure
    • Configuration package: ghcr.io/crossplane/configuration-template-typescript
    • Function package: ghcr.io/crossplane/function-template-typescript

Documentation Improvements

  • Enhanced README: Significantly expanded documentation with:
    • Clearer TypeScript compiler information (TypeScript 5+ tsc and TypeScript 7 tsgo)
    • Better structured sections with improved navigation
    • Fixed broken links and formatting issues
    • More detailed examples and explanations
  • Issue Templates: Added GitHub issue templates for bug reports and feature requests
  • Pull Request Template: Added standardized PR template to improve contribution workflow

CI/CD Enhancements

  • Updated GitHub Actions: Modified CI workflow to support GitHub Container Registry
    • Updated authentication mechanisms
    • Improved permissions handling
    • Cleaner workflow configuration

Code Quality

  • Removed Unused Code: Cleaned up unnecessary annotations and test helper functions
  • Fixed Typos: Corrected various typos throughout the codebase
  • Code Cleanup: General refactoring and cleanup for better maintainability

Configuration Updates

  • Updated Function References: Updated examples/functions.yaml to reference new package locations
  • Crossplane Package Metadata: Updated crossplane.yaml files in both function and configuration packages
  • Environment Variables: Simplified env file with updated registry defaults

Breaking Changes

⚠️ Package Location Changes: If you were using v0.1.0, note that package references have changed:

Old (v0.1.0):

package: xpkg.upbound.io/upbound/function-template-typescript

New (v0.2.0):

package: ghcr.io/crossplane/function-template-typescript:v0.2.0

Update your Configuration packages and any references accordingly.

Files Changed

  • .github/ISSUE_TEMPLATE/bug_report.md - Added
  • .github/ISSUE_TEMPLATE/feature_request.md - Added
  • .github/PULL_REQUEST_TEMPLATE.md - Added
  • .github/workflows/ci.yaml - Updated for ghcr.io
  • README.md - Major documentation improvements
  • env - Updated registry configuration
  • examples/functions.yaml - Updated function references
  • package-configuration/apis/apps/composition.yaml - Updated function names
  • package-configuration/crossplane.yaml - Updated package dependencies
  • package-function/crossplane.yaml - Updated package metadata
  • package.json - Version bump to 0.2.0
  • src/function.ts - Code cleanup
  • src/test-helpers.ts - Removed unused code
  • test-cases/README.md - Documentation updates
  • test-cases/example.yaml - Cleanup

Installation

Install the Configuration package:

apiVersion: pkg.crossplane.io/v1
kind: Configuration
metadata:
  name: crossplane-configuration-template-typescript
spec:
  package: ghcr.io/crossplane/configuration-template-typescript:v0.2.0

Contributors

Full Changelog

Compare changes: v0.1.0...v0.2.0

v0.1.0

19 Feb 10:08
bcbba80

Choose a tag to compare

v0.1.0 - Initial Release

What's New

This is the initial release of the Crossplane Function Template for TypeScript. This template provides a complete starting point for building Crossplane composition functions using TypeScript and the official Function SDK.

Features

  • Full TypeScript Support: Build Crossplane functions with TypeScript 5+ or TypeScript 7 (tsgo)
  • Function SDK Integration: Uses @crossplane-org/function-sdk-typescript v0.3.0
  • Example Implementation: Sample function that creates Kubernetes resources (Deployment, Service, ServiceAccount, Ingress)
  • Testing Support: Jest-based testing with YAML test case support
  • GitHub Actions CI/CD: Automated workflows for building, testing, and publishing packages
  • Multi-Architecture Support: Docker images and packages for both amd64 and arm64
  • Code Quality Tools: ESLint, Prettier, and TypeScript strict mode configuration
  • Complete Documentation: Extensive README with implementation guide and examples

Package Structure

  • Configuration Package: Contains the XRD and Composition for deploying the function
  • Function Package: Embeds the TypeScript function in a distroless Node.js container
  • Example Manifests: Examples in the examples/ directory

Installation

Install the configuration package to your Crossplane cluster:

apiVersion: pkg.crossplane.io/v1
kind: Configuration
metadata:
  name: configuration-template-typescript
spec:
  package: xpkg.upbound.io/upbound/function-template-typescript:v0.1.0

Development

Clone and start developing:

git clone https://github.com/upbound/function-template-typescript.git
cd function-template-typescript
npm install
npm run build
npm test

What's Included

  • TypeScript function implementation with SDK integration
  • YAML-based test case framework
  • Multi-platform Docker build scripts
  • Crossplane package build tooling
  • GitHub Actions for automated CI/CD
  • Comprehensive README and documentation

For more information, see the README.


Full Changelog: https://github.com/upbound/function-template-typescript/commits/v0.1.0