{"id":18637018,"url":"https://github.com/openshift/cluster-storage-operator","last_synced_at":"2025-04-05T16:10:10.768Z","repository":{"id":33752970,"uuid":"146904697","full_name":"openshift/cluster-storage-operator","owner":"openshift","description":"Operator that sets OCP cluster wide storage defaults","archived":false,"fork":false,"pushed_at":"2025-03-20T14:52:42.000Z","size":47506,"stargazers_count":46,"open_issues_count":8,"forks_count":101,"subscribers_count":15,"default_branch":"main","last_synced_at":"2025-03-29T15:11:15.528Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/openshift.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-08-31T14:46:13.000Z","updated_at":"2025-03-20T12:45:27.000Z","dependencies_parsed_at":"2023-11-17T03:23:34.515Z","dependency_job_id":"e42bbc80-bc33-488e-b4b3-e2fea62aa646","html_url":"https://github.com/openshift/cluster-storage-operator","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openshift%2Fcluster-storage-operator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openshift%2Fcluster-storage-operator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openshift%2Fcluster-storage-operator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/openshift%2Fcluster-storage-operator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/openshift","download_url":"https://codeload.github.com/openshift/cluster-storage-operator/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247361693,"owners_count":20926643,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-07T05:32:40.640Z","updated_at":"2025-04-05T16:10:10.746Z","avatar_url":"https://github.com/openshift.png","language":"Go","readme":"# cluster-storage-operator\nOperator that sets OCP cluster-wide storage defaults.\n\nEnsures a default storage class exists for OCP clusters, like the [addon-manager](https://github.com/kubernetes/kubernetes/tree/release-1.13/cluster/addons/storage-class) does for kubernetes clusters. Supports AWS and OpenStack. No configuration is required. The created storage class can be made non-default by editing its annotation but cannot be deleted so long as the operator runs.\n\nWill also ensure default CSI volume plugins are installed in a future release when CSI plugins replace in-tree ones (see [csi-operator](https://github.com/openshift/csi-operator)).\n\n## Quick start - running CSO from local workstation\n\n### Scale down current CVO and CSO\n\n```shell\n# Set kubeconfig for connection to existing cluster\nexport KUBECONFIG=\u003cpath-to-kubeconfig\u003e\n\n# Scale down CVO and CSO\noc scale --replicas=0 deploy/cluster-version-operator -n openshift-cluster-version  \noc scale --replicas=0 deploy/cluster-storage-operator -n openshift-cluster-storage-operator\n```\n\n### Configure required environment variables\n\n```shell\n# Set operator and operand image version (this is just a marker for missing version, we assume that operators handle version detection themselves)\nexport OPERATOR_IMAGE_VERSION=\"0.0.1-snapshot\"\nexport OPERAND_IMAGE_VERSION=$OPERATOR_IMAGE_VERSION\n\n# Set common environment variables (CCMO and sidecars)\nexport CLUSTER_CLOUD_CONTROLLER_MANAGER_OPERATOR_IMAGE=quay.io/openshift/origin-cluster-cloud-controller-manager-operator:latest\nexport PROVISIONER_IMAGE=quay.io/openshift/origin-csi-external-provisioner:latest  \nexport ATTACHER_IMAGE=quay.io/openshift/origin-csi-external-attacher:latest \nexport RESIZER_IMAGE=quay.io/openshift/origin-csi-external-resizer:latest  \nexport SNAPSHOTTER_IMAGE=quay.io/openshift/origin-csi-external-snapshotter:latest  \nexport NODE_DRIVER_REGISTRAR_IMAGE=quay.io/openshift/origin-csi-node-driver-registrar:latest  \nexport LIVENESS_PROBE_IMAGE=quay.io/openshift/origin-csi-livenessprobe:latest  \nexport KUBE_RBAC_PROXY_IMAGE=quay.io/openshift/origin-kube-rbac-proxy:latest  \n```\n\n#### Configure provider specific variables\n\n\u003e Note that each provider requires different env variables to be set. Inspect their respective asset files to see what variables are needed and then find which env variables are used to replace them.\n\u003e Example with AWS EBS: see the asset file [here](https://github.com/openshift/cluster-storage-operator/blob/2b8e4fce4ddf3bfdd34fef5b2a4aeae4354a47e3/assets/csidriveroperators/aws-ebs/base/09_deployment.yaml#L23) and replacements [here](https://github.com/openshift/cluster-storage-operator/blob/22b559adba3079be7276c020d2e8f982c83aae70/pkg/operator/csidriveroperator/csioperatorclient/aws.go#L19).\n\n- AWS EBS operator example:\n    ```shell\n    export AWS_EBS_DRIVER_IMAGE=quay.io/openshift/origin-aws-ebs-csi-driver\n    export AWS_EBS_DRIVER_OPERATOR_IMAGE=quay.io/openshift/origin-aws-ebs-csi-driver-operator\n    ```\n\n- Azure Disk and Azure File operator example:\n    ```shell\n    export AZURE_DISK_DRIVER_OPERATOR_IMAGE=quay.io/openshift/origin-azure-disk-csi-driver-operator:latest\n    export AZURE_FILE_DRIVER_OPERATOR_IMAGE=quay.io/openshift/origin-azure-file-csi-driver-operator:latest\n    export AZURE_DISK_DRIVER_IMAGE=quay.io/openshift/origin-azure-disk-csi-driver:latest\n    export AZURE_FILE_DRIVER_IMAGE=quay.io/openshift/origin-azure-file-csi-driver:latest \n    ```\n\n### Build and run CSO locally\n\n```shell\n# Build the operator (can be run before exporting variables)\nmake\n\n# OPTIONAL - delete existing CSO lock\noc -n openshift-cluster-storage-operator delete lease/cluster-storage-operator-lock\n\n# Run the operator via CLI\n./cluster-storage-operator start --kubeconfig $KUBECONFIG --namespace openshift-cluster-storage-operator\n```\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenshift%2Fcluster-storage-operator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fopenshift%2Fcluster-storage-operator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fopenshift%2Fcluster-storage-operator/lists"}