All Projects → crossplane-contrib → provider-kubernetes

crossplane-contrib / provider-kubernetes

Licence: Apache-2.0 license
Crossplane provider to provision and manage Kubernetes objects on (remote) Kubernetes clusters.

Programming Languages

go
31211 projects - #10 most used programming language
Makefile
30231 projects

Projects that are alternatives of or similar to provider-kubernetes

provider-argocd
Crossplane provider to provision and manage ArgoCD objects
Stars: ✭ 23 (-63.49%)
Mutual labels:  operator, crossplane
galaxykube
PolarDB-X Operator is a Kubernetes extension that aims to create and manage PolarDB-X cluster on Kubernetes.
Stars: ✭ 65 (+3.17%)
Mutual labels:  operator
kubegres
Kubegres is a Kubernetes operator allowing to deploy one or many clusters of PostgreSql instances and manage databases replication, failover and backup.
Stars: ✭ 1,107 (+1657.14%)
Mutual labels:  operator
logging-operator
A golang based operator to create and manage EFK (Elasticsearch, Fluentd, and Kibana) stack on Kubernetes
Stars: ✭ 42 (-33.33%)
Mutual labels:  operator
microcks-ansible-operator
Kubernetes Operator for easy setup and management of Microcks installs
Stars: ✭ 21 (-66.67%)
Mutual labels:  operator
kstone
Kstone is an etcd management platform, providing cluster management, monitoring, backup, inspection, data migration, visual viewing of etcd data, and intelligent diagnosis.
Stars: ✭ 592 (+839.68%)
Mutual labels:  operator
clowder
Operator for operating cloud.redhat.com
Stars: ✭ 21 (-66.67%)
Mutual labels:  operator
carvel-secretgen-controller
secretgen-controller provides CRDs to specify what secrets need to be on Kubernetes cluster (to be generated or not)
Stars: ✭ 54 (-14.29%)
Mutual labels:  operator
aws-nlb-helper-operator
Simple operator to manage AWS NLB attributes using Kubernetes Service object annotations
Stars: ✭ 23 (-63.49%)
Mutual labels:  operator
actions-runner-controller
Kubernetes controller for GitHub Actions self-hosted runners
Stars: ✭ 2,636 (+4084.13%)
Mutual labels:  operator
cmak-operator
CMAK (prev. Kafka Manager) for Kubernetes
Stars: ✭ 45 (-28.57%)
Mutual labels:  operator
crossplane-service-broker
Crossplane Open Service Broker API
Stars: ✭ 17 (-73.02%)
Mutual labels:  crossplane
sieve
Automatic Reliability Testing for Kubernetes Controllers
Stars: ✭ 183 (+190.48%)
Mutual labels:  operator
mongodb
MongoDB Operator for Kubernetes
Stars: ✭ 38 (-39.68%)
Mutual labels:  operator
whitebox-controller
Extensible generic controller for Kubernetes
Stars: ✭ 34 (-46.03%)
Mutual labels:  operator
anthill
A Kubernetes/OpenShift operator to manage Gluster clusters
Stars: ✭ 35 (-44.44%)
Mutual labels:  operator
marin3r
Lightweight, CRD based envoy control plane for kubernetes
Stars: ✭ 51 (-19.05%)
Mutual labels:  operator
r6operators
r6operators is a collection of high-quality vectorized Rainbow Six: Siege Operator icons & metadata for Node.js
Stars: ✭ 75 (+19.05%)
Mutual labels:  operator
deploy
Deploy Development Builds of Open Cluster Management (OCM) on RedHat Openshift Container Platform
Stars: ✭ 133 (+111.11%)
Mutual labels:  operator
european-transport-operators
NOT UP-TO-DATE ANYMORE, UNMAINTAINED. CHECK european-transport-feeds INSTEAD. List of european long-distance transport operators, available API endpoints, GTFS feeds and client modules.
Stars: ✭ 47 (-25.4%)
Mutual labels:  operator

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
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].