10

SolidFire Operator for Kubernetes

 2 years ago
source link: https://scaleoutsean.github.io/2022/04/28/solidfire-operator-kubernetes.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

SolidFire Operator for Kubernetes

28 Apr 2022 -

2 minute read

solidfire-operator is a Proof-of-Concept operator for Kubernetes built using Operator Framework.

At the time of publishing this post, it doesn’t do anything useful. It can make changes to SolidFire QoS policies, which in all likelihood is completely useless for your Kubernetes environment.

If I find the concept useful I may add additional functionality, but the code is permissively licensed so anyone can fork the repo and expand its functionality to work with addditional SolidFire resources that are or aren’t supported by SolidFire modules for Ansible. Or build your own (the README has some detail around that).

What does solidfire-operator actually do?

It lets you use kubectl to make changes to SolidFire resources.

How does it work?

Kubernetes uses developer-provided code and custom resource definitions to make changes to resources. In this particular case and version, changes are made with Ansible and SolidFire Galaxy collection, and resources aren’t many (just the SolidFire QoS Policy object, in fact).

To create a new policy, we edit the sample config file and create a custom resource. Seconds later, a new QoS policy pops up in the SolidFire Web UI.

SolidFire Operator 0.0.4

Check the repo for additional details.

Why not do some volume-related stuff?

Trident CSI operates under the assumption it is the only program that manages Trident CSI-managed volumes. So it’s best to stay away from that.

There are plenty of other opportunities, though. Trident CSI v22.01 only manages manged SolidFire volumes and snapshots and nothing else.

There are Trident unmanaged volumes (SolidFire volumes we can import to Trident as unmanaged), as well as other CSI integrations such as Cinder CSI and Host Path volumes.

Some ideas for solidfire-operator:

  • Clone Trident volumes from Trident-made snapshots
  • Snapshot and clone non-Trident volumes
  • Snapshot & backup SolidFire volumes to S3
  • Apply QoS policies on Trident unmanaged volumes, or (this may interfere with Trident) apply and revert custom QoS policies on Trident-managed volumes
  • Set up replication relationships
  • Perform SolidFire cluster failover
  • Configure SolidFire for better integrations with various Kubernetes applications

One of the nice things about this approach - compared to running this from scripts located in VMs or Docker - is that this operator code can be deployed to Kubernetes in seconds and doesn’t require monitoring and maintenance of compute infrastructure outside of Kubernetes. As long as you backup (with Velero or whatever you use) your operator configuration or can deploy it from Git - there’s less to think about and less to manage.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK