provider-helm

module
v0.3.0-rc Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 15, 2020 License: Apache-2.0

README

Build Status GitHub release Go Report Card

provider-helm

provider-helm is a Crossplane Provider that enables deployment and management of Helm Releases on Kubernetes clusters typically provisioned by Crossplane:

  • A Provider resource type that only points to a credentials Secret.
  • A Release resource type that is to manage Helm Releases.
  • A managed resource controller that reconciles Release objects and manages Helm releases.

Install

If you would like to install provider-helm without modifications create the following ClusterPackageInstall in a Kubernetes cluster where Crossplane is installed:

apiVersion: v1
kind: Namespace
metadata:
  name: helm
---
apiVersion: packages.crossplane.io/v1alpha1
kind: ClusterPackageInstall
metadata:
  name: provider-helm
  namespace: helm
spec:
  package: "crossplane-contrib/provider-helm:latest"

Design

See the design document.

Developing locally

Start a local development environment with Kind where crossplane is installed:

make local-dev

Run controller against the cluster:

make run

Since controller is running outside of the Kind cluster, you need to make api server accessible (on a separate terminal):

sudo kubectl proxy --port=80
Testing in Local Cluster
  1. Deploy RBAC for local cluster

    kubectl apply -f examples/provider-config/local-service-account.yaml
    
  2. Deploy local-provider.yaml by replacing spec.credentialsSecretRef.name with the token secret name.

    EXP="s/<helm-provider-token-secret-name>/$(kubectl get sa helm-provider -n crossplane-system -o jsonpath="{.secrets[0].name}")/g"
    cat examples/provider-config/local-provider-config.yaml | sed -e "${EXP}" | kubectl apply -f -
    
  3. Now you can create Release resources with provider reference, see sample release.yaml.

Cleanup
make local.down

Directories

Path Synopsis
Package apis contains Kubernetes API for the Helm provider.
Package apis contains Kubernetes API for the Helm provider.
release
Package release contains Helm Release API versions
Package release contains Helm Release API versions
release/v1alpha1
Package v1alpha1 contains the v1alpha1 group release resource of the Helm provider.
Package v1alpha1 contains the v1alpha1 group release resource of the Helm provider.
v1alpha1
Package v1alpha1 contains the core resources of the Helm provider.
Package v1alpha1 contains the core resources of the Helm provider.
cmd
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL