Skip to content

RedisLabs/crossplane-provider-rediscloud

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Provider RedisCloud

provider-rediscloud is a Crossplane provider that is built using Upjet code generation tools and exposes XRM-conformant managed resources for the RedisCloud API.

Overview

This provider enables management of RedisCloud resources through Kubernetes Custom Resources. It includes support for:

  • ACL Management - Roles, Rules, and Users
  • Active-Active Databases - Multi-region deployments
  • Cloud Accounts - AWS and GCP integrations
  • Essentials Tier - Free and fixed plans
  • Pro Subscriptions - Full-featured Redis deployments
  • Private Connectivity - VPC peering and private endpoints
  • Transit Gateways - AWS Transit Gateway attachments

Getting Started

Prerequisites

  1. Kubernetes cluster (1.26+)
  2. Crossplane installed
  3. RedisCloud API credentials

Installation

Install the provider by using the following command after changing the image tag to the latest release:

kubectl crossplane install provider xpkg.crossplane.io/RedisLabs/provider-rediscloud:v0.1.0

Alternatively, you can use declarative installation:

apiVersion: pkg.crossplane.io/v1
kind: Provider
metadata:
  name: provider-rediscloud
spec:
  package: xpkg.crossplane.io/RedisLabs/provider-rediscloud:v0.1.0

Configuration

  1. Create a secret with your RedisCloud credentials:
kubectl create secret generic rediscloud-creds \
  --namespace crossplane-system \
  --from-literal=credentials='{"api_key":"YOUR_API_KEY","secret_key":"YOUR_SECRET_KEY"}'
  1. Create a ProviderConfig:
apiVersion: rediscloud.redis.io/v1beta1
kind: ProviderConfig
metadata:
  name: default
spec:
  credentials:
    source: Secret
    secretRef:
      name: rediscloud-creds
      namespace: crossplane-system
      key: credentials

Usage Example

Create an Essentials subscription:

apiVersion: essentials.redis.io/v1alpha1
kind: Subscription
metadata:
  name: my-redis-subscription
spec:
  forProvider:
    name: "My Redis Subscription"
    planId: 1  # Free plan
  providerConfigRef:
    name: default

Developing

Prerequisites

  • Go 1.21+
  • Docker or Podman
  • Make

Development Environment

This project uses devenv for development environment management. To enter the development shell:

devenv shell

Building

Generate CRDs and controllers:

make generate

Build the provider:

make build

Testing

Run the test harness (uses podman by default):

./scripts/test-provider.sh

For detailed testing instructions, see TESTING.md.

Local Development

Run against a Kubernetes cluster:

make run

Deploy locally for testing:

make local-deploy

Documentation

Contributing

We welcome contributions! Please see our Contributing Guide for details.

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

Report a Bug

For filing bugs, suggesting improvements, or requesting new features, please open an issue.

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published