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
See the documentation to learn how to:
- Install or upgrade the Operator.
- Deploy and configure MongoDB resources.
- Configure Logging of the MongoDB resource components.
- Create a database user with SCRAM authentication.
- 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
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
Before you contribute to the MongoDB Community Kubernetes Operator, please read:
- MongoDB Community Kubernetes Operator Architecture
- Contributing to MongoDB Community Kubernetes Operator
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).
This project uses the following linters upon every Pull Request:
gosec
is a tool that find security problems in the codeBlack
is a tool that verifies if Python code is properly formattedMyPy
is a Static Type Checker for PythonKube-linter
is a tool that verified if all Kubernetes YAML manifests are formatted correctlyGo vet
A built-in Go static checkerSnyk
The vulnerability scanner
Please see the LICENSE file.