Skip to content

Commit

Permalink
Merge pull request #192 from kndpio/28-environment-composition
Browse files Browse the repository at this point in the history
create and configure environment composition
  • Loading branch information
evghen1 authored Jul 22, 2024
2 parents 19ef3ab + 2a23b39 commit 53ff477
Show file tree
Hide file tree
Showing 8 changed files with 513 additions and 3 deletions.
9 changes: 8 additions & 1 deletion .github/workflows/releases.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -47,4 +47,11 @@ jobs:
auth_token: ${{ secrets.GITHUB_TOKEN }}
run: |
echo "${auth_token}" | ko login ${{ env.OCI_DOMAIN }} --username ${{ github.actor }} --password-stdin
ko build ./cmd/kndp/ --tags=${{ env.VERSION }} --bare
ko build ./cmd/kndp/ --tags=${{ env.VERSION }} --bare
- name: Install crossplane CLI
id: crossplane
run: curl -sL "https://raw.githubusercontent.com/crossplane/crossplane/master/install.sh" | sh

- name: Build and push crossplane packages
run: ./crossplane xpkg build -f package -o configuration-environment && ./crossplane xpkg push -f configuration-environment ${REGISTRY}/${{ github.repository }}/configuration-environment:${{ env.VERSION }} || true' || true;
12 changes: 12 additions & 0 deletions configuration/crossplane.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
apiVersion: meta.pkg.crossplane.io/v1alpha1
kind: Configuration
metadata:
name: configuration-environment
spec:
dependsOn:
- provider: xpkg.upbound.io/crossplane-contrib/provider-helm
version: ">=v0.16.0"
- provider: xpkg.upbound.io/crossplane-contrib/provider-kubernetes
version: ">=v0.13.0"
crossplane:
version: ">=v1.14.1-0"
98 changes: 98 additions & 0 deletions configuration/environment/composition.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
apiVersion: apiextensions.crossplane.io/v1
kind: Composition
metadata:
name: configuration-environment
spec:
compositeTypeRef:
apiVersion: kndp.io/v1alpha1
kind: Environment
resources:

- name: crossplane-release
base:
apiVersion: helm.crossplane.io/v1beta1
kind: Release
spec:
forProvider:
namespace: ""
values:
extraObjects:
- apiVersion: kndp.io/v1alpha1
kind: Environment
metadata:
name: environment-test
spec:
name: "kndp-crossplane"
namespace: "kndp-system"
registry:
server: ""
token: ""
configuration:
packages: []
provider:
packages: []
provider:
packages: []
configuration:
packages: []
patches:
- type: FromCompositeFieldPath
fromFieldPath: spec.helmProviderCfgRef
toFieldPath: spec.providerConfigRef.name
- type: FromCompositeFieldPath
fromFieldPath: spec.namespace
toFieldPath: spec.forProvider.namespace
- type: FromCompositeFieldPath
fromFieldPath: spec.name
toFieldPath: metadata.name
- type: FromCompositeFieldPath
fromFieldPath: spec.configuration.packages
toFieldPath: spec.forProvider.values.configuration.packages
- type: FromCompositeFieldPath
fromFieldPath: spec.provider.packages
toFieldPath: spec.forProvider.values.provider.packages
- type: FromCompositeFieldPath
fromFieldPath: spec.crossplane.chart
toFieldPath: spec.forProvider.chart.name
- type: FromCompositeFieldPath
fromFieldPath: spec.crossplane.repository
toFieldPath: spec.forProvider.chart.repository
- type: FromCompositeFieldPath
fromFieldPath: spec.crossplane.version
toFieldPath: spec.forProvider.chart.version


- name: kyverno-release
base:
apiVersion: helm.crossplane.io/v1beta1
kind: Release
metadata:
name: kyverno
annotations:
crossplane.io/external-name: kyverno
spec:
forProvider:
namespace: ""
set:
- name: features.admissionReports.enabled
value: "true"
- name: aggregateReports.enabled
value: "true"
- name: policyReports.enabled
value: "true"
patches:
- type: FromCompositeFieldPath
fromFieldPath: spec.helmProviderCfgRef
toFieldPath: spec.providerConfigRef.name
- type: FromCompositeFieldPath
fromFieldPath: spec.namespace
toFieldPath: spec.forProvider.namespace
- type: FromCompositeFieldPath
fromFieldPath: spec.kyverno.chart
toFieldPath: spec.forProvider.chart.name
- type: FromCompositeFieldPath
fromFieldPath: spec.kyverno.repository
toFieldPath: spec.forProvider.chart.repository
- type: FromCompositeFieldPath
fromFieldPath: spec.kyverno.version
toFieldPath: spec.forProvider.chart.version
90 changes: 90 additions & 0 deletions configuration/environment/xrd.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,90 @@
apiVersion: apiextensions.crossplane.io/v1
kind: CompositeResourceDefinition
metadata:
name: environments.kndp.io
spec:
group: kndp.io
names:
kind: Environment
plural: environments
singular: environment
versions:
- name: v1alpha1
schema:
openAPIV3Schema:
type: object
properties:
spec:
type: object
properties:
crossplane:
type: object
properties:
chart:
type: string
default: crossplane
repository:
type: string
default: https://charts.crossplane.io/stable
version:
type: string
default: "1.15.2"
kyverno:
type: object
properties:
chart:
type: string
default: kyverno
repository:
type: string
default: "https://kyverno.github.io/kyverno/"
version:
type: string
default: "3.2.5"
name:
type: string
namespace:
type: string
configuration:
type: object
properties:
packages:
type: array
items:
type: string
provider:
type: object
properties:
packages:
type: array
items:
type: string
helmProviderCfgRef:
type: string
default: kndp-helm-provider-config
kubernetesProviderCfgRef:
type: string
default: kndp-kubernetes-provider-config
status:
type: object
description: Status information.
properties:
providers:
type: object
description: Providers details.
properties:
kubernetes:
type: object
properties:
name:
type: string
description: Kubernetes provider config name.
helm:
type: object
properties:
name:
type: string
description: Helm provider config name.

served: true
referenceable: true
Loading

0 comments on commit 53ff477

Please sign in to comment.