provider-kubernetes is a Crossplane Provider that enables deployment and management of arbitrary Kubernetes objects on clusters

provider-kubernetes

provider-kubernetes is a Crossplane Provider that enables deployment and management of arbitrary Kubernetes objects on clusters typically provisioned by Crossplane:

  • A Provider resource type that only points to a credentials Secret.
  • An Object resource type that is to manage Kubernetes Objects.
  • A managed resource controller that reconciles Object typed resources and manages arbitrary Kubernetes Objects.

Install

If you would like to install provider-kubernetes without modifications, you may do so using the Crossplane CLI in a Kubernetes cluster where Crossplane is installed:

kubectl crossplane install provider crossplane/provider-kubernetes:main

You may also manually install provider-kubernetes by creating a Provider directly:

apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
  name: provider-kubernetes
spec:
  package: "crossplane/provider-kubernetes:main"

Developing locally

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

make
make local-dev

Run controller against the cluster:

make run

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

sudo kubectl proxy --port=8081

Testing in Local Cluster

  1. Prepare provider config for the local cluster:

  2. If provider kubernetes running in the cluster (e.g. provider installed with crossplane):

    SA=$(kubectl -n crossplane-system get sa -o name | grep provider-kubernetes | sed -e 's|serviceaccount\/|crossplane-system:|g')
    kubectl create clusterrolebinding provider-kubernetes-admin-binding --clusterrole cluster-admin --serviceaccount="${SA}"
    kubectl apply -f examples/provider/config-in-cluster.yaml
    
  3. If provider kubernetes running outside the cluster (e.g. running locally with make run)

    KUBECONFIG=$(kind get kubeconfig --name local-dev | sed -e 's|server:\s*.*$|server: http://localhost:8081|g')
    kubectl -n crossplane-system create secret generic cluster-config --from-literal=kubeconfig="${KUBECONFIG}" 
    kubectl apply -f examples/provider/config.yaml
    
  4. Now you can create Object resources with provider reference, see sample object.yaml.

    kubectl create -f examples/object/object.yaml
    

Cleanup

make local.down
Owner
Comments
  • Update release version

    Update release version

    Description of your changes

    Fixes #

    I have:

    • [ ] Read and followed Crossplane's contribution process.
    • [ ] Run make reviewable test to ensure this PR is ready for review.

    How has this code been tested

  • update go to 1.17.7

    update go to 1.17.7

    Description of your changes

    Fixes #

    I have:

    • [ ] Read and followed Crossplane's contribution process.
    • [ ] Run make reviewable test to ensure this PR is ready for review.

    How has this code been tested

  • Eviction fix ltsr

    Eviction fix ltsr

    Description of your changes

    Fixes #

    I have:

    • [ ] Read and followed Crossplane's contribution process.
    • [ ] Run make reviewable test to ensure this PR is ready for review.

    How has this code been tested

  • add ratelimiter to disable not nessesary logs

    add ratelimiter to disable not nessesary logs

    Description of your changes

    Fixes #

    I have:

    • [ ] Read and followed Crossplane's contribution process.
    • [ ] Run make reviewable test to ensure this PR is ready for review.

    How has this code been tested

  • Revert

    Revert "Switch to new ubi repository (#36)"

    This reverts commit b7f1e2297aee77df26a4a6704ab6d5a09d012627.

    Description of your changes

    Fixes #

    I have:

    • [ ] Read and followed Crossplane's contribution process.
    • [ ] Run make reviewable test to ensure this PR is ready for review.

    How has this code been tested

  • update go to 1.17.7 - ci

    update go to 1.17.7 - ci

    Description of your changes

    Fixes #

    I have:

    • [ ] Read and followed Crossplane's contribution process.
    • [ ] Run make reviewable test to ensure this PR is ready for review.

    How has this code been tested

  • switched base images to ubi

    switched base images to ubi

    Description of your changes

    Fixes #

    I have:

    • [ ] Read and followed Crossplane's contribution process.
    • [ ] Run make reviewable test to ensure this PR is ready for review.

    How has this code been tested

  • Merge master to efix

    Merge master to efix

    Description of your changes

    Fixes #

    I have:

    • [ ] Read and followed Crossplane's contribution process.
    • [ ] Run make reviewable test to ensure this PR is ready for review.

    How has this code been tested

  • Copyright date update

    Copyright date update

    All 16 files that were modified in 2022 and contain copyright date are updated.

    Description of your changes

    Changes related to #51738

    I have:

    • [ ] Read and followed Crossplane's [contribution process].
    • [ ] Run make reviewable test to ensure this PR is ready for review.

    How has this code been tested

    None [contribution process]: https://git.io/fj2m9

  • bump release version

    bump release version

    Description of your changes

    Fixes #

    I have:

    • [ ] Read and followed Crossplane's contribution process.
    • [ ] Run make reviewable test to ensure this PR is ready for review.

    How has this code been tested

  • bump ltsr version

    bump ltsr version

    Description of your changes

    Fixes #

    I have:

    • [ ] Read and followed Crossplane's contribution process.
    • [ ] Run make reviewable test to ensure this PR is ready for review.

    How has this code been tested

  • add vcs labels

    add vcs labels

    Description of your changes

    Fixes #

    I have:

    • [ ] Read and followed Crossplane's contribution process.
    • [ ] Run make reviewable test to ensure this PR is ready for review.

    How has this code been tested

