diff --git a/PRD.md b/PRD.md index b510d293..afe3acfa 100644 --- a/PRD.md +++ b/PRD.md @@ -61,7 +61,7 @@ Three cluster profiles with inheritance-based resource optimization: - Single replica deployments (ArgoCD, Redis, etc.) - Reduced resource limits (ArgoCD controller: 2 CPU, 2Gi RAM) - Adds kyverno-policies-storage-local-path for RWX→RWO PVC mutation -- MinIO tenant: 2Ti storage, single server +- SeaweedFS volume storage: 2Ti, single volume server - Mix of local-path and direct storage classes - Suitable for: Local workstations, development environments @@ -69,14 +69,14 @@ Three cluster profiles with inheritance-based resource optimization: - Single replica with moderate resource allocation - Same storage policies as small (local-path support) - ArgoCD controller: 1 CPU, 2Gi RAM -- MinIO tenant: 2Ti storage +- SeaweedFS volume storage: 2Ti - Uses direct storage class consistently - Suitable for: Small teams, staging environments **Large Clusters** (10s-100s users, enterprise scale): - OpenBao HA: 3 replicas with Raft consensus - No local-path policies (assumes distributed storage like Longhorn) -- MinIO tenant: 500Gi storage +- SeaweedFS volume storage: 500Gi - Production-grade resource allocation - Uses direct storage class for all persistent volumes - Suitable for: Production deployments, multi-tenant environments @@ -130,8 +130,8 @@ The cluster-forge Application uses multi-source feature when externalValues.enab *Storage & Database:* - CNPG Operator 0.26.0 - CloudNativePG PostgreSQL operator -- MinIO Operator 7.1.1 - S3-compatible object storage operator -- MinIO Tenant 7.1.1 - Tenant deployment with default-bucket and models buckets +- SeaweedFS Operator - S3-compatible object storage operator +- SeaweedFS Config - S3 storage deployment with default-bucket, models, and datasets buckets **Layer 3: Observability** (Sync Wave -5 to -2) - Prometheus Operator CRDs 23.0.0 - Metrics infrastructure @@ -145,7 +145,8 @@ The cluster-forge Application uses multi-source feature when externalValues.enab - Keycloak (keycloak-old chart) - Enterprise IAM with AIRM realm - Custom extensions via init containers (SilogenExtensionPackage.jar) - Realm import with domain-group-authenticator - - Client secrets for: AIRM, K8s, MinIO, Gitea, ArgoCD + - Client secrets for: AIRM, K8s, S3 (SeaweedFS), Gitea, ArgoCD + - Note: S3 credentials in OpenBao still use "minio-*" paths for backward compatibility **Layer 5: AI/ML Compute Stack** (Sync Wave -3 to 0) @@ -350,7 +351,7 @@ Each major component has -config variant: - argocd-config: OIDC integration, RBAC policies, ExternalSecrets - gitea-config: Keycloak OAuth, repository templates - openbao-config: Policy definitions, secret paths, initialization scripts -- minio-tenant-config: Bucket policies, user credentials, gateway routes +- seaweedfs-config: S3 configuration, user credentials, gateway routes, bucket initialization ### Secrets Management Architecture @@ -413,7 +414,7 @@ scripts/utils/import_rabbitmq.sh # Restore queues and exchanges **Object Storage:** ```bash -scripts/utils/mirror_minio.sh # MinIO bucket synchronization +scripts/utils/mirror-minio-to-seaweedfs-job.yaml # MinIO to SeaweedFS migration job ``` ### Observability Stack @@ -458,7 +459,7 @@ Kueue manages scheduling for: - KServe Standard deployment mode - InferenceService CRD for models - Auto-scaling with KEDA -- S3 model storage via MinIO +- S3 model storage via SeaweedFS **GPU Support:** - AMD GPU Operator for device plugin diff --git a/README.md b/README.md index 7160631d..1cf1bee9 100644 --- a/README.md +++ b/README.md @@ -104,8 +104,8 @@ See [Values Inheritance Pattern](docs/values_inheritance_pattern.md) for detaile **Storage & Database:** - **CNPG Operator 0.26.0** - CloudNativePG PostgreSQL operator -- **MinIO Operator 7.1.1** - S3-compatible object storage operator -- **MinIO Tenant 7.1.1** - Tenant deployment with default-bucket and models buckets +- **SeaweedFS Operator** - S3-compatible object storage operator +- **SeaweedFS Config** - S3 storage deployment with default-bucket, models, and datasets buckets ### Layer 3: Observability - **Prometheus Operator CRDs 23.0.0** - Metrics infrastructure @@ -147,7 +147,7 @@ Three cluster profiles with inheritance-based resource optimization: - Single replica deployments - Reduced resource limits (ArgoCD controller: 2 CPU, 4Gi RAM) - Adds kyverno-policies-storage-local-path for RWX→RWO PVC mutation -- MinIO tenant: 250Gi storage +- SeaweedFS volume storage: 250Gi - Suitable for: Local workstations, development environments **Medium Clusters** (5-20 users, team production): @@ -162,7 +162,7 @@ Three cluster profiles with inheritance-based resource optimization: - Requires a minimum of 20 CPU cores - OpenBao HA: 3 replicas with Raft consensus - No local-path policies (assumes distributed storage) -- MinIO tenant: 500Gi storage +- SeaweedFS volume storage: 500Gi - Production-grade resource allocation - Suitable for: Production deployments, multi-tenant environments diff --git a/docs/backup_and_restore.md b/docs/backup_and_restore.md index 13503a5c..61a5a830 100644 --- a/docs/backup_and_restore.md +++ b/docs/backup_and_restore.md @@ -10,7 +10,7 @@ This document covers backup and restore procedures for: 1. [Database Backup & Restore (AMD Resource Manager & Keycloak)](#1-cnpg-cloudnative-postgres-backup--restore) 2. [RabbitMQ Backup & Restore](#2-rabbitmq-backup--restore) - 3. [MinIO Backup & Restore (Bucket replication and one-off filesystem backup)](#3-minio-backup--restore) + 3. [SeaweedFS Backup & Restore (S3-compatible object storage - bucket replication and one-off filesystem backup)](#3-seaweedfs-backup--restore) 4. [Longhorn Backup & Restore](#4-longhorn-backup--restore) **Note:** Each detailed command file includes specific prerequisites for that backup type. @@ -74,11 +74,11 @@ For a backup & restore example (not officially supported), see: [`backup_restore --- -## 3. MinIO Backup & Restore +## 3. SeaweedFS Backup & Restore ### Overview -MinIO supports two backup strategies: +SeaweedFS S3-compatible storage supports two backup strategies: #### Two-Way Replication (Bucket Replication) **Note:** Bucket replication and site replication are mutually exclusive. @@ -95,13 +95,13 @@ MinIO supports two backup strategies: 2. Create a timestamped backup directory 3. Use `mc mirror` to copy all bucket contents to the backup location 4. Provide verification commands to compare file counts -5. Provide restore commands to mirror files back to MinIO +5. Provide restore commands to mirror files back to SeaweedFS **Benefits:** Point-in-time snapshots stored on separate storage ### Detailed Commands -For a backup & restore example (not officially supported), see:: [`backup_restore_minio.md`](examples/backup_restore_minio.md) +For a backup & restore example (not officially supported), see: [`backup_restore_seaweedfs.md`](examples/backup_restore_seaweedfs.md) --- diff --git a/docs/cluster_size_configuration.md b/docs/cluster_size_configuration.md index 11da7231..9d16b76e 100644 --- a/docs/cluster_size_configuration.md +++ b/docs/cluster_size_configuration.md @@ -40,7 +40,7 @@ cluster-forge/ **Application Configuration**: - **ArgoCD**: Single replica, 2 CPU / 2Gi RAM limits -- **MinIO Tenant**: 2Ti storage, single server +- **SeaweedFS**: 2Ti volume storage, single volume server - **OpenBao**: Single instance (no HA), 5Gi storage - **Storage Policies**: Includes `kyverno-policies-storage-local-path` for RWX→RWO conversion - **Storage Classes**: Mix of local-path and direct storage classes @@ -61,7 +61,7 @@ cluster-forge/ **Application Configuration**: - **ArgoCD**: Single replica, 1 CPU / 2Gi RAM limits -- **MinIO Tenant**: 2Ti storage, single server +- **SeaweedFS**: 2Ti volume storage, single volume server - **OpenBao**: Single instance (no HA), 5Gi storage - **Storage Policies**: Includes `kyverno-policies-storage-local-path` for RWX→RWO conversion - **Storage Classes**: Direct storage class consistently @@ -82,7 +82,7 @@ cluster-forge/ **Application Configuration**: - **ArgoCD**: Single replica, production-ready resources -- **MinIO Tenant**: 500Gi storage, single server (external HA S3 recommended) +- **SeaweedFS**: 500Gi volume storage, single volume server (external HA S3 recommended) - **OpenBao**: 3 replicas with Raft HA consensus - **Storage Policies**: No local-path policies (assumes distributed storage) - **OTEL LGTM Stack**: 50Gi storage per component (Tempo, Loki, Mimir), 10Gi Grafana @@ -149,13 +149,13 @@ Later values override earlier ones, allowing size files to contain only the diff | KEDA | Base config | Base config | Base config | Event-driven autoscaling | | KServe | Base config | Base config | Base config | ML model serving | | Kyverno | Base policies | Base + storage-local-path | Base policies only | Policy engine | -### MinIO Tenant Scaling +### SeaweedFS Scaling -| Size | Servers | Storage | Buckets | Notes | -|------|---------|---------|---------|-------| -| Small | 1 | 2Ti | default-bucket, models | Single server, local-path storage | -| Medium | 1 | 2Ti | default-bucket, models | Single server, direct storage | -| Large | 1 | 500Gi | default-bucket, models | Single server, external HA S3 recommended | +| Size | Volume Servers | Storage | Buckets | Notes | +|------|----------------|---------|---------|-------| +| Small | 1 | 2Ti | default-bucket, models, datasets | Single volume server, local-path storage | +| Medium | 1 | 2Ti | default-bucket, models, datasets | Single volume server, direct storage | +| Large | 1 | 500Gi | default-bucket, models, datasets | Single volume server, external HA S3 recommended | ### OpenBao Scaling diff --git a/docs/examples/backup_restore_minio.md b/docs/examples/backup_restore_seaweedfs.md similarity index 63% rename from docs/examples/backup_restore_minio.md rename to docs/examples/backup_restore_seaweedfs.md index 85c04eb9..47259e94 100644 --- a/docs/examples/backup_restore_minio.md +++ b/docs/examples/backup_restore_seaweedfs.md @@ -1,6 +1,6 @@ -# MinIO Backup & Restore Commands +# SeaweedFS Backup & Restore Commands -This document provides the step-by-step commands for MinIO backup and restore operations. +This document provides the step-by-step commands for SeaweedFS backup and restore operations. ⚠️ Important Disclaimers - This is only an example script only, adjust paths and commands as needed for your system. @@ -12,11 +12,11 @@ This document provides the step-by-step commands for MinIO backup and restore op ## Prerequisites - Shell access to a machine with `kubectl` configured for the target Kubernetes cluster -- MinIO client (`mc`) installed on your local machine, **OR** access to run commands inside the `minio` pod in the MinIO tenant namespace +- MinIO client (`mc`) installed on your local machine (SeaweedFS S3 API is compatible with `mc`) - To install `mc` locally: [https://min.io/docs/minio/linux/reference/minio-mc.html](https://min.io/docs/minio/linux/reference/minio-mc.html) - - To run inside the pod: `kubectl exec -it -n -- sh` + - The MinIO client works with any S3-compatible storage, including SeaweedFS - For NFS backups: Access to mount NFS shares (requires `sudo` privileges) -- For bucket replication: Access to both source and destination MinIO endpoints +- For bucket replication: Access to both source and destination S3-compatible endpoints - The `jq` command-line JSON processor (for replication resync commands) ## 1. Setup Two-Way Replication (Bucket replication) @@ -25,15 +25,16 @@ This document provides the step-by-step commands for MinIO backup and restore op These commands are run from a local machine with MinIO client (`mc`) installed. -### Step 1: Configure MinIO Aliases +### Step 1: Configure S3 Aliases ```bash -# Set up source and destination MinIO endpoints -# Replace SOURCE_MINIO_ENDPOINT, DEST_MINIO_ENDPOINT, ACCESS_KEY, and SECRET_KEY with your values -mc alias set source https://SOURCE_MINIO_ENDPOINT/ ACCESS_KEY SECRET_KEY -mc alias set dest https://DEST_MINIO_ENDPOINT/ ACCESS_KEY SECRET_KEY - -# Example: -# mc alias set dest https://minio.\/ myuser mypassword +# Set up source and destination S3 endpoints +# Replace SOURCE_S3_ENDPOINT, DEST_S3_ENDPOINT, ACCESS_KEY, and SECRET_KEY with your values +mc alias set source https://SOURCE_S3_ENDPOINT/ ACCESS_KEY SECRET_KEY +mc alias set dest https://DEST_S3_ENDPOINT/ ACCESS_KEY SECRET_KEY + +# Example for SeaweedFS: +# mc alias set source https://seaweed.\/ myuser mypassword +# mc alias set dest https://seaweed-backup.\/ myuser mypassword ``` ### Step 2: Enable Versioning (Required for Replication) @@ -58,9 +59,9 @@ mc replicate add dest/DEST_BUCKET_NAME/ \ --remote-bucket 'https://ACCESS_KEY:SECRET_KEY@SOURCE_MINIO_ENDPOINT/SOURCE_BUCKET_NAME' \ --replicate "delete,delete-marker,existing-objects" -# Example: +# Example for SeaweedFS: # mc replicate add source/my-source-bucket/ \ -# --remote-bucket 'https://myuser:mypassword@minio.example.com/my-dest-bucket' \ +# --remote-bucket 'https://myuser:mypassword@seaweed.example.com/my-dest-bucket' \ # --replicate "delete,delete-marker,existing-objects" ``` @@ -74,54 +75,54 @@ mc replicate resync start dest/DEST_BUCKET_NAME/ --remote-bucket $(mc replicate # mc replicate resync start dest/my-dest-bucket/ --remote-bucket $(mc replicate status dest/my-dest-bucket/ --json | jq -r '.remoteTargets[].arn') ``` -## 2. MinIO One-Time Backup to Filesystem (e.g. local or NFS) +## 2. SeaweedFS One-Time Backup to Filesystem (e.g. local or NFS) **Note:** This example uses NFS. If using local filesystem, skip the mount steps. ### Create mount point ```bash # Creates the directory where NFS will be mounted -sudo mkdir -p /mnt/minio-backup +sudo mkdir -p /mnt/s3-backup ``` ### Mount NFS share ```bash # Mounts the NFS share to the local directory -# Replace NFS_SERVER and /path/to/minio/backup with your NFS server details -sudo mount -t nfs NFS_SERVER:/path/to/minio/backup /mnt/minio-backup +# Replace NFS_SERVER and /path/to/s3/backup with your NFS server details +sudo mount -t nfs NFS_SERVER:/path/to/s3/backup /mnt/s3-backup ``` ### Create Backup ```bash # Create backup directory with timestamp # This creates a unique directory for this backup using current date and time -mkdir -p /mnt/minio-backup/backup-$(date +%Y-%m-%d_%H-%M) +mkdir -p /mnt/s3-backup/backup-$(date +%Y-%m-%d_%H-%M) -# Set up source MinIO endpoints -# Use "CONSOLE_ACCESS_KEY" from the default-user secret (has required permissions) -mc alias set source https://SOURCE_MINIO_ENDPOINT/ ACCESS_KEY SECRET_KEY +# Set up source SeaweedFS S3 endpoint +# Get credentials from the seaweedfs-s3-config secret (ApiUser identity) +mc alias set source https://SOURCE_S3_ENDPOINT/ ACCESS_KEY SECRET_KEY -# Example: -# mc alias set source https://minio.\/ myuser mypassword +# Example for in-cluster SeaweedFS: +# mc alias set source https://seaweed.\/ myuser mypassword # Mirror bucket contents to NFS -# This copies all files from the MinIO bucket to the NFS backup location -mc mirror source/BUCKET_NAME/ /mnt/minio-backup/backup-$(date +%Y-%m-%d_%H-%M)/BUCKET_NAME/ --overwrite +# This copies all files from the S3 bucket to the NFS backup location +mc mirror source/BUCKET_NAME/ /mnt/s3-backup/backup-$(date +%Y-%m-%d_%H-%M)/BUCKET_NAME/ --overwrite # Example: -# mc mirror source/default-bucket/ /mnt/minio-backup/backup-$(date +%Y-%m-%d_%H-%M)/default-bucket/ --overwrite +# mc mirror source/default-bucket/ /mnt/s3-backup/backup-$(date +%Y-%m-%d_%H-%M)/default-bucket/ --overwrite # Unmount when done # Safely disconnects the NFS share -sudo umount /mnt/minio-backup +sudo umount /mnt/s3-backup ``` ### Verify Backup ```bash # Re-mount and check # Reconnects to the NFS share to verify the backup -sudo mount -t nfs NFS_SERVER:/path/to/minio/backup /mnt/minio-backup -ls -la /mnt/minio-backup/backup-YYYY-MM-DD_HH-MM/BUCKET_NAME/ +sudo mount -t nfs NFS_SERVER:/path/to/s3/backup /mnt/s3-backup +ls -la /mnt/s3-backup/backup-YYYY-MM-DD_HH-MM/BUCKET_NAME/ # Compare file counts # Verify the backup by comparing the number of files @@ -129,26 +130,26 @@ ls -la /mnt/minio-backup/backup-YYYY-MM-DD_HH-MM/BUCKET_NAME/ mc ls --recursive source/BUCKET_NAME/ | wc -l # Check backup -find /mnt/minio-backup/backup-YYYY-MM-DD_HH-MM/BUCKET_NAME/ -type f | wc -l +find /mnt/s3-backup/backup-YYYY-MM-DD_HH-MM/BUCKET_NAME/ -type f | wc -l ``` ### Restore from NFS Backup ```bash # Mount NFS share # Connects to the NFS share containing backups -sudo mount -t nfs NFS_SERVER:/path/to/minio/backup /mnt/minio-backup +sudo mount -t nfs NFS_SERVER:/path/to/s3/backup /mnt/s3-backup # List available backups # Shows all backup directories to help you choose which one to restore -ls -la /mnt/minio-backup/ +ls -la /mnt/s3-backup/ # Restore from specific backup date -# Mirrors files from the backup back to the MinIO bucket +# Mirrors files from the backup back to the S3 bucket # Replace YYYY-MM-DD_HH-MM with your actual backup directory name -mc mirror /mnt/minio-backup/backup-YYYY-MM-DD_HH-MM/BUCKET_NAME/ source/BUCKET_NAME/ --overwrite +mc mirror /mnt/s3-backup/backup-YYYY-MM-DD_HH-MM/BUCKET_NAME/ source/BUCKET_NAME/ --overwrite # Example: -# mc mirror /mnt/minio-backup/backup-2024-11-24_14-30/default-bucket/ source/default-bucket/ --overwrite +# mc mirror /mnt/s3-backup/backup-2024-11-24_14-30/default-bucket/ source/default-bucket/ --overwrite # Verify restoration # Lists files in the bucket to confirm restoration @@ -156,13 +157,13 @@ mc ls source/BUCKET_NAME/ # Unmount when done # Safely disconnects the NFS share -sudo umount /mnt/minio-backup +sudo umount /mnt/s3-backup ``` ## What These Commands Do **Two-Way Replication:** -1. Sets up aliases for source and destination MinIO endpoints +1. Sets up aliases for source and destination S3-compatible endpoints 2. Enables versioning on both buckets (required for replication) 3. Creates bidirectional replication rules 4. Provides a command to resync from backup when source fails @@ -172,8 +173,10 @@ sudo umount /mnt/minio-backup 2. Creates a timestamped backup directory 3. Uses `mc mirror` to copy all bucket contents to the backup location 4. Provides verification commands to compare file counts -5. Provides restore commands to mirror files back to MinIO +5. Provides restore commands to mirror files back to SeaweedFS **Benefits:** - **Replication:** Continuous, automatic backup with minimal data loss - **One-Time Backup:** Point-in-time snapshots stored on separate storage + +**Note:** SeaweedFS provides S3-compatible storage, so the MinIO client (`mc`) works seamlessly for backup and restore operations. diff --git a/docs/manual_helm_install/README.md b/docs/manual_helm_install/README.md index 0c3c5b2a..eae0504c 100644 --- a/docs/manual_helm_install/README.md +++ b/docs/manual_helm_install/README.md @@ -80,7 +80,7 @@ These components can be replaced with your own implementations: |-----------|-------------------------|-----------------|--------------| | **Database** | CloudNativePG PostgreSQL clusters | ✅ Yes - Any PostgreSQL 14+ | [db.md](components/db.md) | | **Gateway Controller** | kgateway (Gateway API) | ✅ Yes - Any Gateway API controller | [gateway.md](components/gateway.md) | -| **Object Storage** | MinIO | ✅ Yes - Any S3-compatible storage | [s3.md](components/s3.md) | +| **Object Storage** | SeaweedFS | ✅ Yes - Any S3-compatible storage | [s3.md](components/s3.md) | | **StorageClasses** | local-path (rancher.io) | ✅ Yes - Any CSI provisioner | [storage_classes.md](components/storage_classes.md) | | **Secrets Management** | Direct Kubernetes Secrets | ✅ Yes - ExternalSecrets, Vault, etc. | [secrets.md](secrets/secrets.md) | | **LoadBalancer** | MetalLB | ✅ Yes - Cloud LB, HAProxy, etc. | — | @@ -173,7 +173,7 @@ AIWB deployment consists of three phases that must be completed in order: **Components to deploy:** 1. **Namespaces** - - Create required namespaces: `aiwb`, `keycloak`, `workbench`, `minio-tenant-default`, `cluster-auth`, and others + - Create required namespaces: `aiwb`, `keycloak`, `workbench`, `seaweedfs-instance`, `cluster-auth`, and others 2. **Secrets** *[Pluggable]* - Create all required secrets (see [Secrets Reference](#secrets-management)) @@ -192,8 +192,8 @@ AIWB deployment consists of three phases that must be completed in order: 5. **Object Storage** *[Pluggable]* - Required buckets: `default-bucket`, `models`, `datasets` - - Reference: MinIO operator + tenant in `minio-tenant-default` - - Alternative: AWS S3, Azure Blob, GCS, or any S3-compatible service + - Reference: SeaweedFS operator + Seaweed custom resource in `seaweedfs-instance` + - Alternative: AWS S3, Azure Blob, GCS, MinIO, or any S3-compatible service - See [s3.md](components/s3.md) ### Phase 3: Application Layer @@ -250,7 +250,7 @@ See [gateway.md](components/gateway.md) for configuration instructions. ### Object Storage (S3-compatible) -**Reference Implementation:** MinIO operator with a tenant providing three buckets (`default-bucket`, `models`, `datasets`). +**Reference Implementation:** SeaweedFS operator with a Seaweed custom resource providing three buckets (`default-bucket`, `models`, `datasets`). **To use your own S3-compatible storage:** @@ -343,8 +343,8 @@ Complete list of components and their versions: | Component | Version | Namespace | Required | Alternative | |-----------|---------|-----------|----------|-------------| -| MinIO Operator | v7.1.1 | `minio-operator` | ❌ No | AWS S3, Azure Blob, GCS | -| MinIO Tenant | v7.1.1 | `minio-tenant-default` | ❌ No | External S3 service | +| SeaweedFS Operator | latest | `seaweedfs-operator` | ❌ No | AWS S3, Azure Blob, GCS, MinIO | +| SeaweedFS Config | latest | `seaweedfs-instance` | ❌ No | External S3 service | | PostgreSQL (AIWB) | 14+ via CNPG | `aiwb` | ✅ Yes* | External PostgreSQL | | PostgreSQL (Keycloak) | 14+ via CNPG | `keycloak` | ✅ Yes* | External PostgreSQL | diff --git a/docs/manual_helm_install/components/s3.md b/docs/manual_helm_install/components/s3.md index 4f8a0580..3ed15de0 100644 --- a/docs/manual_helm_install/components/s3.md +++ b/docs/manual_helm_install/components/s3.md @@ -1,19 +1,23 @@ -# Object Storage (MinIO / S3) +# Object Storage (SeaweedFS / S3) AIWB and the workbench need an S3-compatible object store. Two deployment modes are supported: -- **In-cluster mode (default)** — install the MinIO Operator, a single-pool - MinIO `Tenant` (`default-minio-tenant`), and the Tenant configuration - chart. +- **In-cluster mode (default)** — install the SeaweedFS Operator and a + `Seaweed` custom resource with master, volume, and filer components. - **Pluggable mode** — point AIWB / workbench at an external S3-compatible endpoint and install an in-cluster redirect Service so consumers that - hardcode the in-cluster MinIO URL still reach the external endpoint. + hardcode the in-cluster SeaweedFS URL still reach the external endpoint. -In both modes the `minio-credentials` Secrets that AIWB / workbench pods -authenticate with live in Kubernetes Secrets that you create with -`kubectl create secret generic`. No static `secrets-*.yaml` file is -required. +In both modes the credential Secrets that AIWB / workbench pods +authenticate with are created via ExternalSecrets from OpenBao (in full +cluster-forge deployments) or via `kubectl create secret generic` (in manual +installations). No static `secrets-*.yaml` file is required. + +**Note on credential compatibility:** For backward compatibility with MinIO, +the secret keys in OpenBao still reference `minio-*` paths (e.g., +`secrets/data/minio-api-access-key`). These same credentials are used by +SeaweedFS via the `seaweedfs-s3-config` secret. These instructions assume you have the cluster-forge sources available locally and that `SOURCES_DIR` points at the `sources/` directory: @@ -23,17 +27,27 @@ git clone --depth 1 https://github.com/silogen/cluster-forge.git /tmp/cluster-fo export SOURCES_DIR=/tmp/cluster-forge/sources ``` -The `aiwb`, `workbench`, and `minio-tenant-default` namespaces must exist +The `aiwb`, `workbench`, and `seaweedfs-instance` namespaces must exist before creating Secrets in them: ```bash -for ns in aiwb workbench minio-tenant-default; do +for ns in aiwb workbench seaweedfs-instance; do kubectl create namespace "$ns" --dry-run=client -o yaml | kubectl apply -f - done ``` ## In-cluster mode (default) +### SeaweedFS Architecture + +SeaweedFS consists of three main components: + +- **Master servers** — Store metadata and coordinate the cluster (default: 1 replica) +- **Volume servers** — Store actual object data (default: 1 replica with 25Gi storage) +- **Filer** — Provides S3 API compatibility and stores file metadata (default: 1 replica with 10Gi metadata storage) + +The filer uses LevelDB2 for metadata storage and exposes the S3 API on port 8333. + ### Environment variables Set these before running the commands below. Defaults are placeholders; @@ -41,123 +55,173 @@ replace for any non-dev install. | Variable | Default | Used for | |---|---|---| -| `MINIO_API_ACCESS_KEY` | `placeholder` | `default-user.API_ACCESS_KEY` + `minio-credentials.minio-access-key` | -| `MINIO_API_SECRET_KEY` | `placeholder` | `default-user.API_SECRET_KEY` + `minio-credentials.minio-secret-key` | -| `MINIO_CONSOLE_ACCESS_KEY` | `placeholder` | `default-user.CONSOLE_ACCESS_KEY` (web console login) | -| `MINIO_CONSOLE_SECRET_KEY` | `placeholder` | `default-user.CONSOLE_SECRET_KEY` | -| `DEFAULT_STORAGE_CLASS_NAME` | `default` | PVC storage class for MinIO Tenant volumes | -| `DOMAIN` | — | Cluster domain (used by the Tenant configuration chart) | - -The API key pair must match across `default-user` (consumed by the Tenant -at bootstrap) and `minio-credentials` (consumed by AIWB / workbench pods), -otherwise AIWB cannot authenticate against the Tenant. Driving both Secrets -from the same `MINIO_API_*` env vars guarantees they stay in sync. +| `S3_API_ACCESS_KEY` | `placeholder` | `seaweedfs-s3-config.ApiUser` credentials | +| `S3_API_SECRET_KEY` | `placeholder` | `seaweedfs-s3-config.ApiUser` credentials | +| `S3_CONSOLE_ACCESS_KEY` | `placeholder` | `seaweedfs-s3-config.Console` credentials (web console login) | +| `S3_CONSOLE_SECRET_KEY` | `placeholder` | `seaweedfs-s3-config.Console` credentials | +| `DEFAULT_STORAGE_CLASS_NAME` | `mlstorage` | PVC storage class for SeaweedFS volumes | +| `DOMAIN` | — | Cluster domain (used by the SeaweedFS configuration chart) | + +The API key pair is used by AIWB / workbench pods to authenticate against the +S3 API. The console key pair is for web UI access. ### 1. Create credential Secrets +For manual installations without OpenBao, create the secrets directly: + ```bash +# Create a properly formatted s3.json config file +cat > /tmp/s3-config.json <` (configured by the `domain` value). + ## Pluggable mode External S3-compatible object storage instead of the in-cluster Operator + -Tenant. The MinIO Operator, Tenant, and Tenant configuration chart are not -installed; only the `minio-credentials` Secrets and an in-cluster redirect -Service are created. +Seaweed resource. The SeaweedFS Operator and Seaweed resource are not +installed; only the credential Secrets and an in-cluster redirect Service +are created. ### Prerequisites -- S3-compatible storage reachable from the cluster (MinIO, AWS S3, GCS via - S3 gateway, etc.) +- S3-compatible storage reachable from the cluster (AWS S3, GCS via S3 + gateway, external MinIO, etc.) - Three buckets pre-created with the exact names AIWB and the workbench expect: - `default-bucket` @@ -169,74 +233,63 @@ Service are created. | Variable | Default | Used for | |---|---|---| -| `MINIO_HOST` | `host.docker.internal` | External MinIO host (used for AIWB `minio.url`) | -| `MINIO_PORT` | `9999` | External MinIO host port | -| `MINIO_HOST_IP` | `192.168.127.254` | IP that backs the redirect Endpoints | -| `MINIO_BUCKET` | `default-bucket` | AIWB default bucket name | -| `MINIO_API_ACCESS_KEY` | `placeholder` | `minio-credentials.minio-access-key` | -| `MINIO_API_SECRET_KEY` | `placeholder` | `minio-credentials.minio-secret-key` | +| `S3_HOST` | `host.docker.internal` | External S3 host (used for AIWB `minio.url`) | +| `S3_PORT` | `9000` | External S3 host port | +| `S3_HOST_IP` | `192.168.127.254` | IP that backs the redirect Endpoints | +| `S3_BUCKET` | `default-bucket` | AIWB default bucket name | +| `S3_API_ACCESS_KEY` | `placeholder` | `minio-credentials.minio-access-key` | +| `S3_API_SECRET_KEY` | `placeholder` | `minio-credentials.minio-secret-key` | -`MINIO_CONSOLE_*` are unused in this mode (no in-cluster Tenant to -bootstrap). The default `MINIO_HOST_IP` matches Rancher Desktop; override -for kind / minikube. +The default `S3_HOST_IP` matches Rancher Desktop; override for kind / minikube. -### 1. Skip the MinIO Operator and Tenant +### 1. Skip the SeaweedFS Operator and Seaweed resource -In pluggable mode the MinIO Operator, Tenant, and Tenant configuration chart -are not installed. The `default-user` Secret is also not needed (no -in-cluster Tenant to bootstrap). +In pluggable mode the SeaweedFS Operator and Seaweed custom resource are not +installed. The `seaweedfs-s3-config` Secret is also not needed (no in-cluster +instance to configure). ### 2. Create credential Secrets ```bash for ns in aiwb workbench; do kubectl create secret generic minio-credentials -n "${ns}" \ - --from-literal=minio-access-key="${MINIO_API_ACCESS_KEY}" \ - --from-literal=minio-secret-key="${MINIO_API_SECRET_KEY}" \ + --from-literal=minio-access-key="${S3_API_ACCESS_KEY}" \ + --from-literal=minio-secret-key="${S3_API_SECRET_KEY}" \ --dry-run=client -o yaml | kubectl apply -f - done ``` ### 3. Create the in-cluster redirect Service -Some in-cluster consumers (e.g. aim-performance via `BUCKET_STORAGE_HOST` -— see `EXTERNAL_FIXES.md`) hardcode the in-cluster MinIO URL. A -selectorless Service + Endpoints pair routes those calls to the external -host: +Some in-cluster consumers (e.g. aim-performance via `BUCKET_STORAGE_HOST`) +hardcode the in-cluster S3 URL. A selectorless Service + Endpoints pair +routes those calls to the external host: ```bash -# Remove any pre-existing minio Service / Endpoints. If a previous install -# ran in in-cluster mode, the MinIO Operator created a selector-backed -# Service named "minio" — applying a selectorless Service on top of it -# produces server-side-apply conflicts. Both deletes are no-ops on a fresh -# cluster thanks to --ignore-not-found. -kubectl delete service minio -n minio-tenant-default --ignore-not-found -kubectl delete endpoints minio -n minio-tenant-default --ignore-not-found - kubectl apply -f - </dev/null 2>&1; then + echo "ERROR: Cannot access MinIO bucket '$SOURCE_BUCKET'" + kubectl patch svc minio -n "$MINIO_NAMESPACE" -p '{"spec":{"type":"ClusterIP"}}' + exit 1 + fi + echo "✓ MinIO connection successful" + + # Configure SeaweedFS target + echo "" + echo "Configuring SeaweedFS target..." + + SEAWEED_ENDPOINT="http://filer-s3.${SEAWEEDFS_NAMESPACE}.svc.cluster.local" + + # Extract SeaweedFS credentials + S3_CONFIG=$(kubectl get secret seaweedfs-s3-config -n "$SEAWEEDFS_NAMESPACE" -o jsonpath='{.data.s3\.json}' | base64 -d) + SEAWEED_USER=$(echo "$S3_CONFIG" | jq -r '.identities[] | select(.name == "ApiUser") | .credentials[0].accessKey') + SEAWEED_PASS=$(echo "$S3_CONFIG" | jq -r '.identities[] | select(.name == "ApiUser") | .credentials[0].secretKey') + + if [ -z "$SEAWEED_USER" ] || [ -z "$SEAWEED_PASS" ]; then + echo "ERROR: Failed to extract SeaweedFS credentials" + exit 1 + fi + + $MC alias set seaweed-target "$SEAWEED_ENDPOINT" "$SEAWEED_USER" "$SEAWEED_PASS" + + # Wait for SeaweedFS to be ready + echo "" + echo "Waiting for SeaweedFS S3 service to be ready..." + for i in {1..30}; do + if $MC ls seaweed-target >/dev/null 2>&1; then + echo "✓ SeaweedFS connection successful" + break + fi + if [ $i -eq 30 ]; then + echo "ERROR: SeaweedFS S3 service not ready after 30 attempts" + exit 1 + fi + echo "Waiting for SeaweedFS S3 to be ready... attempt $i/30" + sleep 2 + done + + # Ensure target bucket exists + echo "" + echo "Ensuring target bucket exists..." + if ! $MC ls seaweed-target/"$TARGET_BUCKET" >/dev/null 2>&1; then + echo "Creating bucket '$TARGET_BUCKET' in SeaweedFS..." + $MC mb seaweed-target/"$TARGET_BUCKET" + else + echo "Bucket '$TARGET_BUCKET' already exists" + fi + + # Mirror buckets + echo "" + echo "=====================================" + echo "Starting mirror operation..." + echo "=====================================" + echo "Source: minio-source/$SOURCE_BUCKET" + echo "Target: seaweed-target/$TARGET_BUCKET" + echo "" + + # Mirror with options: + # --overwrite: Overwrite existing files + # --remove: Remove extraneous files on target + # --preserve: Preserve filesystem attributes (metadata) + $MC mirror minio-source/"$SOURCE_BUCKET" seaweed-target/"$TARGET_BUCKET" \ + --overwrite \ + --preserve + + MIRROR_EXIT_CODE=$? + + echo "" + echo "=====================================" + if [ $MIRROR_EXIT_CODE -eq 0 ]; then + echo "✓ Mirror operation completed successfully!" + else + echo "✗ Mirror operation failed with exit code $MIRROR_EXIT_CODE" + fi + echo "=====================================" + + # Show summary + echo "" + echo "Target bucket contents:" + $MC ls seaweed-target/"$TARGET_BUCKET" + + echo "Cleaning up..." + + # Remove aliases + $MC alias remove minio-source + $MC alias remove seaweed-target + + echo "" + echo "Cleanup complete." + + exit $MIRROR_EXIT_CODE + env: + - name: SOURCE_BUCKET + value: "default-bucket" + - name: TARGET_BUCKET + value: "default-bucket" + - name: MINIO_NAMESPACE + value: "minio-tenant-default" + - name: SEAWEEDFS_NAMESPACE + value: "seaweedfs-instance" diff --git a/sources/airm/0.3.2/charts/airm-api/values.yaml b/sources/airm/0.3.2/charts/airm-api/values.yaml index aa94f11e..2c5aeb40 100644 --- a/sources/airm/0.3.2/charts/airm-api/values.yaml +++ b/sources/airm/0.3.2/charts/airm-api/values.yaml @@ -125,7 +125,7 @@ airm: env: dbPort: 5432 rabbitmqPort: 5672 - minioUrl: http://minio.minio-tenant-default.svc.cluster.local:80 + minioUrl: http://filer-s3.seaweedfs-instance.svc.cluster.local:80 minioBucket: default-bucket prometheusUrl: http://lgtm-stack.otel-lgtm-stack.svc.cluster.local:9090 clusterAuthUrl: http://cluster-auth.cluster-auth.svc.cluster.local:8081 diff --git a/sources/airm/0.3.5/charts/airm-api/values.yaml b/sources/airm/0.3.5/charts/airm-api/values.yaml index 4213af3d..6a964ffa 100644 --- a/sources/airm/0.3.5/charts/airm-api/values.yaml +++ b/sources/airm/0.3.5/charts/airm-api/values.yaml @@ -125,7 +125,7 @@ airm: env: dbPort: 5432 rabbitmqPort: 5672 - minioUrl: http://minio.minio-tenant-default.svc.cluster.local:80 + minioUrl: http://filer-s3.seaweedfs-instance.svc.cluster.local:80 minioBucket: default-bucket prometheusUrl: http://lgtm-stack.otel-lgtm-stack.svc.cluster.local:9090 clusterAuthUrl: http://cluster-auth.cluster-auth.svc.cluster.local:8081 diff --git a/sources/airm/1.0.2/charts/airm-api/files/configure.sh b/sources/airm/1.0.2/charts/airm-api/files/configure.sh index d62ec0d2..db046902 100644 --- a/sources/airm/1.0.2/charts/airm-api/files/configure.sh +++ b/sources/airm/1.0.2/charts/airm-api/files/configure.sh @@ -211,7 +211,7 @@ EOF "type": "S3", "scope": "Organization", "spec": { - "bucket_url": "http://minio.minio-tenant-default.svc.cluster.local:80", + "bucket_url": "http://filer-s3.seaweedfs-instance.svc.cluster.local:80", "access_key_name": "minio-access-key", "secret_key_name": "minio-secret-key" } diff --git a/sources/aiwb/1.0.3/values.yaml b/sources/aiwb/1.0.3/values.yaml index 8892622f..c3968754 100644 --- a/sources/aiwb/1.0.3/values.yaml +++ b/sources/aiwb/1.0.3/values.yaml @@ -142,7 +142,7 @@ keycloak: # MinIO configuration minio: - url: "http://minio.minio-tenant-default.svc.cluster.local:80" + url: "http://filer-s3.seaweedfs-instance.svc.cluster.local:80" bucket: "default-bucket" credentialsSecretName: "minio-credentials" accessKeyKey: "minio-access-key" diff --git a/sources/aiwb/1.0.31/values.yaml b/sources/aiwb/1.0.31/values.yaml index 8892622f..222c378f 100644 --- a/sources/aiwb/1.0.31/values.yaml +++ b/sources/aiwb/1.0.31/values.yaml @@ -141,12 +141,14 @@ keycloak: secretName: "aiwb-ui-keycloak-secret" # MinIO configuration +# S3-compatible object storage configuration +# Note: Section named "minio" for backward compatibility, but uses SeaweedFS minio: - url: "http://minio.minio-tenant-default.svc.cluster.local:80" + url: "http://filer-s3.seaweedfs-instance.svc.cluster.local:80" bucket: "default-bucket" - credentialsSecretName: "minio-credentials" - accessKeyKey: "minio-access-key" - secretKeyKey: "minio-secret-key" + credentialsSecretName: "minio-credentials" # Secret name kept for backward compatibility + accessKeyKey: "minio-access-key" # Key name kept for backward compatibility + secretKeyKey: "minio-secret-key" # Key name kept for backward compatibility # ClusterAuth configuration (for API key management) clusterAuth: diff --git a/sources/eai-infra/aiwb-external-secrets/0.1.2/values.yaml b/sources/eai-infra/aiwb-external-secrets/0.1.2/values.yaml index 2b1192d0..fafcb635 100644 --- a/sources/eai-infra/aiwb-external-secrets/0.1.2/values.yaml +++ b/sources/eai-infra/aiwb-external-secrets/0.1.2/values.yaml @@ -19,11 +19,12 @@ keycloak: secretName: "aiwb-ui-keycloak-secret" userCredentialsSecretName: "aiwb-user-credentials" -# MinIO configuration +# S3-compatible object storage configuration +# Note: Named "minio" for backward compatibility, but used with SeaweedFS minio: - credentialsSecretName: "minio-credentials" - accessKeyKey: "minio-access-key" - secretKeyKey: "minio-secret-key" + credentialsSecretName: "minio-credentials" # Secret name kept for backward compatibility + accessKeyKey: "minio-access-key" # Key name kept for backward compatibility + secretKeyKey: "minio-secret-key" # Key name kept for backward compatibility # ClusterAuth configuration (for API key management) clusterAuth: diff --git a/sources/kaiwo-config/minio-credentials.yaml b/sources/kaiwo-config/minio-credentials.yaml index 27b77136..56ed614f 100644 --- a/sources/kaiwo-config/minio-credentials.yaml +++ b/sources/kaiwo-config/minio-credentials.yaml @@ -1,4 +1,6 @@ --- +# S3 credentials fetcher for Kaiwo +# Note: Named "minio-credentials" for backward compatibility, used with SeaweedFS apiVersion: external-secrets.io/v1beta1 kind: ExternalSecret metadata: diff --git a/sources/keycloak-old/templates/es-keycloak-credentials.yaml b/sources/keycloak-old/templates/es-keycloak-credentials.yaml index d568f64f..4fcba9c1 100644 --- a/sources/keycloak-old/templates/es-keycloak-credentials.yaml +++ b/sources/keycloak-old/templates/es-keycloak-credentials.yaml @@ -5,8 +5,6 @@ kind: ExternalSecret metadata: name: keycloak-credentials namespace: keycloak - annotations: - argocd.argoproj.io/sync-wave: "-15" spec: data: - remoteRef: diff --git a/sources/minio-operator/7.0.0/.helmignore b/sources/minio-operator/7.0.0/.helmignore deleted file mode 100644 index 50af0317..00000000 --- a/sources/minio-operator/7.0.0/.helmignore +++ /dev/null @@ -1,22 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/sources/minio-operator/7.0.0/Chart.yaml b/sources/minio-operator/7.0.0/Chart.yaml deleted file mode 100644 index 4e9eab88..00000000 --- a/sources/minio-operator/7.0.0/Chart.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v2 -appVersion: v7.0.0 -description: A Helm chart for MinIO Operator -home: https://min.io -icon: https://min.io/resources/img/logo/MINIO_wordmark.png -keywords: -- storage -- object-storage -- S3 -maintainers: -- email: dev@minio.io - name: MinIO, Inc -name: operator -sources: -- https://github.com/minio/operator -type: application -version: 7.0.0 diff --git a/sources/minio-operator/7.0.0/README.md b/sources/minio-operator/7.0.0/README.md deleted file mode 100644 index c7e73ec3..00000000 --- a/sources/minio-operator/7.0.0/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# MinIO ![license](https://img.shields.io/badge/license-AGPL%20V3-blue) - -[MinIO](https://min.io) is a High Performance Object Storage released under GNU AGPLv3 or later. It is API compatible -with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics -and application data workloads. - -For more detailed documentation please visit [here](https://docs.minio.io/) - -Introduction ------------- - -This chart bootstraps MinIO Operator on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. - -Configure MinIO Helm repo --------------------- - -```bash -helm repo add minio https://operator.min.io/ -``` - -Installing the Chart --------------------- - -Install this chart using: - -```bash -helm install \ - --namespace minio-operator \ - --create-namespace \ - minio-operator minio/operator -``` - -The command deploys MinIO Operator on the Kubernetes cluster in the default configuration. - -Creating a Tenant ------------------ - -Once the MinIO Operator Chart is successfully installed, create a MinIO Tenant using: - -```bash -helm install --namespace tenant-ns \ - --create-namespace tenant minio/tenant -``` - -This creates a 4 Node MinIO Tenant (cluster). To change the default values, take a look at various [values.yaml](https://github.com/minio/operator/blob/master/helm/tenant/values.yaml). diff --git a/sources/minio-operator/7.0.0/templates/_helpers.tpl b/sources/minio-operator/7.0.0/templates/_helpers.tpl deleted file mode 100644 index 53e96058..00000000 --- a/sources/minio-operator/7.0.0/templates/_helpers.tpl +++ /dev/null @@ -1,37 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "minio-operator.name" -}} - {{- default .Chart.Name | trunc 63 | trimSuffix "-" -}} -{{- end -}} - - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "minio-operator.chart" -}} - {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Common labels for operator -*/}} -{{- define "minio-operator.labels" -}} -helm.sh/chart: {{ include "minio-operator.chart" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- range $key, $val := .Values.operator.additionalLabels }} -{{ $key }}: {{ $val | quote }} -{{- end }} -{{- end -}} - -{{/* -Selector labels Operator -*/}} -{{- define "minio-operator.selectorLabels" -}} -app.kubernetes.io/name: {{ include "minio-operator.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end -}} diff --git a/sources/minio-operator/7.0.0/templates/operator-clusterrole.yaml b/sources/minio-operator/7.0.0/templates/operator-clusterrole.yaml deleted file mode 100644 index 7428beb4..00000000 --- a/sources/minio-operator/7.0.0/templates/operator-clusterrole.yaml +++ /dev/null @@ -1,183 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: minio-operator-role - labels: {{- include "minio-operator.labels" . | nindent 4 }} -rules: - - apiGroups: - - "apiextensions.k8s.io" - resources: - - customresourcedefinitions - verbs: - - get - - update - - apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - get - - update - - list - - apiGroups: - - "" - resources: - - namespaces - - nodes - verbs: - - create - - get - - watch - - list - - apiGroups: - - "" - resources: - - pods - - services - - events - - configmaps - verbs: - - get - - watch - - create - - list - - delete - - deletecollection - - update - - patch - - apiGroups: - - "" - resources: - - secrets - verbs: - - get - - watch - - create - - update - - list - - delete - - deletecollection - - apiGroups: - - "" - resources: - - serviceaccounts - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - rbac.authorization.k8s.io - resources: - - roles - - rolebindings - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - apps - resources: - - statefulsets - - deployments - - deployments/finalizers - verbs: - - get - - create - - list - - patch - - watch - - update - - delete - - apiGroups: - - batch - resources: - - jobs - verbs: - - get - - create - - list - - patch - - watch - - update - - delete - - apiGroups: - - "certificates.k8s.io" - resources: - - "certificatesigningrequests" - - "certificatesigningrequests/approval" - - "certificatesigningrequests/status" - verbs: - - update - - create - - get - - delete - - list - - apiGroups: - - certificates.k8s.io - resourceNames: - - kubernetes.io/legacy-unknown - - kubernetes.io/kube-apiserver-client - - kubernetes.io/kubelet-serving - - beta.eks.amazonaws.com/app-serving - resources: - - signers - verbs: - - approve - - sign - - apiGroups: - - authentication.k8s.io - resources: - - tokenreviews - verbs: - - create - - apiGroups: - - minio.min.io - - sts.min.io - - job.min.io - resources: - - "*" - verbs: - - "*" - - apiGroups: - - min.io - resources: - - "*" - verbs: - - "*" - - apiGroups: - - monitoring.coreos.com - resources: - - prometheuses - - prometheusagents - verbs: - - get - - update - - list - - apiGroups: - - "coordination.k8s.io" - resources: - - leases - verbs: - - get - - update - - create - - apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - create - - delete - - get - - list - - patch - - update - - deletecollection diff --git a/sources/minio-operator/7.0.0/templates/operator-clusterrolebinding.yaml b/sources/minio-operator/7.0.0/templates/operator-clusterrolebinding.yaml deleted file mode 100644 index ad4add53..00000000 --- a/sources/minio-operator/7.0.0/templates/operator-clusterrolebinding.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: minio-operator-binding - labels: {{- include "minio-operator.labels" . | nindent 4 }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: minio-operator-role -subjects: - - kind: ServiceAccount - name: minio-operator - namespace: {{ .Release.Namespace }} diff --git a/sources/minio-operator/7.0.0/templates/operator-deployment.yaml b/sources/minio-operator/7.0.0/templates/operator-deployment.yaml deleted file mode 100644 index 5ffbd317..00000000 --- a/sources/minio-operator/7.0.0/templates/operator-deployment.yaml +++ /dev/null @@ -1,67 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: minio-operator - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} -spec: - replicas: {{ .Values.operator.replicaCount }} - selector: - matchLabels: {{- include "minio-operator.selectorLabels" . | nindent 6 }} - template: - metadata: - labels: - {{- include "minio-operator.labels" . | nindent 8 }} - {{- include "minio-operator.selectorLabels" . | nindent 8 }} - spec: - {{- with .Values.operator.imagePullSecrets }} - imagePullSecrets: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.runtimeClassName }} - runtimeClassName: {{ . }} - {{- end }} - serviceAccountName: minio-operator - {{- with .Values.operator.securityContext }} - securityContext: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.nodeSelector }} - nodeSelector: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.affinity }} - affinity: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.tolerations }} - tolerations: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.topologySpreadConstraints }} - topologySpreadConstraints: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.priorityClassName }} - priorityClassName: {{ . }} - {{- end }} - {{- with .Values.operator.initContainers }} - initContainers: {{- toYaml . | nindent 8 }} - {{- end }} - containers: - - name: {{ .Chart.Name }} - image: "{{ .Values.operator.image.repository }}:{{ .Values.operator.image.digest | default .Values.operator.image.tag }}" - imagePullPolicy: {{ .Values.operator.image.pullPolicy }} - args: - - controller - {{- with .Values.operator.env }} - env: {{- toYaml . | nindent 12 }} - {{- end }} - {{- if .Values.operator.sidecarImage }} - - name: "OPERATOR_SIDECAR_IMAGE" - value: "{{ .Values.operator.sidecarImage.repository }}:{{ .Values.operator.sidecarImage.digest | default .Values.operator.sidecarImage.tag }}" - {{- end }} - resources: {{- toYaml .Values.operator.resources | nindent 12 }} - {{- with .Values.operator.containerSecurityContext }} - securityContext: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.operator.volumeMounts }} - volumeMounts: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.operator.volumes }} - volumes: {{- toYaml . | nindent 8 }} - {{- end }} \ No newline at end of file diff --git a/sources/minio-operator/7.0.0/templates/operator-service.yaml b/sources/minio-operator/7.0.0/templates/operator-service.yaml deleted file mode 100644 index 33f25fbb..00000000 --- a/sources/minio-operator/7.0.0/templates/operator-service.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: operator - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} -spec: - type: ClusterIP - ports: - - port: 4221 - name: http - selector: - operator: leader - {{- include "minio-operator.selectorLabels" . | nindent 4 }} diff --git a/sources/minio-operator/7.0.0/templates/operator-serviceaccount.yaml b/sources/minio-operator/7.0.0/templates/operator-serviceaccount.yaml deleted file mode 100644 index 8ae899da..00000000 --- a/sources/minio-operator/7.0.0/templates/operator-serviceaccount.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: minio-operator - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} - {{- with .Values.operator.serviceAccountAnnotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} diff --git a/sources/minio-operator/7.0.0/templates/sts-service.yaml b/sources/minio-operator/7.0.0/templates/sts-service.yaml deleted file mode 100644 index 51b06a59..00000000 --- a/sources/minio-operator/7.0.0/templates/sts-service.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: sts - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} -spec: - type: ClusterIP - ports: - - port: 4223 - name: https - selector: {{- include "minio-operator.selectorLabels" . | nindent 4 }} diff --git a/sources/minio-operator/7.0.0/templates/sts.min.io_policybindings.yaml b/sources/minio-operator/7.0.0/templates/sts.min.io_policybindings.yaml deleted file mode 100644 index 1dc6be59..00000000 --- a/sources/minio-operator/7.0.0/templates/sts.min.io_policybindings.yaml +++ /dev/null @@ -1,133 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.16.5 - operator.min.io/version: v7.0.0 - name: policybindings.sts.min.io -spec: - group: sts.min.io - names: - kind: PolicyBinding - listKind: PolicyBindingList - plural: policybindings - shortNames: - - policybinding - singular: policybinding - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.currentState - name: State - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - properties: - application: - properties: - namespace: - type: string - serviceaccount: - type: string - required: - - namespace - - serviceaccount - type: object - policies: - items: - type: string - type: array - required: - - application - - policies - type: object - status: - properties: - currentState: - type: string - usage: - nullable: true - properties: - authotizations: - format: int64 - type: integer - type: object - required: - - currentState - - usage - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .status.currentState - name: State - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - properties: - application: - properties: - namespace: - type: string - serviceaccount: - type: string - required: - - namespace - - serviceaccount - type: object - policies: - items: - type: string - type: array - required: - - application - - policies - type: object - status: - properties: - currentState: - type: string - usage: - nullable: true - properties: - authotizations: - format: int64 - type: integer - type: object - required: - - currentState - - usage - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/sources/minio-operator/7.0.0/values.yaml b/sources/minio-operator/7.0.0/values.yaml deleted file mode 100644 index 5d08e8f7..00000000 --- a/sources/minio-operator/7.0.0/values.yaml +++ /dev/null @@ -1,187 +0,0 @@ -### -# Root key for Operator Helm Chart -operator: - ### - # An array of environment variables to pass to the Operator deployment. - # Pass an empty array to start Operator with defaults. - # - # For example: - # - # .. code-block:: yaml - # - # env: - # - name: CLUSTER_DOMAIN - # value: "cluster.domain" - # - name: WATCHED_NAMESPACE - # value: "" - # - name: MINIO_OPERATOR_RUNTIME - # value: "OpenShift" - # - # See `Operator environment variables `__ for a list of all supported values. - env: - - name: OPERATOR_STS_ENABLED - value: "on" - # An array of additional annotations to be applied to the operator service account - serviceAccountAnnotations: [] - # additional labels to be applied to operator resources - additionalLabels: {} - ### - # Specify the Operator container image to use for the deployment. - # ``image.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v7.0.0 tag. - # The container pulls the image if not already present: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/operator - # tag: v7.0.0 - # pullPolicy: IfNotPresent - # - # The chart also supports specifying an image based on digest value: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/operator@sha256 - # digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983 - # pullPolicy: IfNotPresent - # - image: - repository: quay.io/minio/operator - tag: v7.0.0 - pullPolicy: IfNotPresent - ### - # Specify the sidecar container image to deploy on tenant pods for init container and sidecar. - # Only need to change this if want to use a different version that the default, or want to set a custom registry. - # ``sidecarImage.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator-sidecar`` repo and the v7.0.0 tag. - # The container pulls the image if not already present: - # - # .. code-block:: yaml - # - # sidecarImage: - # repository: quay.io/minio/operator-sidecar - # tag: v7.0.0 - # pullPolicy: IfNotPresent - # - # The chart also supports specifying an image based on digest value: - # - # .. code-block:: yaml - # - # sidecarImage: - # repository: quay.io/minio/operator-sidecar@sha256 - # digest: a11947a230b80fb1b0bffa97173147a505d4f1207958f722e348d11ab9e972c1 - # pullPolicy: IfNotPresent - # - sidecarImage: {} - ### - # - # An array of Kubernetes secrets to use for pulling images from a private ``image.repository``. - # Only one array element is supported at this time. - imagePullSecrets: [ ] - ### - # - # The name of a custom `Container Runtime `__ to use for the Operator pods. - runtimeClassName: ~ - ### - # An array of `initContainers `__ to start up before the Operator pods. - # Exercise care as ``initContainer`` failures prevent Operator pods from starting. - # Pass an empty array to start the Operator normally. - initContainers: [ ] - ### - # The number of Operator pods to deploy. - # Higher values increase availability in the event of worker node failures. - # - # The cluster must have sufficient number of available worker nodes to fulfill the request. - # Operator pods deploy with pod anti-affinity by default, preventing Kubernetes from scheduling multiple pods onto a single Worker node. - replicaCount: 2 - ### - # The Kubernetes `SecurityContext `__ to use for deploying Operator resources. - # - # You may need to modify these values to meet your cluster's security and access settings. - securityContext: - runAsUser: 1000 - runAsGroup: 1000 - runAsNonRoot: true - fsGroup: 1000 - ### - # The Kubernetes `SecurityContext `__ to use for deploying Operator containers. - # You may need to modify these values to meet your cluster's security and access settings. - containerSecurityContext: - runAsUser: 1000 - runAsGroup: 1000 - runAsNonRoot: true - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - ### - # An array of `Volumes `__ which the Operator can mount to pods. - # - # The volumes must exist *and* be accessible to the Operator pods. - volumes: [ ] - ### - # An array of volume mount points associated to each Operator container. - # - # Specify each item in the array as follows: - # - # .. code-block:: yaml - # - # volumeMounts: - # - name: volumename - # mountPath: /path/to/mount - # - # The ``name`` field must correspond to an entry in the ``volumes`` array. - volumeMounts: [ ] - ### - # Any `Node Selectors `__ to apply to Operator pods. - # - # The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Operator pods. - # - # If no worker nodes match the specified selectors, the Operator deployment will fail. - nodeSelector: { } - ### - # - # The `Pod Priority `__ to assign to Operator pods. - priorityClassName: "" - ### - # - # The `affinity `__ or anti-affinity settings to apply to Operator pods. - # - # These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes. - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchExpressions: - - key: name - operator: In - values: - - minio-operator - topologyKey: kubernetes.io/hostname - ### - # - # An array of `Toleration labels `__ to associate to Operator pods. - # - # These settings determine the distribution of pods across worker nodes. - tolerations: [ ] - ### - # - # An array of `Topology Spread Constraints `__ to associate to Operator pods. - # - # These settings determine the distribution of pods across worker nodes. - topologySpreadConstraints: [ ] - ### - # - # The `Requests or Limits `__ for resources to associate to Operator pods. - # - # These settings can control the minimum and maximum resources requested for each pod. - # If no worker nodes can meet the specified requests, the Operator may fail to deploy. - resources: - requests: - cpu: 200m - memory: 256Mi - ephemeral-storage: 500Mi diff --git a/sources/minio-operator/7.1.1/.helmignore b/sources/minio-operator/7.1.1/.helmignore deleted file mode 100644 index 50af0317..00000000 --- a/sources/minio-operator/7.1.1/.helmignore +++ /dev/null @@ -1,22 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/sources/minio-operator/7.1.1/Chart.yaml b/sources/minio-operator/7.1.1/Chart.yaml deleted file mode 100644 index e4329bea..00000000 --- a/sources/minio-operator/7.1.1/Chart.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v2 -appVersion: v7.1.1 -description: A Helm chart for MinIO Operator -home: https://min.io -icon: https://min.io/resources/img/logo/MINIO_wordmark.png -keywords: -- storage -- object-storage -- S3 -maintainers: -- email: dev@minio.io - name: MinIO, Inc -name: operator -sources: -- https://github.com/minio/operator -type: application -version: 7.1.1 diff --git a/sources/minio-operator/7.1.1/README.md b/sources/minio-operator/7.1.1/README.md deleted file mode 100644 index c7e73ec3..00000000 --- a/sources/minio-operator/7.1.1/README.md +++ /dev/null @@ -1,45 +0,0 @@ -# MinIO ![license](https://img.shields.io/badge/license-AGPL%20V3-blue) - -[MinIO](https://min.io) is a High Performance Object Storage released under GNU AGPLv3 or later. It is API compatible -with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics -and application data workloads. - -For more detailed documentation please visit [here](https://docs.minio.io/) - -Introduction ------------- - -This chart bootstraps MinIO Operator on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. - -Configure MinIO Helm repo --------------------- - -```bash -helm repo add minio https://operator.min.io/ -``` - -Installing the Chart --------------------- - -Install this chart using: - -```bash -helm install \ - --namespace minio-operator \ - --create-namespace \ - minio-operator minio/operator -``` - -The command deploys MinIO Operator on the Kubernetes cluster in the default configuration. - -Creating a Tenant ------------------ - -Once the MinIO Operator Chart is successfully installed, create a MinIO Tenant using: - -```bash -helm install --namespace tenant-ns \ - --create-namespace tenant minio/tenant -``` - -This creates a 4 Node MinIO Tenant (cluster). To change the default values, take a look at various [values.yaml](https://github.com/minio/operator/blob/master/helm/tenant/values.yaml). diff --git a/sources/minio-operator/7.1.1/templates/_helpers.tpl b/sources/minio-operator/7.1.1/templates/_helpers.tpl deleted file mode 100644 index 53e96058..00000000 --- a/sources/minio-operator/7.1.1/templates/_helpers.tpl +++ /dev/null @@ -1,37 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Expand the name of the chart. -*/}} -{{- define "minio-operator.name" -}} - {{- default .Chart.Name | trunc 63 | trimSuffix "-" -}} -{{- end -}} - - -{{/* -Create chart name and version as used by the chart label. -*/}} -{{- define "minio-operator.chart" -}} - {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} -{{- end -}} - -{{/* -Common labels for operator -*/}} -{{- define "minio-operator.labels" -}} -helm.sh/chart: {{ include "minio-operator.chart" . }} -{{- if .Chart.AppVersion }} -app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} -{{- end }} -app.kubernetes.io/managed-by: {{ .Release.Service }} -{{- range $key, $val := .Values.operator.additionalLabels }} -{{ $key }}: {{ $val | quote }} -{{- end }} -{{- end -}} - -{{/* -Selector labels Operator -*/}} -{{- define "minio-operator.selectorLabels" -}} -app.kubernetes.io/name: {{ include "minio-operator.name" . }} -app.kubernetes.io/instance: {{ .Release.Name }} -{{- end -}} diff --git a/sources/minio-operator/7.1.1/templates/operator-clusterrole.yaml b/sources/minio-operator/7.1.1/templates/operator-clusterrole.yaml deleted file mode 100644 index 7428beb4..00000000 --- a/sources/minio-operator/7.1.1/templates/operator-clusterrole.yaml +++ /dev/null @@ -1,183 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: minio-operator-role - labels: {{- include "minio-operator.labels" . | nindent 4 }} -rules: - - apiGroups: - - "apiextensions.k8s.io" - resources: - - customresourcedefinitions - verbs: - - get - - update - - apiGroups: - - "" - resources: - - persistentvolumeclaims - verbs: - - get - - update - - list - - apiGroups: - - "" - resources: - - namespaces - - nodes - verbs: - - create - - get - - watch - - list - - apiGroups: - - "" - resources: - - pods - - services - - events - - configmaps - verbs: - - get - - watch - - create - - list - - delete - - deletecollection - - update - - patch - - apiGroups: - - "" - resources: - - secrets - verbs: - - get - - watch - - create - - update - - list - - delete - - deletecollection - - apiGroups: - - "" - resources: - - serviceaccounts - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - rbac.authorization.k8s.io - resources: - - roles - - rolebindings - verbs: - - create - - delete - - get - - list - - patch - - update - - watch - - apiGroups: - - apps - resources: - - statefulsets - - deployments - - deployments/finalizers - verbs: - - get - - create - - list - - patch - - watch - - update - - delete - - apiGroups: - - batch - resources: - - jobs - verbs: - - get - - create - - list - - patch - - watch - - update - - delete - - apiGroups: - - "certificates.k8s.io" - resources: - - "certificatesigningrequests" - - "certificatesigningrequests/approval" - - "certificatesigningrequests/status" - verbs: - - update - - create - - get - - delete - - list - - apiGroups: - - certificates.k8s.io - resourceNames: - - kubernetes.io/legacy-unknown - - kubernetes.io/kube-apiserver-client - - kubernetes.io/kubelet-serving - - beta.eks.amazonaws.com/app-serving - resources: - - signers - verbs: - - approve - - sign - - apiGroups: - - authentication.k8s.io - resources: - - tokenreviews - verbs: - - create - - apiGroups: - - minio.min.io - - sts.min.io - - job.min.io - resources: - - "*" - verbs: - - "*" - - apiGroups: - - min.io - resources: - - "*" - verbs: - - "*" - - apiGroups: - - monitoring.coreos.com - resources: - - prometheuses - - prometheusagents - verbs: - - get - - update - - list - - apiGroups: - - "coordination.k8s.io" - resources: - - leases - verbs: - - get - - update - - create - - apiGroups: - - policy - resources: - - poddisruptionbudgets - verbs: - - create - - delete - - get - - list - - patch - - update - - deletecollection diff --git a/sources/minio-operator/7.1.1/templates/operator-clusterrolebinding.yaml b/sources/minio-operator/7.1.1/templates/operator-clusterrolebinding.yaml deleted file mode 100644 index ad4add53..00000000 --- a/sources/minio-operator/7.1.1/templates/operator-clusterrolebinding.yaml +++ /dev/null @@ -1,13 +0,0 @@ -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: minio-operator-binding - labels: {{- include "minio-operator.labels" . | nindent 4 }} -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: minio-operator-role -subjects: - - kind: ServiceAccount - name: minio-operator - namespace: {{ .Release.Namespace }} diff --git a/sources/minio-operator/7.1.1/templates/operator-deployment.yaml b/sources/minio-operator/7.1.1/templates/operator-deployment.yaml deleted file mode 100644 index 32d12c8a..00000000 --- a/sources/minio-operator/7.1.1/templates/operator-deployment.yaml +++ /dev/null @@ -1,68 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: minio-operator - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} -spec: - replicas: {{ .Values.operator.replicaCount }} - selector: - matchLabels: {{- include "minio-operator.selectorLabels" . | nindent 6 }} - template: - metadata: - labels: - {{- include "minio-operator.labels" . | nindent 8 }} - {{- include "minio-operator.selectorLabels" . | nindent 8 }} - spec: - {{- with .Values.operator.imagePullSecrets }} - imagePullSecrets: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.runtimeClassName }} - runtimeClassName: {{ . }} - {{- end }} - serviceAccountName: minio-operator - {{- with .Values.operator.securityContext }} - securityContext: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.nodeSelector }} - nodeSelector: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.affinity }} - affinity: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.tolerations }} - tolerations: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.topologySpreadConstraints }} - topologySpreadConstraints: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .Values.operator.priorityClassName }} - priorityClassName: {{ . }} - {{- end }} - {{- with .Values.operator.initContainers }} - initContainers: {{- toYaml . | nindent 8 }} - {{- end }} - containers: - - name: {{ .Chart.Name }} - image: "{{ .Values.operator.image.repository }}:{{ .Values.operator.image.digest | default .Values.operator.image.tag }}" - imagePullPolicy: {{ .Values.operator.image.pullPolicy }} - args: - - controller - env: - {{- if .Values.operator.sidecarImage }} - - name: "OPERATOR_SIDECAR_IMAGE" - value: "{{ .Values.operator.sidecarImage.repository }}:{{ .Values.operator.sidecarImage.digest | default .Values.operator.sidecarImage.tag }}" - {{- end }} - {{- with .Values.operator.env }} - {{- toYaml . | nindent 12 }} - {{- end }} - resources: {{- toYaml .Values.operator.resources | nindent 12 }} - {{- with .Values.operator.containerSecurityContext }} - securityContext: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.operator.volumeMounts }} - volumeMounts: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .Values.operator.volumes }} - volumes: {{- toYaml . | nindent 8 }} - {{- end }} \ No newline at end of file diff --git a/sources/minio-operator/7.1.1/templates/operator-service.yaml b/sources/minio-operator/7.1.1/templates/operator-service.yaml deleted file mode 100644 index 33f25fbb..00000000 --- a/sources/minio-operator/7.1.1/templates/operator-service.yaml +++ /dev/null @@ -1,14 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: operator - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} -spec: - type: ClusterIP - ports: - - port: 4221 - name: http - selector: - operator: leader - {{- include "minio-operator.selectorLabels" . | nindent 4 }} diff --git a/sources/minio-operator/7.1.1/templates/operator-serviceaccount.yaml b/sources/minio-operator/7.1.1/templates/operator-serviceaccount.yaml deleted file mode 100644 index 8ae899da..00000000 --- a/sources/minio-operator/7.1.1/templates/operator-serviceaccount.yaml +++ /dev/null @@ -1,10 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: minio-operator - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} - {{- with .Values.operator.serviceAccountAnnotations }} - annotations: - {{- toYaml . | nindent 4 }} - {{- end }} diff --git a/sources/minio-operator/7.1.1/templates/sts-service.yaml b/sources/minio-operator/7.1.1/templates/sts-service.yaml deleted file mode 100644 index 51b06a59..00000000 --- a/sources/minio-operator/7.1.1/templates/sts-service.yaml +++ /dev/null @@ -1,12 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: sts - namespace: {{ .Release.Namespace }} - labels: {{- include "minio-operator.labels" . | nindent 4 }} -spec: - type: ClusterIP - ports: - - port: 4223 - name: https - selector: {{- include "minio-operator.selectorLabels" . | nindent 4 }} diff --git a/sources/minio-operator/7.1.1/templates/sts.min.io_policybindings.yaml b/sources/minio-operator/7.1.1/templates/sts.min.io_policybindings.yaml deleted file mode 100644 index 36099645..00000000 --- a/sources/minio-operator/7.1.1/templates/sts.min.io_policybindings.yaml +++ /dev/null @@ -1,133 +0,0 @@ ---- -apiVersion: apiextensions.k8s.io/v1 -kind: CustomResourceDefinition -metadata: - annotations: - controller-gen.kubebuilder.io/version: v0.17.2 - operator.min.io/version: v7.1.1 - name: policybindings.sts.min.io -spec: - group: sts.min.io - names: - kind: PolicyBinding - listKind: PolicyBindingList - plural: policybindings - shortNames: - - policybinding - singular: policybinding - scope: Namespaced - versions: - - additionalPrinterColumns: - - jsonPath: .status.currentState - name: State - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1alpha1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - properties: - application: - properties: - namespace: - type: string - serviceaccount: - type: string - required: - - namespace - - serviceaccount - type: object - policies: - items: - type: string - type: array - required: - - application - - policies - type: object - status: - properties: - currentState: - type: string - usage: - nullable: true - properties: - authotizations: - format: int64 - type: integer - type: object - required: - - currentState - - usage - type: object - type: object - served: true - storage: false - subresources: - status: {} - - additionalPrinterColumns: - - jsonPath: .status.currentState - name: State - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v1beta1 - schema: - openAPIV3Schema: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - type: object - spec: - properties: - application: - properties: - namespace: - type: string - serviceaccount: - type: string - required: - - namespace - - serviceaccount - type: object - policies: - items: - type: string - type: array - required: - - application - - policies - type: object - status: - properties: - currentState: - type: string - usage: - nullable: true - properties: - authotizations: - format: int64 - type: integer - type: object - required: - - currentState - - usage - type: object - type: object - served: true - storage: true - subresources: - status: {} diff --git a/sources/minio-operator/7.1.1/values.yaml b/sources/minio-operator/7.1.1/values.yaml deleted file mode 100644 index 77a6f750..00000000 --- a/sources/minio-operator/7.1.1/values.yaml +++ /dev/null @@ -1,187 +0,0 @@ -### -# Root key for Operator Helm Chart -operator: - ### - # An array of environment variables to pass to the Operator deployment. - # Pass an empty array to start Operator with defaults. - # - # For example: - # - # .. code-block:: yaml - # - # env: - # - name: CLUSTER_DOMAIN - # value: "cluster.domain" - # - name: WATCHED_NAMESPACE - # value: "" - # - name: MINIO_OPERATOR_RUNTIME - # value: "OpenShift" - # - # See `Operator environment variables `__ for a list of all supported values. - env: - - name: OPERATOR_STS_ENABLED - value: "on" - # An array of additional annotations to be applied to the operator service account - serviceAccountAnnotations: [] - # additional labels to be applied to operator resources - additionalLabels: {} - ### - # Specify the Operator container image to use for the deployment. - # ``image.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v7.1.1 tag. - # The container pulls the image if not already present: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/operator - # tag: v7.1.1 - # pullPolicy: IfNotPresent - # - # The chart also supports specifying an image based on digest value: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/operator@sha256 - # digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983 - # pullPolicy: IfNotPresent - # - image: - repository: quay.io/minio/operator - tag: v7.1.1 - pullPolicy: IfNotPresent - ### - # Specify the sidecar container image to deploy on tenant pods for init container and sidecar. - # Only need to change this if want to use a different version that the default, or want to set a custom registry. - # ``sidecarImage.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator-sidecar`` repo and the v7.1.1 tag. - # The container pulls the image if not already present: - # - # .. code-block:: yaml - # - # sidecarImage: - # repository: quay.io/minio/operator-sidecar - # tag: v7.1.1 - # pullPolicy: IfNotPresent - # - # The chart also supports specifying an image based on digest value: - # - # .. code-block:: yaml - # - # sidecarImage: - # repository: quay.io/minio/operator-sidecar@sha256 - # digest: a11947a230b80fb1b0bffa97173147a505d4f1207958f722e348d11ab9e972c1 - # pullPolicy: IfNotPresent - # - sidecarImage: {} - ### - # - # An array of Kubernetes secrets to use for pulling images from a private ``image.repository``. - # Only one array element is supported at this time. - imagePullSecrets: [ ] - ### - # - # The name of a custom `Container Runtime `__ to use for the Operator pods. - runtimeClassName: ~ - ### - # An array of `initContainers `__ to start up before the Operator pods. - # Exercise care as ``initContainer`` failures prevent Operator pods from starting. - # Pass an empty array to start the Operator normally. - initContainers: [ ] - ### - # The number of Operator pods to deploy. - # Higher values increase availability in the event of worker node failures. - # - # The cluster must have sufficient number of available worker nodes to fulfill the request. - # Operator pods deploy with pod anti-affinity by default, preventing Kubernetes from scheduling multiple pods onto a single Worker node. - replicaCount: 2 - ### - # The Kubernetes `SecurityContext `__ to use for deploying Operator resources. - # - # You may need to modify these values to meet your cluster's security and access settings. - securityContext: - runAsUser: 1000 - runAsGroup: 1000 - runAsNonRoot: true - fsGroup: 1000 - ### - # The Kubernetes `SecurityContext `__ to use for deploying Operator containers. - # You may need to modify these values to meet your cluster's security and access settings. - containerSecurityContext: - runAsUser: 1000 - runAsGroup: 1000 - runAsNonRoot: true - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - ### - # An array of `Volumes `__ which the Operator can mount to pods. - # - # The volumes must exist *and* be accessible to the Operator pods. - volumes: [ ] - ### - # An array of volume mount points associated to each Operator container. - # - # Specify each item in the array as follows: - # - # .. code-block:: yaml - # - # volumeMounts: - # - name: volumename - # mountPath: /path/to/mount - # - # The ``name`` field must correspond to an entry in the ``volumes`` array. - volumeMounts: [ ] - ### - # Any `Node Selectors `__ to apply to Operator pods. - # - # The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Operator pods. - # - # If no worker nodes match the specified selectors, the Operator deployment will fail. - nodeSelector: { } - ### - # - # The `Pod Priority `__ to assign to Operator pods. - priorityClassName: "" - ### - # - # The `affinity `__ or anti-affinity settings to apply to Operator pods. - # - # These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes. - affinity: - podAntiAffinity: - requiredDuringSchedulingIgnoredDuringExecution: - - labelSelector: - matchExpressions: - - key: name - operator: In - values: - - minio-operator - topologyKey: kubernetes.io/hostname - ### - # - # An array of `Toleration labels `__ to associate to Operator pods. - # - # These settings determine the distribution of pods across worker nodes. - tolerations: [ ] - ### - # - # An array of `Topology Spread Constraints `__ to associate to Operator pods. - # - # These settings determine the distribution of pods across worker nodes. - topologySpreadConstraints: [ ] - ### - # - # The `Requests or Limits `__ for resources to associate to Operator pods. - # - # These settings can control the minimum and maximum resources requested for each pod. - # If no worker nodes can meet the specified requests, the Operator may fail to deploy. - resources: - requests: - cpu: 200m - memory: 256Mi - ephemeral-storage: 500Mi diff --git a/sources/minio-operator/source.yaml b/sources/minio-operator/source.yaml deleted file mode 100644 index 29e2faa8..00000000 --- a/sources/minio-operator/source.yaml +++ /dev/null @@ -1,4 +0,0 @@ -sourceUrl: https://operator.min.io -sourceRepoName: minio-operator -sourceChartName: operator -sourceVersion: 7.1.1 diff --git a/sources/minio-tenant-config/Chart.yaml b/sources/minio-tenant-config/Chart.yaml deleted file mode 100644 index dce19d81..00000000 --- a/sources/minio-tenant-config/Chart.yaml +++ /dev/null @@ -1,4 +0,0 @@ -apiVersion: v2 -name: minio-tenant-config -description: A Helm chart with config for minio-tenant -version: 0.2.0 diff --git a/sources/minio-tenant-config/templates/minio-create-user-cm.yaml b/sources/minio-tenant-config/templates/minio-create-user-cm.yaml deleted file mode 100644 index 26c77d97..00000000 --- a/sources/minio-tenant-config/templates/minio-create-user-cm.yaml +++ /dev/null @@ -1,23 +0,0 @@ -apiVersion: v1 -kind: ConfigMap -metadata: - name: mc-user-create-cm - namespace: minio-tenant-default -data: - mc-user-create.sh: | - #!/bin/bash - source /tmp/minio-config/config.env - - until mc alias set init "$MINIO_SERVER_URL" "$MINIO_ROOT_USER" "$MINIO_ROOT_PASSWORD" - do - sleep 5 - done - until mc admin accesskey edit init/ "$(< /tmp/minio-user/API_ACCESS_KEY)" --secret-key "$(< /tmp/minio-user/API_SECRET_KEY)" - do - mc admin user add init "$(< /tmp/minio-user/CONSOLE_ACCESS_KEY)" "$(< /tmp/minio-user/CONSOLE_SECRET_KEY)" - sleep 1 - mc admin policy attach init consoleAdmin --user "$(< /tmp/minio-user/CONSOLE_ACCESS_KEY)" - sleep 1 - mc admin accesskey create init/ "$(< /tmp/minio-user/CONSOLE_ACCESS_KEY)" --access-key "$(< /tmp/minio-user/API_ACCESS_KEY)" --secret-key "$(< /tmp/minio-user/API_SECRET_KEY)" > /dev/null - sleep 1 - done \ No newline at end of file diff --git a/sources/minio-tenant-config/templates/minio-create-user-cronjob.yaml b/sources/minio-tenant-config/templates/minio-create-user-cronjob.yaml deleted file mode 100644 index 75bb5b1c..00000000 --- a/sources/minio-tenant-config/templates/minio-create-user-cronjob.yaml +++ /dev/null @@ -1,49 +0,0 @@ ---- -apiVersion: batch/v1 -kind: CronJob -metadata: - name: mc-user-create-cronjob - namespace: minio-tenant-default -spec: - schedule: "*/5 * * * *" - jobTemplate: - spec: - activeDeadlineSeconds: 300 - backoffLimit: 1 - template: - spec: - containers: - - command: ["bash", "/mnt/scripts/mc-user-create.sh"] - image: minio/mc:latest - name: mc - resources: - requests: - memory: "64Mi" - cpu: "100m" - limits: - memory: "256Mi" - cpu: "500m" - volumeMounts: - - mountPath: /tmp/minio-config - name: configuration - - mountPath: /tmp/minio-user - name: user - - name: script - mountPath: /mnt/scripts/ - restartPolicy: Never - volumes: - - name: script - configMap: - name: mc-user-create-cm - - name: configuration - projected: - defaultMode: 420 - sources: - - secret: - name: default-minio-tenant-env-configuration - - name: user - projected: - defaultMode: 0700 - sources: - - secret: - name: default-user diff --git a/sources/minio-tenant-config/templates/minio-es-default-user.yaml b/sources/minio-tenant-config/templates/minio-es-default-user.yaml deleted file mode 100644 index 06244c7d..00000000 --- a/sources/minio-tenant-config/templates/minio-es-default-user.yaml +++ /dev/null @@ -1,33 +0,0 @@ -{{- if .Values.externalSecrets.enabled }} -apiVersion: external-secrets.io/v1beta1 -kind: ExternalSecret -metadata: - name: default-minio-user - namespace: minio-tenant-default - annotations: - argocd.argoproj.io/hook: PreSync -spec: - secretStoreRef: - kind: ClusterSecretStore - name: openbao-secret-store - refreshInterval: 5m - target: - name: default-user - data: - - secretKey: API_ACCESS_KEY - remoteRef: - key: secrets/data/minio-api-access-key - property: value - - secretKey: API_SECRET_KEY - remoteRef: - key: secrets/data/minio-api-secret-key - property: value - - secretKey: CONSOLE_ACCESS_KEY - remoteRef: - key: secrets/data/minio-console-access-key - property: value - - secretKey: CONSOLE_SECRET_KEY - remoteRef: - key: secrets/data/minio-console-secret-key - property: value -{{- end }} diff --git a/sources/minio-tenant-config/templates/minio-es-env-config.yaml b/sources/minio-tenant-config/templates/minio-es-env-config.yaml deleted file mode 100644 index 34fd1186..00000000 --- a/sources/minio-tenant-config/templates/minio-es-env-config.yaml +++ /dev/null @@ -1,46 +0,0 @@ -{{- if .Values.externalSecrets.enabled }} ---- -apiVersion: external-secrets.io/v1beta1 -kind: ExternalSecret -metadata: - name: default-minio-tenant-env-configuration-spec - namespace: minio-tenant-default - annotations: - argocd.argoproj.io/hook: PreSync -spec: - secretStoreRef: - kind: ClusterSecretStore - name: openbao-secret-store - refreshInterval: 5m - target: - name: default-minio-tenant-env-configuration - template: - data: - config.env: | - export MINIO_SERVER_URL="http://minio:80" - export MINIO_API_ROOT_ACCESS="on" - export MINIO_ROOT_USER="minioroot" - export MINIO_ROOT_PASSWORD="{{ "{{" }}.password{{ "}}"}}" - export MINIO_BROWSER_REDIRECT_URL="https://minio.{{ "{{" }}.domain{{ "}}"}}" - export MINIO_IDENTITY_OPENID_SCOPES="openid,profile,email,policy" - export MINIO_IDENTITY_OPENID_CLIENT_ID=minio - export MINIO_IDENTITY_OPENID_CLIENT_SECRET="{{ "{{" }}.client_secret{{ "}}"}}" - export MINIO_IDENTITY_OPENID_CONFIG_URL="{{ "{{" }}.openid_url{{ "}}"}}" - data: - - secretKey: password - remoteRef: - key: secrets/data/minio-root-password - property: value - - secretKey: client_secret - remoteRef: - key: secrets/data/minio-client-secret - property: value - - secretKey: openid_url - remoteRef: - key: secrets/data/minio-openid-url - property: value - - secretKey: domain - remoteRef: - key: secrets/data/cluster-domain - property: value -{{- end }} \ No newline at end of file diff --git a/sources/minio-tenant-config/templates/minio-httproute.yaml b/sources/minio-tenant-config/templates/minio-httproute.yaml deleted file mode 100644 index 1080afee..00000000 --- a/sources/minio-tenant-config/templates/minio-httproute.yaml +++ /dev/null @@ -1,27 +0,0 @@ ---- -apiVersion: gateway.networking.k8s.io/v1 -kind: HTTPRoute -metadata: - name: minio - namespace: minio-tenant-default -spec: - parentRefs: - - group: gateway.networking.k8s.io - kind: Gateway - name: https - namespace: envoy-gateway-system - rules: - - backendRefs: - - group: "" - kind: Service - name: default-minio-tenant-console - port: 9090 - weight: 1 - matches: - - headers: - - type: RegularExpression - name: Host - value: "minio\\..*" - path: - type: PathPrefix - value: / \ No newline at end of file diff --git a/sources/minio-tenant-config/templates/minio-rbac.yaml b/sources/minio-tenant-config/templates/minio-rbac.yaml deleted file mode 100644 index 31803b91..00000000 --- a/sources/minio-tenant-config/templates/minio-rbac.yaml +++ /dev/null @@ -1,36 +0,0 @@ -apiVersion: v1 -kind: ServiceAccount -metadata: - name: minio-secret-readonly - namespace: minio-tenant-default ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: minio-secret-readonly - namespace: minio-tenant-default -rules: -- apiGroups: - - "" - resourceNames: - - default-user - resources: - - secrets - verbs: - - get - - list - - watch ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: RoleBinding -metadata: - name: minio-secret-readonly-binding - namespace: minio-tenant-default -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: minio-secret-readonly -subjects: - - kind: ServiceAccount - name: minio-secret-readonly - namespace: minio-tenant-default diff --git a/sources/minio-tenant-config/templates/minio-secret-example.yaml b/sources/minio-tenant-config/templates/minio-secret-example.yaml deleted file mode 100644 index f3c2314f..00000000 --- a/sources/minio-tenant-config/templates/minio-secret-example.yaml +++ /dev/null @@ -1,13 +0,0 @@ -{{- if .Values.externalSecrets.enabled }} ---- -apiVersion: v1 -kind: Secret -metadata: - name: example-minio-config-secret - namespace: minio-tenant-default -stringData: - config.env: |- - export MINIO_ROOT_USER="minio" - export MINIO_ROOT_PASSWORD="minio123" -type: Opaque -{{- end }} diff --git a/sources/minio-tenant-config/templates/minio-tls-clustersecretstore.yaml b/sources/minio-tenant-config/templates/minio-tls-clustersecretstore.yaml deleted file mode 100644 index cf191e40..00000000 --- a/sources/minio-tenant-config/templates/minio-tls-clustersecretstore.yaml +++ /dev/null @@ -1,71 +0,0 @@ -{{- if .Values.externalSecrets.enabled }} -apiVersion: v1 -kind: ServiceAccount -metadata: - name: tls-secret-svc-account - namespace: minio-tenant-default ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRole -metadata: - name: external-secrets-tls-role -rules: -- apiGroups: [""] - resources: ["secrets"] - verbs: ["get", "list", "watch", "create", "update", "patch", "delete"] ---- -apiVersion: rbac.authorization.k8s.io/v1 -kind: ClusterRoleBinding -metadata: - name: external-secrets-tls-role-binding -roleRef: - apiGroup: rbac.authorization.k8s.io - kind: ClusterRole - name: external-secrets-tls-role -subjects: -- kind: ServiceAccount - name: tls-secret-svc-account - namespace: minio-tenant-default ---- -apiVersion: external-secrets.io/v1beta1 -kind: ClusterSecretStore -metadata: - name: tls-secret-store -spec: - provider: - kubernetes: - remoteNamespace: envoy-gateway-system - server: - caProvider: - type: ConfigMap - name: kube-root-ca.crt - key: ca.crt - namespace: envoy-gateway-system - auth: - serviceAccount: - name: tls-secret-svc-account ---- -apiVersion: external-secrets.io/v1beta1 -kind: ExternalSecret -metadata: - name: cluster-tls - namespace: minio-tenant-default -spec: - refreshInterval: 1h - secretStoreRef: - name: tls-secret-store - kind: ClusterSecretStore - target: - name: cluster-tls - data: - - secretKey: public.crt - remoteRef: - key: cluster-tls - property: tls.crt - - secretKey: private.key - remoteRef: - key: cluster-tls - property: tls.key ---- -{{- end }} - diff --git a/sources/minio-tenant-config/values.yaml b/sources/minio-tenant-config/values.yaml deleted file mode 100644 index 581e205f..00000000 --- a/sources/minio-tenant-config/values.yaml +++ /dev/null @@ -1,6 +0,0 @@ -domain: # to be filled by cluster-forge app - -# Render ExternalSecret/ClusterSecretStore resources (requires external-secrets -# operator). Set false to provide credentials as plain Kubernetes Secrets. -externalSecrets: - enabled: true diff --git a/sources/minio-tenant/7.0.0/.helmignore b/sources/minio-tenant/7.0.0/.helmignore deleted file mode 100644 index 50af0317..00000000 --- a/sources/minio-tenant/7.0.0/.helmignore +++ /dev/null @@ -1,22 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/sources/minio-tenant/7.0.0/Chart.yaml b/sources/minio-tenant/7.0.0/Chart.yaml deleted file mode 100644 index 457bc437..00000000 --- a/sources/minio-tenant/7.0.0/Chart.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v2 -appVersion: v7.0.0 -description: A Helm chart for MinIO Operator -home: https://min.io -icon: https://min.io/resources/img/logo/MINIO_wordmark.png -keywords: -- storage -- object-storage -- S3 -maintainers: -- email: dev@minio.io - name: MinIO, Inc -name: tenant -sources: -- https://github.com/minio/operator -type: application -version: 7.0.0 diff --git a/sources/minio-tenant/7.0.0/README.md b/sources/minio-tenant/7.0.0/README.md deleted file mode 100644 index 1272adf5..00000000 --- a/sources/minio-tenant/7.0.0/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# MinIO ![license](https://img.shields.io/badge/license-AGPL%20V3-blue) - -[MinIO](https://min.io) is a High Performance Object Storage released under GNU AGPLv3 or later. It is API compatible -with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics -and application data workloads. - -For more detailed documentation please visit [here](https://docs.minio.io/) - -Introduction ------------- - -This chart bootstraps MinIO Tenant on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. - -Configure MinIO Helm repo --------------------- - -```bash -helm repo add minio https://operator.min.io/ -``` - -Creating a Tenant with Helm Chart ------------------ - -Once the [MinIO Operator Chart](https://github.com/minio/operator/tree/master/helm/operator) is successfully installed, create a MinIO Tenant using: - -```bash -helm install --namespace tenant-ns \ - --create-namespace tenant minio/tenant -``` - -This creates a 4 Node MinIO Tenant (cluster). To change the default values, take a look at various [values.yaml](https://github.com/minio/operator/blob/master/helm/tenant/values.yaml). diff --git a/sources/minio-tenant/7.0.0/templates/_helpers.tpl b/sources/minio-tenant/7.0.0/templates/_helpers.tpl deleted file mode 100644 index 4fa28640..00000000 --- a/sources/minio-tenant/7.0.0/templates/_helpers.tpl +++ /dev/null @@ -1,13 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Renders a value that contains template. -Usage: -{{ include "minio-operator.render" ( dict "value" .Values.path.to.the.Value "context" $) }} -*/}} -{{- define "minio-operator.render" -}} - {{- if typeIs "string" .value }} - {{- tpl .value .context }} - {{- else }} - {{- tpl (.value | toYaml) .context }} - {{- end }} -{{- end -}} diff --git a/sources/minio-tenant/7.0.0/templates/api-ingress.yaml b/sources/minio-tenant/7.0.0/templates/api-ingress.yaml deleted file mode 100644 index 97ee9010..00000000 --- a/sources/minio-tenant/7.0.0/templates/api-ingress.yaml +++ /dev/null @@ -1,57 +0,0 @@ -{{- if .Values.ingress.api.enabled }} -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ .Values.tenant.name }} - {{- with .Values.ingress.api.labels }} - labels: {{ toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.ingress.api.annotations }} - annotations: {{ toYaml . | nindent 4 }} - {{- end }} -spec: - {{- with .Values.ingress.api.ingressClassName }} - ingressClassName: {{ . }} - {{- end }} - {{- if .Values.ingress.api.tls }} - tls: - {{- range .Values.ingress.api.tls }} - - hosts: - {{- range .hosts }} - - {{ . | quote }} - {{- end }} - secretName: {{ .secretName }} - {{- end }} - {{- end }} - rules: - - host: {{ .Values.ingress.api.host }} - http: - paths: - - path: {{ .Values.ingress.api.path }} - pathType: {{ .Values.ingress.api.pathType }} - backend: - service: - name: minio - port: - {{- if or .Values.tenant.certificate.requestAutoCert (not (empty .Values.tenant.certificate.externalCertSecret)) }} - name: https-minio - {{- else }} - name: http-minio - {{- end }} - {{- if .Values.tenant.features.bucketDNS }} - - host: "*.{{ .Values.ingress.api.host }}" - http: - paths: - - path: {{ .Values.ingress.api.path }} - pathType: {{ .Values.ingress.api.pathType }} - backend: - service: - name: minio - port: - {{- if or .Values.tenant.certificate.requestAutoCert (not (empty .Values.tenant.certificate.externalCertSecret)) }} - name: https-minio - {{- else }} - name: http-minio - {{- end }} - {{- end }} -{{- end }} diff --git a/sources/minio-tenant/7.0.0/templates/console-ingress.yaml b/sources/minio-tenant/7.0.0/templates/console-ingress.yaml deleted file mode 100644 index 01382faf..00000000 --- a/sources/minio-tenant/7.0.0/templates/console-ingress.yaml +++ /dev/null @@ -1,41 +0,0 @@ -{{- if .Values.ingress.console.enabled }} -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ .Values.tenant.name }}-console - {{- with .Values.ingress.console.labels }} - labels: {{ toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.ingress.console.annotations }} - annotations: {{ toYaml . | nindent 4 }} - {{- end }} -spec: - {{- with .Values.ingress.console.ingressClassName }} - ingressClassName: {{ . }} - {{- end }} - {{- if .Values.ingress.console.tls }} - tls: - {{- range .Values.ingress.console.tls }} - - hosts: - {{- range .hosts }} - - {{ . | quote }} - {{- end }} - secretName: {{ .secretName }} - {{- end }} - {{- end }} - rules: - - host: {{ .Values.ingress.console.host }} - http: - paths: - - path: {{ .Values.ingress.console.path }} - pathType: {{ .Values.ingress.console.pathType }} - backend: - service: - name: {{ .Values.tenant.name }}-console - port: - {{- if or .Values.tenant.certificate.requestAutoCert (not (empty .Values.tenant.certificate.externalCertSecret)) }} - name: https-console - {{- else }} - name: http-console - {{- end }} -{{- end }} diff --git a/sources/minio-tenant/7.0.0/templates/extra-resources.yaml b/sources/minio-tenant/7.0.0/templates/extra-resources.yaml deleted file mode 100644 index 13c5e9a9..00000000 --- a/sources/minio-tenant/7.0.0/templates/extra-resources.yaml +++ /dev/null @@ -1,4 +0,0 @@ -{{- range .Values.extraResources }} ---- -{{- include "minio-operator.render" (dict "value" . "context" $) }} -{{- end }} diff --git a/sources/minio-tenant/7.0.0/templates/kes-configuration-secret.yaml b/sources/minio-tenant/7.0.0/templates/kes-configuration-secret.yaml deleted file mode 100644 index bdbe0ecb..00000000 --- a/sources/minio-tenant/7.0.0/templates/kes-configuration-secret.yaml +++ /dev/null @@ -1,9 +0,0 @@ -{{- if dig "tenant" "kes" "configuration" false (.Values | merge (dict)) }} -apiVersion: v1 -kind: Secret -metadata: - name: kes-configuration -type: Opaque -stringData: - server-config.yaml: {{ .Values.tenant.kes.configuration | toYaml | indent 2 }} -{{- end }} diff --git a/sources/minio-tenant/7.0.0/templates/tenant-configuration.yaml b/sources/minio-tenant/7.0.0/templates/tenant-configuration.yaml deleted file mode 100644 index 1638f9f7..00000000 --- a/sources/minio-tenant/7.0.0/templates/tenant-configuration.yaml +++ /dev/null @@ -1,29 +0,0 @@ -{{- if (.Values.secrets) }} -{{- fail "# ERROR: '.secrets' is deprecated since v5.0.15 and has been removed. Please use '.tenant.configSecret' instead." }} -{{- else }} -{{- if not (.Values.tenant.configSecret) }} -{{- fail "# ERROR: '.tenant.configSecret' should be set." }} -{{- else }} -{{- if not (.Values.tenant.configSecret.existingSecret) }} - -apiVersion: v1 -kind: Secret -metadata: - name: {{ dig "tenant" "configSecret" "name" "" (.Values | merge (dict)) }} -type: Opaque -stringData: - config.env: |- - export MINIO_ROOT_USER={{ .Values.tenant.configSecret.accessKey | quote }} - export MINIO_ROOT_PASSWORD={{ .Values.tenant.configSecret.secretKey | quote }} - -{{- else }} -{{- if (.Values.tenant.configSecret.accessKey) }} -{{- fail "# ERROR: cannot set access-key when an existing secret is used" }} -{{- end }} -{{- if (.Values.tenant.configSecret.secretKey) }} -{{- fail "# ERROR: cannot set secret-key when an existing secret is used" }} -{{- end }} -{{- end }} -{{- end }} -{{- end }} - diff --git a/sources/minio-tenant/7.0.0/templates/tenant.yaml b/sources/minio-tenant/7.0.0/templates/tenant.yaml deleted file mode 100644 index 173e44f4..00000000 --- a/sources/minio-tenant/7.0.0/templates/tenant.yaml +++ /dev/null @@ -1,211 +0,0 @@ -{{- with .Values.tenant }} -apiVersion: minio.min.io/v2 -kind: Tenant -metadata: - name: {{ .name }} - ## Optionally pass labels to be applied to the statefulset pods - labels: - app: minio - {{- if dig "metrics" "enabled" false . }} - ## Annotations for MinIO Tenant Pods - annotations: - prometheus.io/path: /minio/v2/metrics/cluster - prometheus.io/port: {{ dig "metrics" "port" 9000 . | quote }} - prometheus.io/scrape: "true" - prometheus.io/scheme: {{ dig "metrics" "protocol" "http" . | quote }} - {{- end }} -{{- if dig "scheduler" "name" "" . }} -scheduler: - name: {{ dig "scheduler" "name" "" . }} -{{- end }} -spec: - image: "{{ .image.repository }}:{{ .image.digest | default .image.tag }}" - imagePullPolicy: {{ dig "image" "pullPolicy" "IfNotPresent" . }} - {{- if dig "imagePullSecret" "name" "" . }} - imagePullSecret: - name: {{ dig "imagePullSecret" "name" "" . }} - {{- end }} - {{- with (dig "initContainers" (list) .) }} - initContainers: {{- toYaml . | nindent 4 }} - {{- end }} - ## Secret with default environment variable configurations - configuration: - name: {{ .configuration.name }} - {{- if hasKey . "poolsMetadata" }} - poolsMetadata: {{- if eq (len .poolsMetadata) 0 }} {} {{- end }} - {{- with (dig "poolsMetadata" (dict) .) }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- end }} - pools: - {{- range .pools }} - - servers: {{ .servers | default 4 }} - name: {{ .name | default "" }} - volumesPerServer: {{ .volumesPerServer | default 4 }} - {{- if .runtimeClassName }} - runtimeClassName: {{ .runtimeClassName }} - {{- end }} - volumeClaimTemplate: - metadata: - name: data - {{- with .storageAnnotations }} - annotations: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .storageLabels }} - labels: {{- toYaml . | nindent 12 }} - {{- end }} - spec: - {{- if .storageClassName }} - storageClassName: {{ .storageClassName }} - {{- end }} - accessModes: - - ReadWriteOnce - resources: - requests: - storage: {{ .size | default "10Gi" }} - {{- with .annotations }} - annotations: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .labels }} - labels: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .tolerations }} - tolerations: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .nodeSelector }} - nodeSelector: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .affinity }} - affinity: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .resources }} - resources: {{- toYaml . | nindent 8 }} - {{- end }} - {{- if .securityContext }} - securityContext: {{- toYaml .securityContext | nindent 8 }} - {{- end }} - {{- if .containerSecurityContext }} - containerSecurityContext: {{- toYaml .containerSecurityContext | nindent 8 }} - {{- end }} - {{- with .topologySpreadConstraints }} - topologySpreadConstraints: {{- toYaml . | nindent 8 }} - {{- end }} - {{- end }} - mountPath: {{ dig "mountPath" "/export" . }} - subPath: {{ dig "subPath" "/data" . }} - {{- with (dig "certificate" "externalCaCertSecret" (list) .) }} - externalCaCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - {{- with (dig "certificate" "externalCertSecret" (list) .) }} - externalCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - requestAutoCert: {{ dig "certificate" "requestAutoCert" false . }} - {{- if ((.certificate).certExpiryAlertThreshold) }} - certExpiryAlertThreshold: {{ ((.certificate).certExpiryAlertThreshold) }} - {{- end }} - {{- if dig "s3" "bucketDNS" false . }} - {{- fail "Value 'tenant.s3.bucketDNS' is deprecated since Operator v4.3.2, use 'tenant.features.bucketDNS' instead" }} - {{- end }} - features: - bucketDNS: {{ dig "features" "bucketDNS" false . }} - {{- with (dig "features" "domains" (dict) .) }} - domains: {{- toYaml . | nindent 6 }} - {{- end }} - enableSFTP: {{ dig "features" "enableSFTP" false . }} - {{- with (dig "buckets" (list) .) }} - buckets: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "users" (list) .) }} - users: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "certificate" "certConfig" (dict) .) }} - certConfig: {{- toYaml . | nindent 4 }} - {{- end }} - podManagementPolicy: {{ dig "podManagementPolicy" "Parallel" . }} - {{- with (dig "readiness" (dict) .) }} - readiness: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "liveness" (dict) .) }} - liveness: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "startup" (dict) .) }} - startup: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "lifecycle" (dict) .) }} - lifecycle: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "exposeServices" (dict) .) }} - exposeServices: {{- toYaml . | nindent 4 }} - {{- end }} - {{- if dig "serviceAccountName" "" . }} - serviceAccountName: {{ dig "serviceAccountName" "" . }} - {{- end }} - prometheusOperator: {{ dig "prometheusOperator" "false" . }} - {{- with (dig "logging" (dict) .) }} - logging: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "serviceMetadata" (dict) .) }} - serviceMetadata: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "env" (list) .) }} - env: {{- toYaml . | nindent 4 }} - {{- end }} - {{- if dig "priorityClassName" "" . }} - priorityClassName: {{ dig "priorityClassName" "" . }} - {{- end }} - {{- with (dig "additionalVolumes" (list) .) }} - additionalVolumes: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "additionalVolumeMounts" (list) .) }} - additionalVolumeMounts: {{- toYaml . | nindent 4 }} - {{- end }} - {{- if dig "kes" "configuration" false . }} - kes: - image: "{{ .kes.image.repository }}:{{ .kes.image.digest | default .kes.image.tag }}" - {{- with (dig "kes" "env" (list) .) }} - env: {{- toYaml . | nindent 4 }} - {{- end }} - replicas: {{ .kes.replicas | int }} - kesSecret: - name: "kes-configuration" - imagePullPolicy: {{ .kes.imagePullPolicy | quote }} - {{- with (dig "kes" "externalCertSecret" (dict) .) }} - externalCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - {{- with (dig "kes" "clientCertSecret" (dict) .) }} - clientCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - ## Key name to be created on the KMS, default is "my-minio-key" - keyName: {{ .kes.keyName | quote }} - {{- with (dig "resources" (dict) .) }} - resources: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "nodeSelector" (dict) .) }} - nodeSelector: {{- toYaml . | nindent 4 }} - {{- end }} - affinity: - nodeAffinity: {} - podAffinity: {} - podAntiAffinity: {} - tolerations: [] - {{- with (dig "annotations" (dict) .) }} - annotations: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "labels" (dict) .) }} - labels: {{- toYaml . | nindent 4 }} - {{- end }} - serviceAccountName: {{ .kes.serviceAccountName | quote }} - {{- if hasKey .kes "securityContext" }} - securityContext: {{- if eq (len .kes.securityContext) 0 }} {} {{- end }} - {{- with (dig "kes" "securityContext" (dict) .) }} - {{- toYaml . | nindent 6 }} - {{- end }} - {{- end }} - {{- if hasKey .kes "containerSecurityContext" }} - containerSecurityContext: {{- if eq (len .kes.containerSecurityContext) 0 }} { } {{- end }} - {{- with (dig "kes" "containerSecurityContext" (dict) .) }} - {{- toYaml . | nindent 6 }} - {{- end }} - {{- end }} - {{- end }} -{{- end }} diff --git a/sources/minio-tenant/7.0.0/values.yaml b/sources/minio-tenant/7.0.0/values.yaml deleted file mode 100644 index 4fd58527..00000000 --- a/sources/minio-tenant/7.0.0/values.yaml +++ /dev/null @@ -1,515 +0,0 @@ -# Root key for MinIO Tenant Chart -tenant: - ### - # The Tenant name - # - # Change this to match your preferred MinIO Tenant name. - name: myminio - ### - # Specify the Operator container image to use for the deployment. - # ``image.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v7.0.0 tag. - # The container pulls the image if not already present: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/minio - # tag: RELEASE.2024-11-07T00-52-20Z - # pullPolicy: IfNotPresent - # - # The chart also supports specifying an image based on digest value: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/minio@sha256 - # digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983 - # pullPolicy: IfNotPresent - # - # - image: - repository: quay.io/minio/minio - tag: RELEASE.2024-11-07T00-52-20Z - pullPolicy: IfNotPresent - ### - # - # An array of Kubernetes secrets to use for pulling images from a private ``image.repository``. - # Only one array element is supported at this time. - imagePullSecret: { } - ### - # - # Specify `initContainers `__ to perform setup or configuration tasks before the main Tenant pods starts. - # - # Example of init container which waits for idenity provider to be reachable before starting MinIO Tenant: - # - # .. code-block:: yaml - # - # initContainers: - # - name: wait-for-idp - # image: busybox - # command: - # - sh - # - -c - # - | - # URL="https://idp-url" - # echo "Checking IdP reachability (${URL})" - # until $(wget -q -O "/dev/null" ${URL}) ; do - # echo "IdP (${URL}) not reachable. Waiting to be reachable..." - # sleep 5 - # done - # echo "IdP (${URL}) reachable. Starting MinIO..." - # - initContainers: [ ] - ### - # The Kubernetes `Scheduler `__ to use for dispatching Tenant pods. - # - # Specify an empty dictionary ``{}`` to dispatch pods with the default scheduler. - scheduler: { } - ### - # The Kubernetes secret name that contains MinIO environment variable configurations. - # The secret is expected to have a key named config.env containing environment variables exports. - configuration: - name: myminio-env-configuration - ### - # Root key for dynamically creating a secret for use with configuring root MinIO User - # Specify the ``name`` and then a list of environment variables. - # - # .. important:: - # - # Do not use this in production environments. - # This field is intended for use with rapid development or testing only. - # - # For example: - # - # .. code-block:: yaml - # - # name: myminio-env-configuration - # accessKey: minio - # secretKey: minio123 - # - configSecret: - name: myminio-env-configuration - accessKey: minio - secretKey: minio123 - #existingSecret: true - - ### - # Metadata that will be added to the statefulset and pods of all pools - poolsMetadata: - ### - # Specify `annotations `__ to associate to Tenant pods. - annotations: { } - ### - # Specify `labels `__ to associate to Tenant pods. - labels: { } - - ### - # If this variable is set to true, then enable the usage of an existing Kubernetes secret to set environment variables for the Tenant. - # The existing Kubernetes secret name must be placed under .tenant.configuration.name e.g. existing-minio-env-configuration - # The secret must contain a key ``config.env``. - # The values should be a series of export statements to set environment variables for the Tenant. - # For example: - # - # .. code-block:: shell - # - # stringData: - # config.env: |- - # export MINIO_ROOT_USER=ROOTUSERNAME - # export MINIO_ROOT_PASSWORD=ROOTUSERPASSWORD - # - # existingSecret: false - ### - # Top level key for configuring MinIO Pool(s) in this Tenant. - # - # See `Operator CRD: Pools `__ for more information on all subfields. - pools: - ### - # The number of MinIO Tenant Pods / Servers in this pool. - # For standalone mode, supply 1. For distributed mode, supply 4 or more. - # Note that the operator does not support upgrading from standalone to distributed mode. - - servers: 4 - ### - # Custom name for the pool - name: pool-0 - ### - # The number of volumes attached per MinIO Tenant Pod / Server. - volumesPerServer: 4 - ### - # The capacity per volume requested per MinIO Tenant Pod. - size: 10Gi - ### - # The `storageClass `__ to associate with volumes generated for this pool. - # - # If using Amazon Elastic Block Store (EBS) CSI driver - # Please make sure to set xfs for "csi.storage.k8s.io/fstype" parameter under StorageClass.parameters. - # Docs: https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/parameters.md - # storageClassName: standard - ### - # Specify `storageAnnotations `__ to associate to PVCs. - storageAnnotations: { } - ### - # Specify `storageLabels `__ to associate to PVCs. - storageLabels: { } - ### - # Specify `annotations `__ to associate to Tenant pods. - annotations: { } - ### - # Specify `labels `__ to associate to Tenant pods. - labels: { } - ### - # - # An array of `Toleration labels `__ to associate to Tenant pods. - # - # These settings determine the distribution of pods across worker nodes. - tolerations: [ ] - ### - # Any `Node Selectors `__ to apply to Tenant pods. - # - # The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Tenant pods. - # - # If no worker nodes match the specified selectors, the Tenant deployment will fail. - nodeSelector: { } - ### - # - # The `affinity `__ or anti-affinity settings to apply to Tenant pods. - # - # These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes. - affinity: { } - ### - # - # The `Requests or Limits `__ for resources to associate to Tenant pods. - # - # These settings can control the minimum and maximum resources requested for each pod. - # If no worker nodes can meet the specified requests, the Operator may fail to deploy. - resources: { } - ### - # The Kubernetes `SecurityContext `__ to use for deploying Tenant resources. - # - # You may need to modify these values to meet your cluster's security and access settings. - # - # We recommend disabling recursive permission changes by setting ``fsGroupChangePolicy`` to ``OnRootMismatch`` as those operations can be expensive for certain workloads (e.g. large volumes with many small files). - securityContext: - runAsUser: 1000 - runAsGroup: 1000 - fsGroup: 1000 - fsGroupChangePolicy: "OnRootMismatch" - runAsNonRoot: true - ### - # The Kubernetes `SecurityContext `__ to use for deploying Tenant containers. - # You may need to modify these values to meet your cluster's security and access settings. - containerSecurityContext: - runAsUser: 1000 - runAsGroup: 1000 - runAsNonRoot: true - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - ### - # - # An array of `Topology Spread Constraints `__ to associate to Operator Console pods. - # - # These settings determine the distribution of pods across worker nodes. - topologySpreadConstraints: [ ] - ### - # - # The name of a custom `Container Runtime `__ to use for the Operator Console pods. - # runtimeClassName: "" - ### - # The mount path where Persistent Volumes are mounted inside Tenant container(s). - mountPath: /export - ### - # The Sub path inside Mount path where MinIO stores data. - # - # .. warning:: - # - # Treat the ``mountPath`` and ``subPath`` values as immutable once you deploy the Tenant. - # If you change these values post-deployment, then you may have different paths for new and pre-existing data. - # This can vastly increase operational complexity and may result in unpredictable data states. - subPath: /data - ### - # Configures a Prometheus-compatible scraping endpoint at the specified port. - metrics: - enabled: false - port: 9000 - protocol: http - ### - # Configures external certificate settings for the Tenant. - certificate: - ### - # Specify an array of Kubernetes TLS secrets, where each entry corresponds to a secret the TLS private key and public certificate pair. - # - # This is used by MinIO to verify TLS connections from clients using those CAs - # If you omit this and have clients using TLS certificates minted by an external CA, those connections may fail with warnings around certificate verification. - # See `Operator CRD: TenantSpec `__. - externalCaCertSecret: [ ] - ### - # Specify an array of Kubernetes secrets, where each entry corresponds to a secret contains the TLS private key and public certificate pair. - # - # Omit this to use only the MinIO Operator autogenerated certificates. - # - # If you omit this field *and* set ``requestAutoCert`` to false, the Tenant starts without TLS. - # - # See `Operator CRD: TenantSpec `__. - # - # .. important:: - # - # The MinIO Operator may output TLS connectivity errors if it cannot trust the Certificate Authority (CA) which minted the custom certificates. - # - # You can pass the CA to the Operator to allow it to trust that cert. - # See `Self-Signed, Internal, and Private Certificates `__ for more information. - # This step may also be necessary for globally trusted CAs where you must provide intermediate certificates to the Operator to help build the full chain of trust. - externalCertSecret: [ ] - ### - # Enable automatic Kubernetes based `certificate generation and signing `__ - requestAutoCert: true - ### - # The minimum number of days to expiry before an alert for an expiring certificate is fired. - # In the below example, if a given certificate will expire in 7 days then expiration events will only be triggered 1 day before expiry - # certExpiryAlertThreshold: 1 - ### - # This field is used only when ``requestAutoCert: true``. - # Use this field to set CommonName for the auto-generated certificate. - # MinIO defaults to using the internal Kubernetes DNS name for the pod - # The default DNS name format is typically ``*.minio.default.svc.cluster.local``. - # - # See `Operator CRD: CertificateConfig `__ - certConfig: { } - ### - # MinIO features to enable or disable in the MinIO Tenant - # See `Operator CRD: Features `__. - features: - bucketDNS: false - domains: { } - enableSFTP: false - ### - # Array of objects describing one or more buckets to create during tenant provisioning. - # Example: - # - # .. code-block:: yaml - # - # - name: my-minio-bucket - # objectLock: false # optional - # region: us-east-1 # optional - buckets: [ ] - ### - # Array of Kubernetes secrets from which the Operator generates MinIO users during tenant provisioning. - # - # Each secret should specify the ``CONSOLE_ACCESS_KEY`` and ``CONSOLE_SECRET_KEY`` as the access key and secret key for that user. - users: [ ] - ### - # The `PodManagement `__ policy for MinIO Tenant Pods. - # Can be "OrderedReady" or "Parallel" - podManagementPolicy: Parallel - # The `Liveness Probe `__ for monitoring Tenant pod liveness. - # Tenant pods will be restarted if the probe fails. - liveness: { } - ### - # `Readiness Probe `__ for monitoring Tenant container readiness. - # Tenant pods will be removed from service endpoints if the probe fails. - readiness: { } - ### - # `Startup Probe `__ for monitoring container startup. - # Tenant pods will be restarted if the probe fails. - # Refer - startup: { } - ### - # The `Lifecycle hooks `__ for container. - lifecycle: { } - ### - # Directs the Operator to deploy the MinIO S3 API and Console services as LoadBalancer objects. - # - # If the Kubernetes cluster has a configured LoadBalancer, it can attempt to route traffic to those services automatically. - # - # - Specify ``minio: true`` to expose the MinIO S3 API. - # - Specify ``console: true`` to expose the Console. - # - # Both fields default to ``false``. - exposeServices: { } - ### - # The `Kubernetes Service Account `__ associated with the Tenant. - serviceAccountName: "" - ### - # Directs the Operator to add the Tenant's metric scrape configuration to an existing Kubernetes Prometheus deployment managed by the Prometheus Operator. - prometheusOperator: false - ### - # Configure pod logging configuration for the MinIO Tenant. - # - # - Specify ``json`` for JSON-formatted logs. - # - Specify ``anonymous`` for anonymized logs. - # - Specify ``quiet`` to supress logging. - # - # An example of JSON-formatted logs is as follows: - # - # .. code-block:: shell - # - # $ k logs myminio-pool-0-0 -n default - # {"level":"INFO","errKind":"","time":"2022-04-07T21:49:33.740058549Z","message":"All MinIO sub-systems initialized successfully"} - logging: { } - ### - # serviceMetadata allows passing additional labels and annotations to MinIO and Console specific - # services created by the operator. - serviceMetadata: { } - ### - # Add environment variables to be set in MinIO container (https://github.com/minio/minio/tree/master/docs/config) - env: [ ] - ### - # PriorityClassName indicates the Pod priority and hence importance of a Pod relative to other Pods. - # This is applied to MinIO pods only. - # Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass/ - priorityClassName: "" - ### - # An array of `Volumes `__ which the Operator can mount to Tenant pods. - # - # The volumes must exist *and* be accessible to the Tenant pods. - additionalVolumes: [ ] - ### - # An array of volume mount points associated to each Tenant container. - # - # Specify each item in the array as follows: - # - # .. code-block:: yaml - # - # volumeMounts: - # - name: volumename - # mountPath: /path/to/mount - # - # The ``name`` field must correspond to an entry in the ``additionalVolumes`` array. - additionalVolumeMounts: [ ] - # Define configuration for KES (stateless and distributed key-management system) - # Refer https://github.com/minio/kes - #kes: - # ## Image field: - # # Image from tag (original behavior), for example: - # # image: - # # repository: quay.io/minio/kes - # # tag: 2024-11-25T13-44-31Z - # # Image from digest (added after original behavior), for example: - # # image: - # # repository: quay.io/minio/kes@sha256 - # # digest: fb15af611149892f357a8a99d1bcd8bf5dae713bd64c15e6eb27fbdb88fc208b - # image: - # repository: quay.io/minio/kes - # tag: 2024-11-25T13-44-31Z - # pullPolicy: IfNotPresent - # env: [ ] - # replicas: 2 - # configuration: |- - # address: :7373 - # tls: - # key: /tmp/kes/server.key # Path to the TLS private key - # cert: /tmp/kes/server.crt # Path to the TLS certificate - # proxy: - # identities: [] - # header: - # cert: X-Tls-Client-Cert - # admin: - # identity: ${MINIO_KES_IDENTITY} - # cache: - # expiry: - # any: 5m0s - # unused: 20s - # log: - # error: on - # audit: off - # keystore: - # # KES configured with fs (File System mode) doesn't work in Kubernetes environments and is not recommended - # # use a real KMS - # # fs: - # # path: "./keys" # Path to directory. Keys will be stored as files. Not Recommended for Production. - # vault: - # endpoint: "http://vault.default.svc.cluster.local:8200" # The Vault endpoint - # namespace: "" # An optional Vault namespace. See: https://www.vaultproject.io/docs/enterprise/namespaces/index.html - # prefix: "my-minio" # An optional K/V prefix. The server will store keys under this prefix. - # approle: # AppRole credentials. See: https://www.vaultproject.io/docs/auth/approle.html - # id: "" # Your AppRole Role ID - # secret: "" # Your AppRole Secret ID - # retry: 15s # Duration until the server tries to re-authenticate after connection loss. - # tls: # The Vault client TLS configuration for mTLS authentication and certificate verification - # key: "" # Path to the TLS client private key for mTLS authentication to Vault - # cert: "" # Path to the TLS client certificate for mTLS authentication to Vault - # ca: "" # Path to one or multiple PEM root CA certificates - # status: # Vault status configuration. The server will periodically reach out to Vault to check its status. - # ping: 10s # Duration until the server checks Vault's status again. - # # aws: - # # # The AWS SecretsManager key store. The server will store - # # # secret keys at the AWS SecretsManager encrypted with - # # # AWS-KMS. See: https://aws.amazon.com/secrets-manager - # # secretsmanager: - # # endpoint: "" # The AWS SecretsManager endpoint - e.g.: secretsmanager.us-east-2.amazonaws.com - # # region: "" # The AWS region of the SecretsManager - e.g.: us-east-2 - # # kmskey: "" # The AWS-KMS key ID used to en/decrypt secrets at the SecretsManager. By default (if not set) the default AWS-KMS key will be used. - # # credentials: # The AWS credentials for accessing secrets at the AWS SecretsManager. - # # accesskey: "" # Your AWS Access Key - # # secretkey: "" # Your AWS Secret Key - # # token: "" # Your AWS session token (usually optional) - # imagePullPolicy: "IfNotPresent" - # externalCertSecret: null - # clientCertSecret: null - # # Key name to be created on the KMS, default is "my-minio-key" - # keyName: "" - # resources: { } - # nodeSelector: { } - # affinity: - # nodeAffinity: { } - # podAffinity: { } - # podAntiAffinity: { } - # tolerations: [ ] - # annotations: { } - # labels: { } - # serviceAccountName: "" - # securityContext: - # runAsUser: 1000 - # runAsGroup: 1000 - # runAsNonRoot: true - # fsGroup: 1000 - # containerSecurityContext: - # runAsUser: 1000 - # runAsGroup: 1000 - # runAsNonRoot: true - # allowPrivilegeEscalation: false - # capabilities: - # drop: - # - ALL - # seccompProfile: - # type: RuntimeDefault - -### -# Configures `Ingress `__ for the Tenant S3 API and Console. -# -# Set the keys to conform to the Ingress controller and configuration of your choice. -ingress: - api: - enabled: false - ingressClassName: "" - labels: { } - annotations: { } - tls: [ ] - host: minio.local - path: / - pathType: Prefix - console: - enabled: false - ingressClassName: "" - labels: { } - annotations: { } - tls: [ ] - host: minio-console.local - path: / - pathType: Prefix -# Use an extraResources template section to include additional Kubernetes resources -# with the Helm deployment. -#extraResources: -# - | -# apiVersion: v1 -# kind: Secret -# type: Opaque -# metadata: -# name: {{ dig "tenant" "configSecret" "name" "" (.Values | merge (dict)) }} -# stringData: -# config.env: |- -# export MINIO_ROOT_USER='minio' -# export MINIO_ROOT_PASSWORD='minio123' diff --git a/sources/minio-tenant/7.1.1/.helmignore b/sources/minio-tenant/7.1.1/.helmignore deleted file mode 100644 index 50af0317..00000000 --- a/sources/minio-tenant/7.1.1/.helmignore +++ /dev/null @@ -1,22 +0,0 @@ -# Patterns to ignore when building packages. -# This supports shell glob matching, relative path matching, and -# negation (prefixed with !). Only one pattern per line. -.DS_Store -# Common VCS dirs -.git/ -.gitignore -.bzr/ -.bzrignore -.hg/ -.hgignore -.svn/ -# Common backup files -*.swp -*.bak -*.tmp -*~ -# Various IDEs -.project -.idea/ -*.tmproj -.vscode/ diff --git a/sources/minio-tenant/7.1.1/Chart.yaml b/sources/minio-tenant/7.1.1/Chart.yaml deleted file mode 100644 index a0b22ac8..00000000 --- a/sources/minio-tenant/7.1.1/Chart.yaml +++ /dev/null @@ -1,17 +0,0 @@ -apiVersion: v2 -appVersion: v7.1.1 -description: A Helm chart for MinIO Operator -home: https://min.io -icon: https://min.io/resources/img/logo/MINIO_wordmark.png -keywords: -- storage -- object-storage -- S3 -maintainers: -- email: dev@minio.io - name: MinIO, Inc -name: tenant -sources: -- https://github.com/minio/operator -type: application -version: 7.1.1 diff --git a/sources/minio-tenant/7.1.1/README.md b/sources/minio-tenant/7.1.1/README.md deleted file mode 100644 index 1272adf5..00000000 --- a/sources/minio-tenant/7.1.1/README.md +++ /dev/null @@ -1,31 +0,0 @@ -# MinIO ![license](https://img.shields.io/badge/license-AGPL%20V3-blue) - -[MinIO](https://min.io) is a High Performance Object Storage released under GNU AGPLv3 or later. It is API compatible -with Amazon S3 cloud storage service. Use MinIO to build high performance infrastructure for machine learning, analytics -and application data workloads. - -For more detailed documentation please visit [here](https://docs.minio.io/) - -Introduction ------------- - -This chart bootstraps MinIO Tenant on a [Kubernetes](http://kubernetes.io) cluster using the [Helm](https://helm.sh) package manager. - -Configure MinIO Helm repo --------------------- - -```bash -helm repo add minio https://operator.min.io/ -``` - -Creating a Tenant with Helm Chart ------------------ - -Once the [MinIO Operator Chart](https://github.com/minio/operator/tree/master/helm/operator) is successfully installed, create a MinIO Tenant using: - -```bash -helm install --namespace tenant-ns \ - --create-namespace tenant minio/tenant -``` - -This creates a 4 Node MinIO Tenant (cluster). To change the default values, take a look at various [values.yaml](https://github.com/minio/operator/blob/master/helm/tenant/values.yaml). diff --git a/sources/minio-tenant/7.1.1/templates/_helpers.tpl b/sources/minio-tenant/7.1.1/templates/_helpers.tpl deleted file mode 100644 index 4fa28640..00000000 --- a/sources/minio-tenant/7.1.1/templates/_helpers.tpl +++ /dev/null @@ -1,13 +0,0 @@ -{{/* vim: set filetype=mustache: */}} -{{/* -Renders a value that contains template. -Usage: -{{ include "minio-operator.render" ( dict "value" .Values.path.to.the.Value "context" $) }} -*/}} -{{- define "minio-operator.render" -}} - {{- if typeIs "string" .value }} - {{- tpl .value .context }} - {{- else }} - {{- tpl (.value | toYaml) .context }} - {{- end }} -{{- end -}} diff --git a/sources/minio-tenant/7.1.1/templates/api-ingress.yaml b/sources/minio-tenant/7.1.1/templates/api-ingress.yaml deleted file mode 100644 index 97ee9010..00000000 --- a/sources/minio-tenant/7.1.1/templates/api-ingress.yaml +++ /dev/null @@ -1,57 +0,0 @@ -{{- if .Values.ingress.api.enabled }} -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ .Values.tenant.name }} - {{- with .Values.ingress.api.labels }} - labels: {{ toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.ingress.api.annotations }} - annotations: {{ toYaml . | nindent 4 }} - {{- end }} -spec: - {{- with .Values.ingress.api.ingressClassName }} - ingressClassName: {{ . }} - {{- end }} - {{- if .Values.ingress.api.tls }} - tls: - {{- range .Values.ingress.api.tls }} - - hosts: - {{- range .hosts }} - - {{ . | quote }} - {{- end }} - secretName: {{ .secretName }} - {{- end }} - {{- end }} - rules: - - host: {{ .Values.ingress.api.host }} - http: - paths: - - path: {{ .Values.ingress.api.path }} - pathType: {{ .Values.ingress.api.pathType }} - backend: - service: - name: minio - port: - {{- if or .Values.tenant.certificate.requestAutoCert (not (empty .Values.tenant.certificate.externalCertSecret)) }} - name: https-minio - {{- else }} - name: http-minio - {{- end }} - {{- if .Values.tenant.features.bucketDNS }} - - host: "*.{{ .Values.ingress.api.host }}" - http: - paths: - - path: {{ .Values.ingress.api.path }} - pathType: {{ .Values.ingress.api.pathType }} - backend: - service: - name: minio - port: - {{- if or .Values.tenant.certificate.requestAutoCert (not (empty .Values.tenant.certificate.externalCertSecret)) }} - name: https-minio - {{- else }} - name: http-minio - {{- end }} - {{- end }} -{{- end }} diff --git a/sources/minio-tenant/7.1.1/templates/checks.yaml b/sources/minio-tenant/7.1.1/templates/checks.yaml deleted file mode 100644 index 1ac4a361..00000000 --- a/sources/minio-tenant/7.1.1/templates/checks.yaml +++ /dev/null @@ -1,24 +0,0 @@ -{{- with .Values.tenant }} - -# If an existing secret is used, do not set access-key and secret-key explicitly -# (note that we allow the default settings in values.yaml) -{{- with .configSecret }} -{{- if .existingSecret }} -{{- if and .accessKey (ne .accessKey "minio") }} -{{- fail "Cannot set access-key when an existing secret is used" }} -{{- end }} -{{- if and .secretKey (ne .secretKey "minio123") }} -{{- fail "Cannot set secret-key when an existing secret is used" }} -{{- end }} -{{- end }} -{{- end }} - -# If configuration.name is set and not the same as configSecret.name, -# then we should raise an error and abort -{{- if and .configuration .configuration.name }} -{{- if and .configSecret (ne .configuration.name .configSecret.name) -}} -{{- fail "configuration.name is deprecated and doesn't match .tenant.configSecret.name" }} -{{- end -}} -{{- end }} - -{{- end }} diff --git a/sources/minio-tenant/7.1.1/templates/console-ingress.yaml b/sources/minio-tenant/7.1.1/templates/console-ingress.yaml deleted file mode 100644 index 01382faf..00000000 --- a/sources/minio-tenant/7.1.1/templates/console-ingress.yaml +++ /dev/null @@ -1,41 +0,0 @@ -{{- if .Values.ingress.console.enabled }} -apiVersion: networking.k8s.io/v1 -kind: Ingress -metadata: - name: {{ .Values.tenant.name }}-console - {{- with .Values.ingress.console.labels }} - labels: {{ toYaml . | nindent 4 }} - {{- end }} - {{- with .Values.ingress.console.annotations }} - annotations: {{ toYaml . | nindent 4 }} - {{- end }} -spec: - {{- with .Values.ingress.console.ingressClassName }} - ingressClassName: {{ . }} - {{- end }} - {{- if .Values.ingress.console.tls }} - tls: - {{- range .Values.ingress.console.tls }} - - hosts: - {{- range .hosts }} - - {{ . | quote }} - {{- end }} - secretName: {{ .secretName }} - {{- end }} - {{- end }} - rules: - - host: {{ .Values.ingress.console.host }} - http: - paths: - - path: {{ .Values.ingress.console.path }} - pathType: {{ .Values.ingress.console.pathType }} - backend: - service: - name: {{ .Values.tenant.name }}-console - port: - {{- if or .Values.tenant.certificate.requestAutoCert (not (empty .Values.tenant.certificate.externalCertSecret)) }} - name: https-console - {{- else }} - name: http-console - {{- end }} -{{- end }} diff --git a/sources/minio-tenant/7.1.1/templates/extra-resources.yaml b/sources/minio-tenant/7.1.1/templates/extra-resources.yaml deleted file mode 100644 index 13c5e9a9..00000000 --- a/sources/minio-tenant/7.1.1/templates/extra-resources.yaml +++ /dev/null @@ -1,4 +0,0 @@ -{{- range .Values.extraResources }} ---- -{{- include "minio-operator.render" (dict "value" . "context" $) }} -{{- end }} diff --git a/sources/minio-tenant/7.1.1/templates/kes-configuration-secret.yaml b/sources/minio-tenant/7.1.1/templates/kes-configuration-secret.yaml deleted file mode 100644 index bdbe0ecb..00000000 --- a/sources/minio-tenant/7.1.1/templates/kes-configuration-secret.yaml +++ /dev/null @@ -1,9 +0,0 @@ -{{- if dig "tenant" "kes" "configuration" false (.Values | merge (dict)) }} -apiVersion: v1 -kind: Secret -metadata: - name: kes-configuration -type: Opaque -stringData: - server-config.yaml: {{ .Values.tenant.kes.configuration | toYaml | indent 2 }} -{{- end }} diff --git a/sources/minio-tenant/7.1.1/templates/tenant-configuration.yaml b/sources/minio-tenant/7.1.1/templates/tenant-configuration.yaml deleted file mode 100644 index f38403e8..00000000 --- a/sources/minio-tenant/7.1.1/templates/tenant-configuration.yaml +++ /dev/null @@ -1,22 +0,0 @@ -{{- if (.Values.secrets) }} -{{- fail "# ERROR: '.secrets' is deprecated since v5.0.15 and has been removed. Please use '.tenant.configSecret' instead." }} -{{- else }} -{{- if not (.Values.tenant.configSecret) }} -{{- fail "# ERROR: '.tenant.configSecret' should be set." }} -{{- else }} -{{- if not (.Values.tenant.configSecret.existingSecret) }} - -apiVersion: v1 -kind: Secret -metadata: - name: {{ dig "tenant" "configSecret" "name" "" (.Values | merge (dict)) }} -type: Opaque -stringData: - config.env: |- - export MINIO_ROOT_USER={{ .Values.tenant.configSecret.accessKey | quote }} - export MINIO_ROOT_PASSWORD={{ .Values.tenant.configSecret.secretKey | quote }} - -{{- end }} -{{- end }} -{{- end }} - diff --git a/sources/minio-tenant/7.1.1/templates/tenant.yaml b/sources/minio-tenant/7.1.1/templates/tenant.yaml deleted file mode 100644 index a21613d3..00000000 --- a/sources/minio-tenant/7.1.1/templates/tenant.yaml +++ /dev/null @@ -1,211 +0,0 @@ -{{- with .Values.tenant }} -apiVersion: minio.min.io/v2 -kind: Tenant -metadata: - name: {{ .name }} - ## Optionally pass labels to be applied to the statefulset pods - labels: - app: minio - {{- if dig "metrics" "enabled" false . }} - ## Annotations for MinIO Tenant Pods - annotations: - prometheus.io/path: /minio/v2/metrics/cluster - prometheus.io/port: {{ dig "metrics" "port" 9000 . | quote }} - prometheus.io/scrape: "true" - prometheus.io/scheme: {{ dig "metrics" "protocol" "http" . | quote }} - {{- end }} -{{- if dig "scheduler" "name" "" . }} -scheduler: - name: {{ dig "scheduler" "name" "" . }} -{{- end }} -spec: - image: "{{ .image.repository }}:{{ .image.digest | default .image.tag }}" - imagePullPolicy: {{ dig "image" "pullPolicy" "IfNotPresent" . }} - {{- if dig "imagePullSecret" "name" "" . }} - imagePullSecret: - name: {{ dig "imagePullSecret" "name" "" . }} - {{- end }} - {{- with (dig "initContainers" (list) .) }} - initContainers: {{- toYaml . | nindent 4 }} - {{- end }} - ## Secret with default environment variable configurations - configuration: - name: {{ .configSecret.name }} - {{- if hasKey . "poolsMetadata" }} - poolsMetadata: {{- if eq (len .poolsMetadata) 0 }} {} {{- end }} - {{- with (dig "poolsMetadata" (dict) .) }} - {{- toYaml . | nindent 4 }} - {{- end }} - {{- end }} - pools: - {{- range .pools }} - - servers: {{ .servers | default 4 }} - name: {{ .name | default "" }} - volumesPerServer: {{ .volumesPerServer | default 4 }} - {{- if .runtimeClassName }} - runtimeClassName: {{ .runtimeClassName }} - {{- end }} - volumeClaimTemplate: - metadata: - name: data - {{- with .storageAnnotations }} - annotations: {{- toYaml . | nindent 12 }} - {{- end }} - {{- with .storageLabels }} - labels: {{- toYaml . | nindent 12 }} - {{- end }} - spec: - {{- if .storageClassName }} - storageClassName: {{ .storageClassName }} - {{- end }} - accessModes: - - ReadWriteOnce - resources: - requests: - storage: {{ .size | default "10Gi" }} - {{- with .annotations }} - annotations: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .labels }} - labels: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .tolerations }} - tolerations: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .nodeSelector }} - nodeSelector: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .affinity }} - affinity: {{- toYaml . | nindent 8 }} - {{- end }} - {{- with .resources }} - resources: {{- toYaml . | nindent 8 }} - {{- end }} - {{- if .securityContext }} - securityContext: {{- toYaml .securityContext | nindent 8 }} - {{- end }} - {{- if .containerSecurityContext }} - containerSecurityContext: {{- toYaml .containerSecurityContext | nindent 8 }} - {{- end }} - {{- with .topologySpreadConstraints }} - topologySpreadConstraints: {{- toYaml . | nindent 8 }} - {{- end }} - {{- end }} - mountPath: {{ dig "mountPath" "/export" . }} - subPath: {{ dig "subPath" "/data" . }} - {{- with (dig "certificate" "externalCaCertSecret" (list) .) }} - externalCaCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - {{- with (dig "certificate" "externalCertSecret" (list) .) }} - externalCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - requestAutoCert: {{ dig "certificate" "requestAutoCert" false . }} - {{- if ((.certificate).certExpiryAlertThreshold) }} - certExpiryAlertThreshold: {{ ((.certificate).certExpiryAlertThreshold) }} - {{- end }} - {{- if dig "s3" "bucketDNS" false . }} - {{- fail "Value 'tenant.s3.bucketDNS' is deprecated since Operator v4.3.2, use 'tenant.features.bucketDNS' instead" }} - {{- end }} - features: - bucketDNS: {{ dig "features" "bucketDNS" false . }} - {{- with (dig "features" "domains" (dict) .) }} - domains: {{- toYaml . | nindent 6 }} - {{- end }} - enableSFTP: {{ dig "features" "enableSFTP" false . }} - {{- with (dig "buckets" (list) .) }} - buckets: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "users" (list) .) }} - users: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "certificate" "certConfig" (dict) .) }} - certConfig: {{- toYaml . | nindent 4 }} - {{- end }} - podManagementPolicy: {{ dig "podManagementPolicy" "Parallel" . }} - {{- with (dig "readiness" (dict) .) }} - readiness: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "liveness" (dict) .) }} - liveness: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "startup" (dict) .) }} - startup: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "lifecycle" (dict) .) }} - lifecycle: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "exposeServices" (dict) .) }} - exposeServices: {{- toYaml . | nindent 4 }} - {{- end }} - {{- if dig "serviceAccountName" "" . }} - serviceAccountName: {{ dig "serviceAccountName" "" . }} - {{- end }} - prometheusOperator: {{ dig "prometheusOperator" "false" . }} - {{- with (dig "logging" (dict) .) }} - logging: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "serviceMetadata" (dict) .) }} - serviceMetadata: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "env" (list) .) }} - env: {{- toYaml . | nindent 4 }} - {{- end }} - {{- if dig "priorityClassName" "" . }} - priorityClassName: {{ dig "priorityClassName" "" . }} - {{- end }} - {{- with (dig "additionalVolumes" (list) .) }} - additionalVolumes: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "additionalVolumeMounts" (list) .) }} - additionalVolumeMounts: {{- toYaml . | nindent 4 }} - {{- end }} - {{- if dig "kes" "configuration" false . }} - kes: - image: "{{ .kes.image.repository }}:{{ .kes.image.digest | default .kes.image.tag }}" - {{- with (dig "kes" "env" (list) .) }} - env: {{- toYaml . | nindent 4 }} - {{- end }} - replicas: {{ .kes.replicas | int }} - kesSecret: - name: "kes-configuration" - imagePullPolicy: {{ .kes.imagePullPolicy | quote }} - {{- with (dig "kes" "externalCertSecret" (dict) .) }} - externalCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - {{- with (dig "kes" "clientCertSecret" (dict) .) }} - clientCertSecret: {{- toYaml . | nindent 6 }} - {{- end }} - ## Key name to be created on the KMS, default is "my-minio-key" - keyName: {{ .kes.keyName | quote }} - {{- with (dig "resources" (dict) .) }} - resources: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "nodeSelector" (dict) .) }} - nodeSelector: {{- toYaml . | nindent 4 }} - {{- end }} - affinity: - nodeAffinity: {} - podAffinity: {} - podAntiAffinity: {} - tolerations: [] - {{- with (dig "annotations" (dict) .) }} - annotations: {{- toYaml . | nindent 4 }} - {{- end }} - {{- with (dig "labels" (dict) .) }} - labels: {{- toYaml . | nindent 4 }} - {{- end }} - serviceAccountName: {{ .kes.serviceAccountName | quote }} - {{- if hasKey .kes "securityContext" }} - securityContext: {{- if eq (len .kes.securityContext) 0 }} {} {{- end }} - {{- with (dig "kes" "securityContext" (dict) .) }} - {{- toYaml . | nindent 6 }} - {{- end }} - {{- end }} - {{- if hasKey .kes "containerSecurityContext" }} - containerSecurityContext: {{- if eq (len .kes.containerSecurityContext) 0 }} { } {{- end }} - {{- with (dig "kes" "containerSecurityContext" (dict) .) }} - {{- toYaml . | nindent 6 }} - {{- end }} - {{- end }} - {{- end }} -{{- end }} diff --git a/sources/minio-tenant/7.1.1/values.yaml b/sources/minio-tenant/7.1.1/values.yaml deleted file mode 100644 index 4f9f0af4..00000000 --- a/sources/minio-tenant/7.1.1/values.yaml +++ /dev/null @@ -1,510 +0,0 @@ -# Root key for MinIO Tenant Chart -tenant: - ### - # The Tenant name - # - # Change this to match your preferred MinIO Tenant name. - name: myminio - ### - # Specify the Operator container image to use for the deployment. - # ``image.tag`` - # For example, the following sets the image to the ``quay.io/minio/operator`` repo and the v7.1.1 tag. - # The container pulls the image if not already present: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/minio - # tag: RELEASE.2025-04-08T15-41-24Z - # pullPolicy: IfNotPresent - # - # The chart also supports specifying an image based on digest value: - # - # .. code-block:: yaml - # - # image: - # repository: quay.io/minio/minio@sha256 - # digest: 28c80b379c75242c6fe793dfbf212f43c602140a0de5ebe3d9c2a3a7b9f9f983 - # pullPolicy: IfNotPresent - # - # - image: - repository: quay.io/minio/minio - tag: RELEASE.2025-04-08T15-41-24Z - pullPolicy: IfNotPresent - ### - # - # An array of Kubernetes secrets to use for pulling images from a private ``image.repository``. - # Only one array element is supported at this time. - imagePullSecret: { } - ### - # - # Specify `initContainers `__ to perform setup or configuration tasks before the main Tenant pods starts. - # - # Example of init container which waits for idenity provider to be reachable before starting MinIO Tenant: - # - # .. code-block:: yaml - # - # initContainers: - # - name: wait-for-idp - # image: busybox - # command: - # - sh - # - -c - # - | - # URL="https://idp-url" - # echo "Checking IdP reachability (${URL})" - # until $(wget -q -O "/dev/null" ${URL}) ; do - # echo "IdP (${URL}) not reachable. Waiting to be reachable..." - # sleep 5 - # done - # echo "IdP (${URL}) reachable. Starting MinIO..." - # - initContainers: [ ] - ### - # The Kubernetes `Scheduler `__ to use for dispatching Tenant pods. - # - # Specify an empty dictionary ``{}`` to dispatch pods with the default scheduler. - scheduler: { } - ### - # Root key for dynamically creating a secret for use with configuring root MinIO User - # Specify the ``name`` and then a list of environment variables. - # - # .. important:: - # - # Do not use this in production environments. - # This field is intended for use with rapid development or testing only. - # - # For example: - # - # .. code-block:: yaml - # - # name: myminio-env-configuration - # accessKey: minio - # secretKey: minio123 - # - configSecret: - name: myminio-env-configuration - accessKey: minio - secretKey: minio123 - #existingSecret: true - - ### - # Metadata that will be added to the statefulset and pods of all pools - poolsMetadata: - ### - # Specify `annotations `__ to associate to Tenant pods. - annotations: { } - ### - # Specify `labels `__ to associate to Tenant pods. - labels: { } - - ### - # If this variable is set to true, then enable the usage of an existing Kubernetes secret to set environment variables for the Tenant. - # The existing Kubernetes secret name must be placed under .tenant.configuration.name e.g. existing-minio-env-configuration - # The secret must contain a key ``config.env``. - # The values should be a series of export statements to set environment variables for the Tenant. - # For example: - # - # .. code-block:: shell - # - # stringData: - # config.env: |- - # export MINIO_ROOT_USER=ROOTUSERNAME - # export MINIO_ROOT_PASSWORD=ROOTUSERPASSWORD - # - # existingSecret: false - ### - # Top level key for configuring MinIO Pool(s) in this Tenant. - # - # See `Operator CRD: Pools `__ for more information on all subfields. - pools: - ### - # The number of MinIO Tenant Pods / Servers in this pool. - # For standalone mode, supply 1. For distributed mode, supply 4 or more. - # Note that the operator does not support upgrading from standalone to distributed mode. - - servers: 4 - ### - # Custom name for the pool - name: pool-0 - ### - # The number of volumes attached per MinIO Tenant Pod / Server. - volumesPerServer: 4 - ### - # The capacity per volume requested per MinIO Tenant Pod. - size: 10Gi - ### - # The `storageClass `__ to associate with volumes generated for this pool. - # - # If using Amazon Elastic Block Store (EBS) CSI driver - # Please make sure to set xfs for "csi.storage.k8s.io/fstype" parameter under StorageClass.parameters. - # Docs: https://github.com/kubernetes-sigs/aws-ebs-csi-driver/blob/master/docs/parameters.md - # storageClassName: standard - ### - # Specify `storageAnnotations `__ to associate to PVCs. - storageAnnotations: { } - ### - # Specify `storageLabels `__ to associate to PVCs. - storageLabels: { } - ### - # Specify `annotations `__ to associate to Tenant pods. - annotations: { } - ### - # Specify `labels `__ to associate to Tenant pods. - labels: { } - ### - # - # An array of `Toleration labels `__ to associate to Tenant pods. - # - # These settings determine the distribution of pods across worker nodes. - tolerations: [ ] - ### - # Any `Node Selectors `__ to apply to Tenant pods. - # - # The Kubernetes scheduler uses these selectors to determine which worker nodes onto which it can deploy Tenant pods. - # - # If no worker nodes match the specified selectors, the Tenant deployment will fail. - nodeSelector: { } - ### - # - # The `affinity `__ or anti-affinity settings to apply to Tenant pods. - # - # These settings determine the distribution of pods across worker nodes and can help prevent or allow colocating pods onto the same worker nodes. - affinity: { } - ### - # - # The `Requests or Limits `__ for resources to associate to Tenant pods. - # - # These settings can control the minimum and maximum resources requested for each pod. - # If no worker nodes can meet the specified requests, the Operator may fail to deploy. - resources: { } - ### - # The Kubernetes `SecurityContext `__ to use for deploying Tenant resources. - # - # You may need to modify these values to meet your cluster's security and access settings. - # - # We recommend disabling recursive permission changes by setting ``fsGroupChangePolicy`` to ``OnRootMismatch`` as those operations can be expensive for certain workloads (e.g. large volumes with many small files). - securityContext: - runAsUser: 1000 - runAsGroup: 1000 - fsGroup: 1000 - fsGroupChangePolicy: "OnRootMismatch" - runAsNonRoot: true - ### - # The Kubernetes `SecurityContext `__ to use for deploying Tenant containers. - # You may need to modify these values to meet your cluster's security and access settings. - containerSecurityContext: - runAsUser: 1000 - runAsGroup: 1000 - runAsNonRoot: true - allowPrivilegeEscalation: false - capabilities: - drop: - - ALL - seccompProfile: - type: RuntimeDefault - ### - # - # An array of `Topology Spread Constraints `__ to associate to Operator Console pods. - # - # These settings determine the distribution of pods across worker nodes. - topologySpreadConstraints: [ ] - ### - # - # The name of a custom `Container Runtime `__ to use for the Operator Console pods. - # runtimeClassName: "" - ### - # The mount path where Persistent Volumes are mounted inside Tenant container(s). - mountPath: /export - ### - # The Sub path inside Mount path where MinIO stores data. - # - # .. warning:: - # - # Treat the ``mountPath`` and ``subPath`` values as immutable once you deploy the Tenant. - # If you change these values post-deployment, then you may have different paths for new and pre-existing data. - # This can vastly increase operational complexity and may result in unpredictable data states. - subPath: /data - ### - # Configures a Prometheus-compatible scraping endpoint at the specified port. - metrics: - enabled: false - port: 9000 - protocol: http - ### - # Configures external certificate settings for the Tenant. - certificate: - ### - # Specify an array of Kubernetes TLS secrets, where each entry corresponds to a secret the TLS private key and public certificate pair. - # - # This is used by MinIO to verify TLS connections from clients using those CAs - # If you omit this and have clients using TLS certificates minted by an external CA, those connections may fail with warnings around certificate verification. - # See `Operator CRD: TenantSpec `__. - externalCaCertSecret: [ ] - ### - # Specify an array of Kubernetes secrets, where each entry corresponds to a secret contains the TLS private key and public certificate pair. - # - # Omit this to use only the MinIO Operator autogenerated certificates. - # - # If you omit this field *and* set ``requestAutoCert`` to false, the Tenant starts without TLS. - # - # See `Operator CRD: TenantSpec `__. - # - # .. important:: - # - # The MinIO Operator may output TLS connectivity errors if it cannot trust the Certificate Authority (CA) which minted the custom certificates. - # - # You can pass the CA to the Operator to allow it to trust that cert. - # See `Self-Signed, Internal, and Private Certificates `__ for more information. - # This step may also be necessary for globally trusted CAs where you must provide intermediate certificates to the Operator to help build the full chain of trust. - externalCertSecret: [ ] - ### - # Enable automatic Kubernetes based `certificate generation and signing `__ - requestAutoCert: true - ### - # The minimum number of days to expiry before an alert for an expiring certificate is fired. - # In the below example, if a given certificate will expire in 7 days then expiration events will only be triggered 1 day before expiry - # certExpiryAlertThreshold: 1 - ### - # This field is used only when ``requestAutoCert: true``. - # Use this field to set CommonName for the auto-generated certificate. - # MinIO defaults to using the internal Kubernetes DNS name for the pod - # The default DNS name format is typically ``*.minio.default.svc.cluster.local``. - # - # See `Operator CRD: CertificateConfig `__ - certConfig: { } - ### - # MinIO features to enable or disable in the MinIO Tenant - # See `Operator CRD: Features `__. - features: - bucketDNS: false - domains: { } - enableSFTP: false - ### - # Array of objects describing one or more buckets to create during tenant provisioning. - # Example: - # - # .. code-block:: yaml - # - # - name: my-minio-bucket - # objectLock: false # optional - # region: us-east-1 # optional - buckets: [ ] - ### - # Array of Kubernetes secrets from which the Operator generates MinIO users during tenant provisioning. - # - # Each secret should specify the ``CONSOLE_ACCESS_KEY`` and ``CONSOLE_SECRET_KEY`` as the access key and secret key for that user. - users: [ ] - ### - # The `PodManagement `__ policy for MinIO Tenant Pods. - # Can be "OrderedReady" or "Parallel" - podManagementPolicy: Parallel - # The `Liveness Probe `__ for monitoring Tenant pod liveness. - # Tenant pods will be restarted if the probe fails. - liveness: { } - ### - # `Readiness Probe `__ for monitoring Tenant container readiness. - # Tenant pods will be removed from service endpoints if the probe fails. - readiness: { } - ### - # `Startup Probe `__ for monitoring container startup. - # Tenant pods will be restarted if the probe fails. - # Refer - startup: { } - ### - # The `Lifecycle hooks `__ for container. - lifecycle: { } - ### - # Directs the Operator to deploy the MinIO S3 API and Console services as LoadBalancer objects. - # - # If the Kubernetes cluster has a configured LoadBalancer, it can attempt to route traffic to those services automatically. - # - # - Specify ``minio: true`` to expose the MinIO S3 API. - # - Specify ``console: true`` to expose the Console. - # - # Both fields default to ``false``. - exposeServices: { } - ### - # The `Kubernetes Service Account `__ associated with the Tenant. - serviceAccountName: "" - ### - # Directs the Operator to add the Tenant's metric scrape configuration to an existing Kubernetes Prometheus deployment managed by the Prometheus Operator. - prometheusOperator: false - ### - # Configure pod logging configuration for the MinIO Tenant. - # - # - Specify ``json`` for JSON-formatted logs. - # - Specify ``anonymous`` for anonymized logs. - # - Specify ``quiet`` to supress logging. - # - # An example of JSON-formatted logs is as follows: - # - # .. code-block:: shell - # - # $ k logs myminio-pool-0-0 -n default - # {"level":"INFO","errKind":"","time":"2022-04-07T21:49:33.740058549Z","message":"All MinIO sub-systems initialized successfully"} - logging: { } - ### - # serviceMetadata allows passing additional labels and annotations to MinIO and Console specific - # services created by the operator. - serviceMetadata: { } - ### - # Add environment variables to be set in MinIO container (https://github.com/minio/minio/tree/master/docs/config) - env: [ ] - ### - # PriorityClassName indicates the Pod priority and hence importance of a Pod relative to other Pods. - # This is applied to MinIO pods only. - # Refer Kubernetes documentation for details https://kubernetes.io/docs/concepts/configuration/pod-priority-preemption/#priorityclass/ - priorityClassName: "" - ### - # An array of `Volumes `__ which the Operator can mount to Tenant pods. - # - # The volumes must exist *and* be accessible to the Tenant pods. - additionalVolumes: [ ] - ### - # An array of volume mount points associated to each Tenant container. - # - # Specify each item in the array as follows: - # - # .. code-block:: yaml - # - # volumeMounts: - # - name: volumename - # mountPath: /path/to/mount - # - # The ``name`` field must correspond to an entry in the ``additionalVolumes`` array. - additionalVolumeMounts: [ ] - # Define configuration for KES (stateless and distributed key-management system) - # Refer https://github.com/minio/kes - #kes: - # ## Image field: - # # Image from tag (original behavior), for example: - # # image: - # # repository: quay.io/minio/kes - # # tag: 2025-03-12T09-35-18Z - # # Image from digest (added after original behavior), for example: - # # image: - # # repository: quay.io/minio/kes@sha256 - # # digest: fb15af611149892f357a8a99d1bcd8bf5dae713bd64c15e6eb27fbdb88fc208b - # image: - # repository: quay.io/minio/kes - # tag: 2025-03-12T09-35-18Z - # pullPolicy: IfNotPresent - # env: [ ] - # replicas: 2 - # configuration: |- - # address: :7373 - # tls: - # key: /tmp/kes/server.key # Path to the TLS private key - # cert: /tmp/kes/server.crt # Path to the TLS certificate - # proxy: - # identities: [] - # header: - # cert: X-Tls-Client-Cert - # admin: - # identity: ${MINIO_KES_IDENTITY} - # cache: - # expiry: - # any: 5m0s - # unused: 20s - # log: - # error: on - # audit: off - # keystore: - # # KES configured with fs (File System mode) doesn't work in Kubernetes environments and is not recommended - # # use a real KMS - # # fs: - # # path: "./keys" # Path to directory. Keys will be stored as files. Not Recommended for Production. - # vault: - # endpoint: "http://vault.default.svc.cluster.local:8200" # The Vault endpoint - # namespace: "" # An optional Vault namespace. See: https://www.vaultproject.io/docs/enterprise/namespaces/index.html - # prefix: "my-minio" # An optional K/V prefix. The server will store keys under this prefix. - # approle: # AppRole credentials. See: https://www.vaultproject.io/docs/auth/approle.html - # id: "" # Your AppRole Role ID - # secret: "" # Your AppRole Secret ID - # retry: 15s # Duration until the server tries to re-authenticate after connection loss. - # tls: # The Vault client TLS configuration for mTLS authentication and certificate verification - # key: "" # Path to the TLS client private key for mTLS authentication to Vault - # cert: "" # Path to the TLS client certificate for mTLS authentication to Vault - # ca: "" # Path to one or multiple PEM root CA certificates - # status: # Vault status configuration. The server will periodically reach out to Vault to check its status. - # ping: 10s # Duration until the server checks Vault's status again. - # # aws: - # # # The AWS SecretsManager key store. The server will store - # # # secret keys at the AWS SecretsManager encrypted with - # # # AWS-KMS. See: https://aws.amazon.com/secrets-manager - # # secretsmanager: - # # endpoint: "" # The AWS SecretsManager endpoint - e.g.: secretsmanager.us-east-2.amazonaws.com - # # region: "" # The AWS region of the SecretsManager - e.g.: us-east-2 - # # kmskey: "" # The AWS-KMS key ID used to en/decrypt secrets at the SecretsManager. By default (if not set) the default AWS-KMS key will be used. - # # credentials: # The AWS credentials for accessing secrets at the AWS SecretsManager. - # # accesskey: "" # Your AWS Access Key - # # secretkey: "" # Your AWS Secret Key - # # token: "" # Your AWS session token (usually optional) - # imagePullPolicy: "IfNotPresent" - # externalCertSecret: null - # clientCertSecret: null - # # Key name to be created on the KMS, default is "my-minio-key" - # keyName: "" - # resources: { } - # nodeSelector: { } - # affinity: - # nodeAffinity: { } - # podAffinity: { } - # podAntiAffinity: { } - # tolerations: [ ] - # annotations: { } - # labels: { } - # serviceAccountName: "" - # securityContext: - # runAsUser: 1000 - # runAsGroup: 1000 - # runAsNonRoot: true - # fsGroup: 1000 - # containerSecurityContext: - # runAsUser: 1000 - # runAsGroup: 1000 - # runAsNonRoot: true - # allowPrivilegeEscalation: false - # capabilities: - # drop: - # - ALL - # seccompProfile: - # type: RuntimeDefault - -### -# Configures `Ingress `__ for the Tenant S3 API and Console. -# -# Set the keys to conform to the Ingress controller and configuration of your choice. -ingress: - api: - enabled: false - ingressClassName: "" - labels: { } - annotations: { } - tls: [ ] - host: minio.local - path: / - pathType: Prefix - console: - enabled: false - ingressClassName: "" - labels: { } - annotations: { } - tls: [ ] - host: minio-console.local - path: / - pathType: Prefix -# Use an extraResources template section to include additional Kubernetes resources -# with the Helm deployment. -#extraResources: -# - | -# apiVersion: v1 -# kind: Secret -# type: Opaque -# metadata: -# name: {{ dig "tenant" "configSecret" "name" "" (.Values | merge (dict)) }} -# stringData: -# config.env: |- -# export MINIO_ROOT_USER='minio' -# export MINIO_ROOT_PASSWORD='minio123' diff --git a/sources/minio-tenant/source.yaml b/sources/minio-tenant/source.yaml deleted file mode 100644 index 7e03fffb..00000000 --- a/sources/minio-tenant/source.yaml +++ /dev/null @@ -1,4 +0,0 @@ -sourceUrl: https://operator.min.io -sourceRepoName: minio-operator -sourceChartName: tenant -sourceVersion: 7.1.1 diff --git a/sources/minio-tenant/values_ha.yaml b/sources/minio-tenant/values_ha.yaml deleted file mode 100644 index 4e7c08d1..00000000 --- a/sources/minio-tenant/values_ha.yaml +++ /dev/null @@ -1,26 +0,0 @@ -tenant: - name: default-minio-tenant - configSecret: - name: default-minio-tenant-env-configuration - existingSecret: true - pools: - - servers: 4 - name: pool-0 - volumesPerServer: 1 - size: 500Gi - storageClassName: direct - buckets: - - name: default-bucket - objectLock: true - - name: models - objectLock: true - users: - - name: default-user - certificate: - requestAutoCert: false - externalCaCertSecret: - - name: cluster-tls - type: kubernetes.io/secret/v1 - env: - - name: MINIO_PROMETHEUS_AUTH_TYPE - value: "public" diff --git a/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml b/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml index d00c5706..7c3ceae8 100644 --- a/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml +++ b/sources/openbao-config/0.1.0/templates/openbao-secret-definitions.yaml @@ -87,11 +87,11 @@ data: # ============================================================================= # MinIO API access credentials - secrets/minio-api-access-key|static|{{ .Values.minio.apiAccessKey }}|0 + secrets/minio-api-access-key|static|api-default-user|0 secrets/minio-api-secret-key|random||16 # MinIO console access credentials - secrets/minio-console-access-key|static|{{ .Values.minio.consoleAccessKey }}|0 + secrets/minio-console-access-key|static|default-user|0 secrets/minio-console-secret-key|random||16 # MinIO root admin password diff --git a/sources/openbao-config/0.1.0/templates/openbao-secret-manager-cm.yaml b/sources/openbao-config/0.1.0/templates/openbao-secret-manager-cm.yaml index c35bd242..6ce720f3 100644 --- a/sources/openbao-config/0.1.0/templates/openbao-secret-manager-cm.yaml +++ b/sources/openbao-config/0.1.0/templates/openbao-secret-manager-cm.yaml @@ -15,19 +15,37 @@ data: fi echo "Managing OpenBao secrets from /tmp/secrets/secrets.env..." - + created=0 + updated=0 skipped=0 - + while IFS='|' read -r path type value bytes; do [[ "$path" =~ ^#.*$ ]] || [[ -z "$path" ]] && continue - + if bao kv get "$path" > /dev/null 2>&1; then - echo "SKIP: $path (already exists)" - skipped=$((skipped + 1)) + # Path already exists. random secrets are write-once so they are never + # regenerated. static secrets are reconciled: if the desired value has + # changed (e.g. a previously stored unrendered template literal), update + # it so downstream ExternalSecrets converge on the correct value. + if [ "$type" = "static" ]; then + final_value=$(echo "$value" | envsubst) + current_value=$(bao kv get -field=value "$path" 2>/dev/null || echo "") + if [ "$current_value" = "$final_value" ]; then + echo "SKIP: $path (static, unchanged)" + skipped=$((skipped + 1)) + else + echo "UPDATE: $path (static, value changed)" + bao kv put "$path" value="$final_value" || { echo "ERROR: Failed to update $path"; exit 1; } + updated=$((updated + 1)) + fi + else + echo "SKIP: $path (already exists)" + skipped=$((skipped + 1)) + fi else echo "CREATE: $path ($type)" - + if [ "$type" = "static" ]; then final_value=$(echo "$value" | envsubst) bao kv put "$path" value="$final_value" || { echo "ERROR: Failed to create $path"; exit 1; } @@ -38,12 +56,12 @@ data: echo "ERROR: Unknown secret type: $type" exit 1 fi - + created=$((created + 1)) fi done < /tmp/secrets/secrets.env - - echo "DONE: Created $created, Skipped $skipped" + + echo "DONE: Created $created, Updated $updated, Skipped $skipped" # Special case: cluster-auth-openbao-token uses actual BAO_TOKEN (for init job only) if [ "$INIT_MODE" = "true" ]; then diff --git a/sources/otel-lgtm-stack/v1.0.7/templates/collectors-metrics-rest.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/collectors-metrics-rest.yaml index 0857538b..f7116c8c 100644 --- a/sources/otel-lgtm-stack/v1.0.7/templates/collectors-metrics-rest.yaml +++ b/sources/otel-lgtm-stack/v1.0.7/templates/collectors-metrics-rest.yaml @@ -84,19 +84,19 @@ spec: scheme: http static_configs: - targets: - - minio.minio-tenant-default.svc.cluster.local + - filer-s3.seaweedfs-instance.svc.cluster.local - job_name: minio-bucket-metrics metrics_path: /minio/v2/metrics/bucket scheme: http static_configs: - targets: - - minio.minio-tenant-default.svc.cluster.local + - filer-s3.seaweedfs-instance.svc.cluster.local - job_name: minio-resource-metrics metrics_path: /minio/v2/metrics/resource scheme: http static_configs: - targets: - - minio.minio-tenant-default.svc.cluster.local + - filer-s3.seaweedfs-instance.svc.cluster.local - job_name: argocd-controller metrics_path: /metrics scheme: http diff --git a/sources/otel-lgtm-stack/v1.0.7/templates/dashboards-minio.yaml b/sources/otel-lgtm-stack/v1.0.7/templates/dashboards-minio.yaml deleted file mode 100644 index f2957871..00000000 --- a/sources/otel-lgtm-stack/v1.0.7/templates/dashboards-minio.yaml +++ /dev/null @@ -1,657 +0,0 @@ ---- -apiVersion: v1 -kind: ConfigMap -metadata: - name: lgtm-minio-dashboard - namespace: {{ .Release.Namespace }} - labels: - grafana_dashboard: "1" - annotations: - grafana_folder: "common" -data: - lgtm-minio-dashboard.json: |- - { - "annotations": { - "list": [ - { - "builtIn": 1, - "datasource": { - "type": "grafana", - "uid": "-- Grafana --" - }, - "enable": true, - "hide": true, - "iconColor": "rgba(0, 211, 255, 1)", - "name": "Annotations & Alerts", - "type": "dashboard" - } - ] - }, - "editable": true, - "fiscalYearStartMonth": 0, - "graphTooltip": 0, - "id": 11, - "links": [], - "panels": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "fieldMinMax": false, - "mappings": [], - "thresholds": { - "mode": "percentage", - "steps": [ - { - "color": "green" - }, - { - "color": "dark-red", - "value": 20 - }, - { - "color": "#EAB839", - "value": 30 - }, - { - "color": "green", - "value": 40 - } - ] - }, - "unit": "percent" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 0, - "y": 0 - }, - "id": 7, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "(minio_cluster_capacity_usable_free_bytes{job=\"minio-cluster-metrics\"} / minio_cluster_capacity_usable_total_bytes{job=\"minio-cluster-metrics\"}) * 100", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Cluster Free Capacity (%)", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "Total bytes on a drive", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 6, - "y": 0 - }, - "id": 1, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "disableTextWrap": false, - "editorMode": "code", - "expr": "minio_node_drive_total_bytes{job=\"minio-resource-metrics\"}", - "fullMetaSearch": false, - "includeNullMetadata": true, - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A", - "useBackend": false - } - ], - "title": "Drive Total Bytes", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "Used bytes on a drive", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 12, - "y": 0 - }, - "id": 2, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "minio_node_drive_used_bytes{job=\"minio-resource-metrics\"}", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Drive Used Bytes", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "Total number of buckets in the cluster", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "buckets" - }, - "overrides": [] - }, - "gridPos": { - "h": 9, - "w": 6, - "x": 18, - "y": 0 - }, - "id": 5, - "options": { - "colorMode": "value", - "graphMode": "none", - "justifyMode": "auto", - "orientation": "auto", - "percentChangeColorMode": "standard", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showPercentChange": false, - "textMode": "auto", - "wideLayout": true - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "minio_cluster_bucket_total{job=\"minio-cluster-metrics\"}", - "instant": false, - "legendFormat": "{{ "{{" }}job{{ "}}" }}", - "range": true, - "refId": "A" - } - ], - "title": "Total Number of Buckets", - "type": "stat" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "description": "Total bucket size in bytes", - "fieldConfig": { - "defaults": { - "color": { - "mode": "thresholds" - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - } - ] - }, - "unit": "bytes" - }, - "overrides": [] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 0, - "y": 9 - }, - "id": 3, - "options": { - "minVizHeight": 75, - "minVizWidth": 75, - "orientation": "auto", - "reduceOptions": { - "calcs": [ - "lastNotNull" - ], - "fields": "", - "values": false - }, - "showThresholdLabels": false, - "showThresholdMarkers": true, - "sizing": "auto" - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "minio_bucket_usage_total_bytes{}", - "instant": false, - "legendFormat": "{{ "{{" }}bucket{{ "}}" }}", - "range": true, - "refId": "A" - } - ], - "title": "minio_bucket_usage_total_bytes", - "type": "gauge" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [ - { - "__systemRef": "hideSeriesFrom", - "matcher": { - "id": "byNames", - "options": { - "mode": "exclude", - "names": [ - "default-bucket" - ], - "prefix": "All except:", - "readOnly": true - } - }, - "properties": [ - { - "id": "custom.hideFrom", - "value": { - "legend": false, - "tooltip": false, - "viz": true - } - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 6, - "x": 6, - "y": 9 - }, - "id": 4, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "increase(minio_bucket_usage_total_bytes[10m])\n", - "instant": false, - "legendFormat": "{{ "{{" }}bucket{{ "}}" }}", - "range": true, - "refId": "A" - } - ], - "title": "MinIO Bucket Growth Rate", - "type": "timeseries" - }, - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "fieldConfig": { - "defaults": { - "color": { - "mode": "palette-classic" - }, - "custom": { - "axisBorderShow": false, - "axisCenteredZero": false, - "axisColorMode": "text", - "axisLabel": "", - "axisPlacement": "auto", - "barAlignment": 0, - "barWidthFactor": 0.6, - "drawStyle": "line", - "fillOpacity": 0, - "gradientMode": "none", - "hideFrom": { - "legend": false, - "tooltip": false, - "viz": false - }, - "insertNulls": false, - "lineInterpolation": "linear", - "lineWidth": 1, - "pointSize": 5, - "scaleDistribution": { - "type": "linear" - }, - "showPoints": "auto", - "spanNulls": false, - "stacking": { - "group": "A", - "mode": "none" - }, - "thresholdsStyle": { - "mode": "off" - } - }, - "decimals": 3, - "mappings": [], - "thresholds": { - "mode": "absolute", - "steps": [ - { - "color": "green" - }, - { - "color": "red", - "value": 80 - } - ] - }, - "unit": "bytes" - }, - "overrides": [ - { - "__systemRef": "hideSeriesFrom", - "matcher": { - "id": "byNames", - "options": { - "mode": "exclude", - "names": [ - "{__name__=\"minio_bucket_usage_total_bytes\", bucket=\"default-bucket\", instance=\"minio.minio-tenant-default.svc.cluster.local:80\", job=\"minio-bucket-metrics\", server=\"127.0.0.1:9000\", service_instance_id=\"minio.minio-tenant-default.svc.cluster.local:80\", service_name=\"minio-bucket-metrics\"}" - ], - "prefix": "All except:", - "readOnly": true - } - }, - "properties": [ - { - "id": "custom.hideFrom", - "value": { - "legend": false, - "tooltip": false, - "viz": true - } - } - ] - } - ] - }, - "gridPos": { - "h": 8, - "w": 12, - "x": 12, - "y": 9 - }, - "id": 8, - "options": { - "legend": { - "calcs": [], - "displayMode": "list", - "placement": "bottom", - "showLegend": true - }, - "tooltip": { - "hideZeros": false, - "mode": "single", - "sort": "none" - } - }, - "pluginVersion": "11.6.0", - "targets": [ - { - "datasource": { - "type": "prometheus", - "uid": "prometheus" - }, - "editorMode": "code", - "expr": "minio_bucket_usage_total_bytes{}", - "instant": false, - "legendFormat": "__auto", - "range": true, - "refId": "A" - } - ], - "title": "Bucket Usage Bytes", - "type": "timeseries" - } - ], - "preload": false, - "schemaVersion": 41, - "tags": [], - "templating": { - "list": [] - }, - "time": { - "from": "now-12h", - "to": "now" - }, - "timepicker": { - "refresh_intervals": [ - "5s", - "10s", - "30s", - "1m", - "5m", - "15m", - "30m", - "1h", - "2h", - "1d", - "7d" - ] - }, - "timezone": "browser", - "title": "MinIO simple dashboard", - "uid": "minioSimple", - "version": 5 - } diff --git a/sources/seaweedfs-config/Chart.yaml b/sources/seaweedfs-config/Chart.yaml new file mode 100644 index 00000000..ed584d9b --- /dev/null +++ b/sources/seaweedfs-config/Chart.yaml @@ -0,0 +1,4 @@ +apiVersion: v2 +name: seaweedfs-config +description: A Helm chart with config for the seaweedfs-operator +version: 0.1.0 diff --git a/sources/seaweedfs-config/templates/seaweed-admin-svc.yaml b/sources/seaweedfs-config/templates/seaweed-admin-svc.yaml new file mode 100644 index 00000000..d1539a55 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweed-admin-svc.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: admin + namespace: seaweedfs-instance +spec: + ports: + - name: http + port: 80 + targetPort: 23646 + protocol: TCP + selector: + app.kubernetes.io/component: admin + app.kubernetes.io/name: seaweedfs diff --git a/sources/seaweedfs-config/templates/seaweed-s3-svc.yaml b/sources/seaweedfs-config/templates/seaweed-s3-svc.yaml new file mode 100644 index 00000000..c11b6dd0 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweed-s3-svc.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: filer-s3 + namespace: seaweedfs-instance +spec: + ports: + - name: http + port: 80 + targetPort: 8333 + protocol: TCP + selector: + app.kubernetes.io/component: filer + app.kubernetes.io/instance: seaweed + app.kubernetes.io/managed-by: seaweedfs-operator + app.kubernetes.io/name: seaweedfs \ No newline at end of file diff --git a/sources/seaweedfs-config/templates/seaweedfs-admin-deployment.yaml b/sources/seaweedfs-config/templates/seaweedfs-admin-deployment.yaml new file mode 100644 index 00000000..afa46c23 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-admin-deployment.yaml @@ -0,0 +1,89 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: seaweedfs-admin + namespace: seaweedfs-instance + labels: + app.kubernetes.io/name: seaweedfs + app.kubernetes.io/component: admin +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: seaweedfs + app.kubernetes.io/component: admin + template: + metadata: + labels: + app.kubernetes.io/name: seaweedfs + app.kubernetes.io/component: admin + spec: + initContainers: + - name: wait-for-masters + image: ghcr.io/silogen/cluster-tool:latest + command: + - 'sh' + - '-c' + - | + echo "Waiting for SeaweedFS master pods to be ready..." + until kubectl -n seaweedfs-instance get pods -l app.kubernetes.io/name=seaweedfs,app.kubernetes.io/component=master -o jsonpath='{.items[*].status.containerStatuses[0].ready}' | grep -q true; do + echo "Master pods not ready yet. Retrying in 5 seconds..." + sleep 5 + done + echo "Master pods are ready!" + env: + - name: KUBECONFIG + value: /var/run/secrets/kubernetes.io/serviceaccount/config + containers: + - name: seaweedfs-admin + image: chrislusf/seaweedfs:latest + imagePullPolicy: Always + env: + - name: SEAWEEDFS_ADMIN_PASSWORD + valueFrom: + secretKeyRef: + name: seaweedfs-admin-secret + key: admin-password + command: + - weed + - admin + - -masters=seaweed-master.seaweedfs-instance.svc.cluster.local:9333 + - -adminUser=admin + - -adminPassword=$(SEAWEEDFS_ADMIN_PASSWORD) + resources: + requests: + memory: "64Mi" + cpu: "100m" + limits: + memory: "256Mi" + cpu: "500m" + serviceAccountName: seaweedfs-admin + restartPolicy: Always +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: seaweedfs-admin + namespace: seaweedfs-instance +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: seaweedfs-admin +rules: +- apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list", "watch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: seaweedfs-admin +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: seaweedfs-admin +subjects: +- kind: ServiceAccount + name: seaweedfs-admin + namespace: seaweedfs-instance diff --git a/sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml b/sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml new file mode 100644 index 00000000..ff260b51 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-es-admin.yaml @@ -0,0 +1,19 @@ +apiVersion: external-secrets.io/v1beta1 +kind: ExternalSecret +metadata: + name: seaweed-admin-es-secret + namespace: seaweedfs-instance + annotations: + argocd.argoproj.io/hook: PreSync +spec: + secretStoreRef: + kind: ClusterSecretStore + name: openbao-secret-store + refreshInterval: 5m + target: + name: seaweedfs-admin-secret + data: + - secretKey: admin-password + remoteRef: + key: secrets/data/minio-root-password + property: value diff --git a/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml new file mode 100644 index 00000000..79f2561d --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-es-s3-config.yaml @@ -0,0 +1,62 @@ +apiVersion: external-secrets.io/v1beta1 +kind: ExternalSecret +metadata: + name: seaweedfs-es-s3-config + namespace: seaweedfs-instance + annotations: + argocd.argoproj.io/hook: PreSync +spec: + secretStoreRef: + kind: ClusterSecretStore + name: openbao-secret-store + refreshInterval: 5m + target: + name: seaweedfs-s3-config + template: + data: + s3.json: | + { + "identities": [ + { + "name": "Console", + "actions": [ + "Admin" + ], + "credentials": [ + { + "accessKey": "{{ "{{" }}.CONSOLE_ACCESS_KEY{{ "}}"}}", + "secretKey": "{{ "{{" }}.CONSOLE_SECRET_KEY{{ "}}"}}" + } + ] + }, + { + "name": "ApiUser", + "actions": [ + "Admin" + ], + "credentials": [ + { + "accessKey": "{{ "{{" }}.API_ACCESS_KEY{{ "}}"}}", + "secretKey": "{{ "{{" }}.API_SECRET_KEY{{ "}}"}}" + } + ] + } + ] + } + data: + - secretKey: API_ACCESS_KEY + remoteRef: + key: secrets/data/minio-api-access-key + property: value + - secretKey: API_SECRET_KEY + remoteRef: + key: secrets/data/minio-api-secret-key + property: value + - secretKey: CONSOLE_ACCESS_KEY + remoteRef: + key: secrets/data/minio-console-access-key + property: value + - secretKey: CONSOLE_SECRET_KEY + remoteRef: + key: secrets/data/minio-console-secret-key + property: value \ No newline at end of file diff --git a/sources/seaweedfs-config/templates/seaweedfs-httproute-admin.yaml b/sources/seaweedfs-config/templates/seaweedfs-httproute-admin.yaml new file mode 100644 index 00000000..70fde460 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-httproute-admin.yaml @@ -0,0 +1,18 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: seaweed-admin + namespace: seaweedfs-instance +spec: + parentRefs: + - name: https + namespace: envoy-gateway-system + rules: + - backendRefs: + - name: admin + port: 80 + matches: + - headers: + - type: RegularExpression + name: Host + value: "seaweed-admin\\..*" diff --git a/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml b/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml new file mode 100644 index 00000000..536469e2 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-httproute.yaml @@ -0,0 +1,18 @@ +apiVersion: gateway.networking.k8s.io/v1 +kind: HTTPRoute +metadata: + name: seaweed + namespace: seaweedfs-instance +spec: + parentRefs: + - name: https + namespace: envoy-gateway-system + rules: + - backendRefs: + - name: filer-s3 + port: 80 + matches: + - headers: + - type: RegularExpression + name: Host + value: "seaweed\\..*" \ No newline at end of file diff --git a/sources/seaweedfs-config/templates/seaweedfs-init-job.yaml b/sources/seaweedfs-config/templates/seaweedfs-init-job.yaml new file mode 100644 index 00000000..d2a3ff57 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-init-job.yaml @@ -0,0 +1,78 @@ +{{- if .Values.initJob.enabled }} +apiVersion: batch/v1 +kind: Job +metadata: + name: seaweedfs-init-job + namespace: seaweedfs-instance + annotations: + argocd.argoproj.io/hook: PostSync + argocd.argoproj.io/hook-delete-policy: BeforeHookCreation +spec: + ttlSecondsAfterFinished: 300 + template: + spec: + restartPolicy: Never + serviceAccountName: seaweedfs-init-job-sa + containers: + - name: seaweedfs-init + image: ghcr.io/silogen/cluster-tool:latest + command: ["/bin/bash", "-c"] + args: + - | + #!/bin/bash + set -e + + S3_ENDPOINT="${S3_ENDPOINT:-http://filer-s3.seaweedfs-instance.svc.cluster.local}" + + echo "Extracting S3 credentials from secret..." + S3_CONFIG=$(kubectl get secret seaweedfs-s3-config -n seaweedfs-instance -o jsonpath='{.data.s3\.json}' | base64 -d) + + export AWS_ACCESS_KEY_ID=$(echo "$S3_CONFIG" | jq -r '.identities[] | select(.name == "ApiUser") | .credentials[0].accessKey') + export AWS_SECRET_ACCESS_KEY=$(echo "$S3_CONFIG" | jq -r '.identities[] | select(.name == "ApiUser") | .credentials[0].secretKey') + + if [ -z "$AWS_ACCESS_KEY_ID" ] || [ -z "$AWS_SECRET_ACCESS_KEY" ]; then + echo "ERROR: Failed to extract S3 credentials from secret" + exit 1 + fi + + echo "Waiting for SeaweedFS S3 service to be ready..." + for i in {1..60}; do + if curl -s --max-time 5 "${S3_ENDPOINT}" >/dev/null 2>&1; then + echo "SeaweedFS S3 service is ready and responding" + break + fi + if [ $i -eq 60 ]; then + echo "ERROR: SeaweedFS S3 service not ready after 60 attempts" + exit 1 + fi + echo "Waiting for SeaweedFS S3 to be ready... attempt $i/60" + sleep 5 + done + + aws configure set aws_access_key_id "$AWS_ACCESS_KEY_ID" + aws configure set aws_secret_access_key "$AWS_SECRET_ACCESS_KEY" + aws configure set default.region us-east-1 + + echo "Creating S3 buckets..." + + {{- range .Values.initJob.buckets }} + BUCKET_NAME="{{ .name }}" + echo "Checking if bucket '$BUCKET_NAME' exists..." + + if aws --endpoint-url="$S3_ENDPOINT" s3 ls "s3://$BUCKET_NAME" 2>/dev/null; then + echo "Bucket '$BUCKET_NAME' already exists" + else + echo "Creating bucket '$BUCKET_NAME'..." + if aws --endpoint-url="$S3_ENDPOINT" s3 mb "s3://$BUCKET_NAME"; then + echo "Successfully created bucket '$BUCKET_NAME'" + else + echo "ERROR: Failed to create bucket '$BUCKET_NAME'" + exit 1 + fi + fi + {{- end }} + + echo "All buckets initialized successfully!" + echo "Current buckets:" + aws --endpoint-url="$S3_ENDPOINT" s3 ls +{{- end }} diff --git a/sources/seaweedfs-config/templates/seaweedfs-init-rbac.yaml b/sources/seaweedfs-config/templates/seaweedfs-init-rbac.yaml new file mode 100644 index 00000000..6d24ee61 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-init-rbac.yaml @@ -0,0 +1,35 @@ +{{- if .Values.initJob.enabled }} +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: seaweedfs-init-job-sa + namespace: seaweedfs-instance +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: seaweedfs-init-job-role + namespace: seaweedfs-instance +rules: + - apiGroups: [""] + resources: ["secrets"] + verbs: ["get", "list", "watch"] + - apiGroups: [""] + resources: ["pods"] + verbs: ["get", "list", "watch"] +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: seaweedfs-init-job-rolebinding + namespace: seaweedfs-instance +subjects: + - kind: ServiceAccount + name: seaweedfs-init-job-sa + namespace: seaweedfs-instance +roleRef: + kind: Role + name: seaweedfs-init-job-role + apiGroup: rbac.authorization.k8s.io +{{- end }} diff --git a/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml b/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml new file mode 100644 index 00000000..4ebbdaf9 --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-pvc.yaml @@ -0,0 +1,14 @@ +{{- with .Values.seaweed }} +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: pvc-seaweed-s3-metadata + namespace: seaweedfs-instance +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: {{ .filer.requests.storage }} + storageClassName: {{ .storageClassName }} + {{- end }} \ No newline at end of file diff --git a/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml b/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml new file mode 100644 index 00000000..e207a6bd --- /dev/null +++ b/sources/seaweedfs-config/templates/seaweedfs-seaweed.yaml @@ -0,0 +1,40 @@ +{{- with .Values.seaweed }} +apiVersion: seaweed.seaweedfs.com/v1 +kind: Seaweed +metadata: + name: seaweed + namespace: seaweedfs-instance +spec: + image: chrislusf/seaweedfs:latest + volumeServerDiskCount: 1 + hostSuffix: plat-dev-1.silogen.ai + master: + replicas: {{ .master.replicas }} + volumeSizeLimitMB: 1024 + volume: + replicas: {{ .volume.replicas }} + storageClassName: {{ .storageClassName }} + requests: + storage: {{ .volume.requests.storage }} + # Topology configuration for rack/datacenter-aware placement + rack: "rack1" + dataCenter: "dc1" + filer: + replicas: {{ .filer.replicas }} + volumes: + - name: s3-metadata + persistentVolumeClaim: + claimName: pvc-seaweed-s3-metadata + volumeMounts: + - mountPath: /data/ + name: s3-metadata + s3: + enabled: true + configSecret: + name: seaweedfs-s3-config + key: s3.json + config: | + [leveldb2] + enabled = true + dir = "/data/filerldb2" +{{- end}} \ No newline at end of file diff --git a/sources/seaweedfs-config/values.yaml b/sources/seaweedfs-config/values.yaml new file mode 100644 index 00000000..f48352d3 --- /dev/null +++ b/sources/seaweedfs-config/values.yaml @@ -0,0 +1,20 @@ +domain: # to be filled by cluster-forge app +seaweed: + storageClassName: mlstorage + master: + replicas: 1 + volumeSizeLimitMB: 1024 + volume: + replicas: 1 + requests: + storage: 25Gi + filer: + replicas: 1 + requests: + storage: 10Gi + +# S3 bucket initialization +initJob: + enabled: true + buckets: + - name: default-bucket \ No newline at end of file diff --git a/sources/minio-operator/7.1.1/templates/minio.min.io_tenants.yaml b/sources/seaweedfs-crds/0.1.13/seaweed.seaweedfs.com_seaweeds.yaml similarity index 54% rename from sources/minio-operator/7.1.1/templates/minio.min.io_tenants.yaml rename to sources/seaweedfs-crds/0.1.13/seaweed.seaweedfs.com_seaweeds.yaml index d1f4e303..49ba6e28 100644 --- a/sources/minio-operator/7.1.1/templates/minio.min.io_tenants.yaml +++ b/sources/seaweedfs-crds/0.1.13/seaweed.seaweedfs.com_seaweeds.yaml @@ -1,33 +1,19 @@ ---- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.17.2 - operator.min.io/version: v7.1.1 - name: tenants.minio.min.io + controller-gen.kubebuilder.io/version: v0.19.0 + name: seaweeds.seaweed.seaweedfs.com spec: - group: minio.min.io + group: seaweed.seaweedfs.com names: - kind: Tenant - listKind: TenantList - plural: tenants - shortNames: - - tenant - singular: tenant + kind: Seaweed + listKind: SeaweedList + plural: seaweeds + singular: seaweed scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .status.currentState - name: State - type: string - - jsonPath: .status.healthStatus - name: Health - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v2 + - name: v1 schema: openAPIV3Schema: properties: @@ -37,1692 +23,451 @@ spec: type: string metadata: type: object - scheduler: - properties: - name: - type: string - required: - - name - type: object spec: properties: - additionalVolumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - additionalVolumes: - items: - properties: - awsElasticBlockStore: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - azureDisk: - properties: - cachingMode: - type: string - diskName: - type: string - diskURI: - type: string - fsType: - default: ext4 - type: string - kind: - type: string - readOnly: - default: false - type: boolean - required: - - diskName - - diskURI - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - required: - - secretName - - shareName - type: object - cephfs: - properties: - monitors: - items: - type: string - type: array - x-kubernetes-list-type: atomic - path: - type: string - readOnly: - type: boolean - secretFile: - type: string - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - user: - type: string - required: - - monitors - type: object - cinder: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - volumeID: - type: string - required: - - volumeID - type: object - configMap: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - csi: - properties: - driver: - type: string - fsType: - type: string - nodePublishSecretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - required: - - driver - type: object - downwardAPI: - properties: - defaultMode: - format: int32 - type: integer + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - required: - - path - type: object - type: array - x-kubernetes-list-type: atomic - type: object - emptyDir: - properties: - medium: - type: string - sizeLimit: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - ephemeral: - properties: - volumeClaimTemplate: properties: - metadata: + preference: properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: + matchExpressions: items: - type: string + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - accessModes: + x-kubernetes-list-type: atomic + matchFields: items: - type: string + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object type: array x-kubernetes-list-type: atomic - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string type: object + x-kubernetes-map-type: atomic + weight: + type: integer required: - - spec + - preference + - weight type: object - type: object - fc: - properties: - fsType: - type: string - lun: - format: int32 - type: integer - readOnly: - type: boolean - targetWWNs: - items: - type: string - type: array - x-kubernetes-list-type: atomic - wwids: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - flexVolume: - properties: - driver: - type: string - fsType: - type: string - options: - additionalProperties: - type: string - type: object - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - required: - - driver - type: object - flocker: - properties: - datasetName: - type: string - datasetUUID: - type: string - type: object - gcePersistentDisk: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - pdName: - type: string - readOnly: - type: boolean - required: - - pdName - type: object - gitRepo: - properties: - directory: - type: string - repository: - type: string - revision: - type: string - required: - - repository - type: object - glusterfs: - properties: - endpoints: - type: string - path: - type: string - readOnly: - type: boolean - required: - - endpoints - - path - type: object - hostPath: - properties: - path: - type: string - type: - type: string - required: - - path - type: object - image: - properties: - pullPolicy: - type: string - reference: - type: string - type: object - iscsi: - properties: - chapAuthDiscovery: - type: boolean - chapAuthSession: - type: boolean - fsType: - type: string - initiatorName: - type: string - iqn: - type: string - iscsiInterface: - default: default - type: string - lun: - format: int32 - type: integer - portals: - items: - type: string - type: array - x-kubernetes-list-type: atomic - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - targetPortal: - type: string - required: - - iqn - - lun - - targetPortal - type: object - name: - type: string - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - required: - - path - - server - type: object - persistentVolumeClaim: - properties: - claimName: - type: string - readOnly: - type: boolean - required: - - claimName - type: object - photonPersistentDisk: - properties: - fsType: - type: string - pdID: - type: string - required: - - pdID - type: object - portworxVolume: - properties: - fsType: - type: string - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - projected: - properties: - defaultMode: - format: int32 - type: integer - sources: - items: - properties: - clusterTrustBundle: - properties: - labelSelector: + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: properties: - matchExpressions: + key: + type: string + operator: + type: string + values: items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object + type: string type: array x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object + required: + - key + - operator type: object - x-kubernetes-map-type: atomic - name: - type: string - optional: - type: boolean - path: - type: string - signerName: - type: string - required: - - path - type: object - configMap: - properties: + type: array + x-kubernetes-list-type: atomic + matchFields: items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: + properties: + key: + type: string + operator: + type: string + values: + items: type: string - required: - - key - - path + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - downwardAPI: - properties: + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - required: - - path + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string type: object - type: array - x-kubernetes-list-type: atomic - type: object - secret: - properties: + type: object + x-kubernetes-map-type: atomic + namespaces: items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - serviceAccountToken: - properties: - audience: - type: string - expirationSeconds: - format: int64 - type: integer - path: type: string - required: - - path - type: object - type: object - type: array - x-kubernetes-list-type: atomic - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - registry: - type: string - tenant: - type: string - user: - type: string - volume: - type: string - required: - - registry - - volume - type: object - rbd: - properties: - fsType: - type: string - image: - type: string - keyring: - default: /etc/ceph/keyring - type: string - monitors: - items: - type: string - type: array - x-kubernetes-list-type: atomic - pool: - default: rbd - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - user: - default: admin - type: string - required: - - image - - monitors - type: object - scaleIO: - properties: - fsType: - default: xfs - type: string - gateway: - type: string - protectionDomain: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight type: object - x-kubernetes-map-type: atomic - sslEnabled: - type: boolean - storageMode: - default: ThinProvisioned - type: string - storagePool: - type: string - system: - type: string - volumeName: - type: string - required: - - gateway - - secretRef - - system - type: object - secret: - properties: - defaultMode: - format: int32 - type: integer + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: items: - items: - properties: - key: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: type: string - mode: - format: int32 - type: integer - path: + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - volumeName: - type: string - volumeNamespace: - type: string - type: object - vsphereVolume: - properties: - fsType: - type: string - storagePolicyID: - type: string - storagePolicyName: - type: string - volumePath: - type: string - required: - - volumePath - type: object - required: - - name - type: object - type: array - buckets: - items: - properties: - name: - type: string - objectLock: - type: boolean - region: - type: string - type: object - type: array - certConfig: - properties: - commonName: - type: string - dnsNames: - items: - type: string - type: array - organizationName: - items: - type: string - type: array - type: object - certExpiryAlertThreshold: - format: int32 - type: integer - configuration: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: type: string required: - - fieldPath + - topologyKey type: object - x-kubernetes-map-type: atomic - resourceFieldRef: + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - exposeServices: - properties: - console: - type: boolean - minio: - type: boolean - type: object - externalCaCertSecret: - items: - properties: - name: - type: string - type: - type: string - required: - - name - type: object - type: array - externalCertSecret: - items: - properties: - name: - type: string - type: - type: string - required: - - name - type: object - type: array - externalClientCertSecret: - properties: - name: - type: string - type: - type: string - required: - - name - type: object - externalClientCertSecrets: - items: - properties: - name: - type: string - type: - type: string - required: - - name - type: object - type: array - features: - properties: - bucketDNS: - type: boolean - domains: - properties: - console: - type: string - minio: - items: - type: string - type: array - type: object - enableSFTP: - type: boolean - type: object - image: - type: string - imagePullPolicy: - type: string - imagePullSecret: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - initContainers: - items: - properties: - args: - items: - type: string - type: array - x-kubernetes-list-type: atomic - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - envFrom: - items: - properties: - configMapRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - type: string - secretRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - x-kubernetes-list-type: atomic - image: - type: string - imagePullPolicy: - type: string - lifecycle: - properties: - postStart: - properties: - exec: + podAffinityTerm: properties: - command: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: items: type: string type: array x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: + mismatchLabelKeys: items: - properties: - name: - type: string - value: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: type: string - required: - - name - - value - type: object + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string type: array x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: + topologyKey: type: string required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port + - topologyKey type: object + weight: + type: integer + required: + - podAffinityTerm + - weight type: object - preStop: + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: + labelSelector: properties: - host: - type: string - httpHeaders: + matchExpressions: items: properties: - name: + key: type: string - value: + operator: type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic required: - - name - - value + - key + - operator type: object type: array x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port + matchLabels: + additionalProperties: + type: string + type: object type: object - type: object - type: object - livenessProbe: - properties: - exec: - properties: - command: + x-kubernetes-map-type: atomic + matchLabelKeys: items: type: string type: array x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - ports: - items: - properties: - containerPort: - format: int32 - type: integer - hostIP: - type: string - hostPort: - format: int32 - type: integer - name: - type: string - protocol: - default: TCP - type: string - required: - - containerPort - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: - properties: - exec: - properties: - command: + mismatchLabelKeys: items: type: string type: array x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - privileged: - type: boolean - procMount: - type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - startupProbe: - properties: - exec: - properties: - command: + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: items: type: string type: array x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" + topologyKey: type: string required: - - port + - topologyKey type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - required: - - devicePath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - devicePath - x-kubernetes-list-type: map - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - mountPath - x-kubernetes-list-type: map - workingDir: - type: string - required: - - name - type: object - type: array - kes: + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + enablePVReclaim: + type: boolean + filer: properties: affinity: properties: @@ -1772,7 +517,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - format: int32 type: integer required: - preference @@ -1910,7 +654,6 @@ spec: - topologyKey type: object weight: - format: int32 type: integer required: - podAffinityTerm @@ -2076,7 +819,6 @@ spec: - topologyKey type: object weight: - format: int32 type: integer required: - podAffinityTerm @@ -2167,87 +909,20 @@ spec: additionalProperties: type: string type: object - clientCertSecret: - properties: - name: - type: string - type: - type: string - required: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: - name - type: object - containerSecurityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - privileged: - type: boolean - procMount: - type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object + x-kubernetes-list-type: map + config: + type: string env: items: properties: @@ -2314,160 +989,184 @@ spec: - name type: object type: array - externalCertSecret: - properties: - name: - type: string - type: - type: string - required: - - name - type: object - gcpCredentialSecretName: - type: string - gcpWorkloadIdentityPool: - type: string - image: - type: string + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + hostNetwork: + type: boolean + iam: + default: true + type: boolean imagePullPolicy: type: string - kesSecret: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - keyName: - type: string - labels: + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + limits: additionalProperties: - type: string + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true type: object + maxMB: + type: integer + metricsPort: + type: integer nodeSelector: additionalProperties: type: string type: object - replicas: - format: int32 - type: integer - resources: + persistence: properties: - claims: + accessModes: + default: + - ReadWriteOnce items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object + type: string type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - securityContext: - properties: - appArmorProfile: + dataSource: properties: - localhostProfile: + apiGroup: type: string - type: + kind: + type: string + name: type: string required: - - type + - kind + - name type: object - fsGroup: - format: int64 - type: integer - fsGroupChangePolicy: - type: string - runAsGroup: - format: int64 - type: integer - runAsNonRoot: + x-kubernetes-map-type: atomic + enabled: + default: false type: boolean - runAsUser: - format: int64 - type: integer - seLinuxChangePolicy: + existingClaim: type: string - seLinuxOptions: + mountPath: + default: /data + type: string + resources: + default: + requests: + storage: 4Gi properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object type: object - seccompProfile: + selector: properties: - localhostProfile: - type: string - type: - type: string - required: - - type + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object type: object - supplementalGroups: - items: - format: int64 - type: integer - type: array - x-kubernetes-list-type: atomic - supplementalGroupsPolicy: + x-kubernetes-map-type: atomic + storageClassName: type: string - sysctls: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - windowsOptions: + subPath: + default: "" + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + priorityClassName: + type: string + replicas: + minimum: 1 + type: integer + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + s3: + properties: + configSecret: properties: - gmsaCredentialSpec: + key: type: string - gmsaCredentialSpecName: + name: + default: "" type: string - hostProcess: + optional: type: boolean - runAsUserName: - type: string + required: + - key type: object + x-kubernetes-map-type: atomic + enabled: + default: true + type: boolean type: object - serviceAccountName: + schedulerName: type: string - tolerations: - items: - properties: + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: effect: type: string key: @@ -2475,2506 +1174,1122 @@ spec: operator: type: string tolerationSeconds: - format: int64 type: integer value: type: string type: object type: array - topologySpreadConstraints: + version: + type: string + volumeMounts: items: properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - maxSkew: - format: int32 - type: integer - minDomains: - format: int32 - type: integer - nodeAffinityPolicy: + mountPath: + type: string + mountPropagation: type: string - nodeTaintsPolicy: + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: type: string - topologyKey: + subPath: type: string - whenUnsatisfiable: + subPathExpr: type: string required: - - maxSkew - - topologyKey - - whenUnsatisfiable + - mountPath + - name type: object type: array - required: - - kesSecret - type: object - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: + partition: + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: properties: name: + default: "" type: string - value: - type: string - required: - - name - - value type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - properties: - exec: - properties: - command: - items: + x-kubernetes-map-type: atomic + user: type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: properties: name: + default: "" type: string - value: - type: string - required: - - name - - value type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - liveness: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: + x-kubernetes-map-type: atomic + volumeID: type: string required: - - name - - value + - volumeID type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - logging: - properties: - anonymous: - type: boolean - json: - type: boolean - quiet: - type: boolean - type: object - mountPath: - type: string - podManagementPolicy: - type: string - pools: - items: - properties: - affinity: - properties: - nodeAffinity: + configMap: properties: - preferredDuringSchedulingIgnoredDuringExecution: + defaultMode: + type: integer + items: items: properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - type: object - x-kubernetes-map-type: atomic - weight: - format: int32 + key: + type: string + mode: type: integer + path: + type: string required: - - preference - - weight + - key + - path type: object type: array x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - type: object - x-kubernetes-map-type: atomic - type: array - x-kubernetes-list-type: atomic - required: - - nodeSelectorTerms + name: + default: "" + type: string type: object x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver type: object - podAffinity: + downwardAPI: properties: - preferredDuringSchedulingIgnoredDuringExecution: + defaultMode: + type: integer + items: items: properties: - podAffinityTerm: + fieldRef: properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: + apiVersion: + type: string + fieldPath: type: string required: - - topologyKey + - fieldPath type: object - weight: - format: int32 + x-kubernetes-map-type: atomic + mode: type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic required: - - podAffinityTerm - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey + - path type: object type: array x-kubernetes-list-type: atomic type: object - podAntiAffinity: + emptyDir: properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: + kind: type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: + name: type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: + type: object + x-kubernetes-map-type: atomic + storageClassName: type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: + volumeAttributesClassName: type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: + volumeMode: type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - x-kubernetes-list-type: atomic + volumeName: + type: string + type: object + required: + - spec + type: object type: object - type: object - annotations: - additionalProperties: - type: string - type: object - containerSecurityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: + fc: properties: - localhostProfile: - type: string - type: + fsType: type: string - required: - - type - type: object - capabilities: - properties: - add: + lun: + type: integer + readOnly: + type: boolean + targetWWNs: items: type: string type: array x-kubernetes-list-type: atomic - drop: + wwids: items: type: string type: array x-kubernetes-list-type: atomic type: object - privileged: - type: boolean - procMount: - type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: + flexVolume: properties: - level: - type: string - role: - type: string - type: + driver: type: string - user: + fsType: type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver type: object - seccompProfile: + flocker: properties: - localhostProfile: + datasetName: type: string - type: + datasetUUID: type: string - required: - - type type: object - windowsOptions: + gcePersistentDisk: properties: - gmsaCredentialSpec: + fsType: type: string - gmsaCredentialSpecName: + partition: + type: integer + pdName: type: string - hostProcess: + readOnly: type: boolean - runAsUserName: - type: string - type: object - type: object - labels: - additionalProperties: - type: string - type: object - name: - minLength: 1 - type: string - nodeSelector: - additionalProperties: - type: string - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true + required: + - pdName type: object - type: object - runtimeClassName: - type: string - securityContext: - properties: - appArmorProfile: + gitRepo: properties: - localhostProfile: + directory: type: string - type: + repository: + type: string + revision: type: string required: - - type + - repository type: object - fsGroup: - format: int64 - type: integer - fsGroupChangePolicy: - type: string - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxChangePolicy: - type: string - seLinuxOptions: + glusterfs: properties: - level: - type: string - role: - type: string - type: + endpoints: type: string - user: + path: type: string + readOnly: + type: boolean + required: + - endpoints + - path type: object - seccompProfile: + hostPath: properties: - localhostProfile: + path: type: string type: type: string required: - - type + - path type: object - supplementalGroups: - items: - format: int64 - type: integer - type: array - x-kubernetes-list-type: atomic - supplementalGroupsPolicy: - type: string - sysctls: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - windowsOptions: + iscsi: properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: + chapAuthDiscovery: type: boolean - runAsUserName: + chapAuthSession: + type: boolean + fsType: type: string - type: object - type: object - servers: - format: int32 - type: integer - x-kubernetes-validations: - - message: servers is immutable - rule: self == oldSelf - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - topologySpreadConstraints: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: + initiatorName: type: string - type: array - x-kubernetes-list-type: atomic - maxSkew: - format: int32 - type: integer - minDomains: - format: int32 - type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string - topologyKey: - type: string - whenUnsatisfiable: - type: string - required: - - maxSkew - - topologyKey - - whenUnsatisfiable - type: object - type: array - volumeClaimTemplate: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: + iqn: type: string - namespace: + iscsiInterface: type: string - type: object - spec: - properties: - accessModes: + lun: + type: integer + portals: items: type: string type: array x-kubernetes-list-type: atomic - dataSource: + readOnly: + type: boolean + secretRef: properties: - apiGroup: - type: string - kind: - type: string name: + default: "" type: string - required: - - kind - - name type: object x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: + targetPortal: type: string - volumeAttributesClassName: + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: type: string - volumeMode: + readOnly: + type: boolean + server: type: string - volumeName: + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: type: string + readOnly: + type: boolean + required: + - claimName type: object - status: + photonPersistentDisk: properties: - accessModes: - items: - type: string - type: array - x-kubernetes-list-type: atomic - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: granular - allocatedResources: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - capacity: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - conditions: - items: - properties: - lastProbeTime: - format: date-time - type: string - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - required: - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - currentVolumeAttributesClassName: + fsType: type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: - type: string - required: - - status - type: object - phase: + pdID: type: string + required: + - pdID type: object - type: object - volumesPerServer: - format: int32 - type: integer - x-kubernetes-validations: - - message: volumesPerServer is immutable - rule: self == oldSelf - required: - - name - - servers - - volumeClaimTemplate - - volumesPerServer - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - poolsMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - priorityClassName: - type: string - prometheusOperator: - type: boolean - prometheusOperatorScrapeMetricsPaths: - items: - type: string - type: array - readiness: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: + portworxVolume: properties: - name: + fsType: type: string - value: + readOnly: + type: boolean + volumeID: type: string required: - - name - - value + - volumeID type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - requestAutoCert: - type: boolean - serviceAccountName: - type: string - serviceMetadata: - properties: - consoleServiceAnnotations: - additionalProperties: - type: string - type: object - consoleServiceLabels: - additionalProperties: - type: string - type: object - kesServiceAnnotations: - additionalProperties: - type: string - type: object - kesServiceLabels: - additionalProperties: - type: string - type: object - minioServiceAnnotations: - additionalProperties: - type: string - type: object - minioServiceLabels: - additionalProperties: - type: string - type: object - type: object - sideCars: - properties: - containers: - items: - properties: - args: - items: - type: string - type: array - x-kubernetes-list-type: atomic - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: + projected: + properties: + defaultMode: + type: integer + sources: + items: properties: - configMapKeyRef: + clusterTrustBundle: properties: - key: - type: string + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic name: - default: "" type: string optional: type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: + path: type: string - fieldPath: + signerName: type: string required: - - fieldPath + - path type: object - x-kubernetes-map-type: atomic - resourceFieldRef: + configMap: properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean type: object x-kubernetes-map-type: atomic - secretKeyRef: + downwardAPI: properties: - key: - type: string + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic name: default: "" type: string optional: type: boolean - required: - - key type: object x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - envFrom: - items: - properties: - configMapRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - type: string - secretRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - x-kubernetes-list-type: atomic - image: - type: string - imagePullPolicy: - type: string - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: + serviceAccountToken: + properties: + audience: type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - properties: - exec: - properties: - command: - items: + expirationSeconds: + type: integer + path: type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic type: object - livenessProbe: + quobyte: properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: properties: - port: - format: int32 - type: integer - service: + name: default: "" type: string - required: - - port type: object - httpGet: + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: properties: - host: + name: + default: "" type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system type: object - name: - type: string - ports: - items: - properties: - containerPort: - format: int32 - type: integer - hostIP: - type: string - hostPort: - format: int32 - type: integer - name: - type: string - protocol: - default: TCP - type: string - required: - - containerPort - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: + secret: properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 + defaultMode: type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - properties: - claims: + items: items: properties: - name: + key: type: string - request: + mode: + type: integer + path: type: string required: - - name + - key + - path type: object type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string type: object - restartPolicy: - type: string - securityContext: + storageos: properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - privileged: - type: boolean - procMount: + fsType: type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - format: int64 - type: integer - runAsNonRoot: + readOnly: type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - windowsOptions: + secretRef: properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: + name: + default: "" type: string type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string type: object - startupProbe: + vsphereVolume: properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - required: - - devicePath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - devicePath - x-kubernetes-list-type: map - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - mountPath - x-kubernetes-list-type: map - workingDir: - type: string required: - name type: object type: array - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - volumeClaimTemplates: - items: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - x-kubernetes-list-type: atomic - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: + required: + - replicas + type: object + hostNetwork: + type: boolean + hostSuffix: + type: string + image: + type: string + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + master: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer required: - - kind - - name + - preference + - weight type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic type: object - type: object - selector: + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: properties: - matchExpressions: - items: - properties: - key: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: type: string - operator: + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - status: - properties: - accessModes: - items: - type: string - type: array - x-kubernetes-list-type: atomic - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: granular - allocatedResources: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - capacity: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight type: object - conditions: - items: - properties: - lastProbeTime: - format: date-time - type: string - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: type: string - status: + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: type: string - type: + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: type: string - required: - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - currentVolumeAttributesClassName: - type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: + type: array + x-kubernetes-list-type: atomic + topologyKey: type: string required: - - status - type: object - phase: - type: string - type: object - type: object - type: array - volumes: - items: - properties: - awsElasticBlockStore: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - azureDisk: - properties: - cachingMode: - type: string - diskName: - type: string - diskURI: - type: string - fsType: - default: ext4 - type: string - kind: - type: string - readOnly: - default: false - type: boolean - required: - - diskName - - diskURI - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - required: - - secretName - - shareName - type: object - cephfs: - properties: - monitors: - items: - type: string - type: array - x-kubernetes-list-type: atomic - path: - type: string - readOnly: - type: boolean - secretFile: - type: string - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - user: - type: string - required: - - monitors - type: object - cinder: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string + - topologyKey type: object - x-kubernetes-map-type: atomic - volumeID: - type: string - required: - - volumeID - type: object - configMap: - properties: - defaultMode: - format: int32 - type: integer + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - csi: - properties: - driver: - type: string - fsType: - type: string - nodePublishSecretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - required: - - driver - type: object - downwardAPI: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - required: - - path - type: object - type: array - x-kubernetes-list-type: atomic - type: object - emptyDir: - properties: - medium: - type: string - sizeLimit: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - ephemeral: - properties: - volumeClaimTemplate: properties: - metadata: + podAffinityTerm: properties: - annotations: - additionalProperties: - type: string + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object type: object - finalizers: + x-kubernetes-map-type: atomic + matchLabelKeys: items: type: string type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - accessModes: + x-kubernetes-list-type: atomic + mismatchLabelKeys: items: type: string type: array x-kubernetes-list-type: atomic - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: + namespaceSelector: properties: matchExpressions: items: @@ -5000,393 +2315,620 @@ spec: type: object type: object x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: type: string + required: + - topologyKey type: object + weight: + type: integer required: - - spec - type: object - type: object - fc: - properties: - fsType: - type: string - lun: - format: int32 - type: integer - readOnly: - type: boolean - targetWWNs: - items: - type: string - type: array - x-kubernetes-list-type: atomic - wwids: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - flexVolume: - properties: - driver: - type: string - fsType: - type: string - options: - additionalProperties: - type: string + - podAffinityTerm + - weight type: object - readOnly: - type: boolean - secretRef: + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - required: - - driver - type: object - flocker: - properties: - datasetName: - type: string - datasetUUID: - type: string - type: object - gcePersistentDisk: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - pdName: - type: string - readOnly: - type: boolean - required: - - pdName - type: object - gitRepo: - properties: - directory: - type: string - repository: - type: string - revision: - type: string - required: - - repository - type: object - glusterfs: - properties: - endpoints: - type: string - path: - type: string - readOnly: - type: boolean - required: - - endpoints - - path - type: object - hostPath: - properties: - path: - type: string - type: - type: string - required: - - path - type: object - image: - properties: - pullPolicy: - type: string - reference: - type: string - type: object - iscsi: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + concurrentStart: + type: boolean + config: + type: string + defaultReplication: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: properties: - chapAuthDiscovery: - type: boolean - chapAuthSession: - type: boolean - fsType: - type: string - initiatorName: - type: string - iqn: - type: string - iscsiInterface: - default: default - type: string - lun: - format: int32 - type: integer - portals: - items: - type: string - type: array - x-kubernetes-list-type: atomic - readOnly: - type: boolean - secretRef: + configMapKeyRef: properties: + key: + type: string name: default: "" type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key type: object x-kubernetes-map-type: atomic - targetPortal: - type: string - required: - - iqn - - lun - - targetPortal type: object + required: + - name + type: object + type: array + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + garbageThreshold: + type: string + hostNetwork: + type: boolean + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: name: + default: "" type: string - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - required: - - path - - server - type: object - persistentVolumeClaim: - properties: - claimName: - type: string - readOnly: - type: boolean - required: - - claimName - type: object - photonPersistentDisk: - properties: - fsType: - type: string - pdID: - type: string - required: - - pdID + type: object + x-kubernetes-map-type: atomic + type: array + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + metricsPort: + type: integer + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + pulseSeconds: + type: integer + replicas: + minimum: 1 + type: integer + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + schedulerName: + type: string + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumePreallocate: + type: boolean + volumeSizeLimitMB: + type: integer + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID type: object - portworxVolume: + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: properties: fsType: type: string readOnly: type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic volumeID: type: string required: - volumeID type: object - projected: + configMap: properties: defaultMode: - format: int32 type: integer - sources: + items: items: properties: - clusterTrustBundle: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + type: integer + items: + items: + properties: + fieldRef: properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - name: - type: string - optional: - type: boolean - path: + apiVersion: type: string - signerName: + fieldPath: type: string required: - - path - type: object - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" - type: string - optional: - type: boolean + - fieldPath type: object x-kubernetes-map-type: atomic - downwardAPI: - properties: - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - required: - - path - type: object - type: array - x-kubernetes-list-type: atomic - type: object - secret: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - serviceAccountToken: + mode: + type: integer + path: + type: string + resourceFieldRef: properties: - audience: + containerName: type: string - expirationSeconds: - format: int64 - type: integer - path: + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: type: string required: - - path + - resource type: object + x-kubernetes-map-type: atomic + required: + - path type: object type: array x-kubernetes-list-type: atomic type: object - quobyte: + emptyDir: properties: - group: - type: string - readOnly: - type: boolean - registry: - type: string - tenant: - type: string - user: - type: string - volume: + medium: type: string - required: - - registry - - volume + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true type: object - rbd: + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: properties: fsType: type: string - image: - type: string - keyring: - default: /etc/ceph/keyring - type: string - monitors: + lun: + type: integer + readOnly: + type: boolean + targetWWNs: items: type: string type: array x-kubernetes-list-type: atomic - pool: - default: rbd + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: type: string + options: + additionalProperties: + type: string + type: object readOnly: type: boolean secretRef: @@ -5396,356 +2938,3329 @@ spec: type: string type: object x-kubernetes-map-type: atomic - user: - default: admin - type: string required: - - image - - monitors + - driver type: object - scaleIO: + flocker: properties: - fsType: - default: xfs + datasetName: type: string - gateway: + datasetUUID: type: string - protectionDomain: + type: object + gcePersistentDisk: + properties: + fsType: type: string - readOnly: - type: boolean - secretRef: + partition: + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: properties: name: default: "" type: string type: object x-kubernetes-map-type: atomic - sslEnabled: + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: type: boolean - storageMode: - default: ThinProvisioned + server: type: string - storagePool: + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: type: string - system: + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: type: string - volumeName: + pdID: type: string required: - - gateway - - secretRef - - system + - pdID type: object - secret: + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: properties: defaultMode: - format: int32 type: integer - items: + sources: items: properties: - key: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + required: + - replicas + type: object + metricsAddress: + type: string + nodeSelector: + additionalProperties: + type: string + type: object + pvReclaimPolicy: + type: string + schedulerName: + type: string + statefulSetUpdateStrategy: + type: string + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volume: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + compactionMBps: + type: integer + dataCenter: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + fileSizeLimitMB: + type: integer + fixJpgOrientation: + type: boolean + hostNetwork: + type: boolean + idleTimeout: + type: integer + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + maxVolumeCounts: + type: integer + metricsPort: + type: integer + minFreeSpacePercent: + type: integer + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + rack: + type: string + replicas: + minimum: 0 + type: integer + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + schedulerName: + type: string + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + storageClassName: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + required: + - replicas + type: object + volumeServerDiskCount: + type: integer + volumeTopology: + additionalProperties: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + compactionMBps: + type: integer + dataCenter: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + fileSizeLimitMB: + type: integer + fixJpgOrientation: + type: boolean + hostNetwork: + type: boolean + idleTimeout: + type: integer + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + maxVolumeCounts: + type: integer + metricsPort: + type: integer + minFreeSpacePercent: + type: integer + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + rack: + type: string + replicas: + minimum: 0 + type: integer + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + schedulerName: + type: string + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + storageClassName: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" type: string - mode: - format: int32 - type: integer - path: + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" type: string - required: - - key - - path type: object - type: array - x-kubernetes-list-type: atomic - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - volumeName: - type: string - volumeNamespace: - type: string - type: object - vsphereVolume: - properties: - fsType: - type: string - storagePolicyID: - type: string - storagePolicyName: - type: string - volumePath: - type: string - required: - - volumePath - type: object - required: - - name - type: object - type: array - type: object - startup: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - subPath: - type: string - users: - items: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - type: array - required: - - pools - type: object - status: - properties: - availableReplicas: - format: int32 - type: integer - certificates: - nullable: true - properties: - autoCertEnabled: - nullable: true - type: boolean - customCertificates: - nullable: true - properties: - client: - items: - properties: - certName: - type: string - domains: - items: + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: type: string - type: array - expiresIn: - type: string - expiry: - type: string - serialNo: - type: string - type: object - type: array - minio: - items: - properties: - certName: - type: string - domains: - items: + storagePool: type: string - type: array - expiresIn: - type: string - expiry: - type: string - serialNo: - type: string - type: object - type: array - minioCAs: - items: - properties: - certName: - type: string - domains: + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + type: integer items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: type: string - type: array - expiresIn: - type: string - expiry: - type: string - serialNo: - type: string - type: object - type: array - type: object + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + required: + - dataCenter + - rack + - replicas + type: object type: object - currentState: - type: string - drivesHealing: - format: int32 - type: integer - drivesOffline: - format: int32 - type: integer - drivesOnline: - format: int32 - type: integer - healthMessage: - type: string - healthStatus: - type: string - pools: + type: object + status: + properties: + conditions: items: properties: - legacySecurityContext: - type: boolean - ssName: + lastTransitionTime: + format: date-time + type: string + message: + maxLength: 32768 + type: string + observedGeneration: + minimum: 0 + type: integer + reason: + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string - state: + status: + enum: + - "True" + - "False" + - Unknown + type: string + type: + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - - ssName - - state + - lastTransitionTime + - message + - reason + - status + - type type: object - nullable: true type: array - provisionedBuckets: - type: boolean - provisionedUsers: - type: boolean - revision: - format: int32 - type: integer - syncVersion: - type: string - usage: + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + filer: properties: - capacity: - format: int64 + readyReplicas: + minimum: 0 type: integer - rawCapacity: - format: int64 + replicas: + minimum: 0 type: integer - rawUsage: - format: int64 + type: object + master: + properties: + readyReplicas: + minimum: 0 type: integer - tiers: - items: - properties: - Name: - type: string - Type: - type: string - totalSize: - format: int64 - type: integer - required: - - Name - - totalSize - type: object - type: array - usage: - format: int64 + replicas: + minimum: 0 type: integer type: object - waitingOnReady: - format: date-time - type: string - writeQuorum: - format: int32 + observedGeneration: type: integer - required: - - availableReplicas - - certificates - - currentState - - pools - - revision - - syncVersion + volume: + properties: + readyReplicas: + minimum: 0 + type: integer + replicas: + minimum: 0 + type: integer + type: object type: object - required: - - spec type: object served: true storage: true diff --git a/sources/seaweedfs-crds/source.yaml b/sources/seaweedfs-crds/source.yaml new file mode 100644 index 00000000..90321cbd --- /dev/null +++ b/sources/seaweedfs-crds/source.yaml @@ -0,0 +1,4 @@ +sourceUrl: https://github.com/seaweedfs/seaweedfs-operator/tree/master/deploy/helm +sourceRepoName: seaweedfs-operator +sourceChartName: seaweedfs-operator-crds +sourceVersion: 0.1.13 diff --git a/sources/seaweedfs-operator/0.1.13/Chart.yaml b/sources/seaweedfs-operator/0.1.13/Chart.yaml new file mode 100644 index 00000000..08c194e9 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/Chart.yaml @@ -0,0 +1,9 @@ +apiVersion: v2 +name: seaweedfs-operator +description: A Helm chart for the seaweedfs-operator +type: application +version: 0.1.13 +appVersion: "1.0.11" +maintainers: + - name: chrislusf + url: https://github.com/chrislusf diff --git a/sources/seaweedfs-operator/0.1.13/README.md b/sources/seaweedfs-operator/0.1.13/README.md new file mode 100644 index 00000000..e7f07060 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/README.md @@ -0,0 +1,49 @@ +# seaweedfs-operator + +![Version: 0.1.2](https://img.shields.io/badge/Version-0.1.2-informational?style=flat-square) ![Type: application](https://img.shields.io/badge/Type-application-informational?style=flat-square) ![AppVersion: 1.0.4](https://img.shields.io/badge/AppVersion-1.0.4-informational?style=flat-square) + +A Helm chart for the seaweedfs-operator + +## Maintainers + +| Name | Email | Url | +| ---- | ------ | --- | +| chrislusf | | | + +## Values + +| Key | Type | Default | Description | +|---------------------------------|--------|---------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| commonAnnotations | object | `{}` | Annotations for all the deployed objects | +| commonLabels | object | `{}` | Labels for all the deployed objects | +| fullnameOverride | string | `""` | String to fully override common.names.fullname template | +| global | object | `{"imageRegistry":"chrislusf"}` | Global Docker image parameters Please, note that this will override the image parameters, including dependencies, configured to use the global value Current available global Docker image parameters: imageRegistry | +| grafanaDashboard.enabled | bool | `true` | Enable or disable Grafana Dashboard configmap | +| image.pullPolicy | string | `"Always"` | Specify a imagePullPolicy # Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' # ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images | +| image.registry | string | `"chrislusf"` | | +| image.repository | string | `"seaweedfs-operator"` | | +| image.tag | string | `""` | tag of image to use. Defaults to appVersion in Chart.yaml | +| nameOverride | string | `""` | String to partially override common.names.fullname template (will maintain the release name) | +| port.name | string | `"http"` | name of the container port to use for the Kubernete service and ingress | +| port.number | int | `8080` | container port number to use for the Kubernete service and ingress | +| rbac.serviceAccount.annotations | object | `{}` | Annotations to add to the service account | +| rbac.serviceAccount.automount | bool | `true` | Automount service account token for the server service account | +| rbac.serviceAccount.create | bool | `true` | Specifies whether a service account should be created | +| rbac.serviceAccount.name | string | `""` | The name of the service account to use. If not set and create is true, a name is generated using the fullname template. If set to "default", no ServiceAccount will be created and the default one will be used | +| replicaCount | int | `1` | Set number of pod replicas | +| resources.limits.cpu | string | `"500m"` | seaweedfs-operator containers' cpu limit (maximum allowed CPU) | +| resources.limits.memory | string | `"500Mi"` | seaweedfs-operator containers' memory limit (maximum allowed memory) | +| resources.requests.cpu | string | `"100m"` | seaweedfs-operator containers' cpu request (how much is requested by default) | +| resources.requests.memory | string | `"50Mi"` | seaweedfs-operator containers' memory request (how much is requested by default) | +| service.port | int | `8080` | port to use for Kubernetes service | +| service.portName | string | `"http"` | name of the port to use for Kubernetes service | +| serviceMonitor.additionalLabels | object | `{}` | Used to pass Labels that are used by the Prometheus installed in your cluster to select Service Monitors to work with | +| serviceMonitor.enabled | bool | `false` | Enable or disable ServiceMonitor for prometheus metrics | +| serviceMonitor.honorLabels | bool | `true` | Specify honorLabels parameter to add the scrape endpoint | +| serviceMonitor.interval | string | `"10s"` | Specify the interval at which metrics should be scraped | +| serviceMonitor.scrapeTimeout | string | `"10s"` | Specify the timeout after which the scrape is ended | +| webhook.enabled | bool | `true` | Enable or disable webhooks | +| webhook.initContainer.image | string | `"curlimages/curl:8.8.0"` | Image used by the webhook readiness init container when patching certificates | + +---------------------------------------------- +Autogenerated from chart metadata using [helm-docs v1.11.3](https://github.com/norwoodj/helm-docs/releases/v1.11.3) diff --git a/sources/minio-operator/7.0.0/templates/minio.min.io_tenants.yaml b/sources/seaweedfs-operator/0.1.13/crds/seaweed.seaweedfs.com_seaweeds.yaml similarity index 54% rename from sources/minio-operator/7.0.0/templates/minio.min.io_tenants.yaml rename to sources/seaweedfs-operator/0.1.13/crds/seaweed.seaweedfs.com_seaweeds.yaml index 72d7e591..49ba6e28 100644 --- a/sources/minio-operator/7.0.0/templates/minio.min.io_tenants.yaml +++ b/sources/seaweedfs-operator/0.1.13/crds/seaweed.seaweedfs.com_seaweeds.yaml @@ -1,33 +1,19 @@ ---- apiVersion: apiextensions.k8s.io/v1 kind: CustomResourceDefinition metadata: annotations: - controller-gen.kubebuilder.io/version: v0.16.5 - operator.min.io/version: v7.0.0 - name: tenants.minio.min.io + controller-gen.kubebuilder.io/version: v0.19.0 + name: seaweeds.seaweed.seaweedfs.com spec: - group: minio.min.io + group: seaweed.seaweedfs.com names: - kind: Tenant - listKind: TenantList - plural: tenants - shortNames: - - tenant - singular: tenant + kind: Seaweed + listKind: SeaweedList + plural: seaweeds + singular: seaweed scope: Namespaced versions: - - additionalPrinterColumns: - - jsonPath: .status.currentState - name: State - type: string - - jsonPath: .status.healthStatus - name: Health - type: string - - jsonPath: .metadata.creationTimestamp - name: Age - type: date - name: v2 + - name: v1 schema: openAPIV3Schema: properties: @@ -37,1692 +23,451 @@ spec: type: string metadata: type: object - scheduler: - properties: - name: - type: string - required: - - name - type: object spec: properties: - additionalVolumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - additionalVolumes: - items: - properties: - awsElasticBlockStore: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - azureDisk: - properties: - cachingMode: - type: string - diskName: - type: string - diskURI: - type: string - fsType: - default: ext4 - type: string - kind: - type: string - readOnly: - default: false - type: boolean - required: - - diskName - - diskURI - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - required: - - secretName - - shareName - type: object - cephfs: - properties: - monitors: - items: - type: string - type: array - x-kubernetes-list-type: atomic - path: - type: string - readOnly: - type: boolean - secretFile: - type: string - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - user: - type: string - required: - - monitors - type: object - cinder: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - volumeID: - type: string - required: - - volumeID - type: object - configMap: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - csi: - properties: - driver: - type: string - fsType: - type: string - nodePublishSecretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - required: - - driver - type: object - downwardAPI: - properties: - defaultMode: - format: int32 - type: integer + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - required: - - path - type: object - type: array - x-kubernetes-list-type: atomic - type: object - emptyDir: - properties: - medium: - type: string - sizeLimit: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - ephemeral: - properties: - volumeClaimTemplate: properties: - metadata: + preference: properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: + matchExpressions: items: - type: string + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - accessModes: + x-kubernetes-list-type: atomic + matchFields: items: - type: string + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object type: array x-kubernetes-list-type: atomic - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string type: object + x-kubernetes-map-type: atomic + weight: + type: integer required: - - spec + - preference + - weight type: object - type: object - fc: - properties: - fsType: - type: string - lun: - format: int32 - type: integer - readOnly: - type: boolean - targetWWNs: - items: - type: string - type: array - x-kubernetes-list-type: atomic - wwids: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - flexVolume: - properties: - driver: - type: string - fsType: - type: string - options: - additionalProperties: - type: string - type: object - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - required: - - driver - type: object - flocker: - properties: - datasetName: - type: string - datasetUUID: - type: string - type: object - gcePersistentDisk: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - pdName: - type: string - readOnly: - type: boolean - required: - - pdName - type: object - gitRepo: - properties: - directory: - type: string - repository: - type: string - revision: - type: string - required: - - repository - type: object - glusterfs: - properties: - endpoints: - type: string - path: - type: string - readOnly: - type: boolean - required: - - endpoints - - path - type: object - hostPath: - properties: - path: - type: string - type: - type: string - required: - - path - type: object - image: - properties: - pullPolicy: - type: string - reference: - type: string - type: object - iscsi: - properties: - chapAuthDiscovery: - type: boolean - chapAuthSession: - type: boolean - fsType: - type: string - initiatorName: - type: string - iqn: - type: string - iscsiInterface: - default: default - type: string - lun: - format: int32 - type: integer - portals: - items: - type: string - type: array - x-kubernetes-list-type: atomic - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - targetPortal: - type: string - required: - - iqn - - lun - - targetPortal - type: object - name: - type: string - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - required: - - path - - server - type: object - persistentVolumeClaim: - properties: - claimName: - type: string - readOnly: - type: boolean - required: - - claimName - type: object - photonPersistentDisk: - properties: - fsType: - type: string - pdID: - type: string - required: - - pdID - type: object - portworxVolume: - properties: - fsType: - type: string - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - projected: - properties: - defaultMode: - format: int32 - type: integer - sources: - items: - properties: - clusterTrustBundle: - properties: - labelSelector: + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: properties: - matchExpressions: + key: + type: string + operator: + type: string + values: items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object + type: string type: array x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object + required: + - key + - operator type: object - x-kubernetes-map-type: atomic - name: - type: string - optional: - type: boolean - path: - type: string - signerName: - type: string - required: - - path - type: object - configMap: - properties: + type: array + x-kubernetes-list-type: atomic + matchFields: items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: + properties: + key: + type: string + operator: + type: string + values: + items: type: string - required: - - key - - path + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - downwardAPI: - properties: + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - required: - - path + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string type: object - type: array - x-kubernetes-list-type: atomic - type: object - secret: - properties: + type: object + x-kubernetes-map-type: atomic + namespaces: items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - serviceAccountToken: - properties: - audience: - type: string - expirationSeconds: - format: int64 - type: integer - path: type: string - required: - - path - type: object - type: object - type: array - x-kubernetes-list-type: atomic - type: object - quobyte: - properties: - group: - type: string - readOnly: - type: boolean - registry: - type: string - tenant: - type: string - user: - type: string - volume: - type: string - required: - - registry - - volume - type: object - rbd: - properties: - fsType: - type: string - image: - type: string - keyring: - default: /etc/ceph/keyring - type: string - monitors: - items: - type: string - type: array - x-kubernetes-list-type: atomic - pool: - default: rbd - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - user: - default: admin - type: string - required: - - image - - monitors - type: object - scaleIO: - properties: - fsType: - default: xfs - type: string - gateway: - type: string - protectionDomain: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight type: object - x-kubernetes-map-type: atomic - sslEnabled: - type: boolean - storageMode: - default: ThinProvisioned - type: string - storagePool: - type: string - system: - type: string - volumeName: - type: string - required: - - gateway - - secretRef - - system - type: object - secret: - properties: - defaultMode: - format: int32 - type: integer + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: items: - items: - properties: - key: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: type: string - mode: - format: int32 - type: integer - path: + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - volumeName: - type: string - volumeNamespace: - type: string - type: object - vsphereVolume: - properties: - fsType: - type: string - storagePolicyID: - type: string - storagePolicyName: - type: string - volumePath: - type: string - required: - - volumePath - type: object - required: - - name - type: object - type: array - buckets: - items: - properties: - name: - type: string - objectLock: - type: boolean - region: - type: string - type: object - type: array - certConfig: - properties: - commonName: - type: string - dnsNames: - items: - type: string - type: array - organizationName: - items: - type: string - type: array - type: object - certExpiryAlertThreshold: - format: int32 - type: integer - configuration: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: type: string required: - - fieldPath + - topologyKey type: object - x-kubernetes-map-type: atomic - resourceFieldRef: + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - exposeServices: - properties: - console: - type: boolean - minio: - type: boolean - type: object - externalCaCertSecret: - items: - properties: - name: - type: string - type: - type: string - required: - - name - type: object - type: array - externalCertSecret: - items: - properties: - name: - type: string - type: - type: string - required: - - name - type: object - type: array - externalClientCertSecret: - properties: - name: - type: string - type: - type: string - required: - - name - type: object - externalClientCertSecrets: - items: - properties: - name: - type: string - type: - type: string - required: - - name - type: object - type: array - features: - properties: - bucketDNS: - type: boolean - domains: - properties: - console: - type: string - minio: - items: - type: string - type: array - type: object - enableSFTP: - type: boolean - type: object - image: - type: string - imagePullPolicy: - type: string - imagePullSecret: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - initContainers: - items: - properties: - args: - items: - type: string - type: array - x-kubernetes-list-type: atomic - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: - properties: - configMapKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - secretKeyRef: - properties: - key: - type: string - name: - default: "" - type: string - optional: - type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - envFrom: - items: - properties: - configMapRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - type: string - secretRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - x-kubernetes-list-type: atomic - image: - type: string - imagePullPolicy: - type: string - lifecycle: - properties: - postStart: - properties: - exec: + podAffinityTerm: properties: - command: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: items: type: string type: array x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: + mismatchLabelKeys: items: - properties: - name: - type: string - value: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: type: string - required: - - name - - value - type: object + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string type: array x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: + topologyKey: type: string required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port + - topologyKey type: object + weight: + type: integer + required: + - podAffinityTerm + - weight type: object - preStop: + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: + labelSelector: properties: - host: - type: string - httpHeaders: + matchExpressions: items: properties: - name: + key: type: string - value: + operator: type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic required: - - name - - value + - key + - operator type: object type: array x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port + matchLabels: + additionalProperties: + type: string + type: object type: object - type: object - type: object - livenessProbe: - properties: - exec: - properties: - command: + x-kubernetes-map-type: atomic + matchLabelKeys: items: type: string type: array x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - name: - type: string - ports: - items: - properties: - containerPort: - format: int32 - type: integer - hostIP: - type: string - hostPort: - format: int32 - type: integer - name: - type: string - protocol: - default: TCP - type: string - required: - - containerPort - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: - properties: - exec: - properties: - command: + mismatchLabelKeys: items: type: string type: array x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - privileged: - type: boolean - procMount: - type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object - startupProbe: - properties: - exec: - properties: - command: + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: items: type: string type: array x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" + topologyKey: type: string required: - - port + - topologyKey type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - required: - - devicePath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - devicePath - x-kubernetes-list-type: map - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - mountPath - x-kubernetes-list-type: map - workingDir: - type: string - required: - - name - type: object - type: array - kes: + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + enablePVReclaim: + type: boolean + filer: properties: affinity: properties: @@ -1772,7 +517,6 @@ spec: type: object x-kubernetes-map-type: atomic weight: - format: int32 type: integer required: - preference @@ -1910,7 +654,6 @@ spec: - topologyKey type: object weight: - format: int32 type: integer required: - podAffinityTerm @@ -2076,7 +819,6 @@ spec: - topologyKey type: object weight: - format: int32 type: integer required: - podAffinityTerm @@ -2167,87 +909,20 @@ spec: additionalProperties: type: string type: object - clientCertSecret: - properties: - name: - type: string - type: - type: string - required: + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: - name - type: object - containerSecurityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - privileged: - type: boolean - procMount: - type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object - type: object + x-kubernetes-list-type: map + config: + type: string env: items: properties: @@ -2314,158 +989,184 @@ spec: - name type: object type: array - externalCertSecret: - properties: - name: - type: string - type: - type: string - required: - - name - type: object - gcpCredentialSecretName: - type: string - gcpWorkloadIdentityPool: - type: string - image: - type: string + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + hostNetwork: + type: boolean + iam: + default: true + type: boolean imagePullPolicy: type: string - kesSecret: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - keyName: - type: string - labels: + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + limits: additionalProperties: - type: string + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true type: object + maxMB: + type: integer + metricsPort: + type: integer nodeSelector: additionalProperties: type: string type: object - replicas: - format: int32 - type: integer - resources: + persistence: properties: - claims: + accessModes: + default: + - ReadWriteOnce items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object + type: string type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - securityContext: - properties: - appArmorProfile: + dataSource: properties: - localhostProfile: + apiGroup: + type: string + kind: type: string - type: + name: type: string required: - - type + - kind + - name type: object - fsGroup: - format: int64 - type: integer - fsGroupChangePolicy: - type: string - runAsGroup: - format: int64 - type: integer - runAsNonRoot: + x-kubernetes-map-type: atomic + enabled: + default: false type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: + existingClaim: + type: string + mountPath: + default: /data + type: string + resources: + default: + requests: + storage: 4Gi properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object type: object - seccompProfile: + selector: properties: - localhostProfile: - type: string - type: - type: string - required: - - type + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object type: object - supplementalGroups: - items: - format: int64 - type: integer - type: array - x-kubernetes-list-type: atomic - supplementalGroupsPolicy: + x-kubernetes-map-type: atomic + storageClassName: type: string - sysctls: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - windowsOptions: + subPath: + default: "" + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + priorityClassName: + type: string + replicas: + minimum: 1 + type: integer + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + s3: + properties: + configSecret: properties: - gmsaCredentialSpec: + key: type: string - gmsaCredentialSpecName: + name: + default: "" type: string - hostProcess: + optional: type: boolean - runAsUserName: - type: string + required: + - key type: object + x-kubernetes-map-type: atomic + enabled: + default: true + type: boolean type: object - serviceAccountName: + schedulerName: type: string - tolerations: - items: - properties: + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: effect: type: string key: @@ -2473,2500 +1174,1122 @@ spec: operator: type: string tolerationSeconds: - format: int64 type: integer value: type: string type: object type: array - topologySpreadConstraints: + version: + type: string + volumeMounts: items: properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - maxSkew: - format: int32 - type: integer - minDomains: - format: int32 - type: integer - nodeAffinityPolicy: + mountPath: + type: string + mountPropagation: type: string - nodeTaintsPolicy: + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: type: string - topologyKey: + subPath: type: string - whenUnsatisfiable: + subPathExpr: type: string required: - - maxSkew - - topologyKey - - whenUnsatisfiable + - mountPath + - name type: object type: array - required: - - kesSecret - type: object - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: + partition: + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: properties: name: + default: "" type: string - value: - type: string - required: - - name - - value type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - properties: - exec: - properties: - command: - items: + x-kubernetes-map-type: atomic + user: type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: properties: name: + default: "" type: string - value: - type: string - required: - - name - - value type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - liveness: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: + x-kubernetes-map-type: atomic + volumeID: type: string required: - - name - - value + - volumeID type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - logging: - properties: - anonymous: - type: boolean - json: - type: boolean - quiet: - type: boolean - type: object - mountPath: - type: string - podManagementPolicy: - type: string - pools: - items: - properties: - affinity: - properties: - nodeAffinity: + configMap: properties: - preferredDuringSchedulingIgnoredDuringExecution: + defaultMode: + type: integer + items: items: properties: - preference: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - type: object - x-kubernetes-map-type: atomic - weight: - format: int32 + key: + type: string + mode: type: integer + path: + type: string required: - - preference - - weight + - key + - path type: object type: array x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: properties: - nodeSelectorTerms: - items: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchFields: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - type: object - x-kubernetes-map-type: atomic - type: array - x-kubernetes-list-type: atomic - required: - - nodeSelectorTerms + name: + default: "" + type: string type: object x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver type: object - podAffinity: + downwardAPI: properties: - preferredDuringSchedulingIgnoredDuringExecution: + defaultMode: + type: integer + items: items: properties: - podAffinityTerm: + fieldRef: properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: + apiVersion: + type: string + fieldPath: type: string required: - - topologyKey + - fieldPath type: object - weight: - format: int32 + x-kubernetes-map-type: atomic + mode: type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic required: - - podAffinityTerm - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: - type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: - type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey + - path type: object type: array x-kubernetes-list-type: atomic type: object - podAntiAffinity: + emptyDir: properties: - preferredDuringSchedulingIgnoredDuringExecution: - items: - properties: - podAffinityTerm: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: + kind: type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: + name: type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - weight: - format: int32 - type: integer - required: - - podAffinityTerm - - weight - type: object - type: array - x-kubernetes-list-type: atomic - requiredDuringSchedulingIgnoredDuringExecution: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: + type: object + x-kubernetes-map-type: atomic + storageClassName: type: string - type: array - x-kubernetes-list-type: atomic - mismatchLabelKeys: - items: + volumeAttributesClassName: type: string - type: array - x-kubernetes-list-type: atomic - namespaceSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - namespaces: - items: + volumeMode: type: string - type: array - x-kubernetes-list-type: atomic - topologyKey: - type: string - required: - - topologyKey - type: object - type: array - x-kubernetes-list-type: atomic + volumeName: + type: string + type: object + required: + - spec + type: object type: object - type: object - annotations: - additionalProperties: - type: string - type: object - containerSecurityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: + fc: properties: - localhostProfile: - type: string - type: + fsType: type: string - required: - - type - type: object - capabilities: - properties: - add: + lun: + type: integer + readOnly: + type: boolean + targetWWNs: items: type: string type: array x-kubernetes-list-type: atomic - drop: + wwids: items: type: string type: array x-kubernetes-list-type: atomic type: object - privileged: - type: boolean - procMount: - type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: + flexVolume: properties: - level: - type: string - role: - type: string - type: + driver: type: string - user: + fsType: type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver type: object - seccompProfile: + flocker: properties: - localhostProfile: + datasetName: type: string - type: + datasetUUID: type: string - required: - - type type: object - windowsOptions: + gcePersistentDisk: properties: - gmsaCredentialSpec: + fsType: type: string - gmsaCredentialSpecName: + partition: + type: integer + pdName: type: string - hostProcess: + readOnly: type: boolean - runAsUserName: - type: string - type: object - type: object - labels: - additionalProperties: - type: string - type: object - name: - minLength: 1 - type: string - nodeSelector: - additionalProperties: - type: string - type: object - resources: - properties: - claims: - items: - properties: - name: - type: string - request: - type: string - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true + required: + - pdName type: object - type: object - runtimeClassName: - type: string - securityContext: - properties: - appArmorProfile: + gitRepo: properties: - localhostProfile: + directory: type: string - type: + repository: + type: string + revision: type: string required: - - type + - repository type: object - fsGroup: - format: int64 - type: integer - fsGroupChangePolicy: - type: string - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: + glusterfs: properties: - level: - type: string - role: - type: string - type: + endpoints: type: string - user: + path: type: string + readOnly: + type: boolean + required: + - endpoints + - path type: object - seccompProfile: + hostPath: properties: - localhostProfile: + path: type: string type: type: string required: - - type + - path type: object - supplementalGroups: - items: - format: int64 - type: integer - type: array - x-kubernetes-list-type: atomic - supplementalGroupsPolicy: - type: string - sysctls: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - windowsOptions: + iscsi: properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: + chapAuthDiscovery: + type: boolean + chapAuthSession: type: boolean - runAsUserName: + fsType: type: string - type: object - type: object - servers: - format: int32 - type: integer - x-kubernetes-validations: - - message: servers is immutable - rule: self == oldSelf - tolerations: - items: - properties: - effect: - type: string - key: - type: string - operator: - type: string - tolerationSeconds: - format: int64 - type: integer - value: - type: string - type: object - type: array - topologySpreadConstraints: - items: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - matchLabelKeys: - items: + initiatorName: type: string - type: array - x-kubernetes-list-type: atomic - maxSkew: - format: int32 - type: integer - minDomains: - format: int32 - type: integer - nodeAffinityPolicy: - type: string - nodeTaintsPolicy: - type: string - topologyKey: - type: string - whenUnsatisfiable: - type: string - required: - - maxSkew - - topologyKey - - whenUnsatisfiable - type: object - type: array - volumeClaimTemplate: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: + iqn: type: string - namespace: + iscsiInterface: type: string - type: object - spec: - properties: - accessModes: + lun: + type: integer + portals: items: type: string type: array x-kubernetes-list-type: atomic - dataSource: + readOnly: + type: boolean + secretRef: properties: - apiGroup: - type: string - kind: - type: string name: + default: "" type: string - required: - - kind - - name type: object x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: + targetPortal: type: string - volumeAttributesClassName: + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: type: string - volumeMode: + readOnly: + type: boolean + server: type: string - volumeName: + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: type: string + readOnly: + type: boolean + required: + - claimName type: object - status: + photonPersistentDisk: properties: - accessModes: - items: - type: string - type: array - x-kubernetes-list-type: atomic - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: granular - allocatedResources: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - capacity: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - conditions: - items: - properties: - lastProbeTime: - format: date-time - type: string - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: - type: string - status: - type: string - type: - type: string - required: - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - currentVolumeAttributesClassName: + fsType: type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: - type: string - required: - - status - type: object - phase: + pdID: type: string + required: + - pdID type: object - type: object - volumesPerServer: - format: int32 - type: integer - x-kubernetes-validations: - - message: volumesPerServer is immutable - rule: self == oldSelf - required: - - name - - servers - - volumeClaimTemplate - - volumesPerServer - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - poolsMetadata: - properties: - annotations: - additionalProperties: - type: string - type: object - labels: - additionalProperties: - type: string - type: object - type: object - priorityClassName: - type: string - prometheusOperator: - type: boolean - readiness: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: + portworxVolume: properties: - name: + fsType: type: string - value: + readOnly: + type: boolean + volumeID: type: string required: - - name - - value + - volumeID type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - requestAutoCert: - type: boolean - serviceAccountName: - type: string - serviceMetadata: - properties: - consoleServiceAnnotations: - additionalProperties: - type: string - type: object - consoleServiceLabels: - additionalProperties: - type: string - type: object - kesServiceAnnotations: - additionalProperties: - type: string - type: object - kesServiceLabels: - additionalProperties: - type: string - type: object - minioServiceAnnotations: - additionalProperties: - type: string - type: object - minioServiceLabels: - additionalProperties: - type: string - type: object - type: object - sideCars: - properties: - containers: - items: - properties: - args: - items: - type: string - type: array - x-kubernetes-list-type: atomic - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - env: - items: - properties: - name: - type: string - value: - type: string - valueFrom: + projected: + properties: + defaultMode: + type: integer + sources: + items: properties: - configMapKeyRef: + clusterTrustBundle: properties: - key: - type: string + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic name: - default: "" type: string optional: type: boolean - required: - - key - type: object - x-kubernetes-map-type: atomic - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - resourceFieldRef: - properties: - containerName: + path: type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: + signerName: type: string required: - - resource + - path type: object - x-kubernetes-map-type: atomic - secretKeyRef: + configMap: properties: - key: - type: string + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic name: default: "" type: string optional: type: boolean - required: - - key type: object x-kubernetes-map-type: atomic - type: object - required: - - name - type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - envFrom: - items: - properties: - configMapRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - prefix: - type: string - secretRef: - properties: - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - type: object - type: array - x-kubernetes-list-type: atomic - image: - type: string - imagePullPolicy: - type: string - lifecycle: - properties: - postStart: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: + downwardAPI: + properties: items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - preStop: - properties: - exec: - properties: - command: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" type: string - type: array - x-kubernetes-list-type: atomic - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - sleep: - properties: - seconds: - format: int64 - type: integer - required: - - seconds - type: object - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - type: object - type: object - livenessProbe: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: properties: - name: + audience: type: string - value: + expirationSeconds: + type: integer + path: type: string required: - - name - - value + - path type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: properties: - host: + name: + default: "" type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors type: object - name: - type: string - ports: - items: - properties: - containerPort: - format: int32 - type: integer - hostIP: - type: string - hostPort: - format: int32 - type: integer - name: - type: string - protocol: - default: TCP - type: string - required: - - containerPort - type: object - type: array - x-kubernetes-list-map-keys: - - containerPort - - protocol - x-kubernetes-list-type: map - readinessProbe: + scaleIO: properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: properties: - port: - format: int32 - type: integer - service: + name: default: "" type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system type: object - resizePolicy: - items: - properties: - resourceName: - type: string - restartPolicy: - type: string - required: - - resourceName - - restartPolicy - type: object - type: array - x-kubernetes-list-type: atomic - resources: + secret: properties: - claims: + defaultMode: + type: integer + items: items: properties: - name: + key: type: string - request: + mode: + type: integer + path: type: string required: - - name + - key + - path type: object type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - restartPolicy: - type: string - securityContext: - properties: - allowPrivilegeEscalation: - type: boolean - appArmorProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - capabilities: - properties: - add: - items: - type: string - type: array - x-kubernetes-list-type: atomic - drop: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - privileged: + x-kubernetes-list-type: atomic + optional: type: boolean - procMount: + secretName: type: string - readOnlyRootFilesystem: - type: boolean - runAsGroup: - format: int64 - type: integer - runAsNonRoot: - type: boolean - runAsUser: - format: int64 - type: integer - seLinuxOptions: - properties: - level: - type: string - role: - type: string - type: - type: string - user: - type: string - type: object - seccompProfile: - properties: - localhostProfile: - type: string - type: - type: string - required: - - type - type: object - windowsOptions: - properties: - gmsaCredentialSpec: - type: string - gmsaCredentialSpecName: - type: string - hostProcess: - type: boolean - runAsUserName: - type: string - type: object type: object - startupProbe: + storageos: properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: + fsType: + type: string + readOnly: + type: boolean + secretRef: properties: - port: - format: int32 - type: integer - service: + name: default: "" type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string type: object - stdin: - type: boolean - stdinOnce: - type: boolean - terminationMessagePath: - type: string - terminationMessagePolicy: - type: string - tty: - type: boolean - volumeDevices: - items: - properties: - devicePath: - type: string - name: - type: string - required: - - devicePath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - devicePath - x-kubernetes-list-type: map - volumeMounts: - items: - properties: - mountPath: - type: string - mountPropagation: - type: string - name: - type: string - readOnly: - type: boolean - recursiveReadOnly: - type: string - subPath: - type: string - subPathExpr: - type: string - required: - - mountPath - - name - type: object - type: array - x-kubernetes-list-map-keys: - - mountPath - x-kubernetes-list-type: map - workingDir: - type: string - required: - - name - type: object - type: array - resources: - properties: - claims: - items: + vsphereVolume: properties: - name: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: type: string - request: + volumePath: type: string required: - - name + - volumePath type: object - type: array - x-kubernetes-list-map-keys: - - name - x-kubernetes-list-type: map - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - volumeClaimTemplates: - items: - properties: - apiVersion: - type: string - kind: - type: string - metadata: - properties: - annotations: - additionalProperties: - type: string - type: object - finalizers: - items: - type: string - type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - accessModes: - items: - type: string - type: array - x-kubernetes-list-type: atomic - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: + required: + - name + type: object + type: array + required: + - replicas + type: object + hostNetwork: + type: boolean + hostSuffix: + type: string + image: + type: string + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + master: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer required: - - kind - - name + - preference + - weight type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic type: object - type: object - selector: + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: properties: - matchExpressions: - items: - properties: - key: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: type: string - operator: + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: - type: string - type: object - status: - properties: - accessModes: - items: - type: string - type: array - x-kubernetes-list-type: atomic - allocatedResourceStatuses: - additionalProperties: - type: string - type: object - x-kubernetes-map-type: granular - allocatedResources: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - capacity: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight type: object - conditions: - items: - properties: - lastProbeTime: - format: date-time - type: string - lastTransitionTime: - format: date-time - type: string - message: - type: string - reason: + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: type: string - status: + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: type: string - type: + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: type: string - required: - - status - - type - type: object - type: array - x-kubernetes-list-map-keys: - - type - x-kubernetes-list-type: map - currentVolumeAttributesClassName: - type: string - modifyVolumeStatus: - properties: - status: - type: string - targetVolumeAttributesClassName: + type: array + x-kubernetes-list-type: atomic + topologyKey: type: string required: - - status - type: object - phase: - type: string - type: object - type: object - type: array - volumes: - items: - properties: - awsElasticBlockStore: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - readOnly: - type: boolean - volumeID: - type: string - required: - - volumeID - type: object - azureDisk: - properties: - cachingMode: - type: string - diskName: - type: string - diskURI: - type: string - fsType: - default: ext4 - type: string - kind: - type: string - readOnly: - default: false - type: boolean - required: - - diskName - - diskURI - type: object - azureFile: - properties: - readOnly: - type: boolean - secretName: - type: string - shareName: - type: string - required: - - secretName - - shareName - type: object - cephfs: - properties: - monitors: - items: - type: string - type: array - x-kubernetes-list-type: atomic - path: - type: string - readOnly: - type: boolean - secretFile: - type: string - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - user: - type: string - required: - - monitors - type: object - cinder: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string + - topologyKey type: object - x-kubernetes-map-type: atomic - volumeID: - type: string - required: - - volumeID - type: object - configMap: - properties: - defaultMode: - format: int32 - type: integer + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - csi: - properties: - driver: - type: string - fsType: - type: string - nodePublishSecretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - readOnly: - type: boolean - volumeAttributes: - additionalProperties: - type: string - type: object - required: - - driver - type: object - downwardAPI: - properties: - defaultMode: - format: int32 - type: integer - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - required: - - path - type: object - type: array - x-kubernetes-list-type: atomic - type: object - emptyDir: - properties: - medium: - type: string - sizeLimit: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - ephemeral: - properties: - volumeClaimTemplate: properties: - metadata: + podAffinityTerm: properties: - annotations: - additionalProperties: - type: string + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object type: object - finalizers: + x-kubernetes-map-type: atomic + matchLabelKeys: items: type: string type: array - labels: - additionalProperties: - type: string - type: object - name: - type: string - namespace: - type: string - type: object - spec: - properties: - accessModes: + x-kubernetes-list-type: atomic + mismatchLabelKeys: items: type: string type: array x-kubernetes-list-type: atomic - dataSource: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - required: - - kind - - name - type: object - x-kubernetes-map-type: atomic - dataSourceRef: - properties: - apiGroup: - type: string - kind: - type: string - name: - type: string - namespace: - type: string - required: - - kind - - name - type: object - resources: - properties: - limits: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - requests: - additionalProperties: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - type: object - type: object - selector: + namespaceSelector: properties: matchExpressions: items: @@ -4992,395 +2315,361 @@ spec: type: object type: object x-kubernetes-map-type: atomic - storageClassName: - type: string - volumeAttributesClassName: - type: string - volumeMode: - type: string - volumeName: + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: type: string + required: + - topologyKey type: object + weight: + type: integer required: - - spec - type: object - type: object - fc: - properties: - fsType: - type: string - lun: - format: int32 - type: integer - readOnly: - type: boolean - targetWWNs: - items: - type: string - type: array - x-kubernetes-list-type: atomic - wwids: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - flexVolume: - properties: - driver: - type: string - fsType: - type: string - options: - additionalProperties: - type: string + - podAffinityTerm + - weight type: object - readOnly: - type: boolean - secretRef: + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - required: - - driver - type: object - flocker: - properties: - datasetName: - type: string - datasetUUID: - type: string - type: object - gcePersistentDisk: - properties: - fsType: - type: string - partition: - format: int32 - type: integer - pdName: - type: string - readOnly: - type: boolean - required: - - pdName - type: object - gitRepo: - properties: - directory: - type: string - repository: - type: string - revision: - type: string - required: - - repository - type: object - glusterfs: - properties: - endpoints: - type: string - path: - type: string - readOnly: - type: boolean - required: - - endpoints - - path - type: object - hostPath: - properties: - path: - type: string - type: - type: string - required: - - path - type: object - image: - properties: - pullPolicy: - type: string - reference: - type: string - type: object - iscsi: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + concurrentStart: + type: boolean + config: + type: string + defaultReplication: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: properties: - chapAuthDiscovery: - type: boolean - chapAuthSession: - type: boolean - fsType: - type: string - initiatorName: - type: string - iqn: - type: string - iscsiInterface: - default: default - type: string - lun: - format: int32 - type: integer - portals: - items: - type: string - type: array - x-kubernetes-list-type: atomic - readOnly: - type: boolean - secretRef: + configMapKeyRef: properties: + key: + type: string name: default: "" type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key type: object x-kubernetes-map-type: atomic - targetPortal: - type: string - required: - - iqn - - lun - - targetPortal type: object + required: + - name + type: object + type: array + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + garbageThreshold: + type: string + hostNetwork: + type: boolean + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: name: + default: "" type: string - nfs: - properties: - path: - type: string - readOnly: - type: boolean - server: - type: string - required: - - path - - server - type: object - persistentVolumeClaim: - properties: - claimName: - type: string - readOnly: - type: boolean - required: - - claimName - type: object - photonPersistentDisk: - properties: - fsType: - type: string - pdID: - type: string - required: - - pdID - type: object - portworxVolume: - properties: - fsType: - type: string - readOnly: - type: boolean + type: object + x-kubernetes-map-type: atomic + type: array + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + metricsPort: + type: integer + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + pulseSeconds: + type: integer + replicas: + minimum: 1 + type: integer + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + schedulerName: + type: string + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumePreallocate: + type: boolean + volumeSizeLimitMB: + type: integer + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + type: integer + readOnly: + type: boolean volumeID: type: string required: - volumeID type: object - projected: - properties: - defaultMode: - format: int32 - type: integer - sources: - items: - properties: - clusterTrustBundle: - properties: - labelSelector: - properties: - matchExpressions: - items: - properties: - key: - type: string - operator: - type: string - values: - items: - type: string - type: array - x-kubernetes-list-type: atomic - required: - - key - - operator - type: object - type: array - x-kubernetes-list-type: atomic - matchLabels: - additionalProperties: - type: string - type: object - type: object - x-kubernetes-map-type: atomic - name: - type: string - optional: - type: boolean - path: - type: string - signerName: - type: string - required: - - path - type: object - configMap: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - downwardAPI: - properties: - items: - items: - properties: - fieldRef: - properties: - apiVersion: - type: string - fieldPath: - type: string - required: - - fieldPath - type: object - x-kubernetes-map-type: atomic - mode: - format: int32 - type: integer - path: - type: string - resourceFieldRef: - properties: - containerName: - type: string - divisor: - anyOf: - - type: integer - - type: string - pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ - x-kubernetes-int-or-string: true - resource: - type: string - required: - - resource - type: object - x-kubernetes-map-type: atomic - required: - - path - type: object - type: array - x-kubernetes-list-type: atomic - type: object - secret: - properties: - items: - items: - properties: - key: - type: string - mode: - format: int32 - type: integer - path: - type: string - required: - - key - - path - type: object - type: array - x-kubernetes-list-type: atomic - name: - default: "" - type: string - optional: - type: boolean - type: object - x-kubernetes-map-type: atomic - serviceAccountToken: - properties: - audience: - type: string - expirationSeconds: - format: int64 - type: integer - path: - type: string - required: - - path - type: object - type: object - type: array - x-kubernetes-list-type: atomic - type: object - quobyte: + azureDisk: properties: - group: + cachingMode: type: string - readOnly: - type: boolean - registry: + diskName: type: string - tenant: + diskURI: type: string - user: + fsType: type: string - volume: + kind: type: string + readOnly: + type: boolean required: - - registry - - volume + - diskName + - diskURI type: object - rbd: + azureFile: properties: - fsType: - type: string - image: + readOnly: + type: boolean + secretName: type: string - keyring: - default: /etc/ceph/keyring + shareName: type: string - monitors: - items: + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: type: string type: array x-kubernetes-list-type: atomic - pool: - default: rbd + path: type: string readOnly: type: boolean + secretFile: + type: string secretRef: properties: name: @@ -5389,20 +2678,13 @@ spec: type: object x-kubernetes-map-type: atomic user: - default: admin type: string required: - - image - monitors type: object - scaleIO: + cinder: properties: fsType: - default: xfs - type: string - gateway: - type: string - protectionDomain: type: string readOnly: type: boolean @@ -5413,331 +2695,3572 @@ spec: type: string type: object x-kubernetes-map-type: atomic - sslEnabled: - type: boolean - storageMode: - default: ThinProvisioned + volumeID: type: string - storagePool: + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" type: string - system: + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: type: string - volumeName: + fsType: type: string + nodePublishSecretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object required: - - gateway - - secretRef - - system + - driver type: object - secret: + downwardAPI: properties: defaultMode: - format: int32 type: integer items: items: properties: - key: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + required: + - replicas + type: object + metricsAddress: + type: string + nodeSelector: + additionalProperties: + type: string + type: object + pvReclaimPolicy: + type: string + schedulerName: + type: string + statefulSetUpdateStrategy: + type: string + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volume: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + compactionMBps: + type: integer + dataCenter: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + fileSizeLimitMB: + type: integer + fixJpgOrientation: + type: boolean + hostNetwork: + type: boolean + idleTimeout: + type: integer + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + maxVolumeCounts: + type: integer + metricsPort: + type: integer + minFreeSpacePercent: + type: integer + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + rack: + type: string + replicas: + minimum: 0 + type: integer + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + schedulerName: + type: string + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + storageClassName: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: + type: string + storagePool: + type: string + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: + type: string + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + required: + - replicas + type: object + volumeServerDiskCount: + type: integer + volumeTopology: + additionalProperties: + properties: + affinity: + properties: + nodeAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + preference: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + weight: + type: integer + required: + - preference + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + properties: + nodeSelectorTerms: + items: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchFields: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + type: object + x-kubernetes-map-type: atomic + type: array + x-kubernetes-list-type: atomic + required: + - nodeSelectorTerms + type: object + x-kubernetes-map-type: atomic + type: object + podAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + podAntiAffinity: + properties: + preferredDuringSchedulingIgnoredDuringExecution: + items: + properties: + podAffinityTerm: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + weight: + type: integer + required: + - podAffinityTerm + - weight + type: object + type: array + x-kubernetes-list-type: atomic + requiredDuringSchedulingIgnoredDuringExecution: + items: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + matchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + mismatchLabelKeys: + items: + type: string + type: array + x-kubernetes-list-type: atomic + namespaceSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + namespaces: + items: + type: string + type: array + x-kubernetes-list-type: atomic + topologyKey: + type: string + required: + - topologyKey + type: object + type: array + x-kubernetes-list-type: atomic + type: object + type: object + annotations: + additionalProperties: + type: string + type: object + claims: + items: + properties: + name: + type: string + required: + - name + type: object + type: array + x-kubernetes-list-map-keys: + - name + x-kubernetes-list-type: map + compactionMBps: + type: integer + dataCenter: + type: string + env: + items: + properties: + name: + type: string + value: + type: string + valueFrom: + properties: + configMapKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + secretKeyRef: + properties: + key: + type: string + name: + default: "" + type: string + optional: + type: boolean + required: + - key + type: object + x-kubernetes-map-type: atomic + type: object + required: + - name + type: object + type: array + extraArgs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + fileSizeLimitMB: + type: integer + fixJpgOrientation: + type: boolean + hostNetwork: + type: boolean + idleTimeout: + type: integer + imagePullPolicy: + type: string + imagePullSecrets: + items: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + type: array + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + maxVolumeCounts: + type: integer + metricsPort: + type: integer + minFreeSpacePercent: + type: integer + nodeSelector: + additionalProperties: + type: string + type: object + priorityClassName: + type: string + rack: + type: string + replicas: + minimum: 0 + type: integer + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + schedulerName: + type: string + service: + properties: + annotations: + additionalProperties: + type: string + type: object + clusterIP: + type: string + loadBalancerIP: + type: string + type: + type: string + type: object + statefulSetUpdateStrategy: + type: string + storageClassName: + type: string + terminationGracePeriodSeconds: + type: integer + tolerations: + items: + properties: + effect: + type: string + key: + type: string + operator: + type: string + tolerationSeconds: + type: integer + value: + type: string + type: object + type: array + version: + type: string + volumeMounts: + items: + properties: + mountPath: + type: string + mountPropagation: + type: string + name: + type: string + readOnly: + type: boolean + recursiveReadOnly: + type: string + subPath: + type: string + subPathExpr: + type: string + required: + - mountPath + - name + type: object + type: array + volumes: + items: + properties: + awsElasticBlockStore: + properties: + fsType: + type: string + partition: + type: integer + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + azureDisk: + properties: + cachingMode: + type: string + diskName: + type: string + diskURI: + type: string + fsType: + type: string + kind: + type: string + readOnly: + type: boolean + required: + - diskName + - diskURI + type: object + azureFile: + properties: + readOnly: + type: boolean + secretName: + type: string + shareName: + type: string + required: + - secretName + - shareName + type: object + cephfs: + properties: + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + path: + type: string + readOnly: + type: boolean + secretFile: + type: string + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - monitors + type: object + cinder: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeID: + type: string + required: + - volumeID + type: object + configMap: + properties: + defaultMode: + type: integer + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + csi: + properties: + driver: + type: string + fsType: + type: string + nodePublishSecretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + readOnly: + type: boolean + volumeAttributes: + additionalProperties: + type: string + type: object + required: + - driver + type: object + downwardAPI: + properties: + defaultMode: + type: integer + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + emptyDir: + properties: + medium: + type: string + sizeLimit: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + ephemeral: + properties: + volumeClaimTemplate: + properties: + metadata: + type: object + spec: + properties: + accessModes: + items: + type: string + type: array + x-kubernetes-list-type: atomic + dataSource: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + required: + - kind + - name + type: object + x-kubernetes-map-type: atomic + dataSourceRef: + properties: + apiGroup: + type: string + kind: + type: string + name: + type: string + namespace: + type: string + required: + - kind + - name + type: object + resources: + properties: + limits: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + requests: + additionalProperties: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + type: object + type: object + selector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + storageClassName: + type: string + volumeAttributesClassName: + type: string + volumeMode: + type: string + volumeName: + type: string + type: object + required: + - spec + type: object + type: object + fc: + properties: + fsType: + type: string + lun: + type: integer + readOnly: + type: boolean + targetWWNs: + items: + type: string + type: array + x-kubernetes-list-type: atomic + wwids: + items: + type: string + type: array + x-kubernetes-list-type: atomic + type: object + flexVolume: + properties: + driver: + type: string + fsType: + type: string + options: + additionalProperties: + type: string + type: object + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + required: + - driver + type: object + flocker: + properties: + datasetName: + type: string + datasetUUID: + type: string + type: object + gcePersistentDisk: + properties: + fsType: + type: string + partition: + type: integer + pdName: + type: string + readOnly: + type: boolean + required: + - pdName + type: object + gitRepo: + properties: + directory: + type: string + repository: + type: string + revision: + type: string + required: + - repository + type: object + glusterfs: + properties: + endpoints: + type: string + path: + type: string + readOnly: + type: boolean + required: + - endpoints + - path + type: object + hostPath: + properties: + path: + type: string + type: + type: string + required: + - path + type: object + iscsi: + properties: + chapAuthDiscovery: + type: boolean + chapAuthSession: + type: boolean + fsType: + type: string + initiatorName: + type: string + iqn: + type: string + iscsiInterface: + type: string + lun: + type: integer + portals: + items: + type: string + type: array + x-kubernetes-list-type: atomic + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + targetPortal: + type: string + required: + - iqn + - lun + - targetPortal + type: object + name: + type: string + nfs: + properties: + path: + type: string + readOnly: + type: boolean + server: + type: string + required: + - path + - server + type: object + persistentVolumeClaim: + properties: + claimName: + type: string + readOnly: + type: boolean + required: + - claimName + type: object + photonPersistentDisk: + properties: + fsType: + type: string + pdID: + type: string + required: + - pdID + type: object + portworxVolume: + properties: + fsType: + type: string + readOnly: + type: boolean + volumeID: + type: string + required: + - volumeID + type: object + projected: + properties: + defaultMode: + type: integer + sources: + items: + properties: + clusterTrustBundle: + properties: + labelSelector: + properties: + matchExpressions: + items: + properties: + key: + type: string + operator: + type: string + values: + items: + type: string + type: array + x-kubernetes-list-type: atomic + required: + - key + - operator + type: object + type: array + x-kubernetes-list-type: atomic + matchLabels: + additionalProperties: + type: string + type: object + type: object + x-kubernetes-map-type: atomic + name: + type: string + optional: + type: boolean + path: + type: string + signerName: + type: string + required: + - path + type: object + configMap: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + downwardAPI: + properties: + items: + items: + properties: + fieldRef: + properties: + apiVersion: + type: string + fieldPath: + type: string + required: + - fieldPath + type: object + x-kubernetes-map-type: atomic + mode: + type: integer + path: + type: string + resourceFieldRef: + properties: + containerName: + type: string + divisor: + anyOf: + - type: integer + - type: string + pattern: ^(\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))(([KMGTPE]i)|[numkMGTPE]|([eE](\+|-)?(([0-9]+(\.[0-9]*)?)|(\.[0-9]+))))?$ + x-kubernetes-int-or-string: true + resource: + type: string + required: + - resource + type: object + x-kubernetes-map-type: atomic + required: + - path + type: object + type: array + x-kubernetes-list-type: atomic + type: object + secret: + properties: + items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + name: + default: "" + type: string + optional: + type: boolean + type: object + x-kubernetes-map-type: atomic + serviceAccountToken: + properties: + audience: + type: string + expirationSeconds: + type: integer + path: + type: string + required: + - path + type: object + type: object + type: array + x-kubernetes-list-type: atomic + type: object + quobyte: + properties: + group: + type: string + readOnly: + type: boolean + registry: + type: string + tenant: + type: string + user: + type: string + volume: + type: string + required: + - registry + - volume + type: object + rbd: + properties: + fsType: + type: string + image: + type: string + keyring: + type: string + monitors: + items: + type: string + type: array + x-kubernetes-list-type: atomic + pool: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" type: string - mode: - format: int32 - type: integer - path: + type: object + x-kubernetes-map-type: atomic + user: + type: string + required: + - image + - monitors + type: object + scaleIO: + properties: + fsType: + type: string + gateway: + type: string + protectionDomain: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" type: string - required: - - key - - path type: object - type: array - x-kubernetes-list-type: atomic - optional: - type: boolean - secretName: - type: string - type: object - storageos: - properties: - fsType: - type: string - readOnly: - type: boolean - secretRef: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - volumeName: - type: string - volumeNamespace: - type: string - type: object - vsphereVolume: - properties: - fsType: - type: string - storagePolicyID: - type: string - storagePolicyName: - type: string - volumePath: - type: string - required: - - volumePath - type: object - required: - - name - type: object - type: array - type: object - startup: - properties: - exec: - properties: - command: - items: - type: string - type: array - x-kubernetes-list-type: atomic - type: object - failureThreshold: - format: int32 - type: integer - grpc: - properties: - port: - format: int32 - type: integer - service: - default: "" - type: string - required: - - port - type: object - httpGet: - properties: - host: - type: string - httpHeaders: - items: - properties: - name: - type: string - value: - type: string - required: - - name - - value - type: object - type: array - x-kubernetes-list-type: atomic - path: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - scheme: - type: string - required: - - port - type: object - initialDelaySeconds: - format: int32 - type: integer - periodSeconds: - format: int32 - type: integer - successThreshold: - format: int32 - type: integer - tcpSocket: - properties: - host: - type: string - port: - anyOf: - - type: integer - - type: string - x-kubernetes-int-or-string: true - required: - - port - type: object - terminationGracePeriodSeconds: - format: int64 - type: integer - timeoutSeconds: - format: int32 - type: integer - type: object - subPath: - type: string - users: - items: - properties: - name: - default: "" - type: string - type: object - x-kubernetes-map-type: atomic - type: array - required: - - pools - type: object - status: - properties: - availableReplicas: - format: int32 - type: integer - certificates: - nullable: true - properties: - autoCertEnabled: - nullable: true - type: boolean - customCertificates: - nullable: true - properties: - client: - items: - properties: - certName: - type: string - domains: - items: + x-kubernetes-map-type: atomic + sslEnabled: + type: boolean + storageMode: type: string - type: array - expiresIn: - type: string - expiry: - type: string - serialNo: - type: string - type: object - type: array - minio: - items: - properties: - certName: - type: string - domains: - items: + storagePool: type: string - type: array - expiresIn: - type: string - expiry: - type: string - serialNo: - type: string - type: object - type: array - minioCAs: - items: - properties: - certName: - type: string - domains: + system: + type: string + volumeName: + type: string + required: + - gateway + - secretRef + - system + type: object + secret: + properties: + defaultMode: + type: integer items: + items: + properties: + key: + type: string + mode: + type: integer + path: + type: string + required: + - key + - path + type: object + type: array + x-kubernetes-list-type: atomic + optional: + type: boolean + secretName: type: string - type: array - expiresIn: - type: string - expiry: - type: string - serialNo: - type: string - type: object - type: array - type: object + type: object + storageos: + properties: + fsType: + type: string + readOnly: + type: boolean + secretRef: + properties: + name: + default: "" + type: string + type: object + x-kubernetes-map-type: atomic + volumeName: + type: string + volumeNamespace: + type: string + type: object + vsphereVolume: + properties: + fsType: + type: string + storagePolicyID: + type: string + storagePolicyName: + type: string + volumePath: + type: string + required: + - volumePath + type: object + required: + - name + type: object + type: array + required: + - dataCenter + - rack + - replicas + type: object type: object - currentState: - type: string - drivesHealing: - format: int32 - type: integer - drivesOffline: - format: int32 - type: integer - drivesOnline: - format: int32 - type: integer - healthMessage: - type: string - healthStatus: - type: string - pools: + type: object + status: + properties: + conditions: items: properties: - legacySecurityContext: - type: boolean - ssName: + lastTransitionTime: + format: date-time + type: string + message: + maxLength: 32768 + type: string + observedGeneration: + minimum: 0 + type: integer + reason: + maxLength: 1024 + minLength: 1 + pattern: ^[A-Za-z]([A-Za-z0-9_,:]*[A-Za-z0-9_])?$ type: string - state: + status: + enum: + - "True" + - "False" + - Unknown + type: string + type: + maxLength: 316 + pattern: ^([a-z0-9]([-a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-a-z0-9]*[a-z0-9])?)*/)?(([A-Za-z0-9][-A-Za-z0-9_.]*)?[A-Za-z0-9])$ type: string required: - - ssName - - state + - lastTransitionTime + - message + - reason + - status + - type type: object - nullable: true type: array - provisionedBuckets: - type: boolean - provisionedUsers: - type: boolean - revision: - format: int32 - type: integer - syncVersion: - type: string - usage: + x-kubernetes-list-map-keys: + - type + x-kubernetes-list-type: map + filer: properties: - capacity: - format: int64 + readyReplicas: + minimum: 0 type: integer - rawCapacity: - format: int64 + replicas: + minimum: 0 type: integer - rawUsage: - format: int64 + type: object + master: + properties: + readyReplicas: + minimum: 0 type: integer - tiers: - items: - properties: - Name: - type: string - Type: - type: string - totalSize: - format: int64 - type: integer - required: - - Name - - totalSize - type: object - type: array - usage: - format: int64 + replicas: + minimum: 0 type: integer type: object - waitingOnReady: - format: date-time - type: string - writeQuorum: - format: int32 + observedGeneration: type: integer - required: - - availableReplicas - - certificates - - currentState - - pools - - revision - - syncVersion + volume: + properties: + readyReplicas: + minimum: 0 + type: integer + replicas: + minimum: 0 + type: integer + type: object type: object - required: - - spec type: object served: true storage: true diff --git a/sources/seaweedfs-operator/0.1.13/dashboard/seaweedfs-grafana-dashboard.json b/sources/seaweedfs-operator/0.1.13/dashboard/seaweedfs-grafana-dashboard.json new file mode 100644 index 00000000..87dc6417 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/dashboard/seaweedfs-grafana-dashboard.json @@ -0,0 +1,1856 @@ +{ + "__inputs": [ + { + "name": "DS_PROMETHEUS-DEV", + "label": "prometheus-dev", + "description": "", + "type": "datasource", + "pluginId": "prometheus", + "pluginName": "Prometheus" + } + ], + "__requires": [ + { + "type": "grafana", + "id": "grafana", + "name": "Grafana", + "version": "4.6.2" + }, + { + "type": "panel", + "id": "graph", + "name": "Graph", + "version": "" + }, + { + "type": "datasource", + "id": "prometheus", + "name": "Prometheus", + "version": "1.0.0" + } + ], + "annotations": { + "list": [ + { + "builtIn": 1, + "datasource": "${DS_PROMETHEUS-DEV}", + "enable": true, + "hide": true, + "iconColor": "rgba(0, 211, 255, 1)", + "limit": 100, + "name": "Annotations & Alerts", + "showIn": 0, + "type": "dashboard" + } + ] + }, + "editable": true, + "gnetId": 10423, + "graphTooltip": 0, + "hideControls": false, + "id": null, + "links": [], + "refresh": "30s", + "rows": [ + { + "collapse": true, + "height": 251, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 46, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 4, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.90, sum(rate(SeaweedFS_filer_request_seconds_bucket[1m])) by (le))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "average", + "refId": "A", + "step": 60 + }, + { + "expr": "histogram_quantile(0.90, sum(rate(SeaweedFS_filer_request_seconds_bucket[1m])) by (le, type))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Request Duration 90th percentile", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 49, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 4, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.95, sum(rate(SeaweedFS_filer_request_seconds_bucket[1m])) by (le))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "average", + "refId": "A", + "step": 60 + }, + { + "expr": "histogram_quantile(0.95, sum(rate(SeaweedFS_filer_request_seconds_bucket[1m])) by (le, type))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B", + "step": 60 + }, + { + "expr": "", + "format": "time_series", + "intervalFactor": 2, + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Request Duration 95th percentile", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 45, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 4, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.99, sum(rate(SeaweedFS_filer_request_seconds_bucket[1m])) by (le))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "average", + "refId": "A", + "step": 60 + }, + { + "expr": "histogram_quantile(0.99, sum(rate(SeaweedFS_filer_request_seconds_bucket[1m])) by (le, type))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B", + "step": 60 + }, + { + "expr": "", + "format": "time_series", + "intervalFactor": 2, + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Request Duration 99th percentile", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 0, + "grid": {}, + "id": 2, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "hideEmpty": true, + "hideZero": true, + "max": true, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "sort": "max", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "minSpan": 12, + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "total", + "lines": false + } + ], + "spaceLength": 10, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(SeaweedFS_filer_request_total[1m]) * 5", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "A", + "step": 30 + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer QPS", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "repeat": null, + "repeatIteration": null, + "repeatRowId": null, + "showTitle": true, + "title": "Filer", + "titleSize": "h6" + }, + { + "collapse": false, + "height": 250, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 56, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 4, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.90, sum(rate(SeaweedFS_s3_request_seconds_bucket[1m])) by (le))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "average", + "refId": "A", + "step": 60 + }, + { + "expr": "histogram_quantile(0.90, sum(rate(SeaweedFS_s3_request_seconds_bucket[1m])) by (le, type))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "S3 Request Duration 90th percentile", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 57, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 4, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.95, sum(rate(SeaweedFS_s3_request_seconds_bucket[1m])) by (le))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "average", + "refId": "A", + "step": 60 + }, + { + "expr": "histogram_quantile(0.95, sum(rate(SeaweedFS_s3_request_seconds_bucket[1m])) by (le, type))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "S3 Request Duration 95th percentile", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 58, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 4, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.99, sum(rate(SeaweedFS_s3_request_seconds_bucket[1m])) by (le))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "average", + "refId": "A", + "step": 60 + }, + { + "expr": "histogram_quantile(0.99, sum(rate(SeaweedFS_s3_request_seconds_bucket[1m])) by (le, type))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B", + "step": 60 + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "S3 Request Duration 99th percentile", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 0, + "grid": {}, + "id": 55, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "hideEmpty": true, + "hideZero": true, + "max": true, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "sort": "max", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "minSpan": 12, + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "total", + "lines": false + } + ], + "spaceLength": 10, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "rate(SeaweedFS_s3_request_total[1m]) * 5", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "A", + "step": 30 + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "S3 API QPS", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 0, + "grid": {}, + "hideTimeOverride": false, + "id": 59, + "legend": { + "alignAsTable": true, + "avg": false, + "current": true, + "hideEmpty": true, + "hideZero": true, + "max": true, + "min": false, + "rightSide": true, + "show": true, + "sideWidth": 250, + "sort": "max", + "sortDesc": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 1, + "links": [], + "minSpan": 12, + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [ + { + "alias": "total", + "lines": false + } + ], + "spaceLength": 10, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum by (type) (SeaweedFS_s3_request_total{type=~'PUT|COPY|POST|LIST'})*0.000005", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}} requests", + "refId": "A", + "step": 30 + }, + { + "expr": "sum (SeaweedFS_s3_request_total{type=~'PUT|COPY|POST|LIST'})*0.000005", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "All PUT, COPY, POST, LIST", + "refId": "C", + "step": 30 + }, + { + "expr": "sum (SeaweedFS_s3_request_total{type!~'PUT|COPY|POST|LIST'})*0.0000004", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "GET and all other", + "refId": "B" + }, + { + "expr": "sum by (type) (SeaweedFS_s3_request_total{type!~'PUT|COPY|POST|LIST'})*0.0000004", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{type}} requests", + "refId": "D" + } + ], + "thresholds": [], + "timeFrom": "1M", + "timeShift": null, + "title": "S3 API Monthly Cost if on AWS", + "tooltip": { + "msResolution": true, + "shared": true, + "sort": 2, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "currencyUSD", + "label": "Cost in US$", + "logBase": 1, + "max": null, + "min": "0", + "show": true + }, + { + "format": "currencyUSD", + "label": "Write Cost", + "logBase": 1, + "max": null, + "min": null, + "show": false + } + ] + } + ], + "repeat": null, + "repeatIteration": null, + "repeatRowId": null, + "showTitle": true, + "title": "S3 Gateway", + "titleSize": "h6" + }, + { + "collapse": true, + "height": 252, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 47, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.99, sum(rate(SeaweedFS_volumeServer_request_seconds_bucket[1m])) by (le, exported_instance))", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{exported_instance}}", + "refId": "B" + }, + { + "expr": "histogram_quantile(0.99, sum(rate(SeaweedFS_volumeServer_request_seconds_bucket[1m])) by (le))", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "average", + "refId": "C" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Volume Server Request Duration 99th percentile", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 40, + "legend": { + "alignAsTable": true, + "avg": false, + "current": false, + "hideEmpty": true, + "hideZero": true, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "sort": "total", + "sortDesc": true, + "total": true, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(SeaweedFS_volumeServer_request_total[1m])) by (type)", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "A", + "step": 4 + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Volume Server QPS", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "fill": 1, + "id": 48, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(SeaweedFS_volumeServer_volumes) by (collection, type)", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{collection}} {{type}}", + "refId": "A" + }, + { + "expr": "sum(SeaweedFS_volumeServer_max_volumes)", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Total", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Volume Count", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "fill": 1, + "id": 50, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(SeaweedFS_volumeServer_total_disk_size) by (collection, type)", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{collection}} {{type}}", + "refId": "A" + }, + { + "expr": "sum(SeaweedFS_volumeServer_total_disk_size)", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "Total", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Used Disk Space by Collection and Type", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "fill": 1, + "id": 51, + "legend": { + "avg": false, + "current": false, + "max": false, + "min": false, + "show": true, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 1, + "links": [], + "nullPointMode": "null", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(SeaweedFS_volumeServer_total_disk_size) by (exported_instance)", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "{{exported_instance}}", + "refId": "A" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Used Disk Space by Host", + "tooltip": { + "shared": true, + "sort": 0, + "value_type": "individual" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "repeat": null, + "repeatIteration": null, + "repeatRowId": null, + "showTitle": true, + "title": "Volume Server", + "titleSize": "h6" + }, + { + "collapse": true, + "height": 251, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 12, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "histogram_quantile(0.99, sum(rate(SeaweedFS_filerStore_request_seconds_bucket[1m])) by (le, type))", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Store Request Duration 99th percentile", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 14, + "legend": { + "alignAsTable": true, + "avg": true, + "current": true, + "hideEmpty": false, + "hideZero": false, + "max": false, + "min": false, + "rightSide": true, + "show": true, + "total": false, + "values": true + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "sum(rate(SeaweedFS_filerStore_request_total [1m])) by (type)", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{type}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Store QPS", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "repeat": null, + "repeatIteration": null, + "repeatRowId": null, + "showTitle": true, + "title": "Filer Store", + "titleSize": "h6" + }, + { + "collapse": true, + "height": 242, + "panels": [ + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 52, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "go_memstats_alloc_bytes{exported_job=\"filer\"}", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "bytes allocated", + "refId": "B" + }, + { + "expr": "rate(go_memstats_alloc_bytes_total{exported_job=\"filer\"}[30s])", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "alloc rate", + "refId": "A" + }, + { + "expr": "go_memstats_stack_inuse_bytes{exported_job=\"filer\"}", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "stack inuse", + "refId": "C" + }, + { + "expr": "go_memstats_heap_inuse_bytes{exported_job=\"filer\"}", + "format": "time_series", + "hide": false, + "intervalFactor": 2, + "legendFormat": "heap inuse", + "refId": "D" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Go Memory Stats", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "bytes", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "Bps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 54, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 6, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "go_gc_duration_seconds{exported_job=\"filer\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{quantile}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Go GC duration quantiles", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "s", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "Bps", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + }, + { + "aliasColors": {}, + "bars": false, + "dashLength": 10, + "dashes": false, + "datasource": "${DS_PROMETHEUS-DEV}", + "editable": true, + "error": false, + "fill": 1, + "grid": {}, + "id": 53, + "legend": { + "alignAsTable": false, + "avg": false, + "current": false, + "max": false, + "min": false, + "show": false, + "total": false, + "values": false + }, + "lines": true, + "linewidth": 2, + "links": [], + "nullPointMode": "null as zero", + "percentage": false, + "pointradius": 5, + "points": false, + "renderer": "flot", + "seriesOverrides": [], + "spaceLength": 10, + "span": 12, + "stack": false, + "steppedLine": false, + "targets": [ + { + "expr": "go_goroutines{exported_job=\"filer\"}", + "format": "time_series", + "intervalFactor": 2, + "legendFormat": "{{exported_instance}}", + "refId": "B" + } + ], + "thresholds": [], + "timeFrom": null, + "timeShift": null, + "title": "Filer Go Routines", + "tooltip": { + "msResolution": false, + "shared": true, + "sort": 0, + "value_type": "cumulative" + }, + "type": "graph", + "xaxis": { + "buckets": null, + "mode": "time", + "name": null, + "show": true, + "values": [] + }, + "yaxes": [ + { + "format": "none", + "label": null, + "logBase": 1, + "max": null, + "min": 0, + "show": true + }, + { + "format": "short", + "label": null, + "logBase": 1, + "max": null, + "min": null, + "show": true + } + ] + } + ], + "repeat": null, + "repeatIteration": null, + "repeatRowId": null, + "showTitle": true, + "title": "Filer Instances", + "titleSize": "h6" + } + ], + "schemaVersion": 14, + "style": "dark", + "tags": [], + "templating": { + "list": [] + }, + "time": { + "from": "now-30d", + "to": "now" + }, + "timepicker": { + "refresh_intervals": [ + "5s", + "10s", + "30s", + "1m", + "5m", + "15m", + "30m", + "1h", + "2h", + "1d" + ], + "time_options": [ + "5m", + "15m", + "1h", + "6h", + "12h", + "24h", + "2d", + "7d", + "30d" + ] + }, + "timezone": "browser", + "title": "SeaweedFS", + "version": 2 + } diff --git a/sources/seaweedfs-operator/0.1.13/templates/_helpers.tpl b/sources/seaweedfs-operator/0.1.13/templates/_helpers.tpl new file mode 100644 index 00000000..a3a3fb95 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/_helpers.tpl @@ -0,0 +1,141 @@ +{{/* +Expand the name of the chart. +*/}} +{{- define "seaweedfs-operator.name" -}} +{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Create a default fully qualified app name. +We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). +If release name contains chart name it will be used as a full name. +*/}} +{{- define "seaweedfs-operator.fullname" -}} +{{- if .Values.fullnameOverride }} +{{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- $name := default .Chart.Name .Values.nameOverride }} +{{- if contains $name .Release.Name }} +{{- .Release.Name | trunc 63 | trimSuffix "-" }} +{{- else }} +{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} +{{- end }} +{{- end }} +{{- end }} + +{{/* +Create chart name and version as used by the chart label. +*/}} +{{- define "seaweedfs-operator.chart" -}} +{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- end }} + +{{/* +Common labels +*/}} +{{- define "seaweedfs-operator.labels" -}} +helm.sh/chart: {{ include "seaweedfs-operator.chart" . }} +{{ include "seaweedfs-operator.selectorLabels" . }} +{{- if .Chart.AppVersion }} +app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} +{{- end }} +app.kubernetes.io/managed-by: {{ .Release.Service }} +{{- end }} + +{{/* +Selector labels +*/}} +{{- define "seaweedfs-operator.selectorLabels" -}} +app.kubernetes.io/name: {{ include "seaweedfs-operator.name" . }} +app.kubernetes.io/instance: {{ .Release.Name }} +{{- end }} + +{{/* +Docker registry image pull secret +*/}} +{{- define "seaweedfs-operator.imagePullSecret" }} +{{- $auth := printf "%s:%s" .username .password | b64enc -}} +{{- printf "{\"auths\": {\"%s\": {\"auth\": \"%s\"}}}" .registry $auth | b64enc }} +{{- end }} + +{{- define "seaweedfs-operator.createPullSecret" -}} +{{- if and .Values.image.credentials (not .Values.image.pullSecrets) }} + {{- true -}} +{{- else -}} +{{- end -}} +{{- end -}} + +{{- define "seaweedfs-operator.pullSecretName" -}} +{{- if .Values.image.pullSecrets -}} + {{- printf "%s" (tpl .Values.image.pullSecrets .) -}} +{{- else -}} + {{- printf "%s-container-registry" (include "seaweedfs-operator.fullname" .) -}} +{{- end -}} +{{- end -}} + +{{/* +Create the name of the service account to use +*/}} +{{- define "seaweedfs-operator.serviceAccountName" -}} +{{- if .Values.rbac.serviceAccount.create -}} + {{- default (include "seaweedfs-operator.fullname" .) .Values.rbac.serviceAccount.name -}} +{{- else -}} + {{- default "default" .Values.rbac.serviceAccount.name -}} +{{- end -}} +{{- end -}} + +{{/* +Mutating webhook path +*/}} +{{- define "seaweedfs-operator.mutatingWebhookPath" -}}/mutate-seaweed-seaweedfs-com-v1-seaweed{{- end -}} + +{{/* +Validating webhook path +*/}} +{{- define "seaweedfs-operator.validatingWebhookPath" -}}/validate-seaweed-seaweedfs-com-v1-seaweed{{- end -}} + +{{/* +Webhook Pod Security Context +*/}} +{{- define "seaweedfs-operator.webhookPodSecurityContext" -}} +{{- with .Values.webhook.podSecurityContext }} +securityContext: + {{- toYaml . | nindent 2 }} +{{- end }} +{{- end -}} + +{{/* +Webhook Container Security Context +*/}} +{{- define "seaweedfs-operator.webhookContainerSecurityContext" -}} +{{- with .Values.webhook.securityContext }} +securityContext: + {{- toYaml . | nindent 2 }} +{{- end }} +{{- end -}} + +{{/* +Webhook init container for waiting until webhook service is ready +*/}} +{{- define "seaweedfs-operator.webhookWaitInitContainer" -}} +- name: wait-for-webhook + image: {{ .Values.webhook.initContainer.image }} + {{- include "seaweedfs-operator.webhookContainerSecurityContext" . | nindent 2 }} + command: ['sh', '-c', 'set -e; until curl -sk --fail --head --max-time 5 https://{{ include "seaweedfs-operator.fullname" . }}-webhook.{{ .Release.Namespace }}.svc:443{{ .webhookPath }} >/dev/null; do echo waiting for webhook; sleep 1; done;'] +{{- end -}} + +{{/* +Mutating webhook configuration name +*/}} +{{- define "seaweedfs-operator.mutatingWebhookName" -}} +{{- $suffix := "-mutating-webhook-configuration" -}} +{{- printf "%s%s" (include "seaweedfs-operator.fullname" . | trunc (int (sub 63 (len $suffix))) | trimSuffix "-") $suffix -}} +{{- end -}} + +{{/* +Validating webhook configuration name +*/}} +{{- define "seaweedfs-operator.validatingWebhookName" -}} +{{- $suffix := "-validating-webhook-configuration" -}} +{{- printf "%s%s" (include "seaweedfs-operator.fullname" . | trunc (int (sub 63 (len $suffix))) | trimSuffix "-") $suffix -}} +{{- end -}} diff --git a/sources/seaweedfs-operator/0.1.13/templates/configmap-grafana-dashboard.yaml b/sources/seaweedfs-operator/0.1.13/templates/configmap-grafana-dashboard.yaml new file mode 100644 index 00000000..1a3dbcf3 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/configmap-grafana-dashboard.yaml @@ -0,0 +1,15 @@ +{{- if .Values.grafanaDashboard.enabled }} + +apiVersion: v1 +kind: ConfigMap +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-grafana-dashboard + namespace: {{ .Release.Namespace }} + labels: + app: {{ include "seaweedfs-operator.fullname" . }} + grafana_dashboard: {{ include "seaweedfs-operator.fullname" . }} +data: + seaweedfs.json: | + {{- $.Files.Get "dashboard/seaweedfs-grafana-dashboard.json" | nindent 4 }} + +{{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/container-registry-secret.yaml b/sources/seaweedfs-operator/0.1.13/templates/container-registry-secret.yaml new file mode 100644 index 00000000..25089a42 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/container-registry-secret.yaml @@ -0,0 +1,12 @@ +{{ if (include "seaweedfs-operator.createPullSecret" .) }} +apiVersion: v1 +kind: Secret +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-container-registry + namespace: {{ .Release.Namespace }} + labels: + app: {{ include "seaweedfs-operator.fullname" . }} +type: kubernetes.io/dockerconfigjson +data: + .dockerconfigjson: {{ include "seaweedfs-operator.imagePullSecret" .Values.image.credentials }} +{{ end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/deployment.yaml b/sources/seaweedfs-operator/0.1.13/templates/deployment.yaml new file mode 100644 index 00000000..8f653e15 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/deployment.yaml @@ -0,0 +1,95 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: {{ include "seaweedfs-operator.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "seaweedfs-operator.labels" . | nindent 4 }} + {{- with .Values.commonLabels }} + {{- toYaml . | nindent 4 }} + {{- end }} + {{- with .Values.commonAnnotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +spec: + replicas: {{ .Values.replicaCount }} + selector: + matchLabels: + {{- include "seaweedfs-operator.selectorLabels" . | nindent 6 }} + template: + metadata: + labels: + {{- include "seaweedfs-operator.selectorLabels" . | nindent 8 }} + {{- with .Values.commonAnnotations }} + annotations: + {{- toYaml . | nindent 8 }} + {{- end }} + spec: + {{ if or .Values.image.credentials .Values.image.pullSecrets }} + imagePullSecrets: + - name: {{ include "seaweedfs-operator.pullSecretName" . }} + {{ end }} + serviceAccountName: {{ include "seaweedfs-operator.serviceAccountName" . }} + {{- with .Values.podSecurityContext }} + securityContext: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.nodeSelector }} + nodeSelector: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.affinity }} + affinity: + {{- toYaml . | nindent 8 }} + {{- end }} + {{- with .Values.tolerations }} + tolerations: + {{- toYaml . | nindent 8 }} + {{- end }} + containers: + - name: seaweedfs-operator + {{- with .Values.securityContext }} + securityContext: + {{- toYaml . | nindent 10 }} + {{- end }} + image: "{{ .Values.image.registry }}/{{ .Values.image.repository }}:{{ default .Chart.AppVersion .Values.image.tag }}" + imagePullPolicy: {{ .Values.image.pullPolicy }} + command: + - /manager + args: + - --leader-elect + env: + {{- if eq .Values.webhook.enabled false }} + - name: ENABLE_WEBHOOKS + value: "false" + {{- end }} + ports: + - name: {{ .Values.port.name }} + containerPort: {{ .Values.port.number }} + protocol: TCP + - name: https + containerPort: 443 + protocol: TCP + {{- if .Values.resources }} + resources: {{- toYaml .Values.resources | nindent 12 }} + {{- end }} + {{- if .Values.webhook.enabled }} + volumeMounts: + - mountPath: /tmp/k8s-webhook-server/serving-certs + name: cert + readOnly: true + {{- end }} + terminationGracePeriodSeconds: 10 + {{- if .Values.webhook.enabled }} + volumes: + - name: cert + secret: + defaultMode: 420 + secretName: {{ include "seaweedfs-operator.fullname" . }}-webhook-server-cert + items: + - key: cert + path: tls.crt + - key: key + path: tls.key + {{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/rbac/leader_election_role.yaml b/sources/seaweedfs-operator/0.1.13/templates/rbac/leader_election_role.yaml new file mode 100644 index 00000000..e2e25d65 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/rbac/leader_election_role.yaml @@ -0,0 +1,43 @@ +# permissions to do leader election. +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-leader-election-role + namespace: {{ .Release.Namespace }} +rules: +- apiGroups: + - "" + resources: + - configmaps + verbs: + - get + - list + - watch + - create + - update + - patch + - delete +- apiGroups: + - "" + resources: + - configmaps/status + verbs: + - get + - update + - patch +- apiGroups: + - "" + resources: + - events + verbs: + - create + - patch +- apiGroups: + - coordination.k8s.io + resources: + - leases + verbs: + - create + - get + - list + - update diff --git a/sources/seaweedfs-operator/0.1.13/templates/rbac/leader_election_role_binding.yaml b/sources/seaweedfs-operator/0.1.13/templates/rbac/leader_election_role_binding.yaml new file mode 100644 index 00000000..559f9552 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/rbac/leader_election_role_binding.yaml @@ -0,0 +1,13 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-leader-election-rolebinding + namespace: {{ .Release.Namespace }} +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ include "seaweedfs-operator.fullname" . }}-leader-election-role +subjects: +- kind: ServiceAccount + name: {{ include "seaweedfs-operator.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/rbac/role.yaml b/sources/seaweedfs-operator/0.1.13/templates/rbac/role.yaml new file mode 100644 index 00000000..982b24ac --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/rbac/role.yaml @@ -0,0 +1,110 @@ + +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + creationTimestamp: null + name: {{ include "seaweedfs-operator.fullname" . }}-manager-role +rules: +- apiGroups: + - apps + resources: + - statefulsets + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - configmaps + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - "" + resources: + - pods + verbs: + - get + - watch + - list +- apiGroups: + - "" + resources: + - services + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - extensions + resources: + - ingresses + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - networking.k8s.io + resources: + - ingresses + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - seaweed.seaweedfs.com + resources: + - seaweeds + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - seaweed.seaweedfs.com + resources: + - seaweeds/status + verbs: + - get + - patch + - update +{{- if .Values.serviceMonitor.enabled }} +- apiGroups: + - monitoring.coreos.com + resources: + - servicemonitors + verbs: + - get + - list + - watch + - patch + - update + - create + - delete +{{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/rbac/role_binding.yaml b/sources/seaweedfs-operator/0.1.13/templates/rbac/role_binding.yaml new file mode 100644 index 00000000..6a3ef9dc --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/rbac/role_binding.yaml @@ -0,0 +1,12 @@ +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-manager-rolebinding +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ include "seaweedfs-operator.fullname" . }}-manager-role +subjects: +- kind: ServiceAccount + name: {{ include "seaweedfs-operator.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/rbac/seaweed_editor_role.yaml b/sources/seaweedfs-operator/0.1.13/templates/rbac/seaweed_editor_role.yaml new file mode 100644 index 00000000..f366e19a --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/rbac/seaweed_editor_role.yaml @@ -0,0 +1,24 @@ +# permissions for end users to edit seaweeds. +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: seaweed-editor-role +rules: +- apiGroups: + - seaweed.seaweedfs.com + resources: + - seaweeds + verbs: + - create + - delete + - get + - list + - patch + - update + - watch +- apiGroups: + - seaweed.seaweedfs.com + resources: + - seaweeds/status + verbs: + - get diff --git a/sources/seaweedfs-operator/0.1.13/templates/rbac/seaweed_viewer_role.yaml b/sources/seaweedfs-operator/0.1.13/templates/rbac/seaweed_viewer_role.yaml new file mode 100644 index 00000000..43295e84 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/rbac/seaweed_viewer_role.yaml @@ -0,0 +1,20 @@ +# permissions for end users to view seaweeds. +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: seaweed-viewer-role +rules: +- apiGroups: + - seaweed.seaweedfs.com + resources: + - seaweeds + verbs: + - get + - list + - watch +- apiGroups: + - seaweed.seaweedfs.com + resources: + - seaweeds/status + verbs: + - get diff --git a/sources/seaweedfs-operator/0.1.13/templates/service.yaml b/sources/seaweedfs-operator/0.1.13/templates/service.yaml new file mode 100644 index 00000000..ede4c661 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/service.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: Service +metadata: + name: {{ include "seaweedfs-operator.fullname" . }} + namespace: {{ .Release.Namespace }} + labels: + app: {{ include "seaweedfs-operator.fullname" . }} + app.kubernetes.io/component: metrics +spec: + type: ClusterIP + ports: + - name: {{ .Values.service.portName }} + port: {{ .Values.service.port }} + targetPort: {{ .Values.port.number }} + selector: + {{- include "seaweedfs-operator.selectorLabels" . | nindent 4 }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/serviceaccount.yaml b/sources/seaweedfs-operator/0.1.13/templates/serviceaccount.yaml new file mode 100644 index 00000000..0eec2b1b --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/serviceaccount.yaml @@ -0,0 +1,14 @@ +{{- if and .Values.rbac.serviceAccount.create (ne .Values.rbac.serviceAccount.name "default") }} +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "seaweedfs-operator.serviceAccountName" . }} + namespace: {{ .Release.Namespace }} + labels: + {{- include "seaweedfs-operator.labels" . | nindent 4 }} + {{- with .Values.rbac.serviceAccount.annotations }} + annotations: + {{- toYaml . | nindent 4 }} + {{- end }} +automountServiceAccountToken: {{ .Values.rbac.serviceAccount.automount }} +{{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/servicemonitor.yaml b/sources/seaweedfs-operator/0.1.13/templates/servicemonitor.yaml new file mode 100644 index 00000000..d7101aa3 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/servicemonitor.yaml @@ -0,0 +1,25 @@ +{{- if .Values.serviceMonitor.enabled }} + +apiVersion: monitoring.coreos.com/v1 +kind: ServiceMonitor +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-metrics-monitor + namespace: {{ .Release.Namespace }} +spec: + endpoints: + - port: {{ .Values.service.portName }} + {{- if .Values.serviceMonitor.interval }} + interval: {{ .Values.serviceMonitor.interval }} + {{- end }} + {{- if .Values.serviceMonitor.scrapeTimeout }} + scrapeTimeout: {{ .Values.serviceMonitor.scrapeTimeout }} + {{- end }} + {{- if .Values.serviceMonitor.honorLabels }} + honorLabels: {{ .Values.serviceMonitor.honorLabels }} + {{- end }} + path: /metrics + selector: + matchLabels: + app: {{ include "seaweedfs-operator.fullname" . }} + +{{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/webhook/job-update-webhook-certificates.yaml b/sources/seaweedfs-operator/0.1.13/templates/webhook/job-update-webhook-certificates.yaml new file mode 100644 index 00000000..c4887906 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/webhook/job-update-webhook-certificates.yaml @@ -0,0 +1,178 @@ +{{- if .Values.webhook.enabled -}} +--- +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-create-webhook-certificates + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + template: + spec: + serviceAccountName: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + {{- include "seaweedfs-operator.webhookPodSecurityContext" . | nindent 6 }} + containers: + - name: certgen + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231011-8b53cabe0 + {{- include "seaweedfs-operator.webhookContainerSecurityContext" . | nindent 8 }} + args: + - create + - --host={{ include "seaweedfs-operator.fullname" . }}-webhook,{{ include "seaweedfs-operator.fullname" . }}-webhook.{{ .Release.Namespace }}.svc + - --namespace=$(POD_NAMESPACE) + - --secret-name={{ include "seaweedfs-operator.fullname" . }}-webhook-server-cert + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + restartPolicy: OnFailure + +--- +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-patch-mutating-webhook + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": post-install,post-upgrade + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + template: + spec: + serviceAccountName: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + {{- include "seaweedfs-operator.webhookPodSecurityContext" . | nindent 6 }} + initContainers: + {{- include "seaweedfs-operator.webhookWaitInitContainer" (dict "Chart" .Chart "Values" .Values "Release" .Release "webhookPath" (include "seaweedfs-operator.mutatingWebhookPath" .)) | nindent 8 }} + containers: + - name: certgen + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231011-8b53cabe0 + {{- include "seaweedfs-operator.webhookContainerSecurityContext" . | nindent 8 }} + args: + - patch + - --webhook-name={{ include "seaweedfs-operator.mutatingWebhookName" . }} + - --namespace=$(POD_NAMESPACE) + - --patch-mutating=true + - --patch-validating=false + - --secret-name={{ include "seaweedfs-operator.fullname" . }}-webhook-server-cert + - --patch-failure-policy=Fail + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + restartPolicy: OnFailure + +--- +apiVersion: batch/v1 +kind: Job +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-patch-validating-webhook + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": post-install,post-upgrade + "helm.sh/hook-delete-policy": before-hook-creation,hook-succeeded +spec: + template: + spec: + serviceAccountName: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + {{- include "seaweedfs-operator.webhookPodSecurityContext" . | nindent 6 }} + initContainers: + {{- include "seaweedfs-operator.webhookWaitInitContainer" (dict "Chart" .Chart "Values" .Values "Release" .Release "webhookPath" (include "seaweedfs-operator.validatingWebhookPath" .)) | nindent 8 }} + containers: + - name: certgen + image: registry.k8s.io/ingress-nginx/kube-webhook-certgen:v20231011-8b53cabe0 + {{- include "seaweedfs-operator.webhookContainerSecurityContext" . | nindent 8 }} + args: + - patch + - --webhook-name={{ include "seaweedfs-operator.validatingWebhookName" . }} + - --namespace=$(POD_NAMESPACE) + - --patch-mutating=false + - --patch-validating=true + - --secret-name={{ include "seaweedfs-operator.fullname" . }}-webhook-server-cert + - --patch-failure-policy=Fail + env: + - name: POD_NAMESPACE + valueFrom: + fieldRef: + fieldPath: metadata.namespace + restartPolicy: OnFailure +--- +apiVersion: v1 +kind: ServiceAccount +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-weight": "-10" +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-weight": "-10" +rules: + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - create + - update +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + namespace: {{ .Release.Namespace }} + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-weight": "-9" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates +subjects: + - kind: ServiceAccount + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + namespace: {{ .Release.Namespace }} +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRole +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-weight": "-10" +rules: + - apiGroups: + - admissionregistration.k8s.io + resources: + - validatingwebhookconfigurations + - mutatingwebhookconfigurations + verbs: + - get + - update +--- +apiVersion: rbac.authorization.k8s.io/v1 +kind: ClusterRoleBinding +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + annotations: + "helm.sh/hook": pre-install,pre-upgrade + "helm.sh/hook-weight": "-9" +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: ClusterRole + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates +subjects: + - kind: ServiceAccount + name: {{ include "seaweedfs-operator.fullname" . }}-update-webhook-certificates + namespace: {{ .Release.Namespace }} +{{- end -}} diff --git a/sources/seaweedfs-operator/0.1.13/templates/webhook/mutating-webhook.yaml b/sources/seaweedfs-operator/0.1.13/templates/webhook/mutating-webhook.yaml new file mode 100644 index 00000000..bcf1cd07 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/webhook/mutating-webhook.yaml @@ -0,0 +1,33 @@ +{{- if .Values.webhook.enabled }} + +apiVersion: admissionregistration.k8s.io/v1 +kind: MutatingWebhookConfiguration +metadata: + creationTimestamp: null + name: {{ include "seaweedfs-operator.mutatingWebhookName" . }} + labels: + {{- include "seaweedfs-operator.labels" . | nindent 4 }} +webhooks: +- clientConfig: + service: + name: {{ include "seaweedfs-operator.fullname" . }}-webhook + namespace: {{ .Release.Namespace }} + port: 443 + path: {{ include "seaweedfs-operator.mutatingWebhookPath" . }} + name: mseaweed.kb.io + failurePolicy: Fail + sideEffects: None + admissionReviewVersions: + - v1 + rules: + - apiGroups: + - seaweed.seaweedfs.com + apiVersions: + - v1 + operations: + - CREATE + - UPDATE + resources: + - seaweeds + +{{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/webhook/service.yaml b/sources/seaweedfs-operator/0.1.13/templates/webhook/service.yaml new file mode 100644 index 00000000..2c6d3585 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/webhook/service.yaml @@ -0,0 +1,19 @@ +{{- if .Values.webhook.enabled }} + +apiVersion: v1 +kind: Service +metadata: + name: {{ include "seaweedfs-operator.fullname" . }}-webhook + namespace: {{ .Release.Namespace }} + labels: + app: {{ include "seaweedfs-operator.fullname" . }} +spec: + type: ClusterIP + ports: + - name: https + port: 443 + targetPort: 9443 + selector: + {{- include "seaweedfs-operator.selectorLabels" . | nindent 4 }} + +{{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/templates/webhook/validating-webhook.yaml b/sources/seaweedfs-operator/0.1.13/templates/webhook/validating-webhook.yaml new file mode 100644 index 00000000..92ff3627 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/templates/webhook/validating-webhook.yaml @@ -0,0 +1,33 @@ +{{- if .Values.webhook.enabled }} + +apiVersion: admissionregistration.k8s.io/v1 +kind: ValidatingWebhookConfiguration +metadata: + creationTimestamp: null + name: {{ include "seaweedfs-operator.validatingWebhookName" . }} + labels: + {{- include "seaweedfs-operator.labels" . | nindent 4 }} +webhooks: +- clientConfig: + service: + name: {{ include "seaweedfs-operator.fullname" . }}-webhook + namespace: {{ .Release.Namespace }} + port: 443 + path: {{ include "seaweedfs-operator.validatingWebhookPath" . }} + name: vseaweed.kb.io + failurePolicy: Fail + sideEffects: None + admissionReviewVersions: + - v1 + rules: + - apiGroups: + - seaweed.seaweedfs.com + apiVersions: + - v1 + operations: + - CREATE + - UPDATE + resources: + - seaweeds + +{{- end }} diff --git a/sources/seaweedfs-operator/0.1.13/values.yaml b/sources/seaweedfs-operator/0.1.13/values.yaml new file mode 100644 index 00000000..46993871 --- /dev/null +++ b/sources/seaweedfs-operator/0.1.13/values.yaml @@ -0,0 +1,157 @@ +# -- Global Docker image parameters +# Please, note that this will override the image parameters, including dependencies, configured to use the global value +# Current available global Docker image parameters: imageRegistry +global: + imageRegistry: "chrislusf" + +# -- String to partially override common.names.fullname template (will maintain the release name) +nameOverride: "" + +# -- String to fully override common.names.fullname template +fullnameOverride: "" + +# -- Annotations for all the deployed objects +commonAnnotations: {} + +# -- Labels for all the deployed objects +commonLabels: {} + +## Configure Kubernetes Rbac parameters +rbac: + serviceAccount: + # -- Specifies whether a service account should be created + create: true + # -- Annotations to add to the service account + annotations: {} + # -- The name of the service account to use. + # If not set and create is true, a name is generated using the fullname template + # If set to "default", no ServiceAccount will be created and the default one will be used + name: "" + # -- Automount service account token for the server service account + automount: true + +image: + registry: chrislusf + repository: seaweedfs-operator + # -- tag of image to use. Defaults to appVersion in Chart.yaml + tag: "" + # -- Specify a imagePullPolicy + ## Defaults to 'Always' if image tag is 'latest', else set to 'IfNotPresent' + ## ref: http://kubernetes.io/docs/user-guide/images/#pre-pulling-images + pullPolicy: IfNotPresent + + ## Specify credentials to authorize in docker registry or set existing secrets in pullSecrets + # credentials: + # registry: private-registry + # username: username + # password: password + + ## Optionally specify imagePullSecret. + ## Secrets must be manually created in the namespace. + ## ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/ + ## + # pullSecrets: myRegistryKeySecretName + +# -- Set number of pod replicas +replicaCount: 1 + +## Configure container port +port: + # -- name of the container port to use for the Kubernete service and ingress + name: http + # -- container port number to use for the Kubernete service and ingress + number: 8080 + +## Configure Service +service: + # -- name of the port to use for Kubernetes service + portName: http + # -- port to use for Kubernetes service + port: 8080 + +grafanaDashboard: + # -- Enable or disable Grafana Dashboard configmap + enabled: true + +serviceMonitor: + # -- Enable or disable ServiceMonitor for prometheus metrics + enabled: false + # -- Specify the interval at which metrics should be scraped + interval: 10s + # -- Specify the timeout after which the scrape is ended + scrapeTimeout: 10s + ## Specify Metric Relabellings to add to the scrape endpoint + # -- Specify honorLabels parameter to add the scrape endpoint + honorLabels: true + ## Specify the release for ServiceMonitor. Sometimes it should be custom for prometheus operator to work + # release: "" + ## ref: https://github.com/coreos/prometheus-operator/blob/master/Documentation/api.md#prometheusspec + # -- Used to pass Labels that are used by the Prometheus installed in your cluster to select Service Monitors to work with + additionalLabels: {} + +webhook: + # -- Enable or disable webhooks + enabled: true + # -- Configuration for webhook certificate jobs + initContainer: + # -- Image for webhook readiness check init container + image: curlimages/curl:8.8.0 + # -- Pod security context for webhook jobs + # ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ + podSecurityContext: + runAsNonRoot: true + runAsUser: 65532 + fsGroup: 65532 + seccompProfile: + type: RuntimeDefault + # -- Container security context for webhook jobs + securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + runAsNonRoot: true + +## seaweedfs-operator containers' resource requests and limits. +## ref: http://kubernetes.io/docs/user-guide/compute-resources/ +resources: + limits: + # -- seaweedfs-operator containers' cpu limit (maximum allowed CPU) + cpu: 500m + # -- seaweedfs-operator containers' memory limit (maximum allowed memory) + memory: 500Mi + requests: + # -- seaweedfs-operator containers' cpu request (how much is requested by default) + cpu: 100m + # -- seaweedfs-operator containers' memory request (how much is requested by default) + memory: 50Mi + +## Security context for pods +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ +podSecurityContext: + runAsNonRoot: true + runAsUser: 65532 + fsGroup: 65532 + +## Security context for containers +## ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/ +securityContext: + allowPrivilegeEscalation: false + capabilities: + drop: + - ALL + readOnlyRootFilesystem: true + runAsNonRoot: true + +## Node labels for pod assignment +## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/ +nodeSelector: {} + +## Tolerations for pod assignment +## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/ +tolerations: [] + +## Affinity for pod assignment +## ref: https://kubernetes.io/docs/concepts/scheduling-eviction/assign-pod-node/#affinity-and-anti-affinity +affinity: {} diff --git a/sources/seaweedfs-operator/source.yaml b/sources/seaweedfs-operator/source.yaml new file mode 100644 index 00000000..90321cbd --- /dev/null +++ b/sources/seaweedfs-operator/source.yaml @@ -0,0 +1,4 @@ +sourceUrl: https://github.com/seaweedfs/seaweedfs-operator/tree/master/deploy/helm +sourceRepoName: seaweedfs-operator +sourceChartName: seaweedfs-operator-crds +sourceVersion: 0.1.13 diff --git a/sources/seaweedfs-operator/values.yaml b/sources/seaweedfs-operator/values.yaml new file mode 100644 index 00000000..aa9bf355 --- /dev/null +++ b/sources/seaweedfs-operator/values.yaml @@ -0,0 +1,3 @@ +domain: # to be filled by cluster-forge app +webhook: + enabled: false \ No newline at end of file