plugin:
- specific to go (needed for both the core and the provider)
- defines the structures for the kform plugin (grpc proto) sdk:
- specific to go (needed for the provider)
- defines the provider structures
crossplane build provider -> uses the name in the yaml file
crossplane.yaml
apiVersion: meta.pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-gcp
spec:
crossplane:
version: ">=v1.0.0"
controller:
image: crossplane/provider-gcp-controller:v0.14.0
crossplane push provider xpkg.upbound.io/crossplane-contrib/provider-gcp:v0.22.0 crossplane push configuration xpkg.upbound.io/crossplane-contrib/my-org-infra:v0.1.0
crossplane install provider xpkg.upbound.io/crossplane-contrib/provider-gcp:v0.22.0 crossplane install configuration xpkg.upbound.io/crossplane-contrib/my-org-infra:v0.1.0
apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
name: provider-gcp
spec:
package: xpkg.upbound.io/crossplane-contrib/provider-gcp:v0.22.0
packagePullPolicy: IfNotPresent
revisionActivationPolicy: Automatic
revisionHistoryLimit: 1
apiVersion: pkg.crossplane.io/v1
kind: Configuration
metadata:
name: my-org-infra
spec:
package: xpkg.upbound.io/crossplane-contrib/my-org-infra:v0.1.0
packagePullPolicy: IfNotPresent
revisionActivationPolicy: Automatic
revisionHistoryLimit: 1
brainstorm options:
- add a KRM file in the package (meta.pkg.xxx.io/v1) provides: - type of the package - name of the package
- generate the KRM file in the package (meta.pkg.xxx.io/v1) based on cli input
meta
apiVersion: meta.pkg.xxxx.io/v1
kind: Module or Provider
metadata:
name: provider-gcp
spec:
info:
description:
maintainers:
- name: xx
email: xxx
refs:
- apiVersion: xxx
kind: xxx
name: xxxx
kform package init PACKAGE-TYPE DIR [flags]
- type
- description
- icon
- maintaianers
- version
kform package build PACKAGE-TYPE DIR [flags] kform package build module ./module-aws-vpc kform package build provider ./provider-k8s
kform package push [PACKAGE-NAME]
module
- .kformignore
- kform.yaml
- README.md
- ...
provider
- .kformignore
- kform.yaml
- README.md
- image
- schemas
- provider
- provider-schema.yaml
- resources
- .yaml
- .json ??????
- provider
europe-docker.pkg.dev/srlinux/eu.gcr.io/provider-xxxx
github.com/henderiw-nephio/kform/provider-xxxx
source: "hashicorp/aws"
manifest
- config digest
- []layers
- digest
go run tools/cmd/kform/main.go pkg push ghcr.io/kform-providers/resourcebackend/resourcebackend:v0.0.1 ./build/provider-resourcebackend --releaser
go run tools/cmd/kform/main.go pkg pull ghcr.io/kform-providers/resourcebackend/resourcebackend:0.0.1 ./build/pull-test --kind provider
go run tools/cmd/kform/main.go init examples