Skip to content

maoertel/mongodb-atlas-k8s-operator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

MongoDB Atlas K8s Operator

As the orginal MongoDB Atlas K8s Operator is not taking Atlas users into account, I thought about writing my own operator that handles this. And as there is already a lot of stuff out there for Golang, I decided to write it in Rust.

It is in a POC state so a lot of happy path and things that are not handled yet, like:

  • What happens to the passwords (send encrypted via email, put into Vault?)
  • All the error handling regarding Atlas API
  • Update the Status of the k8s resource

Use it

  1. Create the CRD
kubectl create -f crds/atlasusers.yaml
  1. Start the operator

In the context of your choice, start the operator with the following command. You need to provide atlas MongoDB API key credentials.

cargo run --public-key <public-key> --private-key <private>
  1. Create a new MongoDB Atlas AtlasUser K8s resource
kubectl create -f crds/examples/john_doe.yaml

What basically deployes something like that:

apiVersion: moertel.com/v1
kind: AtlasUser
metadata:
  name: johndoe
  namespace: default
spec:
  country: US
  firstName: John
  lastName: Doe
  username: [email protected]
  roles:
  - orgId: "4723423423"
    roleName: "ORG_OWNER"
  1. Check the created resource in your cluster
kubectl describe atlasusers johndoe

About

Small k8s Operator to create MongoDB Atlas users

Topics

Resources

Stars

Watchers

Forks

Languages