/mongodb-kubernetes-operator

MongoDB Community Kubernetes Operator

Primary LanguageGoOtherNOASSERTION

MongoDB Community Kubernetes Operator

This is a Kubernetes Operator which deploys MongoDB Community into Kubernetes clusters.

If you are a MongoDB Enterprise customer, or need Enterprise features such as Backup, you can use the MongoDB Enterprise Operator for Kubernetes.

Here is a talk from MongoDB Live 2020 about the Community Operator:

Note

Hi, I'm Dan Mckean 👋 I'm the Product Manager for MongoDB's support of Kubernetes.

The Community Operator is something I inherited when I started, but it doesn't get as much attention from us as we'd like, and we're trying to understand how it's used in order to establish it's future. It will help us establish exactly what level of support we can offer, and what sort of timeframe we aim to provide support in 🙂

Here's a super short survey (it's much easier for us to review all the feedback that way!): https://docs.google.com/forms/d/e/1FAIpQLSfwrwyxBSlUyJ6AmC-eYlgW_3JEdfA48SB2i5--_WpiynMW2w/viewform?usp=sf_link

If you'd rather email me instead: dan.mckean@mongodb.com

Table of Contents

Documentation

See the documentation to learn how to:

  1. Install or upgrade the Operator.
  2. Deploy and configure MongoDB resources.
  3. Configure Logging of the MongoDB resource components.
  4. Create a database user with SCRAM authentication.
  5. Secure MongoDB resource connections using TLS.

NOTE: MongoDB Enterprise Kubernetes Operator docs are for the enterprise operator use case and NOT for the community operator. In addition to the docs mentioned above, you can refer to this blog post as well to learn more about community operator deployment

Supported Features

The MongoDB Community Kubernetes Operator supports the following features:

  • Create replica sets
  • Upgrade and downgrade MongoDB server version
  • Scale replica sets up and down
  • Read from and write to the replica set while scaling, upgrading, and downgrading. These operations are done in an "always up" manner.
  • Report MongoDB server state via the MongoDBCommunity resource status field
  • Use any of the available Docker MongoDB images
  • Connect to the replica set from inside the Kubernetes cluster (no external connectivity)
  • Secure client-to-server and server-to-server connections with TLS
  • Create users with SCRAM authentication
  • Create custom roles
  • Enable a metrics target that can be used with Prometheus

Contribute

Before you contribute to the MongoDB Community Kubernetes Operator, please read:

Please file issues before filing PRs. For PRs to be accepted, contributors must sign our CLA.

Reviewers, please ensure that the CLA has been signed by referring to the contributors tool (internal link).

Linting

This project uses the following linters upon every Pull Request:

  • gosec is a tool that find security problems in the code
  • Black is a tool that verifies if Python code is properly formatted
  • MyPy is a Static Type Checker for Python
  • Kube-linter is a tool that verified if all Kubernetes YAML manifests are formatted correctly
  • Go vet A built-in Go static checker
  • Snyk The vulnerability scanner

License

Please see the LICENSE file.