Git Product home page Git Product logo

mysql-operator's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

mysql-operator's Issues

Create a dedicated exporter user for better security

For some reason the rewrite process did not take the exporter user creation. This was left with a // TODO: comment in the agent/cmd/serve.go. As a result, the monitoring was working anymore. We need, on bootstrap, for the agent:

  • to get a secured username/password for the exporter
  • to wait for the instance to be up and running
  • to create the user

Grow storage with the Volume Expansion API

Is your feature request related to a problem? Please describe

We need to be able to rely on the volume expansion API to grow the storage when needed. This would enable to integrate with #148 and provide an automatic storage management

Describe the solution you'd like

N/A

Describe alternatives you've considered

A clear and concise description of any alternative solutions or features you've considered.

Additional context

Add any other context or screenshots about the feature request here.

Stop developments ๐Ÿ’”๐Ÿ––

Describe the Bug

When browsing https://docs.blaqkube.io/ many pages fail to load with the following error:

Oops.

The site at https://docs.blaqkube.io/users/installation/ has experienced a network protocol violation that cannot be repaired.

The page you are trying to view cannot be shown because an error in the data transmission was detected.

Please contact the web site owners to inform them of this problem.

To Reproduce

Steps to reproduce the behavior:

  1. Go to https://docs.blaqkube.io/users/installation/ with your browser

Expected Behavior

The docs should show

Additional Informations

Used Firefox 87.0

Add an Operation API to handle complex operations

Is your feature request related to a problem? Please describe

We need to be able to schedule operations like a restart of the StatefulSet to upgrade MySQL or a change to the parameters that also require a restart of the instance. This is also useful to upgrade the agent or the exporter. We want those operations to show up as scheduled and be executed as part of the maintenance Window.

Describe the solution you'd like

Add an Operation API and add an admission webhook to prevent users from using them.

Describe alternatives you've considered

We could have added the data directly to the Instance.Status but there are many concern with that, including compatibility way more complex to maintain.

Note

This depends on #144

Maintenance window for scheduled operations

Is your feature request related to a problem? Please describe

We need to be able to define a maintenance Window for scheduled operations. This is something future operations can rely on to perform scheduled operations. The motivation for this is that some operations, like upgrading to a newer release of MySQL require downtime and we do not want that downtime to be scheduled at peak time.

Describe the solution you'd like

The simplest solution we've come-up with is to have a status property named maintenanceMode that is a boolean set to True or False depending on a set of maintenance property in the instance spec.

Describe alternatives you've considered

N/A

Additional context

This is not a feature per se but a tool some operations will be able to rely on later.

Store check fails due to manager OCI filesystem cannot be accessed

Describe the bug

When creating a store on AWS or GKE with the right credentials, it fails with the following status in the kubectl get store -o yaml

  message: 'Cannot initialize local file, error: open .mysql-operator.out: permission
    denied'
  ready: "False"
  reason: CheckFailed

To Reproduce

Steps to reproduce the behavior:

  1. Rely on the quay.io/blaqkube/mysql-controller:0.4.0 controller
  2. Create the right credentials with AWS so that the store can actually be accessed
  3. Create a store on s3
apiVersion: mysql.blaqkube.io/v1alpha1
kind: Store
metadata:
  name: red-store
spec:
  backend: s3
  bucket: logs.blaqkube.io
  prefix: /backups/red
  envs:
  - name: AWS_ACCESS_KEY_ID
    valueFrom:
      secretKeyRef:
        name: red-store
        key: AWS_ACCESS_KEY_ID
  - name: AWS_SECRET_ACCESS_KEY
    valueFrom:
      secretKeyRef:
        name: red-store
        key: AWS_SECRET_ACCESS_KEY
  - name: AWS_REGION
    valueFrom:
      secretKeyRef:
        name: red-store
        key: AWS_REGION
  1. Check the store status with the command below
kubectl get store logs.blaqkube.io -o yaml

Expected behavior

The check for the store should succeed

Infrastructure (please complete the following information):

  • Operator: v0.4.0
  • OLM: any
  • Kubernetes: any

Additional context

N/A

Implement Snapshot Backup

Is your feature request related to a problem? Please describe

We need to be able to trigger backups from the Kubernetes Snapshot API, assuming the cluster supports it.

Describe the solution you'd like

to be described

Describe alternatives you've considered

We could implement other backup strategies, including XtraBackup, the MySQL Enterprise Backup.

Monitor Instance Storage

Is your feature request related to a problem? Please describe

We need to detect when database is expanding beyond the Persistent Volume capacity in order to trigger a fix

Describe the solution you'd like

to be considered

Describe alternatives you've considered

N/A

Additional context

N/A

Support for Slack Notifications

Is your feature request related to a problem? Please describe

We need to be notified on mysql events with Slack

Describe the solution you'd like

We've added a resource Chat that keeps track of a Slack connection, i.e. a Token and a Channel, The first plan is to be able to send Slack notifications via this configuration and improve it later.

Describe alternatives you've considered

I've looked a number of alternatives, including:

  • botkube that seems to support CRD. It looks like we can only support their slack app
  • kubewatch that does not support CRD apparently
  • Prometheus AlertManager. It might very well be the way to go. That is because it could, assuming we could provide last backup time as part of the metrics, send a notification on "non-events" like "no backup for 24 hours"

Additional context

N/A

`make test` missing from operator build

Describe the bug
The make test command is missing from the build of a branch.

To Reproduce
Steps to reproduce the behavior:

  1. Break a test
  2. Push to the CI
  3. The CI succeed

Expected behavior
The test should be executed systematically in CircleCI

Infrastructure (please complete the following information):
The stack:

  • Operator [v0.3.1]
  • OLM [N/A]
  • Kubernetes: [N/A]

Additional context
N/A

Upgrade MySQL on-demand

Is your feature request related to a problem? Please describe

We need to be able to request a MySQL Upgrade on-demand. The request could be executed immediately or during the next Maintenance Window.

Describe the solution you'd like

Implement an operation that perform a change to the statefulset and restart it.

Note

This depends on #146

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.