Provider-milvus - Milvus provider for crossplane

provider-milvus provider-milvus is a minimal Crossplane Provider that is meant t

Feb 9, 2022
kcount counts Kubernetes (K8s) objects across clusters.

kcount counts Kubernetes (K8s) objects across clusters. It gets the cluster configuration, including cluster name and namespace, from kubeconfig files

Sep 23, 2022
PolarDB Stack is a DBaaS implementation for PolarDB-for-Postgres, as an operator creates and manages PolarDB/PostgreSQL clusters running in Kubernetes. It provides re-construct, failover swtich-over, scale up/out, high-available capabilities for each clusters.
PolarDB Stack is a DBaaS implementation for PolarDB-for-Postgres, as an operator creates and manages PolarDB/PostgreSQL clusters running in Kubernetes. It provides re-construct, failover swtich-over, scale up/out, high-available capabilities for each clusters.

PolarDB Stack开源版生命周期 1 系统概述 PolarDB是阿里云自研的云原生关系型数据库,采用了基于Shared-Storage的存储计算分离架构。数据库由传统的Share-Nothing,转变成了Shared-Storage架构。由原来的N份计算+N份存储,转变成了N份计算+1份存储

Nov 8, 2022
KinK is a helper CLI that facilitates to manage KinD clusters as Kubernetes pods. Designed to ease clusters up for fast testing with batteries included in mind.
KinK is a helper CLI that facilitates to manage KinD clusters as Kubernetes pods. Designed to ease clusters up for fast testing with batteries included in mind.

kink A helper CLI that facilitates to manage KinD clusters as Kubernetes pods. Table of Contents kink (KinD in Kubernetes) Introduction How it works ?

Dec 10, 2022
An experimental crossplane provider for @zscaler zpa

provider-zpa Crossplane provider for [Zscaler ZPA] The provider built from this repository can be installed into a Crossplane control plane or run sep

Dec 7, 2021
Generate Crossplane Providers from any Terraform Provider

Terrajet - Generate Crossplane Providers from any Terraform Provider Terrajet is a code generator framework that allows developers to build code gener

Dec 29, 2022
Crossplane provider for InfluxDB Cloud

provider-template provider-template is a minimal Crossplane Provider that is meant to be used as a template for implementing new Providers. It comes w

Jan 10, 2022
Crossplane provider for Confluent Cloud

provider-confluent provider-confluent is a minimal Crossplane Provider that is meant to be used as a template for implementing new Providers. It comes

Feb 4, 2022
A minimal Crossplane Provider For Golang

provider-template provider-template is a minimal Crossplane Provider that is mea

Dec 19, 2021
A minimal Crossplane Provider that is meant to be used as a template for implementing new Providers

provider-template provider-template is a minimal Crossplane Provider that is meant to be used as a template for implementing new Providers. It comes w

Jan 16, 2022
Provider-template - Template for writing providers for crossplane

provider-template provider-template is a minimal Crossplane Provider that is mea

Feb 3, 2022
cluster-api-state-metrics (CASM) is a service that listens to the Kubernetes API server and generates metrics about the state of custom resource objects related of Kubernetes Cluster API.

Overview cluster-api-state-metrics (CASM) is a service that listens to the Kubernetes API server and generates metrics about the state of custom resou

Oct 27, 2022
A kubernetes plugin which enables dynamically add or remove GPU resources for a running Pod
A kubernetes plugin which enables dynamically add or remove GPU resources for a running Pod

GPU Mounter GPU Mounter is a kubernetes plugin which enables add or remove GPU resources for running Pods. This Introduction(In Chinese) is recommende

Jan 5, 2023
vcluster - Create fully functional virtual Kubernetes clusters - Each cluster runs inside a Kubernetes namespace and can be started within seconds
vcluster - Create fully functional virtual Kubernetes clusters - Each cluster runs inside a Kubernetes namespace and can be started within seconds

Website • Quickstart • Documentation • Blog • Twitter • Slack vcluster - Virtual Clusters For Kubernetes Lightweight & Low-Overhead - Based on k3s, bu

Jan 4, 2023
Kubernetes IN Docker - local clusters for testing Kubernetes
Kubernetes IN Docker - local clusters for testing Kubernetes

kind is a tool for running local Kubernetes clusters using Docker container "nodes".

Jan 5, 2023
Kubernetes IN Docker - local clusters for testing Kubernetes
Kubernetes IN Docker - local clusters for testing Kubernetes

Please see Our Documentation for more in-depth installation etc. kind is a tool for running local Kubernetes clusters using Docker container "nodes".

Feb 14, 2022
Simple CLI tool and Kubernetes deployment.

Simple Application A basic example of how to build a naml project. app.go Every project should define an app.go file. The file should implement the De

Dec 21, 2022