diff --git a/.github/service-labeler.yaml b/.github/service-labeler.yaml index 8001fe1ed5..850a8a98f5 100644 --- a/.github/service-labeler.yaml +++ b/.github/service-labeler.yaml @@ -22,6 +22,10 @@ services/cloudnative-pg: - changed-files: - any-glob-to-any-file: - services/cloudnative-pg/** +services/cosi-driver-nutanix: +- changed-files: + - any-glob-to-any-file: + - services/cosi-driver-nutanix/** services/dex: - changed-files: - any-glob-to-any-file: diff --git a/licenses.d2iq.yaml b/licenses.d2iq.yaml index ebb87aee35..b863fcf18d 100644 --- a/licenses.d2iq.yaml +++ b/licenses.d2iq.yaml @@ -597,7 +597,7 @@ resources: - url: https://github.com/ceph/ceph-cosi ref: ${image_tag} license_path: LICENSE - - container_image: gcr.io/k8s-staging-sig-storage/objectstorage-sidecar:v20240513-v0.1.0-35-gefb3255 + - container_image: gcr.io/k8s-staging-sig-storage/objectstorage-sidecar:v20250117-a29e5f6 sources: - url: https://github.com/kubernetes-sigs/container-object-storage-interface ref: main @@ -652,3 +652,8 @@ resources: - url: https://github.com/valkey-io/valkey ref: ${image_tag%%-debian-*} license_path: COPYING + - container_image: ghcr.io/nutanix-cloud-native/cosi-driver-nutanix:v0.0.4 + sources: + - url: https://github.com/nutanix-cloud-native/cosi-driver-nutanix + ref: ${image_tag} + license_path: LICENSE diff --git a/services/cosi-driver-nutanix/0.0.4/cosi-driver-nutanix.yaml b/services/cosi-driver-nutanix/0.0.4/cosi-driver-nutanix.yaml new file mode 100644 index 0000000000..f375e25302 --- /dev/null +++ b/services/cosi-driver-nutanix/0.0.4/cosi-driver-nutanix.yaml @@ -0,0 +1,29 @@ +--- +apiVersion: helm.toolkit.fluxcd.io/v2beta2 +kind: HelmRelease +metadata: + name: cosi-driver-nutanix + namespace: ${releaseNamespace} +spec: + chart: + spec: + chart: cosi-driver-nutanix + sourceRef: + kind: HelmRepository + name: mesosphere.github.io-charts-staging + namespace: kommander-flux + version: 0.0.5 + interval: 15s + install: + crds: CreateReplace + remediation: + retries: 30 + upgrade: + crds: CreateReplace + remediation: + retries: 30 + releaseName: cosi-driver-nutanix + valuesFrom: + - kind: ConfigMap + name: cosi-driver-nutanix-0.0.4-d2iq-defaults + targetNamespace: ${releaseNamespace} diff --git a/services/cosi-driver-nutanix/0.0.4/cosi-resources-nutanix.yaml b/services/cosi-driver-nutanix/0.0.4/cosi-resources-nutanix.yaml new file mode 100644 index 0000000000..5ff4b6e4bc --- /dev/null +++ b/services/cosi-driver-nutanix/0.0.4/cosi-resources-nutanix.yaml @@ -0,0 +1,38 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta2 +kind: HelmRelease +metadata: + name: cosi-resources-nutanix + namespace: ${releaseNamespace} +spec: + chart: + spec: + chart: cosi-bucket-kit + sourceRef: + kind: HelmRepository + name: mesosphere.github.io-charts-stable + namespace: kommander-flux + version: 0.0.1-alpha.1 + interval: 15s + dependsOn: + # This dependency is not honored during Upgrade, only during Install. + # We have this in place to ensure that the cosi-driver-nutanix HelmRelease is installed before creating the BucketClass CR. + - name: cosi-driver-nutanix + install: + crds: CreateReplace + remediation: + retries: 30 + createNamespace: true + upgrade: + crds: CreateReplace + remediation: + retries: 30 + releaseName: cosi-resources-nutanix + targetNamespace: ${releaseNamespace} + valuesFrom: + - kind: ConfigMap + name: cosi-driver-nutanix-0.0.4-d2iq-defaults + valuesKey: cosi-bucket-kit-values.yaml + - kind: ConfigMap + name: cosi-driver-nutanix-overrides + optional: true +--- diff --git a/services/cosi-driver-nutanix/0.0.4/defaults/cm.yaml b/services/cosi-driver-nutanix/0.0.4/defaults/cm.yaml new file mode 100644 index 0000000000..872a5e28d4 --- /dev/null +++ b/services/cosi-driver-nutanix/0.0.4/defaults/cm.yaml @@ -0,0 +1,36 @@ +--- +apiVersion: v1 +kind: ConfigMap +metadata: + name: cosi-driver-nutanix-0.0.4-d2iq-defaults + namespace: ${releaseNamespace} +data: + values.yaml: |- + cosiController: + enabled: false # This should be deployed during k8s cluster creation by konvoy. + objectstorageProvisionerSidecar: + image: + registry: gcr.io + # keep this in sync with the sidecar that is deployed in CephCOSIDriver to avoid duplicate images in airgapped bundle. + repository: k8s-staging-sig-storage/objectstorage-sidecar + tag: v20250117-a29e5f6 + pullPolicy: IfNotPresent + image: + registry: ghcr.io + repository: nutanix-cloud-native/cosi-driver-nutanix + # Overrides the image tag whose default is the chart appVersion. + tag: v0.0.4 + pullPolicy: IfNotPresent + secret: + enabled: false # This is handled by kommander UI via a FederatedSecret. + cosi-bucket-kit-values.yaml: |- + cosiBucketKit: + enabled: true + bucketClasses: + - name: cosi-nutanix-nkp + driverName: ntnx.objectstorage.k8s.io + deletionPolicy: Delete + bucketAccessClasses: + - name: cosi-nutanix-nkp + driverName: ntnx.objectstorage.k8s.io + authenticationType: KEY diff --git a/services/cosi-driver-nutanix/0.0.4/defaults/kustomization.yaml b/services/cosi-driver-nutanix/0.0.4/defaults/kustomization.yaml new file mode 100644 index 0000000000..51ed65d642 --- /dev/null +++ b/services/cosi-driver-nutanix/0.0.4/defaults/kustomization.yaml @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - cm.yaml diff --git a/services/cosi-driver-nutanix/0.0.4/kustomization.yaml b/services/cosi-driver-nutanix/0.0.4/kustomization.yaml new file mode 100644 index 0000000000..2c8a670b50 --- /dev/null +++ b/services/cosi-driver-nutanix/0.0.4/kustomization.yaml @@ -0,0 +1,6 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - cosi-driver-nutanix.yaml + - cosi-resources-nutanix.yaml diff --git a/services/cosi-driver-nutanix/metadata.yaml b/services/cosi-driver-nutanix/metadata.yaml new file mode 100644 index 0000000000..37f63d5b1d --- /dev/null +++ b/services/cosi-driver-nutanix/metadata.yaml @@ -0,0 +1,35 @@ +displayName: COSI Driver For Nutanix +description: Seamlessly manage provisioning of object storage resources on Nutanix platforms within Kubernetes environments adhering to COSI standard. +category: [] +dependencies: [] +type: platform +scope: + - workspace +licensing: + - Pro + - Ultimate + - Essentials + - Enterprise +certifications: + - airgapped + - supported +allowMultipleInstances: false +overview: |- + # COSI Driver for Nutanix + + The **COSI Driver for Nutanix** simplifies the deployment and configuration of the Nutanix driver for the Kubernetes Container Object Storage Interface (COSI). COSI is an evolving Kubernetes API standard designed to streamline and standardize object storage provisioning and management across diverse environments. + + This package is tailored for Kubernetes clusters using Nutanix as the underlying storage provider. By deploying the COSI Driver for Nutanix, users can leverage Nutanix's robust object storage capabilities to dynamically provision and manage object storage buckets directly from Kubernetes. + + ## Key Features + + - **Automated Deployment**: Simplifies the installation and setup of the COSI driver with configurable parameters for tailored deployments. + - **Dynamic Bucket Management**: Enables dynamic provisioning, binding, and deletion of object storage buckets via Kubernetes APIs. + - **Seamless Integration**: Ensures compatibility with Nutanix object storage platforms, empowering developers to integrate cloud-native applications with Nutanix's scalable storage solutions. + - **Customizable Configuration**: Offers a range of configurable values for aligning the driver setup with specific use cases and operational requirements. + - **Scalability and Reliability**: Built to leverage the scalability and robustness of Nutanix object storage while adhering to Kubernetes best practices. + + ## Use Cases + + This solution is ideal for teams seeking to enhance their Kubernetes storage capabilities by integrating object storage directly into their workflows. With the Nutanix COSI driver, users gain a powerful toolset to efficiently manage object storage within cloud-native ecosystems. +icon: PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzI2MTlfMTEwMzUpIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0yOS45MjE2IDI1Ljk0NTZDMzAuMDY2MSAyNS45NDU2IDMwLjE5NjUgMjYuMDA4MyAzMC4yOTEzIDI2LjEwOTJMMzkuNzk0IDM0Ljk5MTNDMzkuOTE5MSAzNS4wOTQgMzkuOTk5OSAzNS4yNTU5IDM5Ljk5OTkgMzUuNDM4MUMzOS45OTk5IDM1Ljc0ODEgMzkuNzY1OSAzNS45OTk4IDM5LjQ3NzIgMzUuOTk5OEgzMy4wMDM4QzMyLjg2MTIgMzUuOTk5OCAzMi43MzE2IDM1LjkzODIgMzIuNjM3MyAzNS44Mzg0TDI2LjM0ODggMjkuOTYxNkMyNi4yMzQzIDI5Ljg1NzggMjYuMTYyMSAyOS43MDM5IDI2LjE2MjEgMjkuNTMxMUMyNi4xNjIxIDI5LjM4NTkgMjYuMjEzNiAyOS4yNTM2IDI2LjI5NzggMjkuMTUzOUwyOS41MzQ0IDI2LjEyOTJDMjkuNjMgMjYuMDE2NiAyOS43NjgxIDI1Ljk0NTYgMjkuOTIxNiAyNS45NDU2Wk0zOS40NzcyIDEyQzM5Ljc2NTkgMTIgMzkuOTk5OSAxMi4yNTE4IDM5Ljk5OTkgMTIuNTYxN0MzOS45OTk5IDEyLjc0MzkgMzkuOTE5MSAxMi45MDU2IDM5Ljc5NCAxMy4wMDgyTDMwLjI5MTMgMjEuODkwM0MzMC4xOTY1IDIxLjk5MTUgMzAuMDY2MSAyMi4wNTQzIDI5LjkyMTYgMjIuMDU0M0MyOS43NjgxIDIyLjA1NDMgMjkuNjMgMjEuOTgzNSAyOS41MzQ0IDIxLjg3MDZMMjYuMjk3OCAxOC44NDZDMjYuMjEzNiAxOC43NDYyIDI2LjE2MjEgMTguNjEzOSAyNi4xNjIxIDE4LjQ2ODdDMjYuMTYyMSAxOC4yOTYyIDI2LjIzNDMgMTguMTQyIDI2LjM0ODggMTguMDM4NUwzMi42MzczIDEyLjE2MTFDMzIuNzMxNiAxMi4wNjE2IDMyLjg2MTIgMTIgMzMuMDAzOCAxMkgzOS40NzcyWiIgZmlsbD0iIzc4NTVGQSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTE1LjM1NzUgMzUuODUyM0MxNS4yNjQ1IDM1Ljk0MzUgMTUuMTQwNSAzNiAxNS4wMDQzIDM2SDguNTIyNjVDOC4yMzM5NyAzNiA4IDM1Ljc0ODIgOCAzNS40MzhDOCAzNS4yODMyIDguMDU4NDMgMzUuMTQyOSA4LjE1Mjk3IDM1LjA0MTZMMTkuNTExMSAyNC40MjkxQzE5LjYyNSAyNC4zMjYyIDE5LjY5NzIgMjQuMTcxOSAxOS42OTcyIDIzLjk5OTRDMTkuNjk3MiAyMy44MzYzIDE5LjYzMjQgMjMuNjg5OCAxOS41Mjk0IDIzLjU4NzRMOC4xODUxMSAxMi45OUM4LjA3MTcxIDEyLjg4NyA4IDEyLjczMzYgOCAxMi41NjE3QzggMTIuMjUxOCA4LjIzMzk3IDEyIDguNTIyNjUgMTJIMTUuMDA0M0MxNS4xNDEgMTIgMTUuMjY1NiAxMi4wNTYyIDE1LjM1ODUgMTIuMTQ4M0wyNy41ODYxIDIzLjU3NTdDMjcuNjk2OSAyMy42Nzg0IDI3Ljc2NjcgMjMuODI5OCAyNy43NjY3IDIzLjk5OTRDMjcuNzY2NyAyNC4xNjk0IDI3LjY5NjYgMjQuMzIxOSAyNy41ODUzIDI0LjQyNTFMMTUuMzU3NSAzNS44NTIzWiIgZmlsbD0iIzc4NTVGQSIvPgo8L2c+CjxkZWZzPgo8Y2xpcFBhdGggaWQ9ImNsaXAwXzI2MTlfMTEwMzUiPgo8cmVjdCB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIGZpbGw9IndoaXRlIi8+CjwvY2xpcFBhdGg+CjwvZGVmcz4KPC9zdmc+Cg== diff --git a/services/rook-ceph-cluster/1.15.5/objectbucketclaims/extra-images.txt b/services/rook-ceph-cluster/1.15.5/objectbucketclaims/extra-images.txt index 6767299712..2864f0b630 100644 --- a/services/rook-ceph-cluster/1.15.5/objectbucketclaims/extra-images.txt +++ b/services/rook-ceph-cluster/1.15.5/objectbucketclaims/extra-images.txt @@ -1,2 +1,2 @@ quay.io/ceph/cosi:v0.1.2 -gcr.io/k8s-staging-sig-storage/objectstorage-sidecar:v20240513-v0.1.0-35-gefb3255 +gcr.io/k8s-staging-sig-storage/objectstorage-sidecar:v20250117-a29e5f6