diff --git a/.github/workflows/operator-e2e-integration-tests.yml b/.github/workflows/operator-e2e-integration-tests.yml
index bdaa3240702..a0e5e75398f 100644
--- a/.github/workflows/operator-e2e-integration-tests.yml
+++ b/.github/workflows/operator-e2e-integration-tests.yml
@@ -52,7 +52,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v5
with:
- go-version: 1.22.9
+ go-version: 1.24.12
- name: Create KIND cluster
run: |
diff --git a/.github/workflows/operator_pr.yml b/.github/workflows/operator_pr.yml
index 8f08c91b890..39066286e53 100644
--- a/.github/workflows/operator_pr.yml
+++ b/.github/workflows/operator_pr.yml
@@ -14,7 +14,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v5
with:
- go-version: 1.22.9
+ go-version: 1.24.12
- name: Operator tests
run: make -C infra/feast-operator test
- name: After code formatting, check for uncommitted differences
diff --git a/.github/workflows/pr_local_integration_tests.yml b/.github/workflows/pr_local_integration_tests.yml
index b607c2c6b1e..4926d9970d2 100644
--- a/.github/workflows/pr_local_integration_tests.yml
+++ b/.github/workflows/pr_local_integration_tests.yml
@@ -59,7 +59,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v5
with:
- go-version: 1.22.9
+ go-version: 1.24.12
- name: Operator Data Source types test
run: make -C infra/feast-operator test-datasources
- name: Minimize uv cache
diff --git a/.github/workflows/registry-rest-api-tests.yml b/.github/workflows/registry-rest-api-tests.yml
index 6175cab3d8f..68be4e9b91d 100644
--- a/.github/workflows/registry-rest-api-tests.yml
+++ b/.github/workflows/registry-rest-api-tests.yml
@@ -50,7 +50,7 @@ jobs:
- name: Set up Go
uses: actions/setup-go@v5
with:
- go-version: 1.22.9
+ go-version: 1.24.12
- name: Create KIND cluster
run: |
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 57826d56924..6aaee399480 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -111,7 +111,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v2
with:
- go-version: 1.22.9
+ go-version: 1.24.12
- name: Build & version operator-specific release files
run: make -C infra/feast-operator build-installer bundle
@@ -144,7 +144,7 @@ jobs:
- name: Install Go
uses: actions/setup-go@v2
with:
- go-version: 1.22.9
+ go-version: 1.24.12
- name: Compile Go Test Binaries
run: |
cd infra/feast-operator
diff --git a/docs/SUMMARY.md b/docs/SUMMARY.md
index 95379b39a15..5f24c2efd1b 100644
--- a/docs/SUMMARY.md
+++ b/docs/SUMMARY.md
@@ -70,6 +70,7 @@
* [Multi-Team Feature Store Setup](how-to-guides/federated-feature-store.md)
* [Running Feast in production (e.g. on Kubernetes)](how-to-guides/running-feast-in-production.md)
* [Feast on Kubernetes](how-to-guides/feast-on-kubernetes.md)
+* [Feast Production Deployment Topologies](how-to-guides/production-deployment-topologies.md)
* [Online Server Performance Tuning](how-to-guides/online-server-performance-tuning.md)
* [Customizing Feast](how-to-guides/customizing-feast/README.md)
* [Adding a custom batch materialization engine](how-to-guides/customizing-feast/creating-a-custom-materialization-engine.md)
diff --git a/docs/how-to-guides/feast-on-kubernetes.md b/docs/how-to-guides/feast-on-kubernetes.md
index f5df67273bb..fbf14573cc7 100644
--- a/docs/how-to-guides/feast-on-kubernetes.md
+++ b/docs/how-to-guides/feast-on-kubernetes.md
@@ -10,6 +10,10 @@ Kubernetes is a common target environment for running Feast in production. You c
2. Run scheduled and ad-hoc jobs (e.g. materialization jobs) as Kubernetes Jobs.
3. Operate Feast components using Kubernetes-native primitives.
+{% hint style="info" %}
+**Planning a production deployment?** See the [Feast Production Deployment Topologies](./production-deployment-topologies.md) guide for architecture diagrams, sample FeatureStore CRs, RBAC policies, infrastructure recommendations, and scaling best practices across Minimal, Standard, and Enterprise topologies.
+{% endhint %}
+
## Feast Operator
To deploy Feast components on Kubernetes, use the included [feast-operator](../../infra/feast-operator).
diff --git a/docs/how-to-guides/production-deployment-topologies.md b/docs/how-to-guides/production-deployment-topologies.md
new file mode 100644
index 00000000000..170727851a6
--- /dev/null
+++ b/docs/how-to-guides/production-deployment-topologies.md
@@ -0,0 +1,1359 @@
+# Feast Production Deployment Topologies
+
+## Table of Contents
+
+* [Overview](#overview)
+* [1. Minimal Production](#1-minimal-production)
+* [2. Standard Production (Recommended)](#2-standard-production-recommended)
+* [3. Enterprise Production](#3-enterprise-production)
+ * [Isolated Registries (per namespace)](#architecture--isolated-registries-per-namespace)
+ * [Shared Registry (cross-namespace)](#architecture--shared-registry-cross-namespace)
+ * [Reliability & Disaster Recovery](#reliability--disaster-recovery)
+* [Feast Permissions and RBAC](#feast-permissions-and-rbac)
+ * [Actions](#actions)
+ * [Policy types](#policy-types)
+ * [Examples](#example-role-based-permissions)
+ * [Authorization configuration](#authorization-configuration)
+* [Infrastructure-Specific Recommendations](#infrastructure-specific-recommendations)
+ * [AWS / EKS / ROSA](#aws--eks--rosa)
+ * [GCP / GKE](#gcp--gke)
+ * [On-Premise / OpenShift](#on-premise--openshift--self-managed-kubernetes)
+* [Air-Gapped / Disconnected Environments](#air-gapped--disconnected-environment-deployments)
+* [Hybrid Store Configuration](#hybrid-store-configuration)
+ * [Hybrid online store](#hybrid-online-store)
+ * [Hybrid offline store](#hybrid-offline-store)
+* [Performance Considerations](#performance-considerations)
+ * [Server sizing](#online-feature-server-sizing)
+ * [Store latency](#online-store-latency-guidelines)
+ * [Connection pooling](#connection-pooling-for-remote-online-store)
+ * [Registry cache tuning at scale](#registry-cache-tuning-at-scale)
+ * [Materialization](#materialization-performance)
+ * [Redis sizing](#redis-sizing-guidelines)
+* [Design Principles](#design-principles)
+ * [Control plane vs data plane](#control-plane-vs-data-plane)
+ * [Stateless vs stateful](#stateless-vs-stateful-components)
+ * [Scalability](#scalability-guidelines)
+* [Topology Comparison](#topology-comparison)
+* [Next Steps](#next-steps)
+
+---
+
+## Overview
+
+This guide defines three production-ready deployment topologies for Feast on Kubernetes using the [Feast Operator](./feast-on-kubernetes.md). Each topology addresses a different stage of organizational maturity, from getting started safely to running large-scale multi-tenant deployments.
+
+| Topology | Target audience | Key traits |
+|---|---|---|
+| [Minimal Production](#1-minimal-production) | Small teams, POCs moving to production | Single namespace, no HA, simple setup |
+| [Standard Production](#2-standard-production-recommended) | Most production workloads | HA registry, autoscaling, TLS, RBAC |
+| [Enterprise Production](#3-enterprise-production) | Large orgs, multi-tenant | Namespace isolation, managed stores, full observability |
+
+Beyond the core topologies, this guide also covers:
+
+* [Feast Permissions and RBAC](#feast-permissions-and-rbac) — securing resources with policies
+* [Infrastructure-Specific Recommendations](#infrastructure-specific-recommendations) — store choices for AWS, GCP, and on-premise
+* [Hybrid Store Configuration](#hybrid-store-configuration) — routing to multiple backends from a single deployment
+* [Performance Considerations](#performance-considerations) — tuning for production workloads
+
+{% hint style="info" %}
+**Prerequisites:** All topologies assume a running Kubernetes cluster with the [Feast Operator installed](./feast-on-kubernetes.md#deploy-feast-feature-servers-on-kubernetes). Familiarity with Feast [concepts](../getting-started/concepts/overview.md) and [components](../getting-started/components/overview.md) is recommended.
+{% endhint %}
+
+---
+
+## 1. Minimal Production
+
+### When to use
+
+* Small teams with a single ML use case
+* POCs graduating to production
+* Low-traffic, non-critical workloads where simplicity is more important than availability
+
+### Architecture
+
+```mermaid
+graph TD
+ subgraph Kubernetes["Kubernetes (single namespace)"]
+ Operator["Feast Operator"]
+ Registry["Feast Registry
(REST, 1 replica)"]
+ FeatureServer["Online Feature Server
(1 replica)"]
+ Redis["Online Store
(SQLite for dev; Redis, Milvus, etc. for prod)"]
+ OfflineStore["Offline Store
(DuckDB for dev; MinIO, S3, etc. for prod)"]
+ end
+
+ Operator -->|manages| Registry
+ Operator -->|manages| FeatureServer
+ FeatureServer -->|reads/writes| Redis
+ FeatureServer -->|reads| OfflineStore
+ Registry -->|metadata| OfflineStore
+
+ Client(["Client / ML Service"]) -->|REST| FeatureServer
+
+ style Kubernetes fill:#f0f4ff,stroke:#3366cc,color:#000
+ style Operator fill:#e8f5e9,stroke:#388e3c,color:#000
+ style Registry fill:#fff3e0,stroke:#f57c00,color:#000
+ style FeatureServer fill:#e3f2fd,stroke:#1976d2,color:#000
+ style Redis fill:#fce4ec,stroke:#c62828,color:#000
+ style OfflineStore fill:#f3e5f5,stroke:#7b1fa2,color:#000
+```
+
+### Components
+
+| Component | Configuration | Notes |
+|---|---|---|
+| **Feast Operator** | Default install | Manages all Feast CRDs |
+| **Registry** | REST, 1 replica | Single point of metadata |
+| **Online Feature Server** | 1 replica, no autoscaling | Serves online features |
+| **Online Store** | Redis standalone (example) | SQLite is simplest for development; Redis for production. See [supported online stores](../reference/online-stores/README.md) for all options |
+| **Offline Store** | File-based or MinIO | DuckDB or file-based for development; MinIO/S3 for production. See [supported offline stores](../reference/offline-stores/README.md) for all options |
+| **Compute Engine** | In-process (default) | Suitable for small datasets and development; use Spark, Ray, or Snowflake Engine for larger workloads |
+
+### Sample FeatureStore CR
+
+```yaml
+apiVersion: feast.dev/v1
+kind: FeatureStore
+metadata:
+ name: minimal-production
+spec:
+ feastProject: my_project
+ services:
+ onlineStore:
+ persistence:
+ store:
+ type: redis
+ secretRef:
+ name: feast-online-store
+ server:
+ resources:
+ requests:
+ cpu: 500m
+ memory: 512Mi
+ limits:
+ cpu: "1"
+ memory: 1Gi
+ registry:
+ local:
+ server:
+ resources:
+ requests:
+ cpu: 250m
+ memory: 256Mi
+ limits:
+ cpu: 500m
+ memory: 512Mi
+```
+
+### Limitations
+
+{% hint style="warning" %}
+* **No high availability** — a single replica failure causes downtime
+* **No automatic failover** — manual intervention required on failure
+* **Manual scaling** — no HPA configured
+* **Limited security** — no TLS, no ingress, no RBAC by default
+{% endhint %}
+
+---
+
+## 2. Standard Production (Recommended)
+
+### When to use
+
+* Most production ML workloads
+* Teams with moderate traffic that need reliability
+* Environments that require TLS, RBAC, and automated scaling
+
+### Architecture
+
+```mermaid
+graph TD
+ Client(["Client / ML Service"]) -->|HTTPS| Ingress
+
+ subgraph Kubernetes["Kubernetes"]
+ Ingress["Ingress Controller
(TLS termination)"]
+ Operator["Feast Operator"]
+
+ subgraph FeastDeployment["Feast Deployment (HPA autoscaled)"]
+ Registry["Feast Registry
(SQL-backed)"]
+ FeatureServer["Online Feature Server"]
+ end
+
+ RedisCluster["Online Store
(e.g. Redis Cluster, DynamoDB, etc.)"]
+
+ Ingress --> FeatureServer
+ Operator -->|manages| Registry
+ Operator -->|manages| FeatureServer
+ FeatureServer -->|reads/writes| RedisCluster
+ FeatureServer -->|reads metadata| Registry
+ end
+
+ ObjectStorage["Offline Store
(e.g. S3 / Redshift / BigQuery, etc.)"]
+ FeatureServer -->|reads| ObjectStorage
+ Registry -->|metadata| ObjectStorage
+
+ style Kubernetes fill:#f0f4ff,stroke:#3366cc,color:#000
+ style FeastDeployment fill:#e8f5e9,stroke:#388e3c,color:#000
+ style Ingress fill:#fff9c4,stroke:#f9a825,color:#000
+ style Operator fill:#e8f5e9,stroke:#388e3c,color:#000
+ style Registry fill:#fff3e0,stroke:#f57c00,color:#000
+ style FeatureServer fill:#e3f2fd,stroke:#1976d2,color:#000
+ style RedisCluster fill:#fce4ec,stroke:#c62828,color:#000
+ style ObjectStorage fill:#f3e5f5,stroke:#7b1fa2,color:#000
+```
+
+### Components
+
+**Core**
+
+| Component | Configuration | Notes |
+|---|---|---|
+| **Feast Operator** | Default install | Manages all Feast CRDs |
+| **Registry** | SQL-backed (PostgreSQL) | Database-backed for consistency and concurrent access |
+| **Online Feature Server** | HPA (min 2 replicas, max based on peak load) | All services scale together in a single shared Deployment |
+
+**Storage**
+
+| Component | Configuration | Notes |
+|---|---|---|
+| **Online Store** | Redis Cluster (example) | Multi-node for availability and low latency; other production stores are also supported — see [supported online stores](../reference/online-stores/README.md) |
+| **Offline Store** | S3 / MinIO | Persistent object storage; see [supported offline stores](../reference/offline-stores/README.md) for alternatives |
+| **Compute Engine** | Spark, Ray (KubeRay), or Snowflake Engine | Distributed compute for materialization and historical retrieval at scale |
+
+**Networking & Security**
+
+| Component | Configuration | Notes |
+|---|---|---|
+| **Ingress** | TLS-terminated | Secure external access |
+| **RBAC** | Kubernetes RBAC | Namespace-scoped permissions |
+| **Secrets** | Kubernetes Secrets + `${ENV_VAR}` substitution | Store credentials via `secretRef` / `envFrom` in the FeatureStore CR; inject into `feature_store.yaml` with [environment variable syntax](./running-feast-in-production.md#5-using-environment-variables-in-your-yaml-configuration) |
+
+### Sample FeatureStore CR
+
+```yaml
+apiVersion: feast.dev/v1
+kind: FeatureStore
+metadata:
+ name: standard-production
+spec:
+ feastProject: my_project
+ services:
+ scaling:
+ autoscaling:
+ minReplicas: 2
+ maxReplicas: 10 # Set based on your peak load
+ metrics:
+ - type: Resource
+ resource:
+ name: cpu
+ target:
+ type: Utilization
+ averageUtilization: 70
+ podDisruptionBudgets:
+ maxUnavailable: 1
+ onlineStore:
+ persistence:
+ store:
+ type: redis
+ secretRef:
+ name: feast-online-store
+ server:
+ resources:
+ requests:
+ cpu: "1"
+ memory: 1Gi
+ limits:
+ cpu: "2"
+ memory: 2Gi
+ registry:
+ local:
+ persistence:
+ store:
+ type: sql
+ secretRef:
+ name: feast-registry-store
+ server:
+ resources:
+ requests:
+ cpu: 500m
+ memory: 512Mi
+ limits:
+ cpu: "1"
+ memory: 1Gi
+```
+
+{% hint style="success" %}
+**Key features:**
+
+* **High availability** — multi-replica deployment with auto-injected pod anti-affinity and topology spread constraints
+* **Scalable serving** — HPA adjusts the shared deployment replicas (all services scale together) based on demand
+* **Secure external access** — TLS-terminated ingress with RBAC
+* **Persistent storage** — Online Store (Redis Cluster shown as example; see [supported online stores](../reference/online-stores/README.md) for all options) + Offline Store (S3) for durability
+
+See [Horizontal Scaling with the Feast Operator](./scaling-feast.md#horizontal-scaling-with-the-feast-operator) for full scaling configuration details.
+{% endhint %}
+
+---
+
+## 3. Enterprise Production
+
+### When to use
+
+* Large organizations with multiple ML teams
+* Multi-tenant environments requiring strict isolation
+* High-scale deployments with governance, compliance, and SLA requirements
+
+### Architecture — Isolated Registries (per namespace)
+
+Each team gets its own registry and online feature server in a dedicated namespace. This provides the strongest isolation but has notable trade-offs: feature discovery is siloed per team (no cross-project visibility), and each registry requires its own [Feast UI](../reference/alpha-web-ui.md) deployment — you cannot view multiple projects in a single UI instance.
+
+```mermaid
+graph TD
+ Client(["Clients / ML Services"]) -->|HTTPS| Gateway
+
+ subgraph Kubernetes["Kubernetes"]
+ Gateway["API Gateway / Ingress
(TLS + rate limiting)"]
+
+ subgraph NamespaceA["Namespace A — Team A"]
+ subgraph DeployA["Feast Deployment (HPA autoscaled)"]
+ RegistryA["Registry (SQL-backed)"]
+ FeatureServerA["Online Feature Server"]
+ end
+ end
+
+ subgraph NamespaceB["Namespace B — Team B"]
+ subgraph DeployB["Feast Deployment (HPA autoscaled)"]
+ RegistryB["Registry (SQL-backed)"]
+ FeatureServerB["Online Feature Server"]
+ end
+ end
+
+ Operator["Feast Operator
(cluster-scoped)"]
+
+ Gateway --> FeatureServerA
+ Gateway --> FeatureServerB
+ Operator -->|manages| RegistryA
+ Operator -->|manages| FeatureServerA
+ Operator -->|manages| RegistryB
+ Operator -->|manages| FeatureServerB
+ end
+
+ subgraph ManagedStores["Managed Online Stores"]
+ RedisA["Online Store
(e.g. Redis, DynamoDB, etc. — Team A)"]
+ RedisB["Online Store
(e.g. Redis, DynamoDB, etc. — Team B)"]
+ end
+
+ subgraph ExternalSystems["External Systems"]
+ ObjectStore["Offline Store
(e.g. S3, Redshift, BigQuery, etc.)"]
+ DataWarehouse["Data Warehouse
(e.g. Snowflake / BigQuery)"]
+ Pipelines["Feature Pipelines
(Spark / Ray)"]
+ end
+
+ subgraph Observability["Observability Stack"]
+ OTel["OpenTelemetry
(traces + metrics)"]
+ Prometheus["Prometheus"]
+ Grafana["Grafana"]
+ Jaeger["Jaeger"]
+ end
+
+ FeatureServerA -->|reads/writes| RedisA
+ FeatureServerB -->|reads/writes| RedisB
+ FeatureServerA -->|reads| ObjectStore
+ FeatureServerB -->|reads| ObjectStore
+ FeatureServerA -->|reads| DataWarehouse
+ FeatureServerB -->|reads| DataWarehouse
+ Pipelines -->|materializes| RedisA
+ Pipelines -->|materializes| RedisB
+
+ style Kubernetes fill:#f0f4ff,stroke:#3366cc,color:#000
+ style NamespaceA fill:#e8f5e9,stroke:#388e3c,color:#000
+ style NamespaceB fill:#e3f2fd,stroke:#1976d2,color:#000
+ style DeployA fill:#c8e6c9,stroke:#2e7d32,color:#000
+ style DeployB fill:#bbdefb,stroke:#1565c0,color:#000
+ style ManagedStores fill:#fce4ec,stroke:#c62828,color:#000
+ style ExternalSystems fill:#f3e5f5,stroke:#7b1fa2,color:#000
+ style Observability fill:#fff3e0,stroke:#f57c00,color:#000
+ style Gateway fill:#fff9c4,stroke:#f9a825,color:#000
+ style Operator fill:#e8f5e9,stroke:#388e3c,color:#000
+```
+
+### Architecture — Shared Registry (cross-namespace)
+
+Alternatively, a single centralized registry server can serve multiple tenant namespaces. Tenant online feature servers connect to the shared registry via the [Remote Registry](../reference/registries/remote.md) gRPC client. This reduces operational overhead, enables cross-team feature discovery, and allows a single [Feast UI](../reference/alpha-web-ui.md) deployment to browse all projects — while Feast [permissions](#feast-permissions-and-rbac) enforce tenant isolation at the data level.
+
+```mermaid
+graph TD
+ Client(["Clients / ML Services"]) -->|HTTPS| Gateway
+
+ subgraph Kubernetes["Kubernetes"]
+ Gateway["API Gateway / Ingress
(TLS + rate limiting)"]
+
+ subgraph SharedInfra["Shared Infrastructure Namespace"]
+ Operator["Feast Operator
(cluster-scoped)"]
+ subgraph SharedDeploy["Feast Deployment (3 replicas)"]
+ SharedRegistry["Registry Server
(gRPC + REST)"]
+ end
+ SharedDB[("SQL Database
(PostgreSQL)")]
+ SharedRegistry -->|persists| SharedDB
+ end
+
+ subgraph NamespaceA["Namespace A — Team A"]
+ subgraph DeployA2["Feast Deployment (HPA autoscaled)"]
+ FeatureServerA["Online Feature Server"]
+ end
+ ConfigA["registry_type: remote
path: shared-registry:6570"]
+ end
+
+ subgraph NamespaceB["Namespace B — Team B"]
+ subgraph DeployB2["Feast Deployment (HPA autoscaled)"]
+ FeatureServerB["Online Feature Server"]
+ end
+ ConfigB["registry_type: remote
path: shared-registry:6570"]
+ end
+
+ Gateway --> FeatureServerA
+ Gateway --> FeatureServerB
+ FeatureServerA -->|gRPC| SharedRegistry
+ FeatureServerB -->|gRPC| SharedRegistry
+ Operator -->|manages| SharedRegistry
+ Operator -->|manages| FeatureServerA
+ Operator -->|manages| FeatureServerB
+ end
+
+ subgraph ManagedStores["Per-Tenant Online Stores"]
+ RedisA["Online Store
(e.g. Redis, DynamoDB, etc. — Team A)"]
+ RedisB["Online Store
(e.g. Redis, DynamoDB, etc. — Team B)"]
+ end
+
+ FeatureServerA -->|reads/writes| RedisA
+ FeatureServerB -->|reads/writes| RedisB
+
+ style Kubernetes fill:#f0f4ff,stroke:#3366cc,color:#000
+ style SharedInfra fill:#fff3e0,stroke:#f57c00,color:#000
+ style SharedDeploy fill:#ffe0b2,stroke:#e65100,color:#000
+ style NamespaceA fill:#e8f5e9,stroke:#388e3c,color:#000
+ style NamespaceB fill:#e3f2fd,stroke:#1976d2,color:#000
+ style DeployA2 fill:#c8e6c9,stroke:#2e7d32,color:#000
+ style DeployB2 fill:#bbdefb,stroke:#1565c0,color:#000
+ style ManagedStores fill:#fce4ec,stroke:#c62828,color:#000
+ style Gateway fill:#fff9c4,stroke:#f9a825,color:#000
+ style Operator fill:#e8f5e9,stroke:#388e3c,color:#000
+```
+
+**Shared registry client configuration** — each tenant's `feature_store.yaml` points to the centralized registry:
+
+```yaml
+registry:
+ registry_type: remote
+ path: shared-registry.feast-system.svc.cluster.local:6570
+```
+
+{% hint style="info" %}
+**Shared vs isolated registries:**
+
+| | Shared Registry | Isolated Registries |
+|---|---|---|
+| **Feature discovery** | Cross-team — all projects visible | Siloed — each team sees only its own |
+| **Feast UI** | Single deployment serves all projects | Separate UI deployment per registry |
+| **Isolation** | Logical (Feast permissions + tags) | Physical (separate metadata stores) |
+| **Operational cost** | Lower — one registry to manage | Higher — N registries to maintain |
+| **Best for** | Feature reuse, shared ML platform | Regulatory/compliance separation |
+
+Use a shared registry when teams need to discover and reuse features across projects, and rely on Feast permissions for access control. Use isolated registries when regulatory or compliance requirements demand physical separation of metadata.
+{% endhint %}
+
+### Components
+
+**Multi-tenancy**
+
+| Aspect | Configuration | Notes |
+|---|---|---|
+| **Isolation model** | Namespace-per-team | Physical isolation via Kubernetes namespaces |
+| **Registry strategy** | Shared (remote) or isolated (per-namespace) | See architecture variants above |
+| **Network boundaries** | NetworkPolicy enforced | Cross-namespace traffic denied by default (allow-listed for shared registry) |
+
+**Storage**
+
+| Component | Configuration | Notes |
+|---|---|---|
+| **Online Store** | Managed Redis / DynamoDB / Elasticsearch | Cloud-managed, per-tenant instances; see [supported online stores](../reference/online-stores/README.md) for all options |
+| **Offline Store** | External data warehouse (Snowflake, BigQuery) | Shared or per-tenant access controls; see [supported offline stores](../reference/offline-stores/README.md) for all options |
+| **Object Storage** | S3 with bucket policies | Tenant-scoped prefixes or buckets |
+
+**Scaling**
+
+| Component | Configuration | Notes |
+|---|---|---|
+| **FeatureStore Deployment** | HPA + Cluster Autoscaler | All services (Online Feature Server, Registry, Offline Feature Server) scale together per tenant; set `maxReplicas` based on your peak load. Independent scaling across tenants. |
+| **Cluster** | Multi-zone node pools | Zone-aware scheduling with auto-injected topology spread constraints |
+
+**Security**
+
+| Component | Configuration | Notes |
+|---|---|---|
+| **Authentication** | OIDC via Keycloak | Centralized identity provider |
+| **Authorization** | Feast permissions + Kubernetes RBAC | See [Permissions and RBAC](#feast-permissions-and-rbac) below |
+| **Network** | NetworkPolicies per namespace | Microsegmentation |
+| **Secrets** | Kubernetes Secrets (`secretRef` / `envFrom`) | Credentials injected via FeatureStore CR; use Kubernetes-native tooling (e.g. External Secrets Operator) to sync from external vaults if needed |
+
+**Observability**
+
+| Component | Purpose | Notes |
+|---|---|---|
+| **[OpenTelemetry](../getting-started/components/open-telemetry.md)** | Traces + metrics export | Built-in Feast integration; emits spans for feature retrieval, materialization, and registry operations |
+| **Prometheus** | Metrics collection | Collects OpenTelemetry metrics from Online Feature Server + Online Store |
+| **Grafana** | Dashboards + traces | Per-tenant and aggregate views; can display OpenTelemetry traces via Tempo or Jaeger data source |
+| **Jaeger** | Distributed tracing | Visualize OpenTelemetry traces for request latency analysis and debugging |
+
+**Reliability & Disaster Recovery**
+
+| Aspect | Configuration | Notes |
+|---|---|---|
+| **PodDisruptionBudgets** | Configured per deployment | Protects against voluntary disruptions |
+| **Multi-zone** | Topology spread constraints | Auto-injected by operator when scaling; survives single zone failures |
+| **Backup / Restore** | See recovery priority below | Strategy depends on component criticality |
+
+**Recovery priority guidance**
+
+Not all Feast components carry the same recovery urgency. The table below ranks components by restoration priority and provides guidance for **RPO** (Recovery Point Objective — maximum acceptable data loss) and **RTO** (Recovery Time Objective — maximum acceptable downtime). Specific targets depend on your backing store SLAs and organizational requirements.
+
+| Priority | Component | RPO guidance | RTO guidance | Rationale |
+|---|---|---|---|---|
+| 1 — Critical | **Registry DB** (PostgreSQL / MySQL) | Minutes (continuous replication or frequent backups) | Minutes (failover to standby) | Contains all feature definitions and metadata; without it, no service can resolve features |
+| 2 — High | **Online Store** (Redis / DynamoDB) | Reconstructible via materialization | Minutes to hours (depends on data volume) | Can be fully rebuilt by re-running materialization from the offline store; no unique data to lose |
+| 3 — Medium | **Offline Store** (Redshift / BigQuery) | Per data warehouse SLA | Per data warehouse SLA | Source of truth for historical data; typically managed by the cloud provider with built-in replication |
+| 4 — Low | **Feast Operator + CRDs** | N/A (declarative, stored in Git) | Minutes (re-apply manifests) | Stateless; redeployable from version-controlled manifests |
+
+{% hint style="info" %}
+**Key insight:** The online store is *reconstructible* — it can always be rebuilt from the offline store by re-running materialization. This means its RPO is effectively zero (no unique data to lose), but RTO depends on how long full materialization takes for your dataset volume. For large datasets, consider maintaining Redis persistence (RDB snapshots or AOF) to reduce recovery time.
+{% endhint %}
+
+**Backup recommendations by topology**
+
+| Topology | Registry | Online Store | Offline Store |
+|---|---|---|---|
+| **Minimal** | Manual file backups; accept downtime on failure | Not backed up (re-materialize) | N/A (file-based) |
+| **Standard** | Automated PostgreSQL backups (daily + WAL archiving) | Redis RDB snapshots or AOF persistence | Per cloud provider SLA |
+| **Enterprise** | Managed DB replication (multi-AZ); cross-region replicas for DR | Managed Redis with automatic failover (ElastiCache Multi-AZ, Memorystore HA) | Managed warehouse replication (Redshift cross-region, BigQuery cross-region) |
+
+### Sample FeatureStore CR (per tenant)
+
+```yaml
+apiVersion: feast.dev/v1
+kind: FeatureStore
+metadata:
+ name: team-a-production
+ namespace: team-a
+spec:
+ feastProject: team_a
+ services:
+ scaling:
+ autoscaling:
+ minReplicas: 3
+ maxReplicas: 20 # Set based on your peak load
+ metrics:
+ - type: Resource
+ resource:
+ name: cpu
+ target:
+ type: Utilization
+ averageUtilization: 65
+ podDisruptionBudgets:
+ minAvailable: 2
+ onlineStore:
+ persistence:
+ store:
+ type: redis
+ secretRef:
+ name: feast-online-store
+ server:
+ resources:
+ requests:
+ cpu: "2"
+ memory: 2Gi
+ limits:
+ cpu: "4"
+ memory: 4Gi
+ registry:
+ local:
+ persistence:
+ store:
+ type: sql
+ secretRef:
+ name: feast-registry-store
+ server:
+ resources:
+ requests:
+ cpu: "1"
+ memory: 1Gi
+ limits:
+ cpu: "2"
+ memory: 2Gi
+```
+
+---
+
+## Feast Permissions and RBAC
+
+Feast provides a built-in permissions framework that secures resources at the application level, independently of Kubernetes RBAC. Permissions are defined as Python objects in your feature repository and registered via `feast apply`.
+
+For full details, see the [Permission concept](../getting-started/concepts/permission.md) and [RBAC architecture](../getting-started/architecture/rbac.md) docs.
+
+### How it works
+
+```mermaid
+graph LR
+ subgraph Client["Client Request"]
+ Token["Auth Token
(OIDC / K8s SA)"]
+ end
+
+ subgraph Server["Feast Server"]
+ Extractor["Token Extractor"]
+ Parser["Token Parser"]
+ Enforcer["Policy Enforcer"]
+ end
+
+ subgraph Registry["Registry"]
+ Permissions["Permission Objects"]
+ end
+
+ Token --> Extractor
+ Extractor --> Parser
+ Parser -->|user roles/groups/ns| Enforcer
+ Enforcer -->|match resource + action| Permissions
+ Enforcer -->|allow / deny| Response(["Response"])
+
+ style Client fill:#e3f2fd,stroke:#1976d2,color:#000
+ style Server fill:#fff3e0,stroke:#f57c00,color:#000
+ style Registry fill:#e8f5e9,stroke:#388e3c,color:#000
+```
+
+Permission enforcement happens on the server side (Online Feature Server, Offline Feature Server, Registry Server). There is no enforcement when using the Feast SDK with a local provider.
+
+### Actions
+
+Feast defines eight granular actions:
+
+| Action | Description |
+|---|---|
+| `CREATE` | Create a new Feast object |
+| `DESCRIBE` | Read object metadata/state |
+| `UPDATE` | Modify an existing object |
+| `DELETE` | Remove an object |
+| `READ_ONLINE` | Read from the online store |
+| `READ_OFFLINE` | Read from the offline store |
+| `WRITE_ONLINE` | Write to the online store |
+| `WRITE_OFFLINE` | Write to the offline store |
+
+Convenience aliases are provided:
+
+| Alias | Includes |
+|---|---|
+| `ALL_ACTIONS` | All eight actions |
+| `READ` | `READ_ONLINE` + `READ_OFFLINE` |
+| `WRITE` | `WRITE_ONLINE` + `WRITE_OFFLINE` |
+| `CRUD` | `CREATE` + `DESCRIBE` + `UPDATE` + `DELETE` |
+
+### Protected resource types
+
+Permissions can be applied to any of these Feast object types:
+
+`Project`, `Entity`, `FeatureView`, `OnDemandFeatureView`, `BatchFeatureView`, `StreamFeatureView`, `FeatureService`, `DataSource`, `ValidationReference`, `SavedDataset`, `Permission`
+
+The constant `ALL_RESOURCE_TYPES` includes all of the above. `ALL_FEATURE_VIEW_TYPES` includes all feature view subtypes.
+
+### Policy types
+
+| Policy | Match criteria | Use case |
+|---|---|---|
+| `RoleBasedPolicy(roles=[...])` | User must have at least one of the listed roles | Kubernetes RBAC roles, OIDC roles |
+| `GroupBasedPolicy(groups=[...])` | User must belong to at least one of the listed groups | LDAP/OIDC group membership |
+| `NamespaceBasedPolicy(namespaces=[...])` | User's service account must be in one of the listed namespaces | Kubernetes namespace-level isolation |
+| `CombinedGroupNamespacePolicy(groups=[...], namespaces=[...])` | User must match at least one group **or** one namespace | Flexible cross-cutting policies |
+| `AllowAll` | Always grants access | Development / unsecured resources |
+
+### Example: Role-based permissions
+
+This is the most common pattern — separate admin and read-only roles:
+
+```python
+from feast.feast_object import ALL_RESOURCE_TYPES
+from feast.permissions.action import READ, ALL_ACTIONS, AuthzedAction
+from feast.permissions.permission import Permission
+from feast.permissions.policy import RoleBasedPolicy
+
+admin_perm = Permission(
+ name="feast_admin_permission",
+ types=ALL_RESOURCE_TYPES,
+ policy=RoleBasedPolicy(roles=["feast-admin-role"]),
+ actions=ALL_ACTIONS,
+)
+
+user_perm = Permission(
+ name="feast_user_permission",
+ types=ALL_RESOURCE_TYPES,
+ policy=RoleBasedPolicy(roles=["feast-user-role"]),
+ actions=[AuthzedAction.DESCRIBE] + READ,
+)
+```
+
+### Example: Namespace-based isolation for multi-tenant deployments
+
+Use `NamespaceBasedPolicy` to restrict access based on the Kubernetes namespace of the calling service account — ideal for the shared-registry enterprise topology:
+
+```python
+from feast.feast_object import ALL_RESOURCE_TYPES
+from feast.permissions.action import ALL_ACTIONS, READ, AuthzedAction
+from feast.permissions.permission import Permission
+from feast.permissions.policy import NamespaceBasedPolicy
+
+team_a_write = Permission(
+ name="team_a_full_access",
+ types=ALL_RESOURCE_TYPES,
+ required_tags={"team": "team-a"},
+ policy=NamespaceBasedPolicy(namespaces=["team-a"]),
+ actions=ALL_ACTIONS,
+)
+
+team_a_read_from_others = Permission(
+ name="team_a_read_shared",
+ types=ALL_RESOURCE_TYPES,
+ required_tags={"visibility": "shared"},
+ policy=NamespaceBasedPolicy(namespaces=["team-a"]),
+ actions=[AuthzedAction.DESCRIBE] + READ,
+)
+```
+
+### Example: Combined group + namespace policy
+
+For organizations that use both OIDC groups and Kubernetes namespaces for identity:
+
+```python
+from feast.feast_object import ALL_RESOURCE_TYPES
+from feast.permissions.action import ALL_ACTIONS, READ, AuthzedAction
+from feast.permissions.permission import Permission
+from feast.permissions.policy import CombinedGroupNamespacePolicy
+
+dev_test_perm = Permission(
+ name="dev_test_permission",
+ types=ALL_RESOURCE_TYPES,
+ policy=CombinedGroupNamespacePolicy(
+ groups=["dev-team", "developers"],
+ namespaces=["test", "staging"],
+ ),
+ actions=[AuthzedAction.DESCRIBE] + READ,
+)
+
+data_staging_perm = Permission(
+ name="data_staging_permission",
+ types=ALL_RESOURCE_TYPES,
+ policy=CombinedGroupNamespacePolicy(
+ groups=["data-team", "ml-engineers"],
+ namespaces=["staging"],
+ ),
+ actions=ALL_ACTIONS,
+)
+```
+
+### Example: Fine-grained resource filtering
+
+Permissions support `name_patterns` (regex) and `required_tags` for targeting specific resources:
+
+```python
+from feast.feature_view import FeatureView
+from feast.data_source import DataSource
+from feast.permissions.action import AuthzedAction, READ
+from feast.permissions.permission import Permission
+from feast.permissions.policy import RoleBasedPolicy
+
+sensitive_fv_perm = Permission(
+ name="sensitive_feature_reader",
+ types=[FeatureView],
+ name_patterns=[".*sensitive.*", ".*pii.*"],
+ policy=RoleBasedPolicy(roles=["trusted-reader"]),
+ actions=[AuthzedAction.READ_OFFLINE],
+)
+
+high_risk_ds_writer = Permission(
+ name="high_risk_ds_writer",
+ types=[DataSource],
+ required_tags={"risk_level": "high"},
+ policy=RoleBasedPolicy(roles=["admin", "data_team"]),
+ actions=[AuthzedAction.WRITE_ONLINE, AuthzedAction.WRITE_OFFLINE],
+)
+```
+
+### Authorization configuration
+
+Enable auth enforcement in `feature_store.yaml`:
+
+```yaml
+auth:
+ type: kubernetes # or: oidc
+```
+
+For OIDC:
+
+```yaml
+auth:
+ type: oidc
+ client_id: feast-client
+ auth_server_url: https://keycloak.example.com/realms/feast
+ auth_discovery_url: https://keycloak.example.com/realms/feast/.well-known/openid-configuration
+```
+
+{% hint style="warning" %}
+**Permission granting order:** Feast uses an *affirmative* decision strategy — if **any** matching permission grants access, the request is allowed. Access is denied only when **all** matching permissions deny the user. If no permission matches a resource + action combination, access is **denied**. Resources that do not match any configured permission are unsecured. Always define explicit coverage for all critical resources.
+{% endhint %}
+
+### Recommended RBAC by topology
+
+| Topology | Auth type | Policy type | Guidance |
+|---|---|---|---|
+| **Minimal** | `no_auth` or `kubernetes` | `RoleBasedPolicy` | Basic admin/reader roles |
+| **Standard** | `kubernetes` | `RoleBasedPolicy` | K8s service account roles |
+| **Enterprise (isolated)** | `oidc` or `kubernetes` | `RoleBasedPolicy` + `GroupBasedPolicy` | Per-team OIDC groups |
+| **Enterprise (shared registry)** | `kubernetes` | `NamespaceBasedPolicy` or `CombinedGroupNamespacePolicy` | Namespace isolation with tag-based resource scoping |
+
+---
+
+## Infrastructure-Specific Recommendations
+
+Choosing the right online store, offline store, and registry backend depends on your cloud environment and existing infrastructure. The table below maps common deployment environments to recommended Feast components.
+
+### Recommendation matrix
+
+```mermaid
+graph TD
+ subgraph AWS["AWS / EKS / ROSA"]
+ A_Online["Online: ElastiCache Redis
or DynamoDB"]
+ A_Offline["Offline: Redshift
or Snowflake or Athena"]
+ A_Registry["Registry: RDS PostgreSQL (SQL)
or S3"]
+ A_Compute["Compute: Snowflake Engine
or Spark on EMR
or Ray (KubeRay)"]
+ end
+
+ subgraph GCP["GCP / GKE"]
+ G_Online["Online: Memorystore Redis
or Bigtable or Datastore"]
+ G_Offline["Offline: BigQuery
or Snowflake"]
+ G_Registry["Registry: Cloud SQL PostgreSQL
or GCS"]
+ G_Compute["Compute: Snowflake Engine
or Spark on Dataproc
or Ray (KubeRay)"]
+ end
+
+ subgraph OnPrem["On-Premise / OpenShift"]
+ O_Online["Online: Redis
or PostgreSQL"]
+ O_Offline["Offline: Spark + MinIO
or PostgreSQL or Trino or Oracle"]
+ O_Registry["Registry: PostgreSQL (SQL)"]
+ O_Compute["Compute: Spark
or Ray (KubeRay)"]
+ end
+
+ style AWS fill:#fff3e0,stroke:#f57c00,color:#000
+ style GCP fill:#e3f2fd,stroke:#1976d2,color:#000
+ style OnPrem fill:#e8f5e9,stroke:#388e3c,color:#000
+```
+
+### AWS / EKS / ROSA
+
+| Component | Recommended | Alternative | Notes |
+|---|---|---|---|
+| **Online Store** | **Redis** (ElastiCache) | DynamoDB | Redis offers TTL at retrieval, concurrent writes, Java/Go SDK support. DynamoDB is fully managed with zero ops. |
+| **Offline Store** | **Redshift** | Snowflake, Athena (contrib), Spark | Redshift is the core AWS offline store. Use Snowflake if it's already your warehouse. Athena for S3-native query patterns. |
+| **Registry** | **SQL** (RDS PostgreSQL) | S3 | SQL registry required for concurrent materialization writers. S3 registry is simpler but limited to single-writer. |
+| **Compute Engine** | **Snowflake Engine** | Spark on EMR, [Ray (KubeRay)](../reference/compute-engine/ray.md) | Snowflake engine when your offline/online stores are Snowflake. Spark for S3-based pipelines. Ray with KubeRay for Kubernetes-native distributed processing. |
+| **Object Storage** | S3 | — | Feature repo, training data, registry artifacts |
+
+{% hint style="info" %}
+**ROSA (Red Hat OpenShift on AWS):** Same store recommendations as EKS. Use OpenShift Routes instead of Ingress for TLS termination. Leverage OpenShift's built-in OAuth for `auth.type: kubernetes` integration.
+{% endhint %}
+
+### GCP / GKE
+
+| Component | Recommended | Alternative | Notes |
+|---|---|---|---|
+| **Online Store** | **Redis** (Memorystore) | Bigtable, Datastore | Redis for latency-sensitive workloads. Bigtable for very large-scale feature storage. Datastore is GCP-native and zero-ops. |
+| **Offline Store** | **BigQuery** | Snowflake, Spark (Dataproc) | BigQuery is the core GCP offline store with full feature support. |
+| **Registry** | **SQL** (Cloud SQL PostgreSQL) | GCS | SQL for multi-writer. GCS for simple single-writer setups. |
+| **Compute Engine** | **Snowflake Engine** | Spark on Dataproc, [Ray (KubeRay)](../reference/compute-engine/ray.md) | Use Snowflake engine if your offline store is Snowflake. Spark for BigQuery + GCS pipelines. Ray with KubeRay for Kubernetes-native distributed processing. |
+| **Object Storage** | GCS | — | Feature repo, training data |
+
+### On-Premise / OpenShift / Self-Managed Kubernetes
+
+| Component | Recommended | Alternative | Notes |
+|---|---|---|---|
+| **Online Store** | **Redis** (self-managed or operator) | PostgreSQL (contrib) | Redis for best performance. PostgreSQL if you want to minimize infrastructure components. |
+| **Offline Store** | **Spark** + MinIO (contrib) | PostgreSQL (contrib), Trino (contrib), Oracle (contrib), DuckDB | Spark for scale. PostgreSQL for simpler setups. Oracle for enterprise customers with existing Oracle infrastructure. DuckDB for development only. |
+| **Registry** | **SQL** (PostgreSQL) | — | Always use SQL registry in production on-prem. File-based registries do not support concurrent writers. |
+| **Compute Engine** | **Spark** | [Ray (KubeRay)](../reference/compute-engine/ray.md) | Run Spark on Kubernetes or standalone. Ray with KubeRay for Kubernetes-native distributed DAG execution. |
+| **Object Storage** | MinIO (S3-compatible) | Ceph, NFS | S3-compatible storage for feature data and artifacts. |
+
+{% hint style="warning" %}
+**Multi-replica constraint:** When scaling any Feast service to multiple replicas (via the Feast Operator), you **must** use database-backed persistence for all enabled services. File-based stores (SQLite, DuckDB, `registry.db`) are incompatible with multi-replica deployments. See [Scaling Feast](./scaling-feast.md#horizontal-scaling-with-the-feast-operator) for details.
+{% endhint %}
+
+---
+
+## Air-Gapped / Disconnected Environment Deployments
+
+Production environments in regulated industries (finance, government, defense) often have no outbound internet access from the Kubernetes cluster. The Feast Operator supports air-gapped deployments through custom container images, init container controls, and standard Kubernetes image-pull mechanisms.
+
+### Default init container behavior
+
+When `feastProjectDir` is set on the FeatureStore CR, the operator creates up to two init containers:
+
+1. **`feast-init`** — bootstraps the feature repository by running either `git clone` (if `feastProjectDir.git` is set) or `feast init` (if `feastProjectDir.init` is set), then writes the generated `feature_store.yaml` into the repo directory.
+2. **`feast-apply`** — runs `feast apply` to register feature definitions in the registry. Controlled by `runFeastApplyOnInit` (defaults to `true`). Skipped when `disableInitContainers` is `true`.
+
+In air-gapped environments, `git clone` will fail because the cluster cannot reach external Git repositories. The solution is to **pre-bake** the feature repository into a custom container image and disable the init containers entirely.
+
+### Air-gapped deployment workflow
+
+```mermaid
+graph TD
+ subgraph BuildEnv["Build Environment (internet access)"]
+ Code["Feature repo source code"]
+ Base["Base Feast image
(feastdev/feature-server)"]
+ Custom["Custom image with
bundled feature repo"]
+ Code --> Custom
+ Base --> Custom
+ end
+
+ subgraph InternalRegistry["Internal Container Registry"]
+ Mirror["registry.internal.example.com
/feast/feature-server:v0.61"]
+ end
+
+ subgraph AirGappedCluster["Air-Gapped Kubernetes Cluster"]
+ SA["ServiceAccount
(imagePullSecrets)"]
+ CR["FeatureStore CR
disableInitContainers: true
image: registry.internal..."]
+ Deploy["Feast Deployment
(no init containers)"]
+ SA --> Deploy
+ CR --> Deploy
+ end
+
+ Custom -->|push| Mirror
+ Mirror -->|pull| Deploy
+```
+
+**Steps:**
+
+1. **Build a custom container image** that bundles the feature repository and all Python dependencies into the Feast base image.
+2. **Push** the image to your internal container registry.
+3. **Set `services.disableInitContainers: true`** on the FeatureStore CR to skip `git clone` / `feast init` and `feast apply`.
+4. **Override the image** on each service using the per-service `image` field.
+5. **Set `imagePullPolicy: IfNotPresent`** (or `Never` if images are pre-loaded on nodes).
+6. **Configure `imagePullSecrets`** on the namespace's ServiceAccount — the FeatureStore CRD does not expose an `imagePullSecrets` field, so use the standard Kubernetes approach of attaching secrets to the ServiceAccount that the pods run under.
+
+### Sample FeatureStore CR (air-gapped)
+
+```yaml
+apiVersion: feast.dev/v1
+kind: FeatureStore
+metadata:
+ name: airgap-production
+spec:
+ feastProject: my_project
+ services:
+ disableInitContainers: true
+ onlineStore:
+ persistence:
+ store:
+ type: redis
+ secretRef:
+ name: feast-online-store
+ server:
+ image: registry.internal.example.com/feast/feature-server:v0.61
+ imagePullPolicy: IfNotPresent
+ resources:
+ requests:
+ cpu: "1"
+ memory: 1Gi
+ limits:
+ cpu: "2"
+ memory: 2Gi
+ registry:
+ local:
+ persistence:
+ store:
+ type: sql
+ secretRef:
+ name: feast-registry-store
+ server:
+ image: registry.internal.example.com/feast/feature-server:v0.61
+ imagePullPolicy: IfNotPresent
+```
+
+{% hint style="info" %}
+**Pre-populating the registry:** With init containers disabled, `feast apply` does not run on pod startup. You can populate the registry by:
+
+1. **Running `feast apply` from your CI/CD pipeline** that has network access to the registry DB.
+2. **Using the FeatureStore CR's built-in CronJob** (`spec.cronJob`) — the operator creates a Kubernetes CronJob that runs `feast apply` and `feast materialize-incremental` on a schedule. The CronJob runs inside the cluster (no external access needed) and can use a custom image just like the main deployment. This is the recommended approach for air-gapped environments.
+3. **Running `feast apply` manually** from the build environment before deploying the CR.
+{% endhint %}
+
+### Air-gapped deployment checklist
+
+{% hint style="warning" %}
+**Pre-stage the following artifacts before deploying Feast in an air-gapped environment:**
+
+* **Container images** — Feast feature server image (with bundled feature repo) pushed to internal registry
+* **CRD manifests** — Feast Operator CRDs and operator deployment manifests available locally
+* **Store credentials** — Kubernetes Secrets for online store, offline store, and registry DB connections created in the target namespace
+* **Python packages** (if using custom on-demand transforms) — bundled into the custom image or available from an internal PyPI mirror
+* **ServiceAccount configuration** — `imagePullSecrets` attached to the ServiceAccount used by the Feast deployment
+{% endhint %}
+
+---
+
+## Hybrid Store Configuration
+
+The hybrid store feature allows a single Feast deployment to route feature operations to multiple backends based on tags or data sources. This is useful when different feature views have different latency, cost, or compliance requirements.
+
+### Hybrid online store
+
+The `HybridOnlineStore` routes online operations to different backends based on a configurable tag on the `FeatureView`.
+
+```mermaid
+graph LR
+ FS["Online Feature Server"] --> Router["HybridOnlineStore
(routes by tag)"]
+ Router -->|"tag: dynamodb"| DDB["DynamoDB"]
+ Router -->|"tag: redis"| RD["Redis"]
+
+ style Router fill:#fff3e0,stroke:#f57c00,color:#000
+ style DDB fill:#e3f2fd,stroke:#1976d2,color:#000
+ style RD fill:#fce4ec,stroke:#c62828,color:#000
+```
+
+**`feature_store.yaml` configuration:**
+
+```yaml
+project: my_feature_repo
+registry: data/registry.db
+provider: local
+online_store:
+ type: hybrid
+ routing_tag: team
+ online_stores:
+ - type: dynamodb
+ conf:
+ region: us-east-1
+ - type: redis
+ conf:
+ connection_string: "redis-cluster:6379"
+ redis_type: redis_cluster
+```
+
+**Feature view with routing tag:**
+
+```python
+from feast import FeatureView
+
+user_features = FeatureView(
+ name="user_features",
+ entities=[user_entity],
+ source=user_source,
+ tags={"team": "dynamodb"}, # Routes to DynamoDB backend
+)
+
+transaction_features = FeatureView(
+ name="transaction_features",
+ entities=[txn_entity],
+ source=txn_source,
+ tags={"team": "redis"}, # Routes to Redis backend
+)
+```
+
+The tag value must match the online store `type` name (e.g. `dynamodb`, `redis`, `bigtable`).
+
+### Hybrid offline store
+
+The `HybridOfflineStore` routes offline operations to different backends based on the `batch_source` type of each `FeatureView`.
+
+```mermaid
+graph LR
+ Client["Materialization /
Training Job"] --> Router["HybridOfflineStore
(routes by source type)"]
+ Router -->|"SparkSource"| Spark["Spark"]
+ Router -->|"RedshiftSource"| RS["Redshift"]
+
+ style Router fill:#fff3e0,stroke:#f57c00,color:#000
+ style Spark fill:#e8f5e9,stroke:#388e3c,color:#000
+ style RS fill:#e3f2fd,stroke:#1976d2,color:#000
+```
+
+**`feature_store.yaml` configuration:**
+
+```yaml
+project: my_feature_repo
+registry: data/registry.db
+provider: local
+offline_store:
+ type: hybrid_offline_store.HybridOfflineStore
+ offline_stores:
+ - type: spark
+ conf:
+ spark_master: local[*]
+ spark_app_name: feast_spark_app
+ - type: redshift
+ conf:
+ cluster_id: my-redshift-cluster
+ region: us-east-1
+ database: feast_db
+ user: feast_user
+ s3_staging_location: s3://my-bucket/feast-staging
+ iam_role: arn:aws:iam::123456789012:role/FeastRedshiftRole
+```
+
+**Feature views with different sources:**
+
+```python
+from feast import FeatureView, Entity, ValueType
+from feast.infra.offline_stores.contrib.spark_offline_store.spark_source import SparkSource
+from feast.infra.offline_stores.redshift_source import RedshiftSource
+
+user_features = FeatureView(
+ name="user_features",
+ entities=[user_entity],
+ source=SparkSource(path="s3://bucket/user_features"), # Routes to Spark
+)
+
+activity_features = FeatureView(
+ name="user_activity",
+ entities=[user_entity],
+ source=RedshiftSource( # Routes to Redshift
+ table="user_activity",
+ event_timestamp_column="event_ts",
+ ),
+)
+```
+
+{% hint style="warning" %}
+**Hybrid offline store constraint:** `get_historical_features` requires all requested feature views to share the same `batch_source` type within a single call. You cannot join features across different offline engines in one retrieval request.
+{% endhint %}
+
+---
+
+## Performance Considerations
+
+For detailed server-level tuning (worker counts, timeouts, keep-alive, etc.), see the [Online Server Performance Tuning](./online-server-performance-tuning.md) guide.
+
+### Online feature server sizing
+
+| Traffic tier | Replicas | CPU (per pod) | Memory (per pod) | Notes |
+|---|---|---|---|---|
+| Low (<100 RPS) | 1–2 | 500m–1 | 512Mi–1Gi | Minimal production |
+| Medium (100–1000 RPS) | 2–5 (HPA) | 1–2 | 1–2Gi | Standard production |
+| High (>1000 RPS) | 5–20 (HPA) | 2–4 | 2–4Gi | Enterprise, per-tenant |
+
+### Online store latency guidelines
+
+| Store | p50 latency | p99 latency | Best for |
+|---|---|---|---|
+| **Redis** (single) | <1ms | <5ms | Lowest latency, small-medium datasets |
+| **Redis Cluster** | <2ms | <10ms | High availability + low latency |
+| **DynamoDB** | <5ms | <20ms | Serverless, variable traffic |
+| **PostgreSQL** | <5ms | <30ms | On-prem, simplicity |
+| **Remote (HTTP)** | <10ms | <50ms | Client-server separation |
+
+### Connection pooling for remote online store
+
+When using the [Remote Online Store](../reference/online-stores/remote.md) (client-server architecture), connection pooling significantly reduces latency by reusing TCP/TLS connections:
+
+```yaml
+online_store:
+ type: remote
+ path: http://feast-feature-server:80
+ connection_pool_size: 50 # Max connections in pool (default: 50)
+ connection_idle_timeout: 300 # Idle timeout in seconds (default: 300)
+ connection_retries: 3 # Retry count with exponential backoff
+```
+
+**Tuning by workload:**
+
+| Workload | `connection_pool_size` | `connection_idle_timeout` | `connection_retries` |
+|---|---|---|---|
+| High-throughput inference | 100 | 600 | 5 |
+| Long-running batch service | 50 | 0 (never close) | 3 |
+| Resource-constrained edge | 10 | 60 | 2 |
+
+### Registry performance
+
+* **SQL registry** (PostgreSQL, MySQL) is required for concurrent materialization jobs writing to the registry simultaneously.
+* **File-based registries** (S3, GCS, local) serialize the entire registry on each write — suitable only for single-writer scenarios.
+* For read-heavy workloads, scale the Registry Server to multiple replicas (all connecting to the same database).
+
+### Registry cache tuning at scale
+
+Each Feast server pod maintains its own in-memory copy of the registry metadata. With multiple Gunicorn workers per pod, the total number of independent registry copies is **replicas x workers**. For example, 5 replicas with 4 workers each means 20 copies of the registry in memory, each refreshing independently.
+
+With the default `cache_mode: sync`, the refresh is **synchronous** — when the TTL expires, the next request blocks until the full registry is re-downloaded. At scale, this causes periodic latency spikes across multiple pods simultaneously.
+
+**Recommendation:** Use `cache_mode: thread` with a higher TTL in production to avoid refresh storms:
+
+```yaml
+# In the Operator secret for SQL/DB-backed registries:
+registry:
+ registry_type: sql
+ path: postgresql://:@:5432/feast
+ cache_mode: thread
+ cache_ttl_seconds: 300
+```
+
+For the server-side refresh interval, set `registryTTLSeconds` on the CR:
+
+```yaml
+spec:
+ services:
+ onlineStore:
+ server:
+ workerConfigs:
+ registryTTLSeconds: 300
+```
+
+| Scenario | `cache_mode` | `cache_ttl_seconds` | `registryTTLSeconds` |
+|---|---|---|---|
+| Development / iteration | `sync` (default) | 5–10 | 5 |
+| Production (low-latency) | `thread` | 300 | 300 |
+| Production (frequent schema changes) | `thread` | 60 | 60 |
+
+{% hint style="info" %}
+`registryTTLSeconds` on the CR controls the **server-side** refresh interval. `cache_ttl_seconds` in the registry secret controls the **SDK client** refresh. In Operator deployments, the CR field is what matters for serving performance. For a deep dive into sync vs thread mode trade-offs, memory impact, and freshness considerations, see the [Registry Cache Tuning](./online-server-performance-tuning.md#registry-cache-tuning) section in the performance tuning guide.
+{% endhint %}
+
+### Materialization performance
+
+| Data volume | Recommended engine | Notes |
+|---|---|---|
+| <1M rows | In-process (default) | Simple, no external dependencies |
+| 1M–100M rows | Snowflake Engine, Spark, or Ray | Distributed processing |
+| >100M rows | Spark on Kubernetes / EMR / Dataproc, or Ray via KubeRay | Full cluster-scale materialization with distributed DAG execution |
+
+For detailed engine configuration, see [Scaling Materialization](./scaling-feast.md#scaling-materialization).
+
+### Redis sizing guidelines
+
+| Metric | Guideline |
+|---|---|
+| **Memory** | ~100 bytes per feature value (varies by data type). For 1M entities x 50 features = ~5GB. |
+| **Connections** | Each online feature server replica opens a connection pool. Plan for `replicas x pool_size`. |
+| **TTL** | Set `key_ttl_seconds` in `feature_store.yaml` to auto-expire stale data and bound memory usage. |
+| **Cluster mode** | Use Redis Cluster for >25GB datasets or >10K connections. |
+
+---
+
+## Design Principles
+
+Understanding the following principles helps you choose and customize the right topology.
+
+### Control plane vs data plane
+
+```mermaid
+graph LR
+ subgraph ControlPlane["Control Plane"]
+ Operator["Feast Operator"]
+ Registry["Registry Server"]
+ end
+
+ subgraph DataPlane["Data Plane"]
+ OnlineServer["Online Feature Server"]
+ OfflineServer["Offline Feature Server"]
+ end
+
+ subgraph BackingStores["Backing Stores (external)"]
+ OnlineStore["Online Store
(e.g. Redis, DynamoDB, PostgreSQL, etc.)"]
+ OfflineStore["Offline Store
(e.g. Redshift, BigQuery, Spark, etc.)"]
+ RegistryDB["Registry DB
(PostgreSQL / MySQL)"]
+ end
+
+ ControlPlane -->|configures| DataPlane
+ DataPlane -->|reports status| ControlPlane
+ OnlineServer --> OnlineStore
+ OfflineServer --> OfflineStore
+ Registry --> RegistryDB
+
+ style ControlPlane fill:#e8f5e9,stroke:#388e3c,color:#000
+ style DataPlane fill:#e3f2fd,stroke:#1976d2,color:#000
+ style BackingStores fill:#fce4ec,stroke:#c62828,color:#000
+```
+
+* **Control plane** (Operator + Registry Server) manages feature definitions, metadata, and lifecycle. It changes infrequently and should be highly available.
+* **Data plane** (Online Feature Server + Offline Feature Server) handles the actual feature reads/writes at request time. It must scale with traffic.
+* **Backing stores** (databases, object storage) hold the actual data. These are stateful and managed independently.
+
+### Stateless vs stateful components
+
+The Feast Operator deploys all Feast services (Online Feature Server, Offline Feature Server, Registry Server) in a **single shared Deployment**. When scaling (`spec.replicas > 1` or HPA autoscaling), all services scale together.
+
+{% hint style="warning" %}
+**Scaling requires DB-backed persistence for all enabled services.** The operator enforces this via CRD validation:
+
+* **Online Store** — must use DB persistence (e.g. `type: redis`, `type: dynamodb`, `type: postgres`)
+* **Offline Store** — if enabled, must use DB persistence (e.g. `type: redshift`, `type: bigquery`, `type: spark`, `type: postgres`)
+* **Registry** — must use SQL persistence (`type: sql`), a remote registry, or S3/GCS file-backed registry
+
+File-based stores (SQLite, DuckDB, `registry.db`) are **rejected** when `replicas > 1` or autoscaling is configured.
+{% endhint %}
+
+| Component | Type | Scaling | DB-backed requirement |
+|---|---|---|---|
+| Online Feature Server | **Stateless** (server) | Scales with the shared Deployment (HPA or `spec.replicas`) | Online store must use DB persistence (e.g. Redis, DynamoDB, PostgreSQL) |
+| Offline Feature Server | **Stateless** (server) | Scales with the shared Deployment (HPA or `spec.replicas`) | Offline store must use DB persistence (e.g. Redshift, BigQuery, Spark, PostgreSQL) |
+| Registry Server | **Stateless** (server) | Scales with the shared Deployment (HPA or `spec.replicas`) | Registry must use SQL, remote, or S3/GCS persistence |
+| Online Store (Redis, DynamoDB, etc.) | **Stateful** (backing store) | Scale via managed service or clustering | Managed independently of Feast services |
+| Offline Store (Redshift, BigQuery, etc.) | **Stateful** (backing store) | Scale via cloud-managed infrastructure | Managed independently of Feast services |
+| Registry DB (PostgreSQL, MySQL) | **Stateful** (backing store) | Scale via managed database service | Managed independently of Feast services |
+
+### Scalability guidelines
+
+```mermaid
+graph TD
+ Read["Read traffic increase"] -->|scale| FS["Online Feature Server replicas (HPA)"]
+ Write["Write / materialization load"] -->|scale| Engine["Compute Engine
(Spark / Ray / Snowflake)"]
+ Storage["Data volume growth"] -->|scale| Store["Online / Offline Store capacity"]
+
+ FS -.- Independent["Scale independently"]
+ Engine -.- Independent
+ Store -.- Independent
+
+ style Read fill:#e3f2fd,stroke:#1976d2,color:#000
+ style Write fill:#fff3e0,stroke:#f57c00,color:#000
+ style Storage fill:#f3e5f5,stroke:#7b1fa2,color:#000
+ style FS fill:#e3f2fd,stroke:#1976d2,color:#000
+ style Engine fill:#fff3e0,stroke:#f57c00,color:#000
+ style Store fill:#f3e5f5,stroke:#7b1fa2,color:#000
+```
+
+* **Read scaling** — increase Online Feature Server replicas; they are stateless and scale linearly.
+* **Write scaling** — use a distributed compute engine ([Spark](../reference/compute-engine/spark.md), [Ray/KubeRay](../reference/compute-engine/ray.md), or [Snowflake](../reference/compute-engine/snowflake.md)) for materialization.
+* **Storage scaling** — scale online and offline stores independently based on data volume and query patterns.
+
+For detailed scaling configuration, see [Scaling Feast](./scaling-feast.md).
+
+---
+
+## Topology Comparison
+
+| Capability | Minimal | Standard | Enterprise |
+|---|:---:|:---:|:---:|
+| **High availability** | No | Yes | Yes |
+| **Autoscaling** | No | HPA | HPA + Cluster Autoscaler |
+| **TLS / Ingress** | No | Yes | Yes + API Gateway |
+| **RBAC** | No | Kubernetes RBAC | OIDC + fine-grained RBAC |
+| **Multi-tenancy** | No | No | Namespace-per-team |
+| **Shared registry** | N/A | N/A | Optional (remote registry) |
+| **Hybrid stores** | No | Optional | Recommended for mixed backends |
+| **Observability** | Logs only | Basic metrics | OpenTelemetry + Prometheus + Grafana + Jaeger |
+| **Disaster recovery** | No | Partial | Full backup/restore |
+| **Network policies** | No | Optional | Enforced |
+| **Recommended team size** | 1–3 | 3–15 | 15+ |
+
+---
+
+## Next Steps
+
+* [Feast on Kubernetes](./feast-on-kubernetes.md) — install the Feast Operator and deploy your first FeatureStore CR
+* [Scaling Feast](./scaling-feast.md) — detailed HPA, registry scaling, and materialization engine configuration
+* [Online Server Performance Tuning](./online-server-performance-tuning.md) — worker counts, timeouts, keep-alive, and server-level tuning
+* [Starting Feast Servers in TLS Mode](./starting-feast-servers-tls-mode.md) — enable TLS for secure communication
+* [Running Feast in Production](./running-feast-in-production.md) — CI/CD, materialization scheduling, and model serving patterns
+* [Multi-Team Feature Store Setup](./federated-feature-store.md) — federated feature store for multi-team environments
+* [Permission Concepts](../getting-started/concepts/permission.md) — full permission model reference
+* [RBAC Architecture](../getting-started/architecture/rbac.md) — authorization architecture details
+* [OpenTelemetry Integration](../getting-started/components/open-telemetry.md) — traces and metrics for Feast servers
+* [Hybrid Online Store](../reference/online-stores/hybrid.md) — hybrid online store configuration reference
+* [Hybrid Offline Store](../reference/offline-stores/hybrid.md) — hybrid offline store configuration reference
diff --git a/docs/how-to-guides/running-feast-in-production.md b/docs/how-to-guides/running-feast-in-production.md
index be6fd2afeb4..f073c92931f 100644
--- a/docs/how-to-guides/running-feast-in-production.md
+++ b/docs/how-to-guides/running-feast-in-production.md
@@ -18,6 +18,10 @@ For example, you might not have a stream source and, thus, no need to write feat
Additionally, please check the how-to guide for some specific recommendations on [how to scale Feast](./scaling-feast.md).
{% endhint %}
+{% hint style="info" %}
+**Looking for production deployment patterns?** See the [Feast Production Deployment Topologies](./production-deployment-topologies.md) guide for three Kubernetes-ready topologies (Minimal, Standard, Enterprise), sample FeatureStore CRs, RBAC policies, infrastructure recommendations, and scaling best practices.
+{% endhint %}
+
In this guide we will show you how to:
1. Deploy your feature store and keep your infrastructure in sync with your feature repository
diff --git a/infra/feast-operator/.golangci.bck.yml b/infra/feast-operator/.golangci.bck.yml
new file mode 100644
index 00000000000..6c104980d43
--- /dev/null
+++ b/infra/feast-operator/.golangci.bck.yml
@@ -0,0 +1,55 @@
+run:
+ timeout: 5m
+ allow-parallel-runners: true
+
+issues:
+ # don't skip warning about doc comments
+ # don't exclude the default set of lint
+ exclude-use-default: false
+ # restore some of the defaults
+ # (fill in the rest as needed)
+ exclude-rules:
+ - path: "api/*"
+ linters:
+ - lll
+ - path: "internal/*"
+ linters:
+ - dupl
+ - lll
+ - path: "test/*"
+ linters:
+ - lll
+ - path: "upgrade/*"
+ linters:
+ - lll
+ - path: "previous-version/*"
+ linters:
+ - lll
+linters:
+ disable-all: true
+ enable:
+ - dupl
+ - errcheck
+ - goconst
+ - gocyclo
+ - gofmt
+ - goimports
+ - gosimple
+ - govet
+ - ineffassign
+ - lll
+ - misspell
+ - nakedret
+ - ginkgolinter
+ - prealloc
+ - revive
+ - staticcheck
+ - typecheck
+ - unconvert
+ - unparam
+ - unused
+
+linters-settings:
+ revive:
+ rules:
+ - name: comment-spacings
diff --git a/infra/feast-operator/.golangci.yml b/infra/feast-operator/.golangci.yml
index 6c104980d43..4895f41d8fb 100644
--- a/infra/feast-operator/.golangci.yml
+++ b/infra/feast-operator/.golangci.yml
@@ -1,55 +1,65 @@
+version: "2"
run:
- timeout: 5m
allow-parallel-runners: true
-
-issues:
- # don't skip warning about doc comments
- # don't exclude the default set of lint
- exclude-use-default: false
- # restore some of the defaults
- # (fill in the rest as needed)
- exclude-rules:
- - path: "api/*"
- linters:
- - lll
- - path: "internal/*"
- linters:
- - dupl
- - lll
- - path: "test/*"
- linters:
- - lll
- - path: "upgrade/*"
- linters:
- - lll
- - path: "previous-version/*"
- linters:
- - lll
linters:
- disable-all: true
+ default: none
enable:
- dupl
- errcheck
+ - ginkgolinter
- goconst
- gocyclo
- - gofmt
- - goimports
- - gosimple
- govet
- ineffassign
- lll
- misspell
- nakedret
- - ginkgolinter
- prealloc
- revive
- staticcheck
- - typecheck
- unconvert
- unparam
- unused
-
-linters-settings:
- revive:
+ settings:
+ revive:
+ rules:
+ - name: comment-spacings
+ staticcheck:
+ checks:
+ - "all"
+ - "-QF*"
+ - "-ST*"
+ exclusions:
+ generated: lax
+ presets: []
rules:
- - name: comment-spacings
+ - linters:
+ - lll
+ path: api/*
+ - linters:
+ - dupl
+ - lll
+ path: internal/*
+ - linters:
+ - lll
+ path: test/*
+ - linters:
+ - lll
+ path: upgrade/*
+ - linters:
+ - lll
+ path: previous-version/*
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
+formatters:
+ enable:
+ - gofmt
+ - goimports
+ exclusions:
+ generated: lax
+ paths:
+ - third_party$
+ - builtin$
+ - examples$
diff --git a/infra/feast-operator/Dockerfile b/infra/feast-operator/Dockerfile
index f0814b25576..e3a4ebbed28 100644
--- a/infra/feast-operator/Dockerfile
+++ b/infra/feast-operator/Dockerfile
@@ -1,7 +1,8 @@
# Build the manager binary
-FROM registry.access.redhat.com/ubi9/go-toolset:1.22.9 AS builder
+FROM registry.access.redhat.com/ubi9/go-toolset:1.24 AS builder
ARG TARGETOS
ARG TARGETARCH
+ENV GOTOOLCHAIN=auto
# Copy the Go Modules manifests
COPY go.mod go.mod
diff --git a/infra/feast-operator/Makefile b/infra/feast-operator/Makefile
index b845cb2b01b..8dd8e41c2ee 100644
--- a/infra/feast-operator/Makefile
+++ b/infra/feast-operator/Makefile
@@ -48,7 +48,7 @@ endif
# Set the Operator SDK version to use. By default, what is installed on the system is used.
# This is useful for CI or a project to utilize a specific version of the operator-sdk toolkit.
-OPERATOR_SDK_VERSION ?= v1.38.0
+OPERATOR_SDK_VERSION ?= v1.41.0
# Image URL to use all building/pushing image targets
# During development and testing, and before make deploy we need to export FS_IMG to point to
# the dev image generated using command `make build-feature-server-dev-docker`
@@ -56,7 +56,7 @@ IMG ?= $(IMAGE_TAG_BASE):$(VERSION)
FS_IMG ?= quay.io/feastdev/feature-server:$(VERSION)
CJ_IMG ?= quay.io/openshift/origin-cli:4.17
# ENVTEST_K8S_VERSION refers to the version of kubebuilder assets to be downloaded by envtest binary.
-ENVTEST_K8S_VERSION = 1.30.0
+ENVTEST_K8S_VERSION = 1.31.0
# Get the currently used golang install path (in GOPATH/bin, unless GOBIN is set)
ifeq (,$(shell go env GOBIN))
@@ -116,7 +116,7 @@ vet: ## Run go vet against code.
.PHONY: test
test: build-installer vet lint envtest ## Run tests.
- KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path --use-deprecated-gcs=false)" go test $$(go list ./... | grep -v test/e2e | grep -v test/data-source-types | grep -v test/upgrade | grep -v test/previous-version) -coverprofile cover.out
+ KUBEBUILDER_ASSETS="$(shell $(ENVTEST) use $(ENVTEST_K8S_VERSION) --bin-dir $(LOCALBIN) -p path)" go test $$(go list ./... | grep -v test/e2e | grep -v test/data-source-types | grep -v test/upgrade | grep -v test/previous-version) -coverprofile cover.out
# Utilize Kind or modify the e2e tests to load the image locally, enabling compatibility with other vendors.
.PHONY: test-e2e # Run the e2e tests against a Kind k8s instance that is spun up.
@@ -239,11 +239,11 @@ GOLANGCI_LINT = $(LOCALBIN)/golangci-lint
ENVSUBST = $(LOCALBIN)/envsubst
## Tool Versions
-KUSTOMIZE_VERSION ?= v5.4.2
-CONTROLLER_TOOLS_VERSION ?= v0.15.0
-CRD_REF_DOCS_VERSION ?= v0.1.0
-ENVTEST_VERSION ?= release-0.18
-GOLANGCI_LINT_VERSION ?= v1.63.4
+KUSTOMIZE_VERSION ?= v5.4.3
+CONTROLLER_TOOLS_VERSION ?= v0.18.0
+CRD_REF_DOCS_VERSION ?= v0.3.0
+ENVTEST_VERSION ?= release-0.21
+GOLANGCI_LINT_VERSION ?= v2.1.0
ENVSUBST_VERSION ?= v1.4.2
.PHONY: kustomize
@@ -264,7 +264,7 @@ $(ENVTEST): $(LOCALBIN)
.PHONY: golangci-lint
golangci-lint: $(GOLANGCI_LINT) ## Download golangci-lint locally if necessary.
$(GOLANGCI_LINT): $(LOCALBIN)
- $(call go-install-tool,$(GOLANGCI_LINT),github.com/golangci/golangci-lint/cmd/golangci-lint,$(GOLANGCI_LINT_VERSION))
+ $(call go-install-tool,$(GOLANGCI_LINT),github.com/golangci/golangci-lint/v2/cmd/golangci-lint,$(GOLANGCI_LINT_VERSION))
.PHONY: envsubst
envsubst: $(ENVSUBST) ## Download envsubst locally if necessary.
@@ -338,7 +338,7 @@ ifeq (,$(shell which opm 2>/dev/null))
set -e ;\
mkdir -p $(dir $(OPM)) ;\
OS=$(shell go env GOOS) && ARCH=$(shell go env GOARCH) && \
- curl -sSLo $(OPM) https://github.com/operator-framework/operator-registry/releases/download/v1.23.0/$${OS}-$${ARCH}-opm ;\
+ curl -sSLo $(OPM) https://github.com/operator-framework/operator-registry/releases/download/v1.55.0/$${OS}-$${ARCH}-opm ;\
chmod +x $(OPM) ;\
}
else
diff --git a/infra/feast-operator/cmd/main.go b/infra/feast-operator/cmd/main.go
index 4be1777ac72..70f5635fe33 100644
--- a/infra/feast-operator/cmd/main.go
+++ b/infra/feast-operator/cmd/main.go
@@ -105,7 +105,7 @@ func main() {
// Metrics endpoint is enabled in 'config/default/kustomization.yaml'. The Metrics options configure the server.
// More info:
- // - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.18.4/pkg/metrics/server
+ // - https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.21.0/pkg/metrics/server
// - https://book.kubebuilder.io/reference/metrics.html
metricsServerOptions := metricsserver.Options{
BindAddress: metricsAddr,
@@ -123,7 +123,7 @@ func main() {
// FilterProvider is used to protect the metrics endpoint with authn/authz.
// These configurations ensure that only authorized users and service accounts
// can access the metrics endpoint. The RBAC are configured in 'config/rbac/kustomization.yaml'. More info:
- // https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.18.4/pkg/metrics/filters#WithAuthenticationAndAuthorization
+ // https://pkg.go.dev/sigs.k8s.io/controller-runtime@v0.21.0/pkg/metrics/filters#WithAuthenticationAndAuthorization
metricsServerOptions.FilterProvider = filters.WithAuthenticationAndAuthorization
}
diff --git a/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml b/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml
index 2631a049fb9..6dcd1143b82 100644
--- a/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml
+++ b/infra/feast-operator/config/crd/bases/feast.dev_featurestores.yaml
@@ -3,7 +3,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.15.0
+ controller-gen.kubebuilder.io/version: v0.18.0
name: featurestores.feast.dev
spec:
group: feast.dev
@@ -167,8 +167,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's value.
@@ -267,7 +266,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of a set
- of ConfigMaps
+ of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -286,8 +285,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to each
- key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name of
+ each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -333,6 +332,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for a request
+ in the referenced claim.
+ type: string
required:
- name
type: object
@@ -374,7 +377,7 @@ spec:
activeDeadlineSeconds:
description: |-
Specifies the duration in seconds relative to the startTime that the job
- may be continuously active before the system tr
+ may be continuously active before the system...
format: int64
type: integer
backoffLimit:
@@ -557,8 +560,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's value.
@@ -657,7 +659,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of a set
- of ConfigMaps
+ of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -676,8 +678,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to each
- key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name of
+ each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -762,7 +764,7 @@ spec:
preferredDuringSchedulingIgnoredDuringExecution:
description: |-
The scheduler will prefer to schedule pods to nodes that satisfy
- the affinity expressions specified by this field, but i
+ the affinity expressions specified by this field, but...
items:
description: |-
An empty preferred scheduling term matches all objects with implicit weight 0
@@ -848,9 +850,9 @@ spec:
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
- description: "If the affinity requirements specified by
- this field are not met at\nscheduling time, the pod
- will not be scheduled onto "
+ description: |-
+ If the affinity requirements specified by this field are not met at
+ scheduling time, the pod will not be scheduled onto...
properties:
nodeSelectorTerms:
description: Required. A list of node selector terms.
@@ -939,7 +941,7 @@ spec:
preferredDuringSchedulingIgnoredDuringExecution:
description: |-
The scheduler will prefer to schedule pods to nodes that satisfy
- the affinity expressions specified by this field, but i
+ the affinity expressions specified by this field, but...
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
@@ -1064,7 +1066,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -1082,13 +1084,13 @@ spec:
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
- description: "If the affinity requirements specified by
- this field are not met at\nscheduling time, the pod
- will not be scheduled onto "
+ description: |-
+ If the affinity requirements specified by this field are not met at
+ scheduling time, the pod will not be scheduled onto...
items:
- description: "Defines a set of pods (namely those matching
- the labelSelector\nrelative to the given namespace(s))
- that this pod should "
+ description: |-
+ Defines a set of pods (namely those matching the labelSelector
+ relative to the given namespace(s)) that this pod should...
properties:
labelSelector:
description: |-
@@ -1205,7 +1207,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -1218,9 +1220,9 @@ spec:
(e.g. avoid putting this pod in the same node, zone, etc.
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: "The scheduler will prefer to schedule pods
- to nodes that satisfy\nthe anti-affinity expressions
- specified by this field, "
+ description: |-
+ The scheduler will prefer to schedule pods to nodes that satisfy
+ the anti-affinity expressions specified by this field,...
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
@@ -1345,7 +1347,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -1363,13 +1365,13 @@ spec:
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
- description: "If the anti-affinity requirements specified
- by this field are not met at\nscheduling time, the pod
- will not be scheduled "
+ description: |-
+ If the anti-affinity requirements specified by this field are not met at
+ scheduling time, the pod will not be scheduled...
items:
- description: "Defines a set of pods (namely those matching
- the labelSelector\nrelative to the given namespace(s))
- that this pod should "
+ description: |-
+ Defines a set of pods (namely those matching the labelSelector
+ relative to the given namespace(s)) that this pod should...
properties:
labelSelector:
description: |-
@@ -1486,7 +1488,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -1684,8 +1686,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -1785,7 +1786,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -1804,8 +1805,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -1867,6 +1868,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -2194,8 +2199,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -2295,7 +2299,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -2314,8 +2318,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -2377,6 +2381,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -2752,8 +2760,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -2856,7 +2863,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -2875,8 +2882,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the
+ name of each environment variable. Must be
+ a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -2942,6 +2950,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -3223,9 +3235,18 @@ spec:
stabilizationWindowSeconds:
description: |-
stabilizationWindowSeconds is the number of seconds for which past recommendations should be
- considered while scaling up
+ considered while scaling...
format: int32
type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ tolerance is the tolerance on the ratio between the current and desired
+ metric value under which no updates are made to...
+ 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
scaleUp:
description: scaleUp is scaling policy for scaling
@@ -3270,9 +3291,18 @@ spec:
stabilizationWindowSeconds:
description: |-
stabilizationWindowSeconds is the number of seconds for which past recommendations should be
- considered while scaling up
+ considered while scaling...
format: int32
type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ tolerance is the tolerance on the ratio between the current and desired
+ metric value under which no updates are made to...
+ 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
maxReplicas:
@@ -3287,12 +3317,12 @@ spec:
items:
description: |-
MetricSpec specifies how to scale based on a single metric
- (only `type` and one other matching field should be set at on
+ (only `type` and one other matching field should be set at...
properties:
containerResource:
description: |-
containerResource refers to a resource metric (such as those specified in
- requests and limits) known to Kubernetes descr
+ requests and limits) known to Kubernetes...
properties:
container:
description: container is the name of the container
@@ -3307,10 +3337,9 @@ spec:
for the given metric
properties:
averageUtilization:
- description: "averageUtilization is the
- target value of the average of the\nresource
- metric across all relevant pods, represented
- as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -3357,10 +3386,9 @@ spec:
metric
type: string
selector:
- description: "selector is the string-encoded
- form of a standard kubernetes label selector
- for the given metric\nWhen set, it is
- passed "
+ description: |-
+ selector is the string-encoded form of a standard kubernetes label selector for the given metric
+ When set, it is passed...
properties:
matchExpressions:
description: matchExpressions is a list
@@ -3411,10 +3439,9 @@ spec:
for the given metric
properties:
averageUtilization:
- description: "averageUtilization is the
- target value of the average of the\nresource
- metric across all relevant pods, represented
- as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -3480,10 +3507,9 @@ spec:
metric
type: string
selector:
- description: "selector is the string-encoded
- form of a standard kubernetes label selector
- for the given metric\nWhen set, it is
- passed "
+ description: |-
+ selector is the string-encoded form of a standard kubernetes label selector for the given metric
+ When set, it is passed...
properties:
matchExpressions:
description: matchExpressions is a list
@@ -3534,10 +3560,9 @@ spec:
for the given metric
properties:
averageUtilization:
- description: "averageUtilization is the
- target value of the average of the\nresource
- metric across all relevant pods, represented
- as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -3573,7 +3598,7 @@ spec:
pods:
description: |-
pods refers to a metric describing each pod in the current scale target
- (for example, transactions-processed-per-second)
+ (for example,...
properties:
metric:
description: metric identifies the target metric
@@ -3584,10 +3609,9 @@ spec:
metric
type: string
selector:
- description: "selector is the string-encoded
- form of a standard kubernetes label selector
- for the given metric\nWhen set, it is
- passed "
+ description: |-
+ selector is the string-encoded form of a standard kubernetes label selector for the given metric
+ When set, it is passed...
properties:
matchExpressions:
description: matchExpressions is a list
@@ -3638,10 +3662,9 @@ spec:
for the given metric
properties:
averageUtilization:
- description: "averageUtilization is the
- target value of the average of the\nresource
- metric across all relevant pods, represented
- as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -3676,7 +3699,7 @@ spec:
resource:
description: |-
resource refers to a resource metric (such as those specified in
- requests and limits) known to Kubernetes describing eac
+ requests and limits) known to Kubernetes describing...
properties:
name:
description: name is the name of the resource
@@ -3687,10 +3710,9 @@ spec:
for the given metric
properties:
averageUtilization:
- description: "averageUtilization is the
- target value of the average of the\nresource
- metric across all relevant pods, represented
- as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -3784,6 +3806,10 @@ spec:
Defaults to user specified in image metadata if unspecified.
format: int64
type: integer
+ seLinuxChangePolicy:
+ description: seLinuxChangePolicy defines how the container's
+ SELinux label is applied to all volumes used by the Pod.
+ type: string
seLinuxOptions:
description: The SELinux context to be applied to all containers.
properties:
@@ -3822,13 +3848,18 @@ spec:
type: object
supplementalGroups:
description: |-
- A list of groups applied to the first process run in each container, in addition
- to the container's primary GID, the fsG
+ A list of groups applied to the first process run in each container, in
+ addition to the container's primary GID and...
items:
format: int64
type: integer
type: array
x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ description: |-
+ Defines how supplemental groups of the first container processes are calculated.
+ Valid values are "Merge" and "Strict".
+ type: string
sysctls:
description: Sysctls hold a list of namespaced sysctls used
for the pod.
@@ -3939,7 +3970,7 @@ spec:
nodeAffinityPolicy:
description: |-
NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
- when calculating pod topology spread skew
+ when calculating pod topology spread...
type: string
nodeTaintsPolicy:
description: |-
@@ -3975,8 +4006,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's value.
@@ -4075,7 +4105,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of a set
- of ConfigMaps
+ of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -4094,8 +4124,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to each
- key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name of
+ each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -4156,6 +4186,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for a request
+ in the referenced claim.
+ type: string
required:
- name
type: object
@@ -4324,7 +4358,7 @@ spec:
awsElasticBlockStore:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
- kubelet's host machine and then exposed to th
+ kubelet's host machine and then exposed to...
properties:
fsType:
description: fsType is the filesystem type of the volume
@@ -4366,6 +4400,7 @@ spec:
blob storage
type: string
fsType:
+ default: ext4
description: |-
fsType is Filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -4374,9 +4409,10 @@ spec:
kind:
description: 'kind expected values are Shared: multiple
blob disks per storage account Dedicated: single
- blob disk per storage accoun'
+ blob disk per storage...'
type: string
readOnly:
+ default: false
description: |-
readOnly Defaults to false (read/write). ReadOnly here will force
the ReadOnly setting in VolumeMounts.
@@ -4407,7 +4443,7 @@ spec:
type: object
cephfs:
description: cephFS represents a Ceph FS mount on the host
- that shares a pod's lifetime
+ that shares a pod's lifetime.
properties:
monitors:
description: |-
@@ -4455,7 +4491,7 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
- More info: https://examples.k8s.
+ Deprecated: Cinder is deprecated.
properties:
fsType:
description: |-
@@ -4501,7 +4537,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a path within a
volume.
@@ -4541,7 +4577,7 @@ spec:
csi:
description: csi (Container Storage Interface) represents
ephemeral storage that is handled by certain external
- CSI drivers (Beta fea
+ CSI drivers.
properties:
driver:
description: driver is the name of the CSI driver that
@@ -4553,7 +4589,7 @@ spec:
nodePublishSecretRef:
description: |-
nodePublishSecretRef is a reference to the secret object containing
- sensitive information to pass to the CSI driver to c
+ sensitive information to pass to the CSI driver to...
properties:
name:
default: ""
@@ -4615,7 +4651,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -4864,9 +4900,9 @@ spec:
type: array
x-kubernetes-list-type: atomic
wwids:
- description: "wwids Optional: FC volume world wide identifiers
- (wwids)\nEither wwids or combination of targetWWNs
- and lun must be set, "
+ description: |-
+ wwids Optional: FC volume world wide identifiers (wwids)
+ Either wwids or combination of targetWWNs and lun must be set,...
items:
type: string
type: array
@@ -4901,7 +4937,7 @@ spec:
secretRef:
description: |-
secretRef is Optional: secretRef is reference to the secret object containing
- sensitive information to pass to the plugi
+ sensitive information to pass to the...
properties:
name:
default: ""
@@ -4922,7 +4958,7 @@ spec:
datasetName:
description: |-
datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
- should be considered as depreca
+ should be considered as...
type: string
datasetUUID:
description: datasetUUID is the UUID of the dataset.
@@ -4932,7 +4968,7 @@ spec:
gcePersistentDisk:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
- kubelet's host machine and then exposed to the po
+ kubelet's host machine and then exposed to the...
properties:
fsType:
description: fsType is filesystem type of the volume
@@ -4961,7 +4997,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated.
+ Deprecated: GitRepo is deprecated.
properties:
directory:
description: |-
@@ -4979,9 +5015,8 @@ spec:
- repository
type: object
glusterfs:
- description: |-
- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: glusterfs represents a Glusterfs mount on the
+ host that shares a pod's lifetime.
properties:
endpoints:
description: |-
@@ -5021,6 +5056,22 @@ spec:
required:
- path
type: object
+ image:
+ description: image represents an OCI object (a container
+ image or artifact) pulled and mounted on the kubelet's
+ host machine.
+ properties:
+ pullPolicy:
+ description: |-
+ Policy for pulling OCI objects. Possible values are:
+ Always: the kubelet always attempts to pull the reference.
+ type: string
+ reference:
+ description: |-
+ Required: Image or artifact reference to be used.
+ Behaves in the same way as pod.spec.containers[*].image.
+ type: string
+ type: object
iscsi:
description: |-
iscsi represents an ISCSI Disk resource that is attached to a
@@ -5046,6 +5097,7 @@ spec:
description: iqn is the target iSCSI Qualified Name.
type: string
iscsiInterface:
+ default: default
description: |-
iscsiInterface is the interface Name that uses an iSCSI transport.
Defaults to 'default' (tcp).
@@ -5136,7 +5188,7 @@ spec:
photonPersistentDisk:
description: photonPersistentDisk represents a PhotonController
persistent disk attached and mounted on kubelets host
- machine
+ machine.
properties:
fsType:
description: |-
@@ -5153,7 +5205,7 @@ spec:
type: object
portworxVolume:
description: portworxVolume represents a portworx volume
- attached and mounted on kubelets host machine
+ attached and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -5183,10 +5235,13 @@ spec:
format: int32
type: integer
sources:
- description: sources is the list of volume projections
+ description: |-
+ sources is the list of volume projections. Each entry in this list
+ handles one source.
items:
- description: Projection that may be projected along
- with other supported volume types
+ description: |-
+ Projection that may be projected along with other supported volume types.
+ Exactly one of these fields must be set.
properties:
clusterTrustBundle:
description: ClusterTrustBundle allows a pod to
@@ -5266,7 +5321,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a path
within a volume.
@@ -5337,7 +5392,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -5386,7 +5441,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a path
within a volume.
@@ -5452,7 +5507,7 @@ spec:
type: object
quobyte:
description: quobyte represents a Quobyte mount on the host
- that shares a pod's lifetime
+ that shares a pod's lifetime.
properties:
group:
description: |-
@@ -5467,12 +5522,12 @@ spec:
registry:
description: |-
registry represents a single or multiple Quobyte Registry services
- specified as a string as host:port pair (multiple ent
+ specified as a string as host:port pair (multiple...
type: string
tenant:
description: |-
tenant owning the given Quobyte volume in the Backend
- Used with dynamically provisioned Quobyte volumes, value is set by
+ Used with dynamically provisioned Quobyte volumes, value is set...
type: string
user:
description: |-
@@ -5488,9 +5543,8 @@ spec:
- volume
type: object
rbd:
- description: |-
- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: rbd represents a Rados Block Device mount on
+ the host that shares a pod's lifetime.
properties:
fsType:
description: fsType is the filesystem type of the volume
@@ -5502,6 +5556,7 @@ spec:
More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
type: string
keyring:
+ default: /etc/ceph/keyring
description: |-
keyring is the path to key ring for RBDUser.
Default is /etc/ceph/keyring.
@@ -5516,6 +5571,7 @@ spec:
type: array
x-kubernetes-list-type: atomic
pool:
+ default: rbd
description: |-
pool is the rados pool name.
Default is rbd.
@@ -5543,6 +5599,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
user:
+ default: admin
description: |-
user is the rados user name.
Default is admin.
@@ -5557,6 +5614,7 @@ spec:
attached and mounted on Kubernetes nodes.
properties:
fsType:
+ default: xfs
description: |-
fsType is the filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -5594,6 +5652,7 @@ spec:
with Gateway, default false
type: boolean
storageMode:
+ default: ThinProvisioned
description: storageMode indicates whether the storage
for a volume should be ThickProvisioned or ThinProvisioned.
type: string
@@ -5628,7 +5687,7 @@ spec:
items:
description: |-
items If unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a path within a
volume.
@@ -5703,7 +5762,7 @@ spec:
type: object
vsphereVolume:
description: vsphereVolume represents a vSphere volume attached
- and mounted on kubelets host machine
+ and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -5898,8 +5957,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -5999,7 +6057,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -6018,8 +6076,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -6066,6 +6124,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -6107,7 +6169,7 @@ spec:
activeDeadlineSeconds:
description: |-
Specifies the duration in seconds relative to the startTime that the job
- may be continuously active before the system tr
+ may be continuously active before the system...
format: int64
type: integer
backoffLimit:
@@ -6293,8 +6355,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -6394,7 +6455,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -6413,8 +6474,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -6500,7 +6561,7 @@ spec:
preferredDuringSchedulingIgnoredDuringExecution:
description: |-
The scheduler will prefer to schedule pods to nodes that satisfy
- the affinity expressions specified by this field, but i
+ the affinity expressions specified by this field, but...
items:
description: |-
An empty preferred scheduling term matches all objects with implicit weight 0
@@ -6587,9 +6648,9 @@ spec:
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
- description: "If the affinity requirements specified
- by this field are not met at\nscheduling time, the
- pod will not be scheduled onto "
+ description: |-
+ If the affinity requirements specified by this field are not met at
+ scheduling time, the pod will not be scheduled onto...
properties:
nodeSelectorTerms:
description: Required. A list of node selector
@@ -6678,7 +6739,7 @@ spec:
preferredDuringSchedulingIgnoredDuringExecution:
description: |-
The scheduler will prefer to schedule pods to nodes that satisfy
- the affinity expressions specified by this field, but i
+ the affinity expressions specified by this field, but...
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
@@ -6806,7 +6867,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -6824,13 +6885,13 @@ spec:
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
- description: "If the affinity requirements specified
- by this field are not met at\nscheduling time, the
- pod will not be scheduled onto "
+ description: |-
+ If the affinity requirements specified by this field are not met at
+ scheduling time, the pod will not be scheduled onto...
items:
- description: "Defines a set of pods (namely those
- matching the labelSelector\nrelative to the given
- namespace(s)) that this pod should "
+ description: |-
+ Defines a set of pods (namely those matching the labelSelector
+ relative to the given namespace(s)) that this pod should...
properties:
labelSelector:
description: |-
@@ -6947,7 +7008,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -6961,9 +7022,9 @@ spec:
etc.
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: "The scheduler will prefer to schedule
- pods to nodes that satisfy\nthe anti-affinity expressions
- specified by this field, "
+ description: |-
+ The scheduler will prefer to schedule pods to nodes that satisfy
+ the anti-affinity expressions specified by this field,...
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
@@ -7091,7 +7152,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -7109,13 +7170,13 @@ spec:
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
- description: "If the anti-affinity requirements specified
- by this field are not met at\nscheduling time, the
- pod will not be scheduled "
+ description: |-
+ If the anti-affinity requirements specified by this field are not met at
+ scheduling time, the pod will not be scheduled...
items:
- description: "Defines a set of pods (namely those
- matching the labelSelector\nrelative to the given
- namespace(s)) that this pod should "
+ description: |-
+ Defines a set of pods (namely those matching the labelSelector
+ relative to the given namespace(s)) that this pod should...
properties:
labelSelector:
description: |-
@@ -7232,7 +7293,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -7433,8 +7494,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -7537,7 +7597,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -7556,8 +7616,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the
+ name of each environment variable. Must be
+ a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -7619,6 +7680,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -7951,8 +8016,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -8055,7 +8119,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -8074,8 +8138,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the
+ name of each environment variable. Must be
+ a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -8137,6 +8202,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -8521,8 +8590,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment
@@ -8627,7 +8695,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -8646,9 +8714,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be
- a C_IDENTIFIER.
+ description: Optional text to prepend to
+ the name of each environment variable.
+ Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -8714,6 +8782,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -9004,9 +9076,18 @@ spec:
stabilizationWindowSeconds:
description: |-
stabilizationWindowSeconds is the number of seconds for which past recommendations should be
- considered while scaling up
+ considered while scaling...
format: int32
type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ tolerance is the tolerance on the ratio between the current and desired
+ metric value under which no updates are made to...
+ 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
scaleUp:
description: scaleUp is scaling policy for scaling
@@ -9052,9 +9133,18 @@ spec:
stabilizationWindowSeconds:
description: |-
stabilizationWindowSeconds is the number of seconds for which past recommendations should be
- considered while scaling up
+ considered while scaling...
format: int32
type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ tolerance is the tolerance on the ratio between the current and desired
+ metric value under which no updates are made to...
+ 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
maxReplicas:
@@ -9069,12 +9159,12 @@ spec:
items:
description: |-
MetricSpec specifies how to scale based on a single metric
- (only `type` and one other matching field should be set at on
+ (only `type` and one other matching field should be set at...
properties:
containerResource:
description: |-
containerResource refers to a resource metric (such as those specified in
- requests and limits) known to Kubernetes descr
+ requests and limits) known to Kubernetes...
properties:
container:
description: container is the name of the
@@ -9089,10 +9179,9 @@ spec:
value for the given metric
properties:
averageUtilization:
- description: "averageUtilization is
- the target value of the average of
- the\nresource metric across all relevant
- pods, represented as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -9139,10 +9228,9 @@ spec:
given metric
type: string
selector:
- description: "selector is the string-encoded
- form of a standard kubernetes label
- selector for the given metric\nWhen
- set, it is passed "
+ description: |-
+ selector is the string-encoded form of a standard kubernetes label selector for the given metric
+ When set, it is passed...
properties:
matchExpressions:
description: matchExpressions is
@@ -9193,10 +9281,9 @@ spec:
value for the given metric
properties:
averageUtilization:
- description: "averageUtilization is
- the target value of the average of
- the\nresource metric across all relevant
- pods, represented as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -9263,10 +9350,9 @@ spec:
given metric
type: string
selector:
- description: "selector is the string-encoded
- form of a standard kubernetes label
- selector for the given metric\nWhen
- set, it is passed "
+ description: |-
+ selector is the string-encoded form of a standard kubernetes label selector for the given metric
+ When set, it is passed...
properties:
matchExpressions:
description: matchExpressions is
@@ -9317,10 +9403,9 @@ spec:
value for the given metric
properties:
averageUtilization:
- description: "averageUtilization is
- the target value of the average of
- the\nresource metric across all relevant
- pods, represented as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -9356,7 +9441,7 @@ spec:
pods:
description: |-
pods refers to a metric describing each pod in the current scale target
- (for example, transactions-processed-per-second)
+ (for example,...
properties:
metric:
description: metric identifies the target
@@ -9367,10 +9452,9 @@ spec:
given metric
type: string
selector:
- description: "selector is the string-encoded
- form of a standard kubernetes label
- selector for the given metric\nWhen
- set, it is passed "
+ description: |-
+ selector is the string-encoded form of a standard kubernetes label selector for the given metric
+ When set, it is passed...
properties:
matchExpressions:
description: matchExpressions is
@@ -9421,10 +9505,9 @@ spec:
value for the given metric
properties:
averageUtilization:
- description: "averageUtilization is
- the target value of the average of
- the\nresource metric across all relevant
- pods, represented as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -9459,7 +9542,7 @@ spec:
resource:
description: |-
resource refers to a resource metric (such as those specified in
- requests and limits) known to Kubernetes describing eac
+ requests and limits) known to Kubernetes describing...
properties:
name:
description: name is the name of the resource
@@ -9470,10 +9553,9 @@ spec:
value for the given metric
properties:
averageUtilization:
- description: "averageUtilization is
- the target value of the average of
- the\nresource metric across all relevant
- pods, represented as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -9567,6 +9649,11 @@ spec:
Defaults to user specified in image metadata if unspecified.
format: int64
type: integer
+ seLinuxChangePolicy:
+ description: seLinuxChangePolicy defines how the container's
+ SELinux label is applied to all volumes used by the
+ Pod.
+ type: string
seLinuxOptions:
description: The SELinux context to be applied to all
containers.
@@ -9606,13 +9693,18 @@ spec:
type: object
supplementalGroups:
description: |-
- A list of groups applied to the first process run in each container, in addition
- to the container's primary GID, the fsG
+ A list of groups applied to the first process run in each container, in
+ addition to the container's primary GID and...
items:
format: int64
type: integer
type: array
x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ description: |-
+ Defines how supplemental groups of the first container processes are calculated.
+ Valid values are "Merge" and "Strict".
+ type: string
sysctls:
description: Sysctls hold a list of namespaced sysctls
used for the pod.
@@ -9726,7 +9818,7 @@ spec:
nodeAffinityPolicy:
description: |-
NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
- when calculating pod topology spread skew
+ when calculating pod topology spread...
type: string
nodeTaintsPolicy:
description: |-
@@ -9762,8 +9854,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -9863,7 +9954,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -9882,8 +9973,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -9945,6 +10036,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -10113,7 +10208,7 @@ spec:
awsElasticBlockStore:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
- kubelet's host machine and then exposed to th
+ kubelet's host machine and then exposed to...
properties:
fsType:
description: fsType is the filesystem type of the
@@ -10155,6 +10250,7 @@ spec:
the blob storage
type: string
fsType:
+ default: ext4
description: |-
fsType is Filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -10163,9 +10259,10 @@ spec:
kind:
description: 'kind expected values are Shared: multiple
blob disks per storage account Dedicated: single
- blob disk per storage accoun'
+ blob disk per storage...'
type: string
readOnly:
+ default: false
description: |-
readOnly Defaults to false (read/write). ReadOnly here will force
the ReadOnly setting in VolumeMounts.
@@ -10196,7 +10293,7 @@ spec:
type: object
cephfs:
description: cephFS represents a Ceph FS mount on the
- host that shares a pod's lifetime
+ host that shares a pod's lifetime.
properties:
monitors:
description: |-
@@ -10245,7 +10342,7 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
- More info: https://examples.k8s.
+ Deprecated: Cinder is deprecated.
properties:
fsType:
description: |-
@@ -10291,7 +10388,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a path within
a volume.
@@ -10331,7 +10428,7 @@ spec:
csi:
description: csi (Container Storage Interface) represents
ephemeral storage that is handled by certain external
- CSI drivers (Beta fea
+ CSI drivers.
properties:
driver:
description: driver is the name of the CSI driver
@@ -10344,7 +10441,7 @@ spec:
nodePublishSecretRef:
description: |-
nodePublishSecretRef is a reference to the secret object containing
- sensitive information to pass to the CSI driver to c
+ sensitive information to pass to the CSI driver to...
properties:
name:
default: ""
@@ -10408,7 +10505,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -10660,9 +10757,9 @@ spec:
type: array
x-kubernetes-list-type: atomic
wwids:
- description: "wwids Optional: FC volume world wide
- identifiers (wwids)\nEither wwids or combination
- of targetWWNs and lun must be set, "
+ description: |-
+ wwids Optional: FC volume world wide identifiers (wwids)
+ Either wwids or combination of targetWWNs and lun must be set,...
items:
type: string
type: array
@@ -10697,7 +10794,7 @@ spec:
secretRef:
description: |-
secretRef is Optional: secretRef is reference to the secret object containing
- sensitive information to pass to the plugi
+ sensitive information to pass to the...
properties:
name:
default: ""
@@ -10718,7 +10815,7 @@ spec:
datasetName:
description: |-
datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
- should be considered as depreca
+ should be considered as...
type: string
datasetUUID:
description: datasetUUID is the UUID of the dataset.
@@ -10728,7 +10825,7 @@ spec:
gcePersistentDisk:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
- kubelet's host machine and then exposed to the po
+ kubelet's host machine and then exposed to the...
properties:
fsType:
description: fsType is filesystem type of the volume
@@ -10757,7 +10854,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated.
+ Deprecated: GitRepo is deprecated.
properties:
directory:
description: |-
@@ -10775,9 +10872,8 @@ spec:
- repository
type: object
glusterfs:
- description: |-
- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: glusterfs represents a Glusterfs mount
+ on the host that shares a pod's lifetime.
properties:
endpoints:
description: |-
@@ -10817,6 +10913,22 @@ spec:
required:
- path
type: object
+ image:
+ description: image represents an OCI object (a container
+ image or artifact) pulled and mounted on the kubelet's
+ host machine.
+ properties:
+ pullPolicy:
+ description: |-
+ Policy for pulling OCI objects. Possible values are:
+ Always: the kubelet always attempts to pull the reference.
+ type: string
+ reference:
+ description: |-
+ Required: Image or artifact reference to be used.
+ Behaves in the same way as pod.spec.containers[*].image.
+ type: string
+ type: object
iscsi:
description: |-
iscsi represents an ISCSI Disk resource that is attached to a
@@ -10842,6 +10954,7 @@ spec:
description: iqn is the target iSCSI Qualified Name.
type: string
iscsiInterface:
+ default: default
description: |-
iscsiInterface is the interface Name that uses an iSCSI transport.
Defaults to 'default' (tcp).
@@ -10933,7 +11046,7 @@ spec:
photonPersistentDisk:
description: photonPersistentDisk represents a PhotonController
persistent disk attached and mounted on kubelets host
- machine
+ machine.
properties:
fsType:
description: |-
@@ -10950,7 +11063,7 @@ spec:
type: object
portworxVolume:
description: portworxVolume represents a portworx volume
- attached and mounted on kubelets host machine
+ attached and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -10980,10 +11093,13 @@ spec:
format: int32
type: integer
sources:
- description: sources is the list of volume projections
+ description: |-
+ sources is the list of volume projections. Each entry in this list
+ handles one source.
items:
- description: Projection that may be projected
- along with other supported volume types
+ description: |-
+ Projection that may be projected along with other supported volume types.
+ Exactly one of these fields must be set.
properties:
clusterTrustBundle:
description: ClusterTrustBundle allows a pod
@@ -11064,7 +11180,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a
path within a volume.
@@ -11137,7 +11253,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -11186,7 +11302,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a
path within a volume.
@@ -11252,7 +11368,7 @@ spec:
type: object
quobyte:
description: quobyte represents a Quobyte mount on the
- host that shares a pod's lifetime
+ host that shares a pod's lifetime.
properties:
group:
description: |-
@@ -11267,12 +11383,12 @@ spec:
registry:
description: |-
registry represents a single or multiple Quobyte Registry services
- specified as a string as host:port pair (multiple ent
+ specified as a string as host:port pair (multiple...
type: string
tenant:
description: |-
tenant owning the given Quobyte volume in the Backend
- Used with dynamically provisioned Quobyte volumes, value is set by
+ Used with dynamically provisioned Quobyte volumes, value is set...
type: string
user:
description: |-
@@ -11288,9 +11404,8 @@ spec:
- volume
type: object
rbd:
- description: |-
- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: rbd represents a Rados Block Device mount
+ on the host that shares a pod's lifetime.
properties:
fsType:
description: fsType is the filesystem type of the
@@ -11302,6 +11417,7 @@ spec:
More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
type: string
keyring:
+ default: /etc/ceph/keyring
description: |-
keyring is the path to key ring for RBDUser.
Default is /etc/ceph/keyring.
@@ -11316,6 +11432,7 @@ spec:
type: array
x-kubernetes-list-type: atomic
pool:
+ default: rbd
description: |-
pool is the rados pool name.
Default is rbd.
@@ -11343,6 +11460,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
user:
+ default: admin
description: |-
user is the rados user name.
Default is admin.
@@ -11357,6 +11475,7 @@ spec:
volume attached and mounted on Kubernetes nodes.
properties:
fsType:
+ default: xfs
description: |-
fsType is the filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -11394,6 +11513,7 @@ spec:
communication with Gateway, default false
type: boolean
storageMode:
+ default: ThinProvisioned
description: storageMode indicates whether the storage
for a volume should be ThickProvisioned or ThinProvisioned.
type: string
@@ -11428,7 +11548,7 @@ spec:
items:
description: |-
items If unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a path within
a volume.
@@ -11503,7 +11623,7 @@ spec:
type: object
vsphereVolume:
description: vsphereVolume represents a vSphere volume
- attached and mounted on kubelets host machine
+ attached and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -11608,10 +11728,7 @@ spec:
- Unknown
type: string
type:
- description: |-
- type of condition in CamelCase or in foo.example.com/CamelCase.
- ---
- Many .condition.
+ description: type of condition in CamelCase or in foo.example.com/CamelCase.
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
@@ -11782,8 +11899,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's value.
@@ -11882,7 +11998,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of a set
- of ConfigMaps
+ of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -11901,8 +12017,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to each
- key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name of
+ each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -11948,6 +12064,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for a request
+ in the referenced claim.
+ type: string
required:
- name
type: object
@@ -11989,7 +12109,7 @@ spec:
activeDeadlineSeconds:
description: |-
Specifies the duration in seconds relative to the startTime that the job
- may be continuously active before the system tr
+ may be continuously active before the system...
format: int64
type: integer
backoffLimit:
@@ -12172,8 +12292,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's value.
@@ -12272,7 +12391,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of a set
- of ConfigMaps
+ of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -12291,8 +12410,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to each
- key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name of
+ each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -12546,8 +12665,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -12647,7 +12765,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -12666,8 +12784,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -12729,6 +12847,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -13056,8 +13178,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -13157,7 +13278,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -13176,8 +13297,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -13239,6 +13360,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -13584,8 +13709,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -13688,7 +13812,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -13707,8 +13831,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the
+ name of each environment variable. Must be
+ a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -13774,6 +13899,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -14044,6 +14173,10 @@ spec:
Defaults to user specified in image metadata if unspecified.
format: int64
type: integer
+ seLinuxChangePolicy:
+ description: seLinuxChangePolicy defines how the container's
+ SELinux label is applied to all volumes used by the Pod.
+ type: string
seLinuxOptions:
description: The SELinux context to be applied to all containers.
properties:
@@ -14082,13 +14215,18 @@ spec:
type: object
supplementalGroups:
description: |-
- A list of groups applied to the first process run in each container, in addition
- to the container's primary GID, the fsG
+ A list of groups applied to the first process run in each container, in
+ addition to the container's primary GID and...
items:
format: int64
type: integer
type: array
x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ description: |-
+ Defines how supplemental groups of the first container processes are calculated.
+ Valid values are "Merge" and "Strict".
+ type: string
sysctls:
description: Sysctls hold a list of namespaced sysctls used
for the pod.
@@ -14145,8 +14283,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's value.
@@ -14245,7 +14382,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of a set
- of ConfigMaps
+ of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -14264,8 +14401,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to each
- key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name of
+ each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -14326,6 +14463,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for a request
+ in the referenced claim.
+ type: string
required:
- name
type: object
@@ -14494,7 +14635,7 @@ spec:
awsElasticBlockStore:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
- kubelet's host machine and then exposed to th
+ kubelet's host machine and then exposed to...
properties:
fsType:
description: fsType is the filesystem type of the volume
@@ -14536,6 +14677,7 @@ spec:
blob storage
type: string
fsType:
+ default: ext4
description: |-
fsType is Filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -14544,9 +14686,10 @@ spec:
kind:
description: 'kind expected values are Shared: multiple
blob disks per storage account Dedicated: single
- blob disk per storage accoun'
+ blob disk per storage...'
type: string
readOnly:
+ default: false
description: |-
readOnly Defaults to false (read/write). ReadOnly here will force
the ReadOnly setting in VolumeMounts.
@@ -14577,7 +14720,7 @@ spec:
type: object
cephfs:
description: cephFS represents a Ceph FS mount on the host
- that shares a pod's lifetime
+ that shares a pod's lifetime.
properties:
monitors:
description: |-
@@ -14625,7 +14768,7 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
- More info: https://examples.k8s.
+ Deprecated: Cinder is deprecated.
properties:
fsType:
description: |-
@@ -14671,7 +14814,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a path within a
volume.
@@ -14711,7 +14854,7 @@ spec:
csi:
description: csi (Container Storage Interface) represents
ephemeral storage that is handled by certain external
- CSI drivers (Beta fea
+ CSI drivers.
properties:
driver:
description: driver is the name of the CSI driver that
@@ -14723,7 +14866,7 @@ spec:
nodePublishSecretRef:
description: |-
nodePublishSecretRef is a reference to the secret object containing
- sensitive information to pass to the CSI driver to c
+ sensitive information to pass to the CSI driver to...
properties:
name:
default: ""
@@ -14785,7 +14928,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -15034,9 +15177,9 @@ spec:
type: array
x-kubernetes-list-type: atomic
wwids:
- description: "wwids Optional: FC volume world wide identifiers
- (wwids)\nEither wwids or combination of targetWWNs
- and lun must be set, "
+ description: |-
+ wwids Optional: FC volume world wide identifiers (wwids)
+ Either wwids or combination of targetWWNs and lun must be set,...
items:
type: string
type: array
@@ -15071,7 +15214,7 @@ spec:
secretRef:
description: |-
secretRef is Optional: secretRef is reference to the secret object containing
- sensitive information to pass to the plugi
+ sensitive information to pass to the...
properties:
name:
default: ""
@@ -15092,7 +15235,7 @@ spec:
datasetName:
description: |-
datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
- should be considered as depreca
+ should be considered as...
type: string
datasetUUID:
description: datasetUUID is the UUID of the dataset.
@@ -15102,7 +15245,7 @@ spec:
gcePersistentDisk:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
- kubelet's host machine and then exposed to the po
+ kubelet's host machine and then exposed to the...
properties:
fsType:
description: fsType is filesystem type of the volume
@@ -15131,7 +15274,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated.
+ Deprecated: GitRepo is deprecated.
properties:
directory:
description: |-
@@ -15149,9 +15292,8 @@ spec:
- repository
type: object
glusterfs:
- description: |-
- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: glusterfs represents a Glusterfs mount on the
+ host that shares a pod's lifetime.
properties:
endpoints:
description: |-
@@ -15191,6 +15333,22 @@ spec:
required:
- path
type: object
+ image:
+ description: image represents an OCI object (a container
+ image or artifact) pulled and mounted on the kubelet's
+ host machine.
+ properties:
+ pullPolicy:
+ description: |-
+ Policy for pulling OCI objects. Possible values are:
+ Always: the kubelet always attempts to pull the reference.
+ type: string
+ reference:
+ description: |-
+ Required: Image or artifact reference to be used.
+ Behaves in the same way as pod.spec.containers[*].image.
+ type: string
+ type: object
iscsi:
description: |-
iscsi represents an ISCSI Disk resource that is attached to a
@@ -15216,6 +15374,7 @@ spec:
description: iqn is the target iSCSI Qualified Name.
type: string
iscsiInterface:
+ default: default
description: |-
iscsiInterface is the interface Name that uses an iSCSI transport.
Defaults to 'default' (tcp).
@@ -15306,7 +15465,7 @@ spec:
photonPersistentDisk:
description: photonPersistentDisk represents a PhotonController
persistent disk attached and mounted on kubelets host
- machine
+ machine.
properties:
fsType:
description: |-
@@ -15323,7 +15482,7 @@ spec:
type: object
portworxVolume:
description: portworxVolume represents a portworx volume
- attached and mounted on kubelets host machine
+ attached and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -15353,10 +15512,13 @@ spec:
format: int32
type: integer
sources:
- description: sources is the list of volume projections
+ description: |-
+ sources is the list of volume projections. Each entry in this list
+ handles one source.
items:
- description: Projection that may be projected along
- with other supported volume types
+ description: |-
+ Projection that may be projected along with other supported volume types.
+ Exactly one of these fields must be set.
properties:
clusterTrustBundle:
description: ClusterTrustBundle allows a pod to
@@ -15436,7 +15598,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a path
within a volume.
@@ -15507,7 +15669,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -15556,7 +15718,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a path
within a volume.
@@ -15622,7 +15784,7 @@ spec:
type: object
quobyte:
description: quobyte represents a Quobyte mount on the host
- that shares a pod's lifetime
+ that shares a pod's lifetime.
properties:
group:
description: |-
@@ -15637,12 +15799,12 @@ spec:
registry:
description: |-
registry represents a single or multiple Quobyte Registry services
- specified as a string as host:port pair (multiple ent
+ specified as a string as host:port pair (multiple...
type: string
tenant:
description: |-
tenant owning the given Quobyte volume in the Backend
- Used with dynamically provisioned Quobyte volumes, value is set by
+ Used with dynamically provisioned Quobyte volumes, value is set...
type: string
user:
description: |-
@@ -15658,9 +15820,8 @@ spec:
- volume
type: object
rbd:
- description: |-
- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: rbd represents a Rados Block Device mount on
+ the host that shares a pod's lifetime.
properties:
fsType:
description: fsType is the filesystem type of the volume
@@ -15672,6 +15833,7 @@ spec:
More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
type: string
keyring:
+ default: /etc/ceph/keyring
description: |-
keyring is the path to key ring for RBDUser.
Default is /etc/ceph/keyring.
@@ -15686,6 +15848,7 @@ spec:
type: array
x-kubernetes-list-type: atomic
pool:
+ default: rbd
description: |-
pool is the rados pool name.
Default is rbd.
@@ -15713,6 +15876,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
user:
+ default: admin
description: |-
user is the rados user name.
Default is admin.
@@ -15727,6 +15891,7 @@ spec:
attached and mounted on Kubernetes nodes.
properties:
fsType:
+ default: xfs
description: |-
fsType is the filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -15764,6 +15929,7 @@ spec:
with Gateway, default false
type: boolean
storageMode:
+ default: ThinProvisioned
description: storageMode indicates whether the storage
for a volume should be ThickProvisioned or ThinProvisioned.
type: string
@@ -15798,7 +15964,7 @@ spec:
items:
description: |-
items If unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a path within a
volume.
@@ -15873,7 +16039,7 @@ spec:
type: object
vsphereVolume:
description: vsphereVolume represents a vSphere volume attached
- and mounted on kubelets host machine
+ and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -15989,8 +16155,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -16090,7 +16255,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -16109,8 +16274,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -16157,6 +16322,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -16198,7 +16367,7 @@ spec:
activeDeadlineSeconds:
description: |-
Specifies the duration in seconds relative to the startTime that the job
- may be continuously active before the system tr
+ may be continuously active before the system...
format: int64
type: integer
backoffLimit:
@@ -16384,8 +16553,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -16485,7 +16653,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -16504,8 +16672,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -16763,8 +16931,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -16867,7 +17034,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -16886,8 +17053,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the
+ name of each environment variable. Must be
+ a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -16949,6 +17117,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -17281,8 +17453,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -17385,7 +17556,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -17404,8 +17575,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the
+ name of each environment variable. Must be
+ a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -17467,6 +17639,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -17821,8 +17997,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment
@@ -17927,7 +18102,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -17946,9 +18121,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be
- a C_IDENTIFIER.
+ description: Optional text to prepend to
+ the name of each environment variable.
+ Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -18014,6 +18189,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -18292,6 +18471,11 @@ spec:
Defaults to user specified in image metadata if unspecified.
format: int64
type: integer
+ seLinuxChangePolicy:
+ description: seLinuxChangePolicy defines how the container's
+ SELinux label is applied to all volumes used by the
+ Pod.
+ type: string
seLinuxOptions:
description: The SELinux context to be applied to all
containers.
@@ -18331,13 +18515,18 @@ spec:
type: object
supplementalGroups:
description: |-
- A list of groups applied to the first process run in each container, in addition
- to the container's primary GID, the fsG
+ A list of groups applied to the first process run in each container, in
+ addition to the container's primary GID and...
items:
format: int64
type: integer
type: array
x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ description: |-
+ Defines how supplemental groups of the first container processes are calculated.
+ Valid values are "Merge" and "Strict".
+ type: string
sysctls:
description: Sysctls hold a list of namespaced sysctls
used for the pod.
@@ -18395,8 +18584,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -18496,7 +18684,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -18515,8 +18703,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -18578,6 +18766,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -18746,7 +18938,7 @@ spec:
awsElasticBlockStore:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
- kubelet's host machine and then exposed to th
+ kubelet's host machine and then exposed to...
properties:
fsType:
description: fsType is the filesystem type of the
@@ -18788,6 +18980,7 @@ spec:
the blob storage
type: string
fsType:
+ default: ext4
description: |-
fsType is Filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -18796,9 +18989,10 @@ spec:
kind:
description: 'kind expected values are Shared: multiple
blob disks per storage account Dedicated: single
- blob disk per storage accoun'
+ blob disk per storage...'
type: string
readOnly:
+ default: false
description: |-
readOnly Defaults to false (read/write). ReadOnly here will force
the ReadOnly setting in VolumeMounts.
@@ -18829,7 +19023,7 @@ spec:
type: object
cephfs:
description: cephFS represents a Ceph FS mount on the
- host that shares a pod's lifetime
+ host that shares a pod's lifetime.
properties:
monitors:
description: |-
@@ -18878,7 +19072,7 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
- More info: https://examples.k8s.
+ Deprecated: Cinder is deprecated.
properties:
fsType:
description: |-
@@ -18924,7 +19118,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a path within
a volume.
@@ -18964,7 +19158,7 @@ spec:
csi:
description: csi (Container Storage Interface) represents
ephemeral storage that is handled by certain external
- CSI drivers (Beta fea
+ CSI drivers.
properties:
driver:
description: driver is the name of the CSI driver
@@ -18977,7 +19171,7 @@ spec:
nodePublishSecretRef:
description: |-
nodePublishSecretRef is a reference to the secret object containing
- sensitive information to pass to the CSI driver to c
+ sensitive information to pass to the CSI driver to...
properties:
name:
default: ""
@@ -19041,7 +19235,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -19293,9 +19487,9 @@ spec:
type: array
x-kubernetes-list-type: atomic
wwids:
- description: "wwids Optional: FC volume world wide
- identifiers (wwids)\nEither wwids or combination
- of targetWWNs and lun must be set, "
+ description: |-
+ wwids Optional: FC volume world wide identifiers (wwids)
+ Either wwids or combination of targetWWNs and lun must be set,...
items:
type: string
type: array
@@ -19330,7 +19524,7 @@ spec:
secretRef:
description: |-
secretRef is Optional: secretRef is reference to the secret object containing
- sensitive information to pass to the plugi
+ sensitive information to pass to the...
properties:
name:
default: ""
@@ -19351,7 +19545,7 @@ spec:
datasetName:
description: |-
datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
- should be considered as depreca
+ should be considered as...
type: string
datasetUUID:
description: datasetUUID is the UUID of the dataset.
@@ -19361,7 +19555,7 @@ spec:
gcePersistentDisk:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
- kubelet's host machine and then exposed to the po
+ kubelet's host machine and then exposed to the...
properties:
fsType:
description: fsType is filesystem type of the volume
@@ -19390,7 +19584,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated.
+ Deprecated: GitRepo is deprecated.
properties:
directory:
description: |-
@@ -19408,9 +19602,8 @@ spec:
- repository
type: object
glusterfs:
- description: |-
- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: glusterfs represents a Glusterfs mount
+ on the host that shares a pod's lifetime.
properties:
endpoints:
description: |-
@@ -19450,6 +19643,22 @@ spec:
required:
- path
type: object
+ image:
+ description: image represents an OCI object (a container
+ image or artifact) pulled and mounted on the kubelet's
+ host machine.
+ properties:
+ pullPolicy:
+ description: |-
+ Policy for pulling OCI objects. Possible values are:
+ Always: the kubelet always attempts to pull the reference.
+ type: string
+ reference:
+ description: |-
+ Required: Image or artifact reference to be used.
+ Behaves in the same way as pod.spec.containers[*].image.
+ type: string
+ type: object
iscsi:
description: |-
iscsi represents an ISCSI Disk resource that is attached to a
@@ -19475,6 +19684,7 @@ spec:
description: iqn is the target iSCSI Qualified Name.
type: string
iscsiInterface:
+ default: default
description: |-
iscsiInterface is the interface Name that uses an iSCSI transport.
Defaults to 'default' (tcp).
@@ -19566,7 +19776,7 @@ spec:
photonPersistentDisk:
description: photonPersistentDisk represents a PhotonController
persistent disk attached and mounted on kubelets host
- machine
+ machine.
properties:
fsType:
description: |-
@@ -19583,7 +19793,7 @@ spec:
type: object
portworxVolume:
description: portworxVolume represents a portworx volume
- attached and mounted on kubelets host machine
+ attached and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -19613,10 +19823,13 @@ spec:
format: int32
type: integer
sources:
- description: sources is the list of volume projections
+ description: |-
+ sources is the list of volume projections. Each entry in this list
+ handles one source.
items:
- description: Projection that may be projected
- along with other supported volume types
+ description: |-
+ Projection that may be projected along with other supported volume types.
+ Exactly one of these fields must be set.
properties:
clusterTrustBundle:
description: ClusterTrustBundle allows a pod
@@ -19697,7 +19910,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a
path within a volume.
@@ -19770,7 +19983,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -19819,7 +20032,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a
path within a volume.
@@ -19885,7 +20098,7 @@ spec:
type: object
quobyte:
description: quobyte represents a Quobyte mount on the
- host that shares a pod's lifetime
+ host that shares a pod's lifetime.
properties:
group:
description: |-
@@ -19900,12 +20113,12 @@ spec:
registry:
description: |-
registry represents a single or multiple Quobyte Registry services
- specified as a string as host:port pair (multiple ent
+ specified as a string as host:port pair (multiple...
type: string
tenant:
description: |-
tenant owning the given Quobyte volume in the Backend
- Used with dynamically provisioned Quobyte volumes, value is set by
+ Used with dynamically provisioned Quobyte volumes, value is set...
type: string
user:
description: |-
@@ -19921,9 +20134,8 @@ spec:
- volume
type: object
rbd:
- description: |-
- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: rbd represents a Rados Block Device mount
+ on the host that shares a pod's lifetime.
properties:
fsType:
description: fsType is the filesystem type of the
@@ -19935,6 +20147,7 @@ spec:
More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
type: string
keyring:
+ default: /etc/ceph/keyring
description: |-
keyring is the path to key ring for RBDUser.
Default is /etc/ceph/keyring.
@@ -19949,6 +20162,7 @@ spec:
type: array
x-kubernetes-list-type: atomic
pool:
+ default: rbd
description: |-
pool is the rados pool name.
Default is rbd.
@@ -19976,6 +20190,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
user:
+ default: admin
description: |-
user is the rados user name.
Default is admin.
@@ -19990,6 +20205,7 @@ spec:
volume attached and mounted on Kubernetes nodes.
properties:
fsType:
+ default: xfs
description: |-
fsType is the filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -20027,6 +20243,7 @@ spec:
communication with Gateway, default false
type: boolean
storageMode:
+ default: ThinProvisioned
description: storageMode indicates whether the storage
for a volume should be ThickProvisioned or ThinProvisioned.
type: string
@@ -20061,7 +20278,7 @@ spec:
items:
description: |-
items If unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a path within
a volume.
@@ -20136,7 +20353,7 @@ spec:
type: object
vsphereVolume:
description: vsphereVolume represents a vSphere volume
- attached and mounted on kubelets host machine
+ attached and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -20210,10 +20427,7 @@ spec:
- Unknown
type: string
type:
- description: |-
- type of condition in CamelCase or in foo.example.com/CamelCase.
- ---
- Many .condition.
+ description: type of condition in CamelCase or in foo.example.com/CamelCase.
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
diff --git a/infra/feast-operator/config/rbac/role.yaml b/infra/feast-operator/config/rbac/role.yaml
index c5dc4850303..0c1bd7be84b 100644
--- a/infra/feast-operator/config/rbac/role.yaml
+++ b/infra/feast-operator/config/rbac/role.yaml
@@ -5,9 +5,12 @@ metadata:
name: manager-role
rules:
- apiGroups:
- - apps
+ - ""
resources:
- - deployments
+ - configmaps
+ - persistentvolumeclaims
+ - serviceaccounts
+ - services
verbs:
- create
- delete
@@ -16,65 +19,62 @@ rules:
- update
- watch
- apiGroups:
- - authentication.k8s.io
+ - ""
resources:
- - tokenreviews
+ - namespaces
+ - pods
+ - secrets
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - ""
+ resources:
+ - pods/exec
verbs:
- create
- apiGroups:
- - autoscaling
+ - apps
resources:
- - horizontalpodautoscalers
+ - deployments
verbs:
- create
- delete
- get
- list
- - patch
- update
- watch
- apiGroups:
- - batch
+ - authentication.k8s.io
resources:
- - cronjobs
+ - tokenreviews
verbs:
- create
- - delete
- - get
- - list
- - patch
- - update
- - watch
- apiGroups:
- - ""
+ - autoscaling
resources:
- - configmaps
- - persistentvolumeclaims
- - serviceaccounts
- - services
+ - horizontalpodautoscalers
verbs:
- create
- delete
- get
- list
+ - patch
- update
- watch
- apiGroups:
- - ""
+ - batch
resources:
- - namespaces
- - pods
- - secrets
+ - cronjobs
verbs:
+ - create
+ - delete
- get
- list
+ - patch
+ - update
- watch
-- apiGroups:
- - ""
- resources:
- - pods/exec
- verbs:
- - create
- apiGroups:
- feast.dev
resources:
diff --git a/infra/feast-operator/dist/install.yaml b/infra/feast-operator/dist/install.yaml
index 558279cd396..93c6937f5e1 100644
--- a/infra/feast-operator/dist/install.yaml
+++ b/infra/feast-operator/dist/install.yaml
@@ -11,7 +11,7 @@ apiVersion: apiextensions.k8s.io/v1
kind: CustomResourceDefinition
metadata:
annotations:
- controller-gen.kubebuilder.io/version: v0.15.0
+ controller-gen.kubebuilder.io/version: v0.18.0
name: featurestores.feast.dev
spec:
group: feast.dev
@@ -175,8 +175,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's value.
@@ -275,7 +274,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of a set
- of ConfigMaps
+ of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -294,8 +293,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to each
- key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name of
+ each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -341,6 +340,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for a request
+ in the referenced claim.
+ type: string
required:
- name
type: object
@@ -382,7 +385,7 @@ spec:
activeDeadlineSeconds:
description: |-
Specifies the duration in seconds relative to the startTime that the job
- may be continuously active before the system tr
+ may be continuously active before the system...
format: int64
type: integer
backoffLimit:
@@ -565,8 +568,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's value.
@@ -665,7 +667,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of a set
- of ConfigMaps
+ of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -684,8 +686,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to each
- key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name of
+ each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -770,7 +772,7 @@ spec:
preferredDuringSchedulingIgnoredDuringExecution:
description: |-
The scheduler will prefer to schedule pods to nodes that satisfy
- the affinity expressions specified by this field, but i
+ the affinity expressions specified by this field, but...
items:
description: |-
An empty preferred scheduling term matches all objects with implicit weight 0
@@ -856,9 +858,9 @@ spec:
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
- description: "If the affinity requirements specified by
- this field are not met at\nscheduling time, the pod
- will not be scheduled onto "
+ description: |-
+ If the affinity requirements specified by this field are not met at
+ scheduling time, the pod will not be scheduled onto...
properties:
nodeSelectorTerms:
description: Required. A list of node selector terms.
@@ -947,7 +949,7 @@ spec:
preferredDuringSchedulingIgnoredDuringExecution:
description: |-
The scheduler will prefer to schedule pods to nodes that satisfy
- the affinity expressions specified by this field, but i
+ the affinity expressions specified by this field, but...
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
@@ -1072,7 +1074,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -1090,13 +1092,13 @@ spec:
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
- description: "If the affinity requirements specified by
- this field are not met at\nscheduling time, the pod
- will not be scheduled onto "
+ description: |-
+ If the affinity requirements specified by this field are not met at
+ scheduling time, the pod will not be scheduled onto...
items:
- description: "Defines a set of pods (namely those matching
- the labelSelector\nrelative to the given namespace(s))
- that this pod should "
+ description: |-
+ Defines a set of pods (namely those matching the labelSelector
+ relative to the given namespace(s)) that this pod should...
properties:
labelSelector:
description: |-
@@ -1213,7 +1215,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -1226,9 +1228,9 @@ spec:
(e.g. avoid putting this pod in the same node, zone, etc.
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: "The scheduler will prefer to schedule pods
- to nodes that satisfy\nthe anti-affinity expressions
- specified by this field, "
+ description: |-
+ The scheduler will prefer to schedule pods to nodes that satisfy
+ the anti-affinity expressions specified by this field,...
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
@@ -1353,7 +1355,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -1371,13 +1373,13 @@ spec:
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
- description: "If the anti-affinity requirements specified
- by this field are not met at\nscheduling time, the pod
- will not be scheduled "
+ description: |-
+ If the anti-affinity requirements specified by this field are not met at
+ scheduling time, the pod will not be scheduled...
items:
- description: "Defines a set of pods (namely those matching
- the labelSelector\nrelative to the given namespace(s))
- that this pod should "
+ description: |-
+ Defines a set of pods (namely those matching the labelSelector
+ relative to the given namespace(s)) that this pod should...
properties:
labelSelector:
description: |-
@@ -1494,7 +1496,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -1692,8 +1694,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -1793,7 +1794,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -1812,8 +1813,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -1875,6 +1876,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -2202,8 +2207,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -2303,7 +2307,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -2322,8 +2326,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -2385,6 +2389,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -2760,8 +2768,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -2864,7 +2871,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -2883,8 +2890,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the
+ name of each environment variable. Must be
+ a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -2950,6 +2958,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -3231,9 +3243,18 @@ spec:
stabilizationWindowSeconds:
description: |-
stabilizationWindowSeconds is the number of seconds for which past recommendations should be
- considered while scaling up
+ considered while scaling...
format: int32
type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ tolerance is the tolerance on the ratio between the current and desired
+ metric value under which no updates are made to...
+ 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
scaleUp:
description: scaleUp is scaling policy for scaling
@@ -3278,9 +3299,18 @@ spec:
stabilizationWindowSeconds:
description: |-
stabilizationWindowSeconds is the number of seconds for which past recommendations should be
- considered while scaling up
+ considered while scaling...
format: int32
type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ tolerance is the tolerance on the ratio between the current and desired
+ metric value under which no updates are made to...
+ 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
maxReplicas:
@@ -3295,12 +3325,12 @@ spec:
items:
description: |-
MetricSpec specifies how to scale based on a single metric
- (only `type` and one other matching field should be set at on
+ (only `type` and one other matching field should be set at...
properties:
containerResource:
description: |-
containerResource refers to a resource metric (such as those specified in
- requests and limits) known to Kubernetes descr
+ requests and limits) known to Kubernetes...
properties:
container:
description: container is the name of the container
@@ -3315,10 +3345,9 @@ spec:
for the given metric
properties:
averageUtilization:
- description: "averageUtilization is the
- target value of the average of the\nresource
- metric across all relevant pods, represented
- as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -3365,10 +3394,9 @@ spec:
metric
type: string
selector:
- description: "selector is the string-encoded
- form of a standard kubernetes label selector
- for the given metric\nWhen set, it is
- passed "
+ description: |-
+ selector is the string-encoded form of a standard kubernetes label selector for the given metric
+ When set, it is passed...
properties:
matchExpressions:
description: matchExpressions is a list
@@ -3419,10 +3447,9 @@ spec:
for the given metric
properties:
averageUtilization:
- description: "averageUtilization is the
- target value of the average of the\nresource
- metric across all relevant pods, represented
- as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -3488,10 +3515,9 @@ spec:
metric
type: string
selector:
- description: "selector is the string-encoded
- form of a standard kubernetes label selector
- for the given metric\nWhen set, it is
- passed "
+ description: |-
+ selector is the string-encoded form of a standard kubernetes label selector for the given metric
+ When set, it is passed...
properties:
matchExpressions:
description: matchExpressions is a list
@@ -3542,10 +3568,9 @@ spec:
for the given metric
properties:
averageUtilization:
- description: "averageUtilization is the
- target value of the average of the\nresource
- metric across all relevant pods, represented
- as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -3581,7 +3606,7 @@ spec:
pods:
description: |-
pods refers to a metric describing each pod in the current scale target
- (for example, transactions-processed-per-second)
+ (for example,...
properties:
metric:
description: metric identifies the target metric
@@ -3592,10 +3617,9 @@ spec:
metric
type: string
selector:
- description: "selector is the string-encoded
- form of a standard kubernetes label selector
- for the given metric\nWhen set, it is
- passed "
+ description: |-
+ selector is the string-encoded form of a standard kubernetes label selector for the given metric
+ When set, it is passed...
properties:
matchExpressions:
description: matchExpressions is a list
@@ -3646,10 +3670,9 @@ spec:
for the given metric
properties:
averageUtilization:
- description: "averageUtilization is the
- target value of the average of the\nresource
- metric across all relevant pods, represented
- as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -3684,7 +3707,7 @@ spec:
resource:
description: |-
resource refers to a resource metric (such as those specified in
- requests and limits) known to Kubernetes describing eac
+ requests and limits) known to Kubernetes describing...
properties:
name:
description: name is the name of the resource
@@ -3695,10 +3718,9 @@ spec:
for the given metric
properties:
averageUtilization:
- description: "averageUtilization is the
- target value of the average of the\nresource
- metric across all relevant pods, represented
- as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -3792,6 +3814,10 @@ spec:
Defaults to user specified in image metadata if unspecified.
format: int64
type: integer
+ seLinuxChangePolicy:
+ description: seLinuxChangePolicy defines how the container's
+ SELinux label is applied to all volumes used by the Pod.
+ type: string
seLinuxOptions:
description: The SELinux context to be applied to all containers.
properties:
@@ -3830,13 +3856,18 @@ spec:
type: object
supplementalGroups:
description: |-
- A list of groups applied to the first process run in each container, in addition
- to the container's primary GID, the fsG
+ A list of groups applied to the first process run in each container, in
+ addition to the container's primary GID and...
items:
format: int64
type: integer
type: array
x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ description: |-
+ Defines how supplemental groups of the first container processes are calculated.
+ Valid values are "Merge" and "Strict".
+ type: string
sysctls:
description: Sysctls hold a list of namespaced sysctls used
for the pod.
@@ -3947,7 +3978,7 @@ spec:
nodeAffinityPolicy:
description: |-
NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
- when calculating pod topology spread skew
+ when calculating pod topology spread...
type: string
nodeTaintsPolicy:
description: |-
@@ -3983,8 +4014,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's value.
@@ -4083,7 +4113,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of a set
- of ConfigMaps
+ of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -4102,8 +4132,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to each
- key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name of
+ each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -4164,6 +4194,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for a request
+ in the referenced claim.
+ type: string
required:
- name
type: object
@@ -4332,7 +4366,7 @@ spec:
awsElasticBlockStore:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
- kubelet's host machine and then exposed to th
+ kubelet's host machine and then exposed to...
properties:
fsType:
description: fsType is the filesystem type of the volume
@@ -4374,6 +4408,7 @@ spec:
blob storage
type: string
fsType:
+ default: ext4
description: |-
fsType is Filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -4382,9 +4417,10 @@ spec:
kind:
description: 'kind expected values are Shared: multiple
blob disks per storage account Dedicated: single
- blob disk per storage accoun'
+ blob disk per storage...'
type: string
readOnly:
+ default: false
description: |-
readOnly Defaults to false (read/write). ReadOnly here will force
the ReadOnly setting in VolumeMounts.
@@ -4415,7 +4451,7 @@ spec:
type: object
cephfs:
description: cephFS represents a Ceph FS mount on the host
- that shares a pod's lifetime
+ that shares a pod's lifetime.
properties:
monitors:
description: |-
@@ -4463,7 +4499,7 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
- More info: https://examples.k8s.
+ Deprecated: Cinder is deprecated.
properties:
fsType:
description: |-
@@ -4509,7 +4545,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a path within a
volume.
@@ -4549,7 +4585,7 @@ spec:
csi:
description: csi (Container Storage Interface) represents
ephemeral storage that is handled by certain external
- CSI drivers (Beta fea
+ CSI drivers.
properties:
driver:
description: driver is the name of the CSI driver that
@@ -4561,7 +4597,7 @@ spec:
nodePublishSecretRef:
description: |-
nodePublishSecretRef is a reference to the secret object containing
- sensitive information to pass to the CSI driver to c
+ sensitive information to pass to the CSI driver to...
properties:
name:
default: ""
@@ -4623,7 +4659,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -4872,9 +4908,9 @@ spec:
type: array
x-kubernetes-list-type: atomic
wwids:
- description: "wwids Optional: FC volume world wide identifiers
- (wwids)\nEither wwids or combination of targetWWNs
- and lun must be set, "
+ description: |-
+ wwids Optional: FC volume world wide identifiers (wwids)
+ Either wwids or combination of targetWWNs and lun must be set,...
items:
type: string
type: array
@@ -4909,7 +4945,7 @@ spec:
secretRef:
description: |-
secretRef is Optional: secretRef is reference to the secret object containing
- sensitive information to pass to the plugi
+ sensitive information to pass to the...
properties:
name:
default: ""
@@ -4930,7 +4966,7 @@ spec:
datasetName:
description: |-
datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
- should be considered as depreca
+ should be considered as...
type: string
datasetUUID:
description: datasetUUID is the UUID of the dataset.
@@ -4940,7 +4976,7 @@ spec:
gcePersistentDisk:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
- kubelet's host machine and then exposed to the po
+ kubelet's host machine and then exposed to the...
properties:
fsType:
description: fsType is filesystem type of the volume
@@ -4969,7 +5005,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated.
+ Deprecated: GitRepo is deprecated.
properties:
directory:
description: |-
@@ -4987,9 +5023,8 @@ spec:
- repository
type: object
glusterfs:
- description: |-
- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: glusterfs represents a Glusterfs mount on the
+ host that shares a pod's lifetime.
properties:
endpoints:
description: |-
@@ -5029,6 +5064,22 @@ spec:
required:
- path
type: object
+ image:
+ description: image represents an OCI object (a container
+ image or artifact) pulled and mounted on the kubelet's
+ host machine.
+ properties:
+ pullPolicy:
+ description: |-
+ Policy for pulling OCI objects. Possible values are:
+ Always: the kubelet always attempts to pull the reference.
+ type: string
+ reference:
+ description: |-
+ Required: Image or artifact reference to be used.
+ Behaves in the same way as pod.spec.containers[*].image.
+ type: string
+ type: object
iscsi:
description: |-
iscsi represents an ISCSI Disk resource that is attached to a
@@ -5054,6 +5105,7 @@ spec:
description: iqn is the target iSCSI Qualified Name.
type: string
iscsiInterface:
+ default: default
description: |-
iscsiInterface is the interface Name that uses an iSCSI transport.
Defaults to 'default' (tcp).
@@ -5144,7 +5196,7 @@ spec:
photonPersistentDisk:
description: photonPersistentDisk represents a PhotonController
persistent disk attached and mounted on kubelets host
- machine
+ machine.
properties:
fsType:
description: |-
@@ -5161,7 +5213,7 @@ spec:
type: object
portworxVolume:
description: portworxVolume represents a portworx volume
- attached and mounted on kubelets host machine
+ attached and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -5191,10 +5243,13 @@ spec:
format: int32
type: integer
sources:
- description: sources is the list of volume projections
+ description: |-
+ sources is the list of volume projections. Each entry in this list
+ handles one source.
items:
- description: Projection that may be projected along
- with other supported volume types
+ description: |-
+ Projection that may be projected along with other supported volume types.
+ Exactly one of these fields must be set.
properties:
clusterTrustBundle:
description: ClusterTrustBundle allows a pod to
@@ -5274,7 +5329,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a path
within a volume.
@@ -5345,7 +5400,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -5394,7 +5449,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a path
within a volume.
@@ -5460,7 +5515,7 @@ spec:
type: object
quobyte:
description: quobyte represents a Quobyte mount on the host
- that shares a pod's lifetime
+ that shares a pod's lifetime.
properties:
group:
description: |-
@@ -5475,12 +5530,12 @@ spec:
registry:
description: |-
registry represents a single or multiple Quobyte Registry services
- specified as a string as host:port pair (multiple ent
+ specified as a string as host:port pair (multiple...
type: string
tenant:
description: |-
tenant owning the given Quobyte volume in the Backend
- Used with dynamically provisioned Quobyte volumes, value is set by
+ Used with dynamically provisioned Quobyte volumes, value is set...
type: string
user:
description: |-
@@ -5496,9 +5551,8 @@ spec:
- volume
type: object
rbd:
- description: |-
- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: rbd represents a Rados Block Device mount on
+ the host that shares a pod's lifetime.
properties:
fsType:
description: fsType is the filesystem type of the volume
@@ -5510,6 +5564,7 @@ spec:
More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
type: string
keyring:
+ default: /etc/ceph/keyring
description: |-
keyring is the path to key ring for RBDUser.
Default is /etc/ceph/keyring.
@@ -5524,6 +5579,7 @@ spec:
type: array
x-kubernetes-list-type: atomic
pool:
+ default: rbd
description: |-
pool is the rados pool name.
Default is rbd.
@@ -5551,6 +5607,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
user:
+ default: admin
description: |-
user is the rados user name.
Default is admin.
@@ -5565,6 +5622,7 @@ spec:
attached and mounted on Kubernetes nodes.
properties:
fsType:
+ default: xfs
description: |-
fsType is the filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -5602,6 +5660,7 @@ spec:
with Gateway, default false
type: boolean
storageMode:
+ default: ThinProvisioned
description: storageMode indicates whether the storage
for a volume should be ThickProvisioned or ThinProvisioned.
type: string
@@ -5636,7 +5695,7 @@ spec:
items:
description: |-
items If unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a path within a
volume.
@@ -5711,7 +5770,7 @@ spec:
type: object
vsphereVolume:
description: vsphereVolume represents a vSphere volume attached
- and mounted on kubelets host machine
+ and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -5906,8 +5965,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -6007,7 +6065,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -6026,8 +6084,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -6074,6 +6132,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -6115,7 +6177,7 @@ spec:
activeDeadlineSeconds:
description: |-
Specifies the duration in seconds relative to the startTime that the job
- may be continuously active before the system tr
+ may be continuously active before the system...
format: int64
type: integer
backoffLimit:
@@ -6301,8 +6363,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -6402,7 +6463,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -6421,8 +6482,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -6508,7 +6569,7 @@ spec:
preferredDuringSchedulingIgnoredDuringExecution:
description: |-
The scheduler will prefer to schedule pods to nodes that satisfy
- the affinity expressions specified by this field, but i
+ the affinity expressions specified by this field, but...
items:
description: |-
An empty preferred scheduling term matches all objects with implicit weight 0
@@ -6595,9 +6656,9 @@ spec:
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
- description: "If the affinity requirements specified
- by this field are not met at\nscheduling time, the
- pod will not be scheduled onto "
+ description: |-
+ If the affinity requirements specified by this field are not met at
+ scheduling time, the pod will not be scheduled onto...
properties:
nodeSelectorTerms:
description: Required. A list of node selector
@@ -6686,7 +6747,7 @@ spec:
preferredDuringSchedulingIgnoredDuringExecution:
description: |-
The scheduler will prefer to schedule pods to nodes that satisfy
- the affinity expressions specified by this field, but i
+ the affinity expressions specified by this field, but...
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
@@ -6814,7 +6875,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -6832,13 +6893,13 @@ spec:
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
- description: "If the affinity requirements specified
- by this field are not met at\nscheduling time, the
- pod will not be scheduled onto "
+ description: |-
+ If the affinity requirements specified by this field are not met at
+ scheduling time, the pod will not be scheduled onto...
items:
- description: "Defines a set of pods (namely those
- matching the labelSelector\nrelative to the given
- namespace(s)) that this pod should "
+ description: |-
+ Defines a set of pods (namely those matching the labelSelector
+ relative to the given namespace(s)) that this pod should...
properties:
labelSelector:
description: |-
@@ -6955,7 +7016,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -6969,9 +7030,9 @@ spec:
etc.
properties:
preferredDuringSchedulingIgnoredDuringExecution:
- description: "The scheduler will prefer to schedule
- pods to nodes that satisfy\nthe anti-affinity expressions
- specified by this field, "
+ description: |-
+ The scheduler will prefer to schedule pods to nodes that satisfy
+ the anti-affinity expressions specified by this field,...
items:
description: The weights of all of the matched WeightedPodAffinityTerm
fields are added per-node to find the most preferred
@@ -7099,7 +7160,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -7117,13 +7178,13 @@ spec:
type: array
x-kubernetes-list-type: atomic
requiredDuringSchedulingIgnoredDuringExecution:
- description: "If the anti-affinity requirements specified
- by this field are not met at\nscheduling time, the
- pod will not be scheduled "
+ description: |-
+ If the anti-affinity requirements specified by this field are not met at
+ scheduling time, the pod will not be scheduled...
items:
- description: "Defines a set of pods (namely those
- matching the labelSelector\nrelative to the given
- namespace(s)) that this pod should "
+ description: |-
+ Defines a set of pods (namely those matching the labelSelector
+ relative to the given namespace(s)) that this pod should...
properties:
labelSelector:
description: |-
@@ -7240,7 +7301,7 @@ spec:
topologyKey:
description: |-
This pod should be co-located (affinity) or not co-located (anti-affinity) with the pods matching
- the labelSelector in t
+ the labelSelector in...
type: string
required:
- topologyKey
@@ -7441,8 +7502,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -7545,7 +7605,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -7564,8 +7624,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the
+ name of each environment variable. Must be
+ a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -7627,6 +7688,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -7959,8 +8024,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -8063,7 +8127,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -8082,8 +8146,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the
+ name of each environment variable. Must be
+ a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -8145,6 +8210,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -8529,8 +8598,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment
@@ -8635,7 +8703,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -8654,9 +8722,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be
- a C_IDENTIFIER.
+ description: Optional text to prepend to
+ the name of each environment variable.
+ Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -8722,6 +8790,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -9012,9 +9084,18 @@ spec:
stabilizationWindowSeconds:
description: |-
stabilizationWindowSeconds is the number of seconds for which past recommendations should be
- considered while scaling up
+ considered while scaling...
format: int32
type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ tolerance is the tolerance on the ratio between the current and desired
+ metric value under which no updates are made to...
+ 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
scaleUp:
description: scaleUp is scaling policy for scaling
@@ -9060,9 +9141,18 @@ spec:
stabilizationWindowSeconds:
description: |-
stabilizationWindowSeconds is the number of seconds for which past recommendations should be
- considered while scaling up
+ considered while scaling...
format: int32
type: integer
+ tolerance:
+ anyOf:
+ - type: integer
+ - type: string
+ description: |-
+ tolerance is the tolerance on the ratio between the current and desired
+ metric value under which no updates are made to...
+ 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
maxReplicas:
@@ -9077,12 +9167,12 @@ spec:
items:
description: |-
MetricSpec specifies how to scale based on a single metric
- (only `type` and one other matching field should be set at on
+ (only `type` and one other matching field should be set at...
properties:
containerResource:
description: |-
containerResource refers to a resource metric (such as those specified in
- requests and limits) known to Kubernetes descr
+ requests and limits) known to Kubernetes...
properties:
container:
description: container is the name of the
@@ -9097,10 +9187,9 @@ spec:
value for the given metric
properties:
averageUtilization:
- description: "averageUtilization is
- the target value of the average of
- the\nresource metric across all relevant
- pods, represented as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -9147,10 +9236,9 @@ spec:
given metric
type: string
selector:
- description: "selector is the string-encoded
- form of a standard kubernetes label
- selector for the given metric\nWhen
- set, it is passed "
+ description: |-
+ selector is the string-encoded form of a standard kubernetes label selector for the given metric
+ When set, it is passed...
properties:
matchExpressions:
description: matchExpressions is
@@ -9201,10 +9289,9 @@ spec:
value for the given metric
properties:
averageUtilization:
- description: "averageUtilization is
- the target value of the average of
- the\nresource metric across all relevant
- pods, represented as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -9271,10 +9358,9 @@ spec:
given metric
type: string
selector:
- description: "selector is the string-encoded
- form of a standard kubernetes label
- selector for the given metric\nWhen
- set, it is passed "
+ description: |-
+ selector is the string-encoded form of a standard kubernetes label selector for the given metric
+ When set, it is passed...
properties:
matchExpressions:
description: matchExpressions is
@@ -9325,10 +9411,9 @@ spec:
value for the given metric
properties:
averageUtilization:
- description: "averageUtilization is
- the target value of the average of
- the\nresource metric across all relevant
- pods, represented as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -9364,7 +9449,7 @@ spec:
pods:
description: |-
pods refers to a metric describing each pod in the current scale target
- (for example, transactions-processed-per-second)
+ (for example,...
properties:
metric:
description: metric identifies the target
@@ -9375,10 +9460,9 @@ spec:
given metric
type: string
selector:
- description: "selector is the string-encoded
- form of a standard kubernetes label
- selector for the given metric\nWhen
- set, it is passed "
+ description: |-
+ selector is the string-encoded form of a standard kubernetes label selector for the given metric
+ When set, it is passed...
properties:
matchExpressions:
description: matchExpressions is
@@ -9429,10 +9513,9 @@ spec:
value for the given metric
properties:
averageUtilization:
- description: "averageUtilization is
- the target value of the average of
- the\nresource metric across all relevant
- pods, represented as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -9467,7 +9550,7 @@ spec:
resource:
description: |-
resource refers to a resource metric (such as those specified in
- requests and limits) known to Kubernetes describing eac
+ requests and limits) known to Kubernetes describing...
properties:
name:
description: name is the name of the resource
@@ -9478,10 +9561,9 @@ spec:
value for the given metric
properties:
averageUtilization:
- description: "averageUtilization is
- the target value of the average of
- the\nresource metric across all relevant
- pods, represented as a "
+ description: |-
+ averageUtilization is the target value of the average of the
+ resource metric across all relevant pods, represented as a...
format: int32
type: integer
averageValue:
@@ -9575,6 +9657,11 @@ spec:
Defaults to user specified in image metadata if unspecified.
format: int64
type: integer
+ seLinuxChangePolicy:
+ description: seLinuxChangePolicy defines how the container's
+ SELinux label is applied to all volumes used by the
+ Pod.
+ type: string
seLinuxOptions:
description: The SELinux context to be applied to all
containers.
@@ -9614,13 +9701,18 @@ spec:
type: object
supplementalGroups:
description: |-
- A list of groups applied to the first process run in each container, in addition
- to the container's primary GID, the fsG
+ A list of groups applied to the first process run in each container, in
+ addition to the container's primary GID and...
items:
format: int64
type: integer
type: array
x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ description: |-
+ Defines how supplemental groups of the first container processes are calculated.
+ Valid values are "Merge" and "Strict".
+ type: string
sysctls:
description: Sysctls hold a list of namespaced sysctls
used for the pod.
@@ -9734,7 +9826,7 @@ spec:
nodeAffinityPolicy:
description: |-
NodeAffinityPolicy indicates how we will treat Pod's nodeAffinity/nodeSelector
- when calculating pod topology spread skew
+ when calculating pod topology spread...
type: string
nodeTaintsPolicy:
description: |-
@@ -9770,8 +9862,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -9871,7 +9962,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -9890,8 +9981,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -9953,6 +10044,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -10121,7 +10216,7 @@ spec:
awsElasticBlockStore:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
- kubelet's host machine and then exposed to th
+ kubelet's host machine and then exposed to...
properties:
fsType:
description: fsType is the filesystem type of the
@@ -10163,6 +10258,7 @@ spec:
the blob storage
type: string
fsType:
+ default: ext4
description: |-
fsType is Filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -10171,9 +10267,10 @@ spec:
kind:
description: 'kind expected values are Shared: multiple
blob disks per storage account Dedicated: single
- blob disk per storage accoun'
+ blob disk per storage...'
type: string
readOnly:
+ default: false
description: |-
readOnly Defaults to false (read/write). ReadOnly here will force
the ReadOnly setting in VolumeMounts.
@@ -10204,7 +10301,7 @@ spec:
type: object
cephfs:
description: cephFS represents a Ceph FS mount on the
- host that shares a pod's lifetime
+ host that shares a pod's lifetime.
properties:
monitors:
description: |-
@@ -10253,7 +10350,7 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
- More info: https://examples.k8s.
+ Deprecated: Cinder is deprecated.
properties:
fsType:
description: |-
@@ -10299,7 +10396,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a path within
a volume.
@@ -10339,7 +10436,7 @@ spec:
csi:
description: csi (Container Storage Interface) represents
ephemeral storage that is handled by certain external
- CSI drivers (Beta fea
+ CSI drivers.
properties:
driver:
description: driver is the name of the CSI driver
@@ -10352,7 +10449,7 @@ spec:
nodePublishSecretRef:
description: |-
nodePublishSecretRef is a reference to the secret object containing
- sensitive information to pass to the CSI driver to c
+ sensitive information to pass to the CSI driver to...
properties:
name:
default: ""
@@ -10416,7 +10513,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -10668,9 +10765,9 @@ spec:
type: array
x-kubernetes-list-type: atomic
wwids:
- description: "wwids Optional: FC volume world wide
- identifiers (wwids)\nEither wwids or combination
- of targetWWNs and lun must be set, "
+ description: |-
+ wwids Optional: FC volume world wide identifiers (wwids)
+ Either wwids or combination of targetWWNs and lun must be set,...
items:
type: string
type: array
@@ -10705,7 +10802,7 @@ spec:
secretRef:
description: |-
secretRef is Optional: secretRef is reference to the secret object containing
- sensitive information to pass to the plugi
+ sensitive information to pass to the...
properties:
name:
default: ""
@@ -10726,7 +10823,7 @@ spec:
datasetName:
description: |-
datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
- should be considered as depreca
+ should be considered as...
type: string
datasetUUID:
description: datasetUUID is the UUID of the dataset.
@@ -10736,7 +10833,7 @@ spec:
gcePersistentDisk:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
- kubelet's host machine and then exposed to the po
+ kubelet's host machine and then exposed to the...
properties:
fsType:
description: fsType is filesystem type of the volume
@@ -10765,7 +10862,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated.
+ Deprecated: GitRepo is deprecated.
properties:
directory:
description: |-
@@ -10783,9 +10880,8 @@ spec:
- repository
type: object
glusterfs:
- description: |-
- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: glusterfs represents a Glusterfs mount
+ on the host that shares a pod's lifetime.
properties:
endpoints:
description: |-
@@ -10825,6 +10921,22 @@ spec:
required:
- path
type: object
+ image:
+ description: image represents an OCI object (a container
+ image or artifact) pulled and mounted on the kubelet's
+ host machine.
+ properties:
+ pullPolicy:
+ description: |-
+ Policy for pulling OCI objects. Possible values are:
+ Always: the kubelet always attempts to pull the reference.
+ type: string
+ reference:
+ description: |-
+ Required: Image or artifact reference to be used.
+ Behaves in the same way as pod.spec.containers[*].image.
+ type: string
+ type: object
iscsi:
description: |-
iscsi represents an ISCSI Disk resource that is attached to a
@@ -10850,6 +10962,7 @@ spec:
description: iqn is the target iSCSI Qualified Name.
type: string
iscsiInterface:
+ default: default
description: |-
iscsiInterface is the interface Name that uses an iSCSI transport.
Defaults to 'default' (tcp).
@@ -10941,7 +11054,7 @@ spec:
photonPersistentDisk:
description: photonPersistentDisk represents a PhotonController
persistent disk attached and mounted on kubelets host
- machine
+ machine.
properties:
fsType:
description: |-
@@ -10958,7 +11071,7 @@ spec:
type: object
portworxVolume:
description: portworxVolume represents a portworx volume
- attached and mounted on kubelets host machine
+ attached and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -10988,10 +11101,13 @@ spec:
format: int32
type: integer
sources:
- description: sources is the list of volume projections
+ description: |-
+ sources is the list of volume projections. Each entry in this list
+ handles one source.
items:
- description: Projection that may be projected
- along with other supported volume types
+ description: |-
+ Projection that may be projected along with other supported volume types.
+ Exactly one of these fields must be set.
properties:
clusterTrustBundle:
description: ClusterTrustBundle allows a pod
@@ -11072,7 +11188,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a
path within a volume.
@@ -11145,7 +11261,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -11194,7 +11310,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a
path within a volume.
@@ -11260,7 +11376,7 @@ spec:
type: object
quobyte:
description: quobyte represents a Quobyte mount on the
- host that shares a pod's lifetime
+ host that shares a pod's lifetime.
properties:
group:
description: |-
@@ -11275,12 +11391,12 @@ spec:
registry:
description: |-
registry represents a single or multiple Quobyte Registry services
- specified as a string as host:port pair (multiple ent
+ specified as a string as host:port pair (multiple...
type: string
tenant:
description: |-
tenant owning the given Quobyte volume in the Backend
- Used with dynamically provisioned Quobyte volumes, value is set by
+ Used with dynamically provisioned Quobyte volumes, value is set...
type: string
user:
description: |-
@@ -11296,9 +11412,8 @@ spec:
- volume
type: object
rbd:
- description: |-
- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: rbd represents a Rados Block Device mount
+ on the host that shares a pod's lifetime.
properties:
fsType:
description: fsType is the filesystem type of the
@@ -11310,6 +11425,7 @@ spec:
More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
type: string
keyring:
+ default: /etc/ceph/keyring
description: |-
keyring is the path to key ring for RBDUser.
Default is /etc/ceph/keyring.
@@ -11324,6 +11440,7 @@ spec:
type: array
x-kubernetes-list-type: atomic
pool:
+ default: rbd
description: |-
pool is the rados pool name.
Default is rbd.
@@ -11351,6 +11468,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
user:
+ default: admin
description: |-
user is the rados user name.
Default is admin.
@@ -11365,6 +11483,7 @@ spec:
volume attached and mounted on Kubernetes nodes.
properties:
fsType:
+ default: xfs
description: |-
fsType is the filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -11402,6 +11521,7 @@ spec:
communication with Gateway, default false
type: boolean
storageMode:
+ default: ThinProvisioned
description: storageMode indicates whether the storage
for a volume should be ThickProvisioned or ThinProvisioned.
type: string
@@ -11436,7 +11556,7 @@ spec:
items:
description: |-
items If unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a path within
a volume.
@@ -11511,7 +11631,7 @@ spec:
type: object
vsphereVolume:
description: vsphereVolume represents a vSphere volume
- attached and mounted on kubelets host machine
+ attached and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -11616,10 +11736,7 @@ spec:
- Unknown
type: string
type:
- description: |-
- type of condition in CamelCase or in foo.example.com/CamelCase.
- ---
- Many .condition.
+ description: type of condition in CamelCase or in foo.example.com/CamelCase.
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
@@ -11790,8 +11907,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's value.
@@ -11890,7 +12006,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of a set
- of ConfigMaps
+ of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -11909,8 +12025,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to each
- key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name of
+ each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -11956,6 +12072,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for a request
+ in the referenced claim.
+ type: string
required:
- name
type: object
@@ -11997,7 +12117,7 @@ spec:
activeDeadlineSeconds:
description: |-
Specifies the duration in seconds relative to the startTime that the job
- may be continuously active before the system tr
+ may be continuously active before the system...
format: int64
type: integer
backoffLimit:
@@ -12180,8 +12300,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's value.
@@ -12280,7 +12399,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of a set
- of ConfigMaps
+ of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -12299,8 +12418,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to each
- key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name of
+ each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -12554,8 +12673,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -12655,7 +12773,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -12674,8 +12792,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -12737,6 +12855,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -13064,8 +13186,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -13165,7 +13286,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -13184,8 +13305,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -13247,6 +13368,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -13592,8 +13717,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -13696,7 +13820,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -13715,8 +13839,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the
+ name of each environment variable. Must be
+ a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -13782,6 +13907,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -14052,6 +14181,10 @@ spec:
Defaults to user specified in image metadata if unspecified.
format: int64
type: integer
+ seLinuxChangePolicy:
+ description: seLinuxChangePolicy defines how the container's
+ SELinux label is applied to all volumes used by the Pod.
+ type: string
seLinuxOptions:
description: The SELinux context to be applied to all containers.
properties:
@@ -14090,13 +14223,18 @@ spec:
type: object
supplementalGroups:
description: |-
- A list of groups applied to the first process run in each container, in addition
- to the container's primary GID, the fsG
+ A list of groups applied to the first process run in each container, in
+ addition to the container's primary GID and...
items:
format: int64
type: integer
type: array
x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ description: |-
+ Defines how supplemental groups of the first container processes are calculated.
+ Valid values are "Merge" and "Strict".
+ type: string
sysctls:
description: Sysctls hold a list of namespaced sysctls used
for the pod.
@@ -14153,8 +14291,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's value.
@@ -14253,7 +14390,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of a set
- of ConfigMaps
+ of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -14272,8 +14409,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to each
- key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name of
+ each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -14334,6 +14471,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for a request
+ in the referenced claim.
+ type: string
required:
- name
type: object
@@ -14502,7 +14643,7 @@ spec:
awsElasticBlockStore:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
- kubelet's host machine and then exposed to th
+ kubelet's host machine and then exposed to...
properties:
fsType:
description: fsType is the filesystem type of the volume
@@ -14544,6 +14685,7 @@ spec:
blob storage
type: string
fsType:
+ default: ext4
description: |-
fsType is Filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -14552,9 +14694,10 @@ spec:
kind:
description: 'kind expected values are Shared: multiple
blob disks per storage account Dedicated: single
- blob disk per storage accoun'
+ blob disk per storage...'
type: string
readOnly:
+ default: false
description: |-
readOnly Defaults to false (read/write). ReadOnly here will force
the ReadOnly setting in VolumeMounts.
@@ -14585,7 +14728,7 @@ spec:
type: object
cephfs:
description: cephFS represents a Ceph FS mount on the host
- that shares a pod's lifetime
+ that shares a pod's lifetime.
properties:
monitors:
description: |-
@@ -14633,7 +14776,7 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
- More info: https://examples.k8s.
+ Deprecated: Cinder is deprecated.
properties:
fsType:
description: |-
@@ -14679,7 +14822,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a path within a
volume.
@@ -14719,7 +14862,7 @@ spec:
csi:
description: csi (Container Storage Interface) represents
ephemeral storage that is handled by certain external
- CSI drivers (Beta fea
+ CSI drivers.
properties:
driver:
description: driver is the name of the CSI driver that
@@ -14731,7 +14874,7 @@ spec:
nodePublishSecretRef:
description: |-
nodePublishSecretRef is a reference to the secret object containing
- sensitive information to pass to the CSI driver to c
+ sensitive information to pass to the CSI driver to...
properties:
name:
default: ""
@@ -14793,7 +14936,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -15042,9 +15185,9 @@ spec:
type: array
x-kubernetes-list-type: atomic
wwids:
- description: "wwids Optional: FC volume world wide identifiers
- (wwids)\nEither wwids or combination of targetWWNs
- and lun must be set, "
+ description: |-
+ wwids Optional: FC volume world wide identifiers (wwids)
+ Either wwids or combination of targetWWNs and lun must be set,...
items:
type: string
type: array
@@ -15079,7 +15222,7 @@ spec:
secretRef:
description: |-
secretRef is Optional: secretRef is reference to the secret object containing
- sensitive information to pass to the plugi
+ sensitive information to pass to the...
properties:
name:
default: ""
@@ -15100,7 +15243,7 @@ spec:
datasetName:
description: |-
datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
- should be considered as depreca
+ should be considered as...
type: string
datasetUUID:
description: datasetUUID is the UUID of the dataset.
@@ -15110,7 +15253,7 @@ spec:
gcePersistentDisk:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
- kubelet's host machine and then exposed to the po
+ kubelet's host machine and then exposed to the...
properties:
fsType:
description: fsType is filesystem type of the volume
@@ -15139,7 +15282,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated.
+ Deprecated: GitRepo is deprecated.
properties:
directory:
description: |-
@@ -15157,9 +15300,8 @@ spec:
- repository
type: object
glusterfs:
- description: |-
- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: glusterfs represents a Glusterfs mount on the
+ host that shares a pod's lifetime.
properties:
endpoints:
description: |-
@@ -15199,6 +15341,22 @@ spec:
required:
- path
type: object
+ image:
+ description: image represents an OCI object (a container
+ image or artifact) pulled and mounted on the kubelet's
+ host machine.
+ properties:
+ pullPolicy:
+ description: |-
+ Policy for pulling OCI objects. Possible values are:
+ Always: the kubelet always attempts to pull the reference.
+ type: string
+ reference:
+ description: |-
+ Required: Image or artifact reference to be used.
+ Behaves in the same way as pod.spec.containers[*].image.
+ type: string
+ type: object
iscsi:
description: |-
iscsi represents an ISCSI Disk resource that is attached to a
@@ -15224,6 +15382,7 @@ spec:
description: iqn is the target iSCSI Qualified Name.
type: string
iscsiInterface:
+ default: default
description: |-
iscsiInterface is the interface Name that uses an iSCSI transport.
Defaults to 'default' (tcp).
@@ -15314,7 +15473,7 @@ spec:
photonPersistentDisk:
description: photonPersistentDisk represents a PhotonController
persistent disk attached and mounted on kubelets host
- machine
+ machine.
properties:
fsType:
description: |-
@@ -15331,7 +15490,7 @@ spec:
type: object
portworxVolume:
description: portworxVolume represents a portworx volume
- attached and mounted on kubelets host machine
+ attached and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -15361,10 +15520,13 @@ spec:
format: int32
type: integer
sources:
- description: sources is the list of volume projections
+ description: |-
+ sources is the list of volume projections. Each entry in this list
+ handles one source.
items:
- description: Projection that may be projected along
- with other supported volume types
+ description: |-
+ Projection that may be projected along with other supported volume types.
+ Exactly one of these fields must be set.
properties:
clusterTrustBundle:
description: ClusterTrustBundle allows a pod to
@@ -15444,7 +15606,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a path
within a volume.
@@ -15515,7 +15677,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -15564,7 +15726,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a path
within a volume.
@@ -15630,7 +15792,7 @@ spec:
type: object
quobyte:
description: quobyte represents a Quobyte mount on the host
- that shares a pod's lifetime
+ that shares a pod's lifetime.
properties:
group:
description: |-
@@ -15645,12 +15807,12 @@ spec:
registry:
description: |-
registry represents a single or multiple Quobyte Registry services
- specified as a string as host:port pair (multiple ent
+ specified as a string as host:port pair (multiple...
type: string
tenant:
description: |-
tenant owning the given Quobyte volume in the Backend
- Used with dynamically provisioned Quobyte volumes, value is set by
+ Used with dynamically provisioned Quobyte volumes, value is set...
type: string
user:
description: |-
@@ -15666,9 +15828,8 @@ spec:
- volume
type: object
rbd:
- description: |-
- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: rbd represents a Rados Block Device mount on
+ the host that shares a pod's lifetime.
properties:
fsType:
description: fsType is the filesystem type of the volume
@@ -15680,6 +15841,7 @@ spec:
More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
type: string
keyring:
+ default: /etc/ceph/keyring
description: |-
keyring is the path to key ring for RBDUser.
Default is /etc/ceph/keyring.
@@ -15694,6 +15856,7 @@ spec:
type: array
x-kubernetes-list-type: atomic
pool:
+ default: rbd
description: |-
pool is the rados pool name.
Default is rbd.
@@ -15721,6 +15884,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
user:
+ default: admin
description: |-
user is the rados user name.
Default is admin.
@@ -15735,6 +15899,7 @@ spec:
attached and mounted on Kubernetes nodes.
properties:
fsType:
+ default: xfs
description: |-
fsType is the filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -15772,6 +15937,7 @@ spec:
with Gateway, default false
type: boolean
storageMode:
+ default: ThinProvisioned
description: storageMode indicates whether the storage
for a volume should be ThickProvisioned or ThinProvisioned.
type: string
@@ -15806,7 +15972,7 @@ spec:
items:
description: |-
items If unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a path within a
volume.
@@ -15881,7 +16047,7 @@ spec:
type: object
vsphereVolume:
description: vsphereVolume represents a vSphere volume attached
- and mounted on kubelets host machine
+ and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -15997,8 +16163,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -16098,7 +16263,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -16117,8 +16282,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -16165,6 +16330,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -16206,7 +16375,7 @@ spec:
activeDeadlineSeconds:
description: |-
Specifies the duration in seconds relative to the startTime that the job
- may be continuously active before the system tr
+ may be continuously active before the system...
format: int64
type: integer
backoffLimit:
@@ -16392,8 +16561,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -16493,7 +16661,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -16512,8 +16680,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -16771,8 +16939,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -16875,7 +17042,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -16894,8 +17061,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the
+ name of each environment variable. Must be
+ a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -16957,6 +17125,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -17289,8 +17461,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -17393,7 +17564,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -17412,8 +17583,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the
+ name of each environment variable. Must be
+ a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -17475,6 +17647,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -17829,8 +18005,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment
@@ -17935,7 +18110,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source
- of a set of ConfigMaps
+ of a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -17954,9 +18129,9 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend
- to each key in the ConfigMap. Must be
- a C_IDENTIFIER.
+ description: Optional text to prepend to
+ the name of each environment variable.
+ Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -18022,6 +18197,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen
+ for a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -18300,6 +18479,11 @@ spec:
Defaults to user specified in image metadata if unspecified.
format: int64
type: integer
+ seLinuxChangePolicy:
+ description: seLinuxChangePolicy defines how the container's
+ SELinux label is applied to all volumes used by the
+ Pod.
+ type: string
seLinuxOptions:
description: The SELinux context to be applied to all
containers.
@@ -18339,13 +18523,18 @@ spec:
type: object
supplementalGroups:
description: |-
- A list of groups applied to the first process run in each container, in addition
- to the container's primary GID, the fsG
+ A list of groups applied to the first process run in each container, in
+ addition to the container's primary GID and...
items:
format: int64
type: integer
type: array
x-kubernetes-list-type: atomic
+ supplementalGroupsPolicy:
+ description: |-
+ Defines how supplemental groups of the first container processes are calculated.
+ Valid values are "Merge" and "Strict".
+ type: string
sysctls:
description: Sysctls hold a list of namespaced sysctls
used for the pod.
@@ -18403,8 +18592,7 @@ spec:
value:
description: |-
Variable references $(VAR_NAME) are expanded
- using the previously defined environment variables in the container and
- any
+ using the previously defined environment variables in the container and...
type: string
valueFrom:
description: Source for the environment variable's
@@ -18504,7 +18692,7 @@ spec:
envFrom:
items:
description: EnvFromSource represents the source of
- a set of ConfigMaps
+ a set of ConfigMaps or Secrets
properties:
configMapRef:
description: The ConfigMap to select from
@@ -18523,8 +18711,8 @@ spec:
type: object
x-kubernetes-map-type: atomic
prefix:
- description: An optional identifier to prepend to
- each key in the ConfigMap. Must be a C_IDENTIFIER.
+ description: Optional text to prepend to the name
+ of each environment variable. Must be a C_IDENTIFIER.
type: string
secretRef:
description: The Secret to select from
@@ -18586,6 +18774,10 @@ spec:
Name must match the name of one entry in pod.spec.resourceClaims of
the Pod where this field is used.
type: string
+ request:
+ description: Request is the name chosen for
+ a request in the referenced claim.
+ type: string
required:
- name
type: object
@@ -18754,7 +18946,7 @@ spec:
awsElasticBlockStore:
description: |-
awsElasticBlockStore represents an AWS Disk resource that is attached to a
- kubelet's host machine and then exposed to th
+ kubelet's host machine and then exposed to...
properties:
fsType:
description: fsType is the filesystem type of the
@@ -18796,6 +18988,7 @@ spec:
the blob storage
type: string
fsType:
+ default: ext4
description: |-
fsType is Filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -18804,9 +18997,10 @@ spec:
kind:
description: 'kind expected values are Shared: multiple
blob disks per storage account Dedicated: single
- blob disk per storage accoun'
+ blob disk per storage...'
type: string
readOnly:
+ default: false
description: |-
readOnly Defaults to false (read/write). ReadOnly here will force
the ReadOnly setting in VolumeMounts.
@@ -18837,7 +19031,7 @@ spec:
type: object
cephfs:
description: cephFS represents a Ceph FS mount on the
- host that shares a pod's lifetime
+ host that shares a pod's lifetime.
properties:
monitors:
description: |-
@@ -18886,7 +19080,7 @@ spec:
cinder:
description: |-
cinder represents a cinder volume attached and mounted on kubelets host machine.
- More info: https://examples.k8s.
+ Deprecated: Cinder is deprecated.
properties:
fsType:
description: |-
@@ -18932,7 +19126,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a path within
a volume.
@@ -18972,7 +19166,7 @@ spec:
csi:
description: csi (Container Storage Interface) represents
ephemeral storage that is handled by certain external
- CSI drivers (Beta fea
+ CSI drivers.
properties:
driver:
description: driver is the name of the CSI driver
@@ -18985,7 +19179,7 @@ spec:
nodePublishSecretRef:
description: |-
nodePublishSecretRef is a reference to the secret object containing
- sensitive information to pass to the CSI driver to c
+ sensitive information to pass to the CSI driver to...
properties:
name:
default: ""
@@ -19049,7 +19243,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -19301,9 +19495,9 @@ spec:
type: array
x-kubernetes-list-type: atomic
wwids:
- description: "wwids Optional: FC volume world wide
- identifiers (wwids)\nEither wwids or combination
- of targetWWNs and lun must be set, "
+ description: |-
+ wwids Optional: FC volume world wide identifiers (wwids)
+ Either wwids or combination of targetWWNs and lun must be set,...
items:
type: string
type: array
@@ -19338,7 +19532,7 @@ spec:
secretRef:
description: |-
secretRef is Optional: secretRef is reference to the secret object containing
- sensitive information to pass to the plugi
+ sensitive information to pass to the...
properties:
name:
default: ""
@@ -19359,7 +19553,7 @@ spec:
datasetName:
description: |-
datasetName is Name of the dataset stored as metadata -> name on the dataset for Flocker
- should be considered as depreca
+ should be considered as...
type: string
datasetUUID:
description: datasetUUID is the UUID of the dataset.
@@ -19369,7 +19563,7 @@ spec:
gcePersistentDisk:
description: |-
gcePersistentDisk represents a GCE Disk resource that is attached to a
- kubelet's host machine and then exposed to the po
+ kubelet's host machine and then exposed to the...
properties:
fsType:
description: fsType is filesystem type of the volume
@@ -19398,7 +19592,7 @@ spec:
gitRepo:
description: |-
gitRepo represents a git repository at a particular revision.
- DEPRECATED: GitRepo is deprecated.
+ Deprecated: GitRepo is deprecated.
properties:
directory:
description: |-
@@ -19416,9 +19610,8 @@ spec:
- repository
type: object
glusterfs:
- description: |-
- glusterfs represents a Glusterfs mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: glusterfs represents a Glusterfs mount
+ on the host that shares a pod's lifetime.
properties:
endpoints:
description: |-
@@ -19458,6 +19651,22 @@ spec:
required:
- path
type: object
+ image:
+ description: image represents an OCI object (a container
+ image or artifact) pulled and mounted on the kubelet's
+ host machine.
+ properties:
+ pullPolicy:
+ description: |-
+ Policy for pulling OCI objects. Possible values are:
+ Always: the kubelet always attempts to pull the reference.
+ type: string
+ reference:
+ description: |-
+ Required: Image or artifact reference to be used.
+ Behaves in the same way as pod.spec.containers[*].image.
+ type: string
+ type: object
iscsi:
description: |-
iscsi represents an ISCSI Disk resource that is attached to a
@@ -19483,6 +19692,7 @@ spec:
description: iqn is the target iSCSI Qualified Name.
type: string
iscsiInterface:
+ default: default
description: |-
iscsiInterface is the interface Name that uses an iSCSI transport.
Defaults to 'default' (tcp).
@@ -19574,7 +19784,7 @@ spec:
photonPersistentDisk:
description: photonPersistentDisk represents a PhotonController
persistent disk attached and mounted on kubelets host
- machine
+ machine.
properties:
fsType:
description: |-
@@ -19591,7 +19801,7 @@ spec:
type: object
portworxVolume:
description: portworxVolume represents a portworx volume
- attached and mounted on kubelets host machine
+ attached and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -19621,10 +19831,13 @@ spec:
format: int32
type: integer
sources:
- description: sources is the list of volume projections
+ description: |-
+ sources is the list of volume projections. Each entry in this list
+ handles one source.
items:
- description: Projection that may be projected
- along with other supported volume types
+ description: |-
+ Projection that may be projected along with other supported volume types.
+ Exactly one of these fields must be set.
properties:
clusterTrustBundle:
description: ClusterTrustBundle allows a pod
@@ -19705,7 +19918,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- ConfigMap will be projected into the volum
+ ConfigMap will be projected into the...
items:
description: Maps a string key to a
path within a volume.
@@ -19778,7 +19991,7 @@ spec:
mode:
description: |-
Optional: mode bits used to set permissions on this file, must be an octal value
- between 0000 and 0777 or a decimal valu
+ between 0000 and 0777 or a decimal...
format: int32
type: integer
path:
@@ -19827,7 +20040,7 @@ spec:
items:
description: |-
items if unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a
path within a volume.
@@ -19893,7 +20106,7 @@ spec:
type: object
quobyte:
description: quobyte represents a Quobyte mount on the
- host that shares a pod's lifetime
+ host that shares a pod's lifetime.
properties:
group:
description: |-
@@ -19908,12 +20121,12 @@ spec:
registry:
description: |-
registry represents a single or multiple Quobyte Registry services
- specified as a string as host:port pair (multiple ent
+ specified as a string as host:port pair (multiple...
type: string
tenant:
description: |-
tenant owning the given Quobyte volume in the Backend
- Used with dynamically provisioned Quobyte volumes, value is set by
+ Used with dynamically provisioned Quobyte volumes, value is set...
type: string
user:
description: |-
@@ -19929,9 +20142,8 @@ spec:
- volume
type: object
rbd:
- description: |-
- rbd represents a Rados Block Device mount on the host that shares a pod's lifetime.
- More info: https://examples.k8s.
+ description: rbd represents a Rados Block Device mount
+ on the host that shares a pod's lifetime.
properties:
fsType:
description: fsType is the filesystem type of the
@@ -19943,6 +20155,7 @@ spec:
More info: https://examples.k8s.io/volumes/rbd/README.md#how-to-use-it
type: string
keyring:
+ default: /etc/ceph/keyring
description: |-
keyring is the path to key ring for RBDUser.
Default is /etc/ceph/keyring.
@@ -19957,6 +20170,7 @@ spec:
type: array
x-kubernetes-list-type: atomic
pool:
+ default: rbd
description: |-
pool is the rados pool name.
Default is rbd.
@@ -19984,6 +20198,7 @@ spec:
type: object
x-kubernetes-map-type: atomic
user:
+ default: admin
description: |-
user is the rados user name.
Default is admin.
@@ -19998,6 +20213,7 @@ spec:
volume attached and mounted on Kubernetes nodes.
properties:
fsType:
+ default: xfs
description: |-
fsType is the filesystem type to mount.
Must be a filesystem type supported by the host operating system.
@@ -20035,6 +20251,7 @@ spec:
communication with Gateway, default false
type: boolean
storageMode:
+ default: ThinProvisioned
description: storageMode indicates whether the storage
for a volume should be ThickProvisioned or ThinProvisioned.
type: string
@@ -20069,7 +20286,7 @@ spec:
items:
description: |-
items If unspecified, each key-value pair in the Data field of the referenced
- Secret will be projected into the volume a
+ Secret will be projected into the volume...
items:
description: Maps a string key to a path within
a volume.
@@ -20144,7 +20361,7 @@ spec:
type: object
vsphereVolume:
description: vsphereVolume represents a vSphere volume
- attached and mounted on kubelets host machine
+ attached and mounted on kubelets host machine.
properties:
fsType:
description: |-
@@ -20218,10 +20435,7 @@ spec:
- Unknown
type: string
type:
- description: |-
- type of condition in CamelCase or in foo.example.com/CamelCase.
- ---
- Many .condition.
+ description: type of condition in CamelCase or in foo.example.com/CamelCase.
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
@@ -20371,9 +20585,12 @@ metadata:
name: feast-operator-manager-role
rules:
- apiGroups:
- - apps
+ - ""
resources:
- - deployments
+ - configmaps
+ - persistentvolumeclaims
+ - serviceaccounts
+ - services
verbs:
- create
- delete
@@ -20382,65 +20599,62 @@ rules:
- update
- watch
- apiGroups:
- - authentication.k8s.io
+ - ""
resources:
- - tokenreviews
+ - namespaces
+ - pods
+ - secrets
+ verbs:
+ - get
+ - list
+ - watch
+- apiGroups:
+ - ""
+ resources:
+ - pods/exec
verbs:
- create
- apiGroups:
- - autoscaling
+ - apps
resources:
- - horizontalpodautoscalers
+ - deployments
verbs:
- create
- delete
- get
- list
- - patch
- update
- watch
- apiGroups:
- - batch
+ - authentication.k8s.io
resources:
- - cronjobs
+ - tokenreviews
verbs:
- create
- - delete
- - get
- - list
- - patch
- - update
- - watch
- apiGroups:
- - ""
+ - autoscaling
resources:
- - configmaps
- - persistentvolumeclaims
- - serviceaccounts
- - services
+ - horizontalpodautoscalers
verbs:
- create
- delete
- get
- list
+ - patch
- update
- watch
- apiGroups:
- - ""
+ - batch
resources:
- - namespaces
- - pods
- - secrets
+ - cronjobs
verbs:
+ - create
+ - delete
- get
- list
+ - patch
+ - update
- watch
-- apiGroups:
- - ""
- resources:
- - pods/exec
- verbs:
- - create
- apiGroups:
- feast.dev
resources:
diff --git a/infra/feast-operator/docs/api/markdown/ref.md b/infra/feast-operator/docs/api/markdown/ref.md
index df3e3456967..287072273a3 100644
--- a/infra/feast-operator/docs/api/markdown/ref.md
+++ b/infra/feast-operator/docs/api/markdown/ref.md
@@ -150,7 +150,6 @@ time for any reason. Missed jobs executions will be counted as failed ones. |
| `concurrencyPolicy` _[ConcurrencyPolicy](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#concurrencypolicy-v1-batch)_ | Specifies how to treat concurrent executions of a Job.
Valid values are:
-
- "Allow" (default): allows CronJobs to run concurrently;
- "Forbid": forbids concurrent runs, skipping next run if previous run hasn't finished yet;
- "Replace": cancels currently running job and replaces it with a new one |
@@ -362,7 +361,6 @@ represented by the jobs's .status.failed field, is incremented and it is
checked against the backoffLimit. This field cannot be used in combination
with restartPolicy=OnFailure.
-
This field is beta-level. It can be used when the `JobPodFailurePolicy`
feature gate is enabled (enabled by default). |
| `backoffLimit` _integer_ | Specifies the number of retries before marking this job failed. |
@@ -394,12 +392,10 @@ the Job becomes eligible to be deleted immediately after it finishes. |
| `completionMode` _[CompletionMode](https://kubernetes.io/docs/reference/generated/kubernetes-api/v1.30/#completionmode-v1-batch)_ | completionMode specifies how Pod completions are tracked. It can be
`NonIndexed` (default) or `Indexed`.
-
`NonIndexed` means that the Job is considered complete when there have
been .spec.completions successfully completed Pods. Each Pod completion is
homologous to each other.
-
`Indexed` means that the Pods of a
Job get an associated completion index from 0 to (.spec.completions - 1),
available in the annotation batch.kubernetes.io/job-completion-index.
@@ -411,7 +407,6 @@ In addition, The Pod name takes the form
`$(job-name)-$(index)-$(random-string)`,
the Pod hostname takes the form `$(job-name)-$(index)`.
-
More completion modes can be added in the future.
If the Job controller observes a mode that it doesn't recognize, which
is possible during upgrades due to version skew, the controller
@@ -430,7 +425,6 @@ Possible values are:
- Failed means to wait until a previously created Pod is fully terminated (has phase
Failed or Succeeded) before creating a replacement Pod.
-
When using podFailurePolicy, Failed is the the only allowed value.
TerminatingOrFailed and Failed are allowed values when podFailurePolicy is not in use.
This is an beta field. To use this, enable the JobPodReplacementPolicy feature toggle.
diff --git a/infra/feast-operator/go.mod b/infra/feast-operator/go.mod
index 7c60279b27b..c243e03d71b 100644
--- a/infra/feast-operator/go.mod
+++ b/infra/feast-operator/go.mod
@@ -1,34 +1,36 @@
module github.com/feast-dev/feast/infra/feast-operator
-go 1.22.9
+go 1.24.12
require (
- github.com/onsi/ginkgo/v2 v2.17.2
- github.com/onsi/gomega v1.33.1
+ github.com/onsi/ginkgo/v2 v2.22.2
+ github.com/onsi/gomega v1.36.2
github.com/openshift/api v0.0.0-20240912201240-0a8800162826 // release-4.17
gopkg.in/yaml.v3 v3.0.1
- k8s.io/api v0.30.2
- k8s.io/apimachinery v0.30.2
- k8s.io/client-go v0.30.2
- sigs.k8s.io/controller-runtime v0.18.4
+ k8s.io/api v0.33.0
+ k8s.io/apimachinery v0.33.0
+ k8s.io/client-go v0.33.0
+ sigs.k8s.io/controller-runtime v0.21.0
)
require (
github.com/prometheus-operator/prometheus-operator/pkg/client v0.75.0
- k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0
+ k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738
)
require (
- github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df // indirect
+ cel.dev/expr v0.19.1 // indirect
+ github.com/antlr4-go/antlr/v4 v4.13.0 // indirect
github.com/beorn7/perks v1.0.1 // indirect
github.com/blang/semver/v4 v4.0.0 // indirect
- github.com/cenkalti/backoff/v4 v4.2.1 // indirect
- github.com/cespare/xxhash/v2 v2.2.0 // indirect
+ github.com/cenkalti/backoff/v4 v4.3.0 // indirect
+ github.com/cespare/xxhash/v2 v2.3.0 // indirect
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect
github.com/emicklei/go-restful/v3 v3.12.1 // indirect
- github.com/evanphx/json-patch/v5 v5.9.0 // indirect
- github.com/felixge/httpsnoop v1.0.3 // indirect
+ github.com/evanphx/json-patch/v5 v5.9.11 // indirect
+ github.com/felixge/httpsnoop v1.0.4 // indirect
github.com/fsnotify/fsnotify v1.7.0 // indirect
+ github.com/fxamacker/cbor/v2 v2.7.0 // indirect
github.com/go-logr/logr v1.4.2 // indirect
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-logr/zapr v1.3.0 // indirect
@@ -37,64 +39,65 @@ require (
github.com/go-openapi/swag v0.23.0 // indirect
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
github.com/gogo/protobuf v1.3.2 // indirect
- github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect
- github.com/golang/protobuf v1.5.4 // indirect
- github.com/google/cel-go v0.17.8 // indirect
- github.com/google/gnostic-models v0.6.8 // indirect
- github.com/google/go-cmp v0.6.0 // indirect
- github.com/google/gofuzz v1.2.0 // indirect
- github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 // indirect
+ github.com/google/btree v1.1.3 // indirect
+ github.com/google/cel-go v0.23.2 // indirect
+ github.com/google/gnostic-models v0.6.9 // indirect
+ github.com/google/go-cmp v0.7.0 // indirect
+ github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad // indirect
github.com/google/uuid v1.6.0 // indirect
- github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 // indirect
- github.com/imdario/mergo v0.3.6 // indirect
+ github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 // indirect
+ github.com/inconshreveable/mousetrap v1.1.0 // indirect
github.com/josharian/intern v1.0.0 // indirect
github.com/json-iterator/go v1.1.12 // indirect
github.com/mailru/easyjson v0.7.7 // indirect
- github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 // indirect
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect
github.com/modern-go/reflect2 v1.0.2 // indirect
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 // indirect
github.com/pkg/errors v0.9.1 // indirect
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.75.0 // indirect
- github.com/prometheus/client_golang v1.18.0 // indirect
- github.com/prometheus/client_model v0.5.0 // indirect
- github.com/prometheus/common v0.45.0 // indirect
- github.com/prometheus/procfs v0.12.0 // indirect
+ github.com/prometheus/client_golang v1.22.0 // indirect
+ github.com/prometheus/client_model v0.6.1 // indirect
+ github.com/prometheus/common v0.62.0 // indirect
+ github.com/prometheus/procfs v0.15.1 // indirect
+ github.com/spf13/cobra v1.8.1 // indirect
github.com/spf13/pflag v1.0.5 // indirect
- github.com/stoewer/go-strcase v1.2.0 // indirect
- go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0 // indirect
- go.opentelemetry.io/otel v1.19.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 // indirect
- go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 // indirect
- go.opentelemetry.io/otel/metric v1.19.0 // indirect
- go.opentelemetry.io/otel/sdk v1.19.0 // indirect
- go.opentelemetry.io/otel/trace v1.19.0 // indirect
- go.opentelemetry.io/proto/otlp v1.0.0 // indirect
+ github.com/stoewer/go-strcase v1.3.0 // indirect
+ github.com/x448/float16 v0.8.4 // indirect
+ go.opentelemetry.io/auto/sdk v1.1.0 // indirect
+ go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 // indirect
+ go.opentelemetry.io/otel v1.33.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 // indirect
+ go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 // indirect
+ go.opentelemetry.io/otel/metric v1.33.0 // indirect
+ go.opentelemetry.io/otel/sdk v1.33.0 // indirect
+ go.opentelemetry.io/otel/trace v1.33.0 // indirect
+ go.opentelemetry.io/proto/otlp v1.4.0 // indirect
go.uber.org/multierr v1.11.0 // indirect
- go.uber.org/zap v1.26.0 // indirect
- golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e // indirect
- golang.org/x/net v0.33.0 // indirect
- golang.org/x/oauth2 v0.21.0 // indirect
- golang.org/x/sync v0.10.0 // indirect
- golang.org/x/sys v0.28.0 // indirect
- golang.org/x/term v0.27.0 // indirect
- golang.org/x/text v0.21.0 // indirect
- golang.org/x/time v0.5.0 // indirect
- golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d // indirect
+ go.uber.org/zap v1.27.0 // indirect
+ golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 // indirect
+ golang.org/x/net v0.38.0 // indirect
+ golang.org/x/oauth2 v0.27.0 // indirect
+ golang.org/x/sync v0.12.0 // indirect
+ golang.org/x/sys v0.31.0 // indirect
+ golang.org/x/term v0.30.0 // indirect
+ golang.org/x/text v0.23.0 // indirect
+ golang.org/x/time v0.9.0 // indirect
+ golang.org/x/tools v0.28.0 // indirect
gomodules.xyz/jsonpatch/v2 v2.4.0 // indirect
- google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e // indirect
- google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d // indirect
- google.golang.org/grpc v1.58.3 // indirect
- google.golang.org/protobuf v1.34.2 // indirect
+ google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 // indirect
+ google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 // indirect
+ google.golang.org/grpc v1.68.1 // indirect
+ google.golang.org/protobuf v1.36.5 // indirect
+ gopkg.in/evanphx/json-patch.v4 v4.12.0 // indirect
gopkg.in/inf.v0 v0.9.1 // indirect
- gopkg.in/yaml.v2 v2.4.0 // indirect
- k8s.io/apiextensions-apiserver v0.30.2 // indirect
- k8s.io/apiserver v0.30.2 // indirect
- k8s.io/component-base v0.30.2 // indirect
+ k8s.io/apiextensions-apiserver v0.33.0 // indirect
+ k8s.io/apiserver v0.33.0 // indirect
+ k8s.io/component-base v0.33.0 // indirect
k8s.io/klog/v2 v2.130.1 // indirect
- k8s.io/kube-openapi v0.0.0-20240620174524-b456828f718b // indirect
- sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0 // indirect
- sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd // indirect
- sigs.k8s.io/structured-merge-diff/v4 v4.4.1 // indirect
+ k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff // indirect
+ sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 // indirect
+ sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 // indirect
+ sigs.k8s.io/randfill v1.0.0 // indirect
+ sigs.k8s.io/structured-merge-diff/v4 v4.6.0 // indirect
sigs.k8s.io/yaml v1.4.0 // indirect
)
diff --git a/infra/feast-operator/go.sum b/infra/feast-operator/go.sum
index a95f53739b5..47e16adc5e2 100644
--- a/infra/feast-operator/go.sum
+++ b/infra/feast-operator/go.sum
@@ -1,13 +1,16 @@
-github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df h1:7RFfzj4SSt6nnvCPbCqijJi1nWCd+TqAT3bYCStRC18=
-github.com/antlr/antlr4/runtime/Go/antlr/v4 v4.0.0-20230305170008-8188dc5388df/go.mod h1:pSwJ0fSY5KhvocuWSx4fz3BA8OrA1bQn+K1Eli3BRwM=
+cel.dev/expr v0.19.1 h1:NciYrtDRIR0lNCnH1LFJegdjspNx9fI59O7TWcua/W4=
+cel.dev/expr v0.19.1/go.mod h1:MrpN08Q+lEBs+bGYdLxxHkZoUSsCp0nSKTs0nTymJgw=
+github.com/antlr4-go/antlr/v4 v4.13.0 h1:lxCg3LAv+EUK6t1i0y1V6/SLeUi0eKEKdhQAlS8TVTI=
+github.com/antlr4-go/antlr/v4 v4.13.0/go.mod h1:pfChB/xh/Unjila75QW7+VU4TSnWnnk9UTnmpPaOR2g=
github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM=
github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw=
github.com/blang/semver/v4 v4.0.0 h1:1PFHFE6yCCTv8C1TeyNNarDzntLi7wMI5i/pzqYIsAM=
github.com/blang/semver/v4 v4.0.0/go.mod h1:IbckMUScFkM3pff0VJDNKRiT6TG/YpiHIM2yvyW5YoQ=
-github.com/cenkalti/backoff/v4 v4.2.1 h1:y4OZtCnogmCPw98Zjyt5a6+QwPLGkiQsYW5oUqylYbM=
-github.com/cenkalti/backoff/v4 v4.2.1/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
-github.com/cespare/xxhash/v2 v2.2.0 h1:DC2CZ1Ep5Y4k3ZQ899DldepgrayRUGE6BBZ/cd9Cj44=
-github.com/cespare/xxhash/v2 v2.2.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cenkalti/backoff/v4 v4.3.0 h1:MyRJ/UdXutAwSAT+s3wNd7MfTIcy71VQueUuFK343L8=
+github.com/cenkalti/backoff/v4 v4.3.0/go.mod h1:Y3VNntkOUPxTVeUxJ/G5vcM//AlwfmyYozVcomhLiZE=
+github.com/cespare/xxhash/v2 v2.3.0 h1:UL815xU9SqsFlibzuggzjXhog7bL6oX9BbNZnL2UFvs=
+github.com/cespare/xxhash/v2 v2.3.0/go.mod h1:VGX0DQ3Q6kWi7AoAeZDth3/j3BFtOZR5XLFGgcrjCOs=
+github.com/cpuguy83/go-md2man/v2 v2.0.4/go.mod h1:tgQtvFlXSQOSOSIRvRPT7W67SCa46tRHOmNcaadrF8o=
github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc h1:U9qPSI2PIWSS1VwoXQT9A3Wy9MM3WgvqSxFWenqJduM=
@@ -16,12 +19,14 @@ github.com/emicklei/go-restful/v3 v3.12.1 h1:PJMDIM/ak7btuL8Ex0iYET9hxM3CI2sjZtz
github.com/emicklei/go-restful/v3 v3.12.1/go.mod h1:6n3XBCmQQb25CM2LCACGz8ukIrRry+4bhvbpWn3mrbc=
github.com/evanphx/json-patch v5.9.0+incompatible h1:fBXyNpNMuTTDdquAq/uisOr2lShz4oaXpDTX2bLe7ls=
github.com/evanphx/json-patch v5.9.0+incompatible/go.mod h1:50XU6AFN0ol/bzJsmQLiYLvXMP4fmwYFNcr97nuDLSk=
-github.com/evanphx/json-patch/v5 v5.9.0 h1:kcBlZQbplgElYIlo/n1hJbls2z/1awpXxpRi0/FOJfg=
-github.com/evanphx/json-patch/v5 v5.9.0/go.mod h1:VNkHZ/282BpEyt/tObQO8s5CMPmYYq14uClGH4abBuQ=
-github.com/felixge/httpsnoop v1.0.3 h1:s/nj+GCswXYzN5v2DpNMuMQYe+0DDwt5WVCU6CWBdXk=
-github.com/felixge/httpsnoop v1.0.3/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
+github.com/evanphx/json-patch/v5 v5.9.11 h1:/8HVnzMq13/3x9TPvjG08wUGqBTmZBsCWzjTM0wiaDU=
+github.com/evanphx/json-patch/v5 v5.9.11/go.mod h1:3j+LviiESTElxA4p3EMKAB9HXj3/XEtnUf6OZxqIQTM=
+github.com/felixge/httpsnoop v1.0.4 h1:NFTV2Zj1bL4mc9sqWACXbQFVBBg2W3GPvqp8/ESS2Wg=
+github.com/felixge/httpsnoop v1.0.4/go.mod h1:m8KPJKqk1gH5J9DgRY2ASl2lWCfGKXixSwevea8zH2U=
github.com/fsnotify/fsnotify v1.7.0 h1:8JEhPFa5W2WU7YfeZzPNqzMP6Lwt7L2715Ggo0nosvA=
github.com/fsnotify/fsnotify v1.7.0/go.mod h1:40Bi/Hjc2AVfZrqy+aj+yEI+/bRxZnMJyTJwOpGvigM=
+github.com/fxamacker/cbor/v2 v2.7.0 h1:iM5WgngdRBanHcxugY4JySA0nk1wZorNOpTgCMedv5E=
+github.com/fxamacker/cbor/v2 v2.7.0/go.mod h1:pxXPTn3joSm21Gbwsv0w9OSA2y1HFR9qXEeXQVeNoDQ=
github.com/go-logr/logr v1.2.2/go.mod h1:jdQByPbusPIv2/zmleS9BjJVeZ6kBagPoEUsqbVz/1A=
github.com/go-logr/logr v1.4.2 h1:6pFjapn8bFcIbiKo3XT4j/BhANplGihG6tvd+8rYgrY=
github.com/go-logr/logr v1.4.2/go.mod h1:9T104GzyrTigFIr8wt5mBrctHMim0Nb2HLGrmQ40KvY=
@@ -39,44 +44,44 @@ github.com/go-task/slim-sprig/v3 v3.0.0 h1:sUs3vkvUymDpBKi3qH1YSqBQk9+9D/8M2mN1v
github.com/go-task/slim-sprig/v3 v3.0.0/go.mod h1:W848ghGpv3Qj3dhTPRyJypKRiqCdHZiAzKg9hl15HA8=
github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q=
github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q=
-github.com/golang/glog v1.1.0 h1:/d3pCKDPWNnvIWe0vVUpNP32qc8U3PDVxySP/y360qE=
-github.com/golang/glog v1.1.0/go.mod h1:pfYeQZ3JWZoXTV5sFc986z3HTpwQs9At6P4ImfuP3NQ=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da h1:oI5xCqsCo564l8iNU+DwB5epxmsaqB+rhGL0m5jtYqE=
-github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc=
github.com/golang/protobuf v1.5.4 h1:i7eJL8qZTpSEXOPTxNKhASYpMn+8e5Q6AdndVa1dWek=
github.com/golang/protobuf v1.5.4/go.mod h1:lnTiLA8Wa4RWRcIUkrtSVa5nRhsEGBg48fD6rSs7xps=
-github.com/google/cel-go v0.17.8 h1:j9m730pMZt1Fc4oKhCLUHfjj6527LuhYcYw0Rl8gqto=
-github.com/google/cel-go v0.17.8/go.mod h1:HXZKzB0LXqer5lHHgfWAnlYwJaQBDKMjxjulNQzhwhY=
-github.com/google/gnostic-models v0.6.8 h1:yo/ABAfM5IMRsS1VnXjTBvUb61tFIHozhlYvRgGre9I=
-github.com/google/gnostic-models v0.6.8/go.mod h1:5n7qKqH0f5wFt+aWF8CW6pZLLNOfYuF5OpfBSENuI8U=
+github.com/google/btree v1.1.3 h1:CVpQJjYgC4VbzxeGVHfvZrv1ctoYCAI8vbl07Fcxlyg=
+github.com/google/btree v1.1.3/go.mod h1:qOPhT0dTNdNzV6Z/lhRX0YXUafgPLFUh+gZMl761Gm4=
+github.com/google/cel-go v0.23.2 h1:UdEe3CvQh3Nv+E/j9r1Y//WO0K0cSyD7/y0bzyLIMI4=
+github.com/google/cel-go v0.23.2/go.mod h1:52Pb6QsDbC5kvgxvZhiL9QX1oZEkcUF/ZqaPx1J5Wwo=
+github.com/google/gnostic-models v0.6.9 h1:MU/8wDLif2qCXZmzncUQ/BOfxWfthHi63KqpoNbWqVw=
+github.com/google/gnostic-models v0.6.9/go.mod h1:CiWsm0s6BSQd1hRn8/QmxqB6BesYcbSZxsz9b0KuDBw=
github.com/google/go-cmp v0.5.9/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
-github.com/google/go-cmp v0.6.0 h1:ofyhxvXcZhMsU5ulbFiLKl/XBFqE1GSq7atu8tAmTRI=
-github.com/google/go-cmp v0.6.0/go.mod h1:17dUlkBOakJ0+DkrSSNjCkIjxS6bF9zb3elmeNGIjoY=
+github.com/google/go-cmp v0.7.0 h1:wk8382ETsv4JYUZwIsn6YpYiWiBsYLSJiTsyBybVuN8=
+github.com/google/go-cmp v0.7.0/go.mod h1:pXiqmnSA92OHEEa9HXL2W4E7lf9JzCmGVUdgjX3N/iU=
github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
github.com/google/gofuzz v1.2.0 h1:xRy4A+RhZaiKjJ1bPfwQ8sedCA+YS2YcCHW6ec7JMi0=
github.com/google/gofuzz v1.2.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg=
-github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6 h1:k7nVchz72niMH6YLQNvHSdIE7iqsQxK1P41mySCvssg=
-github.com/google/pprof v0.0.0-20240424215950-a892ee059fd6/go.mod h1:kf6iHlnVGwgKolg33glAes7Yg/8iWP8ukqeldJSO7jw=
+github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad h1:a6HEuzUHeKH6hwfN/ZoQgRgVIWFJljSWa/zetS2WTvg=
+github.com/google/pprof v0.0.0-20241210010833-40e02aabc2ad/go.mod h1:vavhavw2zAxS5dIdcRluK6cSGGPlZynqzFM8NdvU144=
github.com/google/uuid v1.6.0 h1:NIvaJDMOsjHA8n1jAhLSgzrAzy1Hgr+hNrb57e+94F0=
github.com/google/uuid v1.6.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0 h1:YBftPWNWd4WwGqtY2yeZL2ef8rHAxPBD8KFhJpmcqms=
-github.com/grpc-ecosystem/grpc-gateway/v2 v2.16.0/go.mod h1:YN5jB8ie0yfIUg6VvR9Kz84aCaG7AsGZnLjhHbUqwPg=
-github.com/imdario/mergo v0.3.6 h1:xTNEAn+kxVO7dTZGu0CegyqKZmoWFI0rF8UxjlB2d28=
-github.com/imdario/mergo v0.3.6/go.mod h1:2EnlNZ0deacrJVfApfmtdGgDfMuh/nq6Ok1EcJh5FfA=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0 h1:TmHmbvxPmaegwhDubVz0lICL0J5Ka2vwTzhoePEXsGE=
+github.com/grpc-ecosystem/grpc-gateway/v2 v2.24.0/go.mod h1:qztMSjm835F2bXf+5HKAPIS5qsmQDqZna/PgVt4rWtI=
+github.com/inconshreveable/mousetrap v1.1.0 h1:wN+x4NVGpMsO7ErUn/mUI3vEoE6Jt13X2s0bqwp9tc8=
+github.com/inconshreveable/mousetrap v1.1.0/go.mod h1:vpF70FUmC8bwa3OWnCshd2FqLfsEA9PFc4w1p2J65bw=
github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8HmY=
github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y=
github.com/json-iterator/go v1.1.12 h1:PV8peI4a0ysnczrg+LtxykD8LfKY9ML6u2jnxaEnrnM=
github.com/json-iterator/go v1.1.12/go.mod h1:e30LSqwooZae/UwlEbR2852Gd8hjQvJoHmT4TnhNGBo=
github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8=
github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck=
+github.com/klauspost/compress v1.18.0 h1:c/Cqfb0r+Yi+JtIEq73FWXVkRonBlf0CRNYc8Zttxdo=
+github.com/klauspost/compress v1.18.0/go.mod h1:2Pp+KzxcywXVXMr50+X0Q/Lsb43OQHYWRCY2AiWywWQ=
github.com/kr/pretty v0.3.1 h1:flRD4NNwYAUpkphVc1HcthR4KEIFJ65n8Mw5qdRn3LE=
github.com/kr/pretty v0.3.1/go.mod h1:hoEshYVHaxMs3cyo3Yncou5ZscifuDolrwPKZanG3xk=
github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY=
github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE=
+github.com/kylelemons/godebug v1.1.0 h1:RPNrshWIDI6G2gRW9EHilWtl7Z6Sb1BR0xunSBf0SNc=
+github.com/kylelemons/godebug v1.1.0/go.mod h1:9/0rRGxNHcop5bhtWyNeEfOS8JIWk580+fNqagV/RAw=
github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0=
github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc=
-github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0 h1:jWpvCLoY8Z/e3VKvlsiIGKtc+UG6U5vzxaoagmhXfyg=
-github.com/matttproud/golang_protobuf_extensions/v2 v2.0.0/go.mod h1:QUyp042oQthUoa9bqDv0ER0wrtXnBruoNd7aNjkbP+k=
github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg=
github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q=
@@ -84,10 +89,10 @@ github.com/modern-go/reflect2 v1.0.2 h1:xBagoLtFs94CBntxluKeaWgTMpvLxC4ur3nMaC9G
github.com/modern-go/reflect2 v1.0.2/go.mod h1:yWuevngMOJpCy52FWWMvUC8ws7m/LJsjYzDa0/r8luk=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822 h1:C3w9PqII01/Oq1c1nUAm88MOHcQC9l5mIlSMApZMrHA=
github.com/munnerz/goautoneg v0.0.0-20191010083416-a7dc8b61c822/go.mod h1:+n7T8mK8HuQTcFwEeznm/DIxMOiR9yIdICNftLE1DvQ=
-github.com/onsi/ginkgo/v2 v2.17.2 h1:7eMhcy3GimbsA3hEnVKdw/PQM9XN9krpKVXsZdph0/g=
-github.com/onsi/ginkgo/v2 v2.17.2/go.mod h1:nP2DPOQoNsQmsVyv5rDA8JkXQoCs6goXIvr/PRJ1eCc=
-github.com/onsi/gomega v1.33.1 h1:dsYjIxxSR755MDmKVsaFQTE22ChNBcuuTWgkUDSubOk=
-github.com/onsi/gomega v1.33.1/go.mod h1:U4R44UsT+9eLIaYRB2a5qajjtQYn0hauxvRm16AVYg0=
+github.com/onsi/ginkgo/v2 v2.22.2 h1:/3X8Panh8/WwhU/3Ssa6rCKqPLuAkVY2I0RoyDLySlU=
+github.com/onsi/ginkgo/v2 v2.22.2/go.mod h1:oeMosUL+8LtarXBHu/c0bx2D/K9zyQ6uX3cTyztHwsk=
+github.com/onsi/gomega v1.36.2 h1:koNYke6TVk6ZmnyHrCXba/T/MoLBXFjeC1PtvYgw0A8=
+github.com/onsi/gomega v1.36.2/go.mod h1:DdwyADRjrc825LhMEkD76cHR5+pUnjhUN8GlHlRPHzY=
github.com/openshift/api v0.0.0-20240912201240-0a8800162826 h1:A8D9SN/hJUwAbdO0rPCVTqmuBOctdgurr53gK701SYo=
github.com/openshift/api v0.0.0-20240912201240-0a8800162826/go.mod h1:OOh6Qopf21pSzqNVCB5gomomBXb8o5sGKZxG2KNpaXM=
github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4=
@@ -99,140 +104,153 @@ github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.75.0 h
github.com/prometheus-operator/prometheus-operator/pkg/apis/monitoring v0.75.0/go.mod h1:XYrdZw5dW12Cjkt4ndbeNZZTBp4UCHtW0ccR9+sTtPU=
github.com/prometheus-operator/prometheus-operator/pkg/client v0.75.0 h1:QcchdrYyQ9qRY0KZlEjx6gYUjPOvkZDbzOlHMp4ix88=
github.com/prometheus-operator/prometheus-operator/pkg/client v0.75.0/go.mod h1:ptPuQIiTdOvagifFhojZSJ/8VinU3/l7gOQ+Y6M0aqI=
-github.com/prometheus/client_golang v1.18.0 h1:HzFfmkOzH5Q8L8G+kSJKUx5dtG87sewO+FoDDqP5Tbk=
-github.com/prometheus/client_golang v1.18.0/go.mod h1:T+GXkCk5wSJyOqMIzVgvvjFDlkOQntgjkJWKrN5txjA=
-github.com/prometheus/client_model v0.5.0 h1:VQw1hfvPvk3Uv6Qf29VrPF32JB6rtbgI6cYPYQjL0Qw=
-github.com/prometheus/client_model v0.5.0/go.mod h1:dTiFglRmd66nLR9Pv9f0mZi7B7fk5Pm3gvsjB5tr+kI=
-github.com/prometheus/common v0.45.0 h1:2BGz0eBc2hdMDLnO/8n0jeB3oPrt2D08CekT0lneoxM=
-github.com/prometheus/common v0.45.0/go.mod h1:YJmSTw9BoKxJplESWWxlbyttQR4uaEcGyv9MZjVOJsY=
-github.com/prometheus/procfs v0.12.0 h1:jluTpSng7V9hY0O2R9DzzJHYb2xULk9VTR1V1R/k6Bo=
-github.com/prometheus/procfs v0.12.0/go.mod h1:pcuDEFsWDnvcgNzo4EEweacyhjeA9Zk3cnaOZAZEfOo=
-github.com/rogpeppe/go-internal v1.11.0 h1:cWPaGQEPrBb5/AsnsZesgZZ9yb1OQ+GOISoDNXVBh4M=
-github.com/rogpeppe/go-internal v1.11.0/go.mod h1:ddIwULY96R17DhadqLgMfk9H9tvdUzkipdSkR5nkCZA=
+github.com/prometheus/client_golang v1.22.0 h1:rb93p9lokFEsctTys46VnV1kLCDpVZ0a/Y92Vm0Zc6Q=
+github.com/prometheus/client_golang v1.22.0/go.mod h1:R7ljNsLXhuQXYZYtw6GAE9AZg8Y7vEW5scdCXrWRXC0=
+github.com/prometheus/client_model v0.6.1 h1:ZKSh/rekM+n3CeS952MLRAdFwIKqeY8b62p8ais2e9E=
+github.com/prometheus/client_model v0.6.1/go.mod h1:OrxVMOVHjw3lKMa8+x6HeMGkHMQyHDk9E3jmP2AmGiY=
+github.com/prometheus/common v0.62.0 h1:xasJaQlnWAeyHdUBeGjXmutelfJHWMRr+Fg4QszZ2Io=
+github.com/prometheus/common v0.62.0/go.mod h1:vyBcEuLSvWos9B1+CyL7JZ2up+uFzXhkqml0W5zIY1I=
+github.com/prometheus/procfs v0.15.1 h1:YagwOFzUgYfKKHX6Dr+sHT7km/hxC76UB0learggepc=
+github.com/prometheus/procfs v0.15.1/go.mod h1:fB45yRUv8NstnjriLhBQLuOUt+WW4BsoGhij/e3PBqk=
+github.com/rogpeppe/go-internal v1.13.1 h1:KvO1DLK/DRN07sQ1LQKScxyZJuNnedQ5/wKSR38lUII=
+github.com/rogpeppe/go-internal v1.13.1/go.mod h1:uMEvuHeurkdAXX61udpOXGD/AzZDWNMNyH2VO9fmH0o=
+github.com/russross/blackfriday/v2 v2.1.0/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM=
+github.com/spf13/cobra v1.8.1 h1:e5/vxKd/rZsfSJMUX1agtjeTDf+qv1/JdBF8gg5k9ZM=
+github.com/spf13/cobra v1.8.1/go.mod h1:wHxEcudfqmLYa8iTfL+OuZPbBZkmvliBWKIezN3kD9Y=
github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA=
github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg=
-github.com/stoewer/go-strcase v1.2.0 h1:Z2iHWqGXH00XYgqDmNgQbIBxf3wrNq0F3feEy0ainaU=
-github.com/stoewer/go-strcase v1.2.0/go.mod h1:IBiWB2sKIp3wVVQ3Y035++gc+knqhUQag1KpM8ahLw8=
+github.com/stoewer/go-strcase v1.3.0 h1:g0eASXYtp+yvN9fK8sH94oCIk0fau9uV1/ZdJ0AVEzs=
+github.com/stoewer/go-strcase v1.3.0/go.mod h1:fAH5hQ5pehh+j3nZfvwdk2RgEgQjAoM8wodgtPmh1xo=
github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME=
+github.com/stretchr/objx v0.4.0/go.mod h1:YvHI0jy2hoMjB+UWwv71VJQ9isScKT/TqJzVSSt89Yw=
+github.com/stretchr/objx v0.5.0/go.mod h1:Yh+to48EsGEfYuaHDzXPcE3xhTkx73EhmCGUpEOglKo=
+github.com/stretchr/objx v0.5.2 h1:xuMeJ0Sdp5ZMRXx/aWO6RZxdr3beISkG5/G/aIRr3pY=
+github.com/stretchr/objx v0.5.2/go.mod h1:FRsXN1f5AsAjCGJKqEizvkpNtU+EGNCLh3NxZ/8L+MA=
github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI=
-github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA=
-github.com/stretchr/testify v1.9.0 h1:HtqpIVDClZ4nwg75+f6Lvsy/wHu+3BoSGCbBAcpTsTg=
-github.com/stretchr/testify v1.9.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/stretchr/testify v1.7.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg=
+github.com/stretchr/testify v1.8.0/go.mod h1:yNjHg4UonilssWZ8iaSj1OCr/vHnekPRkoO+kdMU+MU=
+github.com/stretchr/testify v1.8.1/go.mod h1:w2LPCIKwWwSfY2zedu0+kehJoqGctiVI29o6fzry7u4=
+github.com/stretchr/testify v1.10.0 h1:Xv5erBjTwe/5IxqUQTdXv5kgmIvbHo3QQyRwhJsOfJA=
+github.com/stretchr/testify v1.10.0/go.mod h1:r2ic/lqez/lEtzL7wO/rwa5dbSLXVDPFyf8C91i36aY=
+github.com/x448/float16 v0.8.4 h1:qLwI1I70+NjRFUR3zs1JPUCgaCXSh3SW62uAKT1mSBM=
+github.com/x448/float16 v0.8.4/go.mod h1:14CWIYCyZA/cWjXOioeEpHeN/83MdbZDRQHoFcYsOfg=
github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0 h1:KfYpVmrjI7JuToy5k8XV3nkapjWx48k4E4JOtVstzQI=
-go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.44.0/go.mod h1:SeQhzAEccGVZVEy7aH87Nh0km+utSpo1pTv6eMMop48=
-go.opentelemetry.io/otel v1.19.0 h1:MuS/TNf4/j4IXsZuJegVzI1cwut7Qc00344rgH7p8bs=
-go.opentelemetry.io/otel v1.19.0/go.mod h1:i0QyjOq3UPoTzff0PJB2N66fb4S0+rSbSB15/oyH9fY=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0 h1:Mne5On7VWdx7omSrSSZvM4Kw7cS7NQkOOmLcgscI51U=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.19.0/go.mod h1:IPtUMKL4O3tH5y+iXVyAXqpAwMuzC1IrxVS81rummfE=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0 h1:3d+S281UTjM+AbF31XSOYn1qXn3BgIdWl8HNEpx08Jk=
-go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.19.0/go.mod h1:0+KuTDyKL4gjKCF75pHOX4wuzYDUZYfAQdSu43o+Z2I=
-go.opentelemetry.io/otel/metric v1.19.0 h1:aTzpGtV0ar9wlV4Sna9sdJyII5jTVJEvKETPiOKwvpE=
-go.opentelemetry.io/otel/metric v1.19.0/go.mod h1:L5rUsV9kM1IxCj1MmSdS+JQAcVm319EUrDVLrt7jqt8=
-go.opentelemetry.io/otel/sdk v1.19.0 h1:6USY6zH+L8uMH8L3t1enZPR3WFEmSTADlqldyHtJi3o=
-go.opentelemetry.io/otel/sdk v1.19.0/go.mod h1:NedEbbS4w3C6zElbLdPJKOpJQOrGUJ+GfzpjUvI0v1A=
-go.opentelemetry.io/otel/trace v1.19.0 h1:DFVQmlVbfVeOuBRrwdtaehRrWiL1JoVs9CPIQ1Dzxpg=
-go.opentelemetry.io/otel/trace v1.19.0/go.mod h1:mfaSyvGyEJEI0nyV2I4qhNQnbBOUUmYZpYojqMnX2vo=
-go.opentelemetry.io/proto/otlp v1.0.0 h1:T0TX0tmXU8a3CbNXzEKGeU5mIVOdf0oykP+u2lIVU/I=
-go.opentelemetry.io/proto/otlp v1.0.0/go.mod h1:Sy6pihPLfYHkr3NkUbEhGHFhINUSI/v80hjKIs5JXpM=
+go.opentelemetry.io/auto/sdk v1.1.0 h1:cH53jehLUN6UFLY71z+NDOiNJqDdPRaXzTel0sJySYA=
+go.opentelemetry.io/auto/sdk v1.1.0/go.mod h1:3wSPjt5PWp2RhlCcmmOial7AvC4DQqZb7a7wCow3W8A=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0 h1:yd02MEjBdJkG3uabWP9apV+OuWRIXGDuJEUJbOHmCFU=
+go.opentelemetry.io/contrib/instrumentation/net/http/otelhttp v0.58.0/go.mod h1:umTcuxiv1n/s/S6/c2AT/g2CQ7u5C59sHDNmfSwgz7Q=
+go.opentelemetry.io/otel v1.33.0 h1:/FerN9bax5LoK51X/sI0SVYrjSE0/yUL7DpxW4K3FWw=
+go.opentelemetry.io/otel v1.33.0/go.mod h1:SUUkR6csvUQl+yjReHu5uM3EtVV7MBm5FHKRlNx4I8I=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0 h1:Vh5HayB/0HHfOQA7Ctx69E/Y/DcQSMPpKANYVMQ7fBA=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace v1.33.0/go.mod h1:cpgtDBaqD/6ok/UG0jT15/uKjAY8mRA53diogHBg3UI=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0 h1:5pojmb1U1AogINhN3SurB+zm/nIcusopeBNp42f45QM=
+go.opentelemetry.io/otel/exporters/otlp/otlptrace/otlptracegrpc v1.33.0/go.mod h1:57gTHJSE5S1tqg+EKsLPlTWhpHMsWlVmer+LA926XiA=
+go.opentelemetry.io/otel/metric v1.33.0 h1:r+JOocAyeRVXD8lZpjdQjzMadVZp2M4WmQ+5WtEnklQ=
+go.opentelemetry.io/otel/metric v1.33.0/go.mod h1:L9+Fyctbp6HFTddIxClbQkjtubW6O9QS3Ann/M82u6M=
+go.opentelemetry.io/otel/sdk v1.33.0 h1:iax7M131HuAm9QkZotNHEfstof92xM+N8sr3uHXc2IM=
+go.opentelemetry.io/otel/sdk v1.33.0/go.mod h1:A1Q5oi7/9XaMlIWzPSxLRWOI8nG3FnzHJNbiENQuihM=
+go.opentelemetry.io/otel/trace v1.33.0 h1:cCJuF7LRjUFso9LPnEAHJDB2pqzp+hbO8eu1qqW2d/s=
+go.opentelemetry.io/otel/trace v1.33.0/go.mod h1:uIcdVUZMpTAmz0tI1z04GoVSezK37CbGV4fr1f2nBck=
+go.opentelemetry.io/proto/otlp v1.4.0 h1:TA9WRvW6zMwP+Ssb6fLoUIuirti1gGbP28GcKG1jgeg=
+go.opentelemetry.io/proto/otlp v1.4.0/go.mod h1:PPBWZIP98o2ElSqI35IHfu7hIhSwvc5N38Jw8pXuGFY=
go.uber.org/goleak v1.3.0 h1:2K3zAYmnTNqV73imy9J1T3WC+gmCePx2hEGkimedGto=
go.uber.org/goleak v1.3.0/go.mod h1:CoHD4mav9JJNrW/WLlf7HGZPjdw8EucARQHekz1X6bE=
go.uber.org/multierr v1.11.0 h1:blXXJkSxSSfBVBlC76pxqeO+LN3aDfLQo+309xJstO0=
go.uber.org/multierr v1.11.0/go.mod h1:20+QtiLqy0Nd6FdQB9TLXag12DsQkrbs3htMFfDN80Y=
-go.uber.org/zap v1.26.0 h1:sI7k6L95XOKS281NhVKOFCUNIvv9e0w4BF8N3u+tCRo=
-go.uber.org/zap v1.26.0/go.mod h1:dtElttAiwGvoJ/vj4IwHBS/gXsEu/pZ50mUIRWuG0so=
+go.uber.org/zap v1.27.0 h1:aJMhYGrd5QSmlpLMr2MftRKl7t8J8PTZPA732ud/XR8=
+go.uber.org/zap v1.27.0/go.mod h1:GB2qFLM7cTU87MWRP2mPIjqfIDnGu+VIO4V/SdhGo2E=
golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w=
golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI=
golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto=
-golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e h1:+WEEuIdZHnUeJJmEUjyYC2gfUMj69yZXw17EnHg/otA=
-golang.org/x/exp v0.0.0-20220722155223-a9213eeb770e/go.mod h1:Kr81I6Kryrl9sr8s2FK3vxD90NdsKWRuOIl2O4CvYbA=
+golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56 h1:2dVuKD2vS7b0QIHQbpyTISPd0LeHDbnYEryqj5Q1ug8=
+golang.org/x/exp v0.0.0-20240719175910-8a7402abbf56/go.mod h1:M4RDyNAINzryxdtnbRXRL/OHtkFuWGRjvuhBJpk2IlY=
golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA=
golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg=
golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s=
golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU=
-golang.org/x/net v0.33.0 h1:74SYHlV8BIgHIFC/LrYkOGIwL19eTYXQ5wc6TBuO36I=
-golang.org/x/net v0.33.0/go.mod h1:HXLR5J+9DxmrqMwG9qjGCxZ+zKXxBru04zlTvWlWuN4=
-golang.org/x/oauth2 v0.21.0 h1:tsimM75w1tF/uws5rbeHzIWxEqElMehnc+iW793zsZs=
-golang.org/x/oauth2 v0.21.0/go.mod h1:XYTD2NtWslqkgxebSiOHnXEap4TF09sJSc7H1sXbhtI=
+golang.org/x/net v0.38.0 h1:vRMAPTMaeGqVhG5QyLJHqNDwecKTomGeqbnfZyKlBI8=
+golang.org/x/net v0.38.0/go.mod h1:ivrbrMbzFq5J41QOQh0siUuly180yBYtLp+CKbEaFx8=
+golang.org/x/oauth2 v0.27.0 h1:da9Vo7/tDv5RH/7nZDz1eMGS/q1Vv1N/7FCrBhI9I3M=
+golang.org/x/oauth2 v0.27.0/go.mod h1:onh5ek6nERTohokkhCD/y2cV4Do3fxFHFuAejCkRWT8=
golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM=
-golang.org/x/sync v0.10.0 h1:3NQrjDixjgGwUOCaF8w2+VYHv0Ve/vGYSbdkTa98gmQ=
-golang.org/x/sync v0.10.0/go.mod h1:Czt+wKu1gCyEFDUtn0jG5QVvpJ6rzVqr5aXyt9drQfk=
+golang.org/x/sync v0.12.0 h1:MHc5BpPuC30uJk597Ri8TV3CNZcTLu6B6z4lJy+g6Jw=
+golang.org/x/sync v0.12.0/go.mod h1:1dzgHSNfp02xaA81J2MS99Qcpr2w7fw1gpm99rleRqA=
golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.28.0 h1:Fksou7UEQUWlKvIdsqzJmUmCX3cZuD2+P3XyyzwMhlA=
-golang.org/x/sys v0.28.0/go.mod h1:/VUhepiaJMQUp4+oa/7Zr1D23ma6VTLIYjOOTFZPUcA=
-golang.org/x/term v0.27.0 h1:WP60Sv1nlK1T6SupCHbXzSaN0b9wUmsPoRS9b61A23Q=
-golang.org/x/term v0.27.0/go.mod h1:iMsnZpn0cago0GOrHO2+Y7u7JPn5AylBrcoWkElMTSM=
+golang.org/x/sys v0.31.0 h1:ioabZlmFYtWhL+TRYpcnNlLwhyxaM9kWTDEmfnprqik=
+golang.org/x/sys v0.31.0/go.mod h1:BJP2sWEmIv4KK5OTEluFJCKSidICx8ciO85XgH3Ak8k=
+golang.org/x/term v0.30.0 h1:PQ39fJZ+mfadBm0y5WlL4vlM7Sx1Hgf13sMIY2+QS9Y=
+golang.org/x/term v0.30.0/go.mod h1:NYYFdzHoI5wRh/h5tDMdMqCqPJZEuNqVR5xJLd/n67g=
golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ=
golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ=
-golang.org/x/text v0.21.0 h1:zyQAAkrwaneQ066sspRyJaG9VNi/YJ1NfzcGB3hZ/qo=
-golang.org/x/text v0.21.0/go.mod h1:4IBbMaMmOPCJ8SecivzSH54+73PCFmPWxNTLm+vZkEQ=
-golang.org/x/time v0.5.0 h1:o7cqy6amK/52YcAKIPlM3a+Fpj35zvRj2TP+e1xFSfk=
-golang.org/x/time v0.5.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
+golang.org/x/text v0.23.0 h1:D71I7dUrlY+VX0gQShAThNGHFxZ13dGLBHQLVl1mJlY=
+golang.org/x/text v0.23.0/go.mod h1:/BLNzu4aZCJ1+kcD0DNRotWKage4q2rGVAg4o22unh4=
+golang.org/x/time v0.9.0 h1:EsRrnYcQiGH+5FfbgvV4AP7qEZstoyrHB0DzarOQ4ZY=
+golang.org/x/time v0.9.0/go.mod h1:3BpzKBy/shNhVucY/MWOyx10tF3SFh9QdLuxbVysPQM=
golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ=
golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo=
golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE=
golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA=
-golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d h1:vU5i/LfpvrRCpgM/VPfJLg5KjxD3E+hfT1SH+d9zLwg=
-golang.org/x/tools v0.21.1-0.20240508182429-e35e4ccd0d2d/go.mod h1:aiJjzUbINMkxbQROHiO6hDPo2LHcIPhhQsa9DLh0yGk=
+golang.org/x/tools v0.28.0 h1:WuB6qZ4RPCQo5aP3WdKZS7i595EdWqWR8vqJTlwTVK8=
+golang.org/x/tools v0.28.0/go.mod h1:dcIOrVd3mfQKTgrDVQHqCPMWy6lnhfhtX3hLXYVLfRw=
golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0=
gomodules.xyz/jsonpatch/v2 v2.4.0 h1:Ci3iUJyx9UeRx7CeFN8ARgGbkESwJK+KB9lLcWxY/Zw=
gomodules.xyz/jsonpatch/v2 v2.4.0/go.mod h1:AH3dM2RI6uoBZxn3LVrfvJ3E0/9dG4cSrbuBJT4moAY=
-google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5 h1:L6iMMGrtzgHsWofoFcihmDEMYeDR9KN/ThbPWGrh++g=
-google.golang.org/genproto v0.0.0-20230803162519-f966b187b2e5/go.mod h1:oH/ZOT02u4kWEp7oYBGYFFkCdKS/uYR9Z7+0/xuuFp8=
-google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e h1:z3vDksarJxsAKM5dmEGv0GHwE2hKJ096wZra71Vs4sw=
-google.golang.org/genproto/googleapis/api v0.0.0-20230726155614-23370e0ffb3e/go.mod h1:rsr7RhLuwsDKL7RmgDDCUc6yaGr1iqceVb5Wv6f6YvQ=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d h1:uvYuEyMHKNt+lT4K3bN6fGswmK8qSvcreM3BwjDh+y4=
-google.golang.org/genproto/googleapis/rpc v0.0.0-20230822172742-b8732ec3820d/go.mod h1:+Bk1OCOj40wS2hwAMA+aCW9ypzm63QTBBHp6lQ3p+9M=
-google.golang.org/grpc v1.58.3 h1:BjnpXut1btbtgN/6sp+brB2Kbm2LjNXnidYujAVbSoQ=
-google.golang.org/grpc v1.58.3/go.mod h1:tgX3ZQDlNJGU96V6yHh1T/JeoBQ2TXdr43YbYSsCJk0=
-google.golang.org/protobuf v1.34.2 h1:6xV6lTsCfpGD21XK49h7MhtcApnLqkfYgPcdHftf6hg=
-google.golang.org/protobuf v1.34.2/go.mod h1:qYOHts0dSfpeUzUFpOMr/WGzszTmLH+DiWniOlNbLDw=
+google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576 h1:CkkIfIt50+lT6NHAVoRYEyAvQGFM7xEwXUUywFvEb3Q=
+google.golang.org/genproto/googleapis/api v0.0.0-20241209162323-e6fa225c2576/go.mod h1:1R3kvZ1dtP3+4p4d3G8uJ8rFk/fWlScl38vanWACI08=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576 h1:8ZmaLZE4XWrtU3MyClkYqqtl6Oegr3235h7jxsDyqCY=
+google.golang.org/genproto/googleapis/rpc v0.0.0-20241209162323-e6fa225c2576/go.mod h1:5uTbfoYQed2U9p3KIj2/Zzm02PYhndfdmML0qC3q3FU=
+google.golang.org/grpc v1.68.1 h1:oI5oTa11+ng8r8XMMN7jAOmWfPZWbYpCFaMUTACxkM0=
+google.golang.org/grpc v1.68.1/go.mod h1:+q1XYFJjShcqn0QZHvCyeR4CXPA+llXIeUIfIe00waw=
+google.golang.org/protobuf v1.36.5 h1:tPhr+woSbjfYvY6/GPufUoYizxw1cF/yFoxJ2fmpwlM=
+google.golang.org/protobuf v1.36.5/go.mod h1:9fA7Ob0pmnwhb644+1+CVWFRbNajQ6iRojtC/QF5bRE=
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c h1:Hei/4ADfdWqJk1ZMxUNpqntNwaWcugrBjAiHlqqRiVk=
gopkg.in/check.v1 v1.0.0-20201130134442-10cb98267c6c/go.mod h1:JHkPIbrfpd72SG/EVd6muEfDQjcINNoR0C8j2r3qZ4Q=
+gopkg.in/evanphx/json-patch.v4 v4.12.0 h1:n6jtcsulIzXPJaxegRbvFNNrZDjbij7ny3gmSPG+6V4=
+gopkg.in/evanphx/json-patch.v4 v4.12.0/go.mod h1:p8EYWUEYMpynmqDbY58zCKCFZw8pRWMG4EsWvDvM72M=
gopkg.in/inf.v0 v0.9.1 h1:73M5CoZyi3ZLMOyDlQh031Cx6N9NDJ2Vvfl76EDAgDc=
gopkg.in/inf.v0 v0.9.1/go.mod h1:cWUDdTG/fYaXco+Dcufb5Vnc6Gp2YChqWtbxRZE0mXw=
-gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI=
-gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
-gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ=
+gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-k8s.io/api v0.30.2 h1:+ZhRj+28QT4UOH+BKznu4CBgPWgkXO7XAvMcMl0qKvI=
-k8s.io/api v0.30.2/go.mod h1:ULg5g9JvOev2dG0u2hig4Z7tQ2hHIuS+m8MNZ+X6EmI=
-k8s.io/apiextensions-apiserver v0.30.2 h1:l7Eue2t6QiLHErfn2vwK4KgF4NeDgjQkCXtEbOocKIE=
-k8s.io/apiextensions-apiserver v0.30.2/go.mod h1:lsJFLYyK40iguuinsb3nt+Sj6CmodSI4ACDLep1rgjw=
-k8s.io/apimachinery v0.30.2 h1:fEMcnBj6qkzzPGSVsAZtQThU62SmQ4ZymlXRC5yFSCg=
-k8s.io/apimachinery v0.30.2/go.mod h1:iexa2somDaxdnj7bha06bhb43Zpa6eWH8N8dbqVjTUc=
-k8s.io/apiserver v0.30.2 h1:ACouHiYl1yFI2VFI3YGM+lvxgy6ir4yK2oLOsLI1/tw=
-k8s.io/apiserver v0.30.2/go.mod h1:BOTdFBIch9Sv0ypSEcUR6ew/NUFGocRFNl72Ra7wTm8=
-k8s.io/client-go v0.30.2 h1:sBIVJdojUNPDU/jObC+18tXWcTJVcwyqS9diGdWHk50=
-k8s.io/client-go v0.30.2/go.mod h1:JglKSWULm9xlJLx4KCkfLLQ7XwtlbflV6uFFSHTMgVs=
-k8s.io/component-base v0.30.2 h1:pqGBczYoW1sno8q9ObExUqrYSKhtE5rW3y6gX88GZII=
-k8s.io/component-base v0.30.2/go.mod h1:yQLkQDrkK8J6NtP+MGJOws+/PPeEXNpwFixsUI7h/OE=
+k8s.io/api v0.33.0 h1:yTgZVn1XEe6opVpP1FylmNrIFWuDqe2H0V8CT5gxfIU=
+k8s.io/api v0.33.0/go.mod h1:CTO61ECK/KU7haa3qq8sarQ0biLq2ju405IZAd9zsiM=
+k8s.io/apiextensions-apiserver v0.33.0 h1:d2qpYL7Mngbsc1taA4IjJPRJ9ilnsXIrndH+r9IimOs=
+k8s.io/apiextensions-apiserver v0.33.0/go.mod h1:VeJ8u9dEEN+tbETo+lFkwaaZPg6uFKLGj5vyNEwwSzc=
+k8s.io/apimachinery v0.33.0 h1:1a6kHrJxb2hs4t8EE5wuR/WxKDwGN1FKH3JvDtA0CIQ=
+k8s.io/apimachinery v0.33.0/go.mod h1:BHW0YOu7n22fFv/JkYOEfkUYNRN0fj0BlvMFWA7b+SM=
+k8s.io/apiserver v0.33.0 h1:QqcM6c+qEEjkOODHppFXRiw/cE2zP85704YrQ9YaBbc=
+k8s.io/apiserver v0.33.0/go.mod h1:EixYOit0YTxt8zrO2kBU7ixAtxFce9gKGq367nFmqI8=
+k8s.io/client-go v0.33.0 h1:UASR0sAYVUzs2kYuKn/ZakZlcs2bEHaizrrHUZg0G98=
+k8s.io/client-go v0.33.0/go.mod h1:kGkd+l/gNGg8GYWAPr0xF1rRKvVWvzh9vmZAMXtaKOg=
+k8s.io/component-base v0.33.0 h1:Ot4PyJI+0JAD9covDhwLp9UNkUja209OzsJ4FzScBNk=
+k8s.io/component-base v0.33.0/go.mod h1:aXYZLbw3kihdkOPMDhWbjGCO6sg+luw554KP51t8qCU=
k8s.io/klog/v2 v2.130.1 h1:n9Xl7H1Xvksem4KFG4PYbdQCQxqc/tTUyrgXaOhHSzk=
k8s.io/klog/v2 v2.130.1/go.mod h1:3Jpz1GvMt720eyJH1ckRHK1EDfpxISzJ7I9OYgaDtPE=
-k8s.io/kube-openapi v0.0.0-20240620174524-b456828f718b h1:Q9xmGWBvOGd8UJyccgpYlLosk/JlfP3xQLNkQlHJeXw=
-k8s.io/kube-openapi v0.0.0-20240620174524-b456828f718b/go.mod h1:UxDHUPsUwTOOxSU+oXURfFBcAS6JwiRXTYqYwfuGowc=
-k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0 h1:jgGTlFYnhF1PM1Ax/lAlxUPE+KfCIXHaathvJg1C3ak=
-k8s.io/utils v0.0.0-20240502163921-fe8a2dddb1d0/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0 h1:/U5vjBbQn3RChhv7P11uhYvCSm5G2GaIi5AIGBS6r4c=
-sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.29.0/go.mod h1:z7+wmGM2dfIiLRfrC6jb5kV2Mq/sK1ZP303cxzkV5Y4=
-sigs.k8s.io/controller-runtime v0.18.4 h1:87+guW1zhvuPLh1PHybKdYFLU0YJp4FhJRmiHvm5BZw=
-sigs.k8s.io/controller-runtime v0.18.4/go.mod h1:TVoGrfdpbA9VRFaRnKgk9P5/atA0pMwq+f+msb9M8Sg=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd h1:EDPBXCAspyGV4jQlpZSudPeMmr1bNJefnuqLsRAsHZo=
-sigs.k8s.io/json v0.0.0-20221116044647-bc3834ca7abd/go.mod h1:B8JuhiUyNFVKdsE8h686QcCxMaH6HrOAZj4vswFpcB0=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1 h1:150L+0vs/8DA78h1u02ooW1/fFq/Lwr+sGiqlzvrtq4=
-sigs.k8s.io/structured-merge-diff/v4 v4.4.1/go.mod h1:N8hJocpFajUSSeSJ9bOZ77VzejKZaXsTtZo4/u7Io08=
+k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff h1:/usPimJzUKKu+m+TE36gUyGcf03XZEP0ZIKgKj35LS4=
+k8s.io/kube-openapi v0.0.0-20250318190949-c8a335a9a2ff/go.mod h1:5jIi+8yX4RIb8wk3XwBo5Pq2ccx4FP10ohkbSKCZoK8=
+k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738 h1:M3sRQVHv7vB20Xc2ybTt7ODCeFj6JSWYFzOFnYeS6Ro=
+k8s.io/utils v0.0.0-20241104100929-3ea5e8cea738/go.mod h1:OLgZIPagt7ERELqWJFomSt595RzquPNLL48iOWgYOg0=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2 h1:jpcvIRr3GLoUoEKRkHKSmGjxb6lWwrBlJsXc+eUYQHM=
+sigs.k8s.io/apiserver-network-proxy/konnectivity-client v0.31.2/go.mod h1:Ve9uj1L+deCXFrPOk1LpFXqTg7LCFzFso6PA48q/XZw=
+sigs.k8s.io/controller-runtime v0.21.0 h1:CYfjpEuicjUecRk+KAeyYh+ouUBn4llGyDYytIGcJS8=
+sigs.k8s.io/controller-runtime v0.21.0/go.mod h1:OSg14+F65eWqIu4DceX7k/+QRAbTTvxeQSNSOQpukWM=
+sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3 h1:/Rv+M11QRah1itp8VhT6HoVx1Ray9eB4DBr+K+/sCJ8=
+sigs.k8s.io/json v0.0.0-20241010143419-9aa6b5e7a4b3/go.mod h1:18nIHnGi6636UCz6m8i4DhaJ65T6EruyzmoQqI2BVDo=
+sigs.k8s.io/randfill v0.0.0-20250304075658-069ef1bbf016/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
+sigs.k8s.io/randfill v1.0.0 h1:JfjMILfT8A6RbawdsK2JXGBR5AQVfd+9TbzrlneTyrU=
+sigs.k8s.io/randfill v1.0.0/go.mod h1:XeLlZ/jmk4i1HRopwe7/aU3H5n1zNUcX6TM94b3QxOY=
+sigs.k8s.io/structured-merge-diff/v4 v4.6.0 h1:IUA9nvMmnKWcj5jl84xn+T5MnlZKThmUW1TdblaLVAc=
+sigs.k8s.io/structured-merge-diff/v4 v4.6.0/go.mod h1:dDy58f92j70zLsuZVuUX5Wp9vtxXpaZnkPGWeqDfCps=
sigs.k8s.io/yaml v1.4.0 h1:Mk1wCc2gy/F0THH0TAp1QYyJNzRm2KCLy3o5ASXVI5E=
sigs.k8s.io/yaml v1.4.0/go.mod h1:Ejl7/uTz7PSA4eKMyQCUTnhZYNmLIl+5c2lQPGR2BPY